{"version":3,"file":"js/app~5c551db8.f46a5add.js","mappings":"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","sources":["webpack://app/./src/utilities/generateDefaultMyWorkFilters.js","webpack://app/./src/utilities/composables/useOnPageLoad.ts","webpack://app/./src/utilities/generateSrcUrl.js","webpack://app/./src/mixins/checkPlatform.js","webpack://app/./src/utilities/colorsAndIcons.ts","webpack://app/./src/utilities/getRouteAfterLogin.ts","webpack://app/./src/types/iconTypes.ts","webpack://app/./src/utilities/composables/useCurrentRole.ts","webpack://app/./src/mixins/customIconsMixin.js","webpack://app/./src/utilities/fileExtensions.ts","webpack://app/./src/mixins/electronHelpersMixin.js","webpack://app/./src/utilities/composables/useShortcutHandlers.ts","webpack://app/./src/types/notes.ts","webpack://app/./src/mixins/draggingIsOn.js","webpack://app/./src/utilities/composables/useDeleteResource.ts","webpack://app/./src/utilities/composables/useAddCardInGroupByOrder.ts","webpack://app/./src/utilities/composables/useTranslate.ts","webpack://app/./src/utilities/composables/useSetAndOpenProject.ts","webpack://app/./src/utilities/composables/useAudioTranscription.ts","webpack://app/./src/utilities/translate.ts","webpack://app/./src/types/resources.ts","webpack://app/./src/mixins/isSafari.js","webpack://app/./src/utilities/moveCard.js","webpack://app/./src/utilities/sprintKeys.ts","webpack://app/./src/utilities/specialCharactersPattern.js","webpack://app/./src/utilities/getDashedTitle.js","webpack://app/./src/utilities/getTextToTitleCase.ts","webpack://app/./src/utilities/composables/useNotes.ts","webpack://app/./src/mixins/defaultShortcutKeyPillStyle.js","webpack://app/./src/utilities/strings/index.ts","webpack://app/./src/utilities/index.ts","webpack://app/./src/utilities/sortProjects.ts","webpack://app/./src/types/onboardingActions.ts","webpack://app/./src/utilities/getCurrentDateInSeconds.js","webpack://app/./src/mixins/headerMixin.js","webpack://app/./src/utilities/isInViewport.js","webpack://app/./src/mixins/hideDropdownsMixin.js","webpack://app/./src/types/messageTypes.ts","webpack://app/./src/utilities/getBranchName.js","webpack://app/./src/utilities/api.ts","webpack://app/./src/utilities/validateEmail.ts","webpack://app/./src/utilities/composables/useIsElectronApp.ts","webpack://app/./src/utilities/constants.js","webpack://app/./src/utilities/timeDifference.ts","webpack://app/./src/utilities/composables/useCustomIcon.ts","webpack://app/./src/utilities/SocketService.js","webpack://app/./src/utilities/isApple.ts","webpack://app/./src/utilities/globalState.js","webpack://app/./src/types/tabs.ts","webpack://app/./src/mixins/userAvatarContentMixin.js","webpack://app/./src/mixins/viewResultsMixin.js","webpack://app/./src/mixins/update.js","webpack://app/./src/utilities/getRandomNumber.js","webpack://app/./src/utilities/composables/useOnboardingActions.ts","webpack://app/./src/utilities/composables/useUserHashColor.ts","webpack://app/./src/utilities/eventBus.ts","webpack://app/./src/types/groupByOption.ts","webpack://app/./src/utilities/browser-storage.util.ts","webpack://app/./src/types/cardStatusType.ts","webpack://app/./src/utilities/composables/useNotesPoll.ts","webpack://app/./src/utilities/meetingDetectionSupportedApps.js","webpack://app/./src/utilities/isPublicPageApp.ts","webpack://app/./src/utilities/defaultCardStatuses.ts","webpack://app/./src/types/quickResourceType.ts","webpack://app/./src/utilities/sentry.ts","webpack://app/./src/mixins/recentlyViewed.js","webpack://app/./src/router/modules/authentication.js","webpack://app/./src/router/modules/workspaces.js","webpack://app/./src/mixins/gAnalytics.ts","webpack://app/./src/router/utilities/index.ts","webpack://app/./src/router/utilities/cardRouteHandler.ts","webpack://app/./src/router/utilities/checkRole.ts","webpack://app/./src/router/utilities/boardViewBeforeEnter.ts","webpack://app/./src/router/utilities/guestReaderCheck.ts","webpack://app/./src/router/index.ts","webpack://app/./src/mixins/viewRouteCheckMixin.js","webpack://app/./src/mixins/electronOpenInAppMixin.js","webpack://app/./src/mixins/iconTypeMixin.js","webpack://app/./src/mixins/cardStatuses.js","webpack://app/./src/types/suggestions.ts","webpack://app/./src/store/state.ts","webpack://app/./src/utilities/updateBoardPageTitleInProject.ts","webpack://app/./src/utilities/objectSet.js","webpack://app/./src/store/actions.ts","webpack://app/./src/store/mutations.ts","webpack://app/./src/store/getters.ts","webpack://app/./src/store/modules/boards/getDefaultBoardState.ts","webpack://app/./src/store/modules/boards/getters.ts","webpack://app/./src/utilities/jwtUtilities.js","webpack://app/./src/utilities/getQuickCardObjectName.ts","webpack://app/./src/utilities/childCardDraft.js","webpack://app/./src/store/modules/boards/mutations.ts","webpack://app/./src/utilities/getItemAndIndex.ts","webpack://app/./src/utilities/removeSuggestion.ts","webpack://app/./src/utilities/displayCardUtil.ts","webpack://app/./src/store/modules/boards/actions.ts","webpack://app/./src/store/modules/boards/index.ts","webpack://app/./src/store/modules/pages/getDefaultPageState.ts","webpack://app/./src/store/modules/pages/getters.ts","webpack://app/./src/store/modules/pages/mutations.ts","webpack://app/./src/store/modules/pages/actions.ts","webpack://app/./src/store/modules/pages/index.ts","webpack://app/./src/store/modules/onboarding/state.ts","webpack://app/./src/store/modules/onboarding/getters.ts","webpack://app/./src/store/modules/onboarding/mutations.ts","webpack://app/./src/store/modules/onboarding/actions.ts","webpack://app/./src/store/modules/onboarding/index.ts","webpack://app/./src/store/modules/editors/state.ts","webpack://app/./src/store/modules/editors/getters.ts","webpack://app/./src/store/modules/editors/mutations.ts","webpack://app/./src/store/modules/editors/actions.ts","webpack://app/./src/store/modules/editors/index.ts","webpack://app/./src/store/modules/attachmentPreview/attachmentPreviewState.ts","webpack://app/./src/store/modules/attachmentPreview/attachmentPreviewGetters.ts","webpack://app/./src/store/modules/attachmentPreview/attachmentPreviewMutations.ts","webpack://app/./src/store/modules/attachmentPreview/attachmentPreviewActions.ts","webpack://app/./src/store/modules/attachmentPreview/index.ts","webpack://app/./src/store/modules/index.ts","webpack://app/./src/store/index.ts","webpack://app/./src/mixins/isCardMixin.js","webpack://app/./src/utilities/rootStyles.js","webpack://app/./src/utilities/capitalizeFirstLetter.ts","webpack://app/./src/utilities/localDrafts.ts","webpack://app/./src/registerServiceWorker.js","webpack://app/./src/mixins/removeLoader.js","webpack://app/./src/mixins/isGuestRoleMixin.js","webpack://app/./src/utilities/vtippy.directive.ts","webpack://app/./src/utilities/autofocus.directive.ts","webpack://app/./src/utilities/draghover.directive.ts","webpack://app/./src/utilities/dragToScroll.directive.ts","webpack://app/./src/utilities/member-hover-directive.js","webpack://app/./src/utilities/posthog.js","webpack://app/./src/utilities/languages.js","webpack://app/./src/plugins/BreakpointsPlugin.js","webpack://app/./src/utilities/isFullyLoaded.js","webpack://app/./src/utilities/vuescrollOptions.js","webpack://app/./src/main.ts","webpack://app/./src/utilities/attachmentPreviewable.js","webpack://app/./src/mixins/inputDropdown.js","webpack://app/./src/utilities/isMobile.js","webpack://app/./src/utilities/getCalendarIntegration.ts"],"sourcesContent":["const generateDefaultMyWorkFilters = (userId, tabId) => {\n switch (tabId) {\n case 'assigned':\n return {\n include: {\n members: [userId],\n },\n exclude: {\n statuses: ['completed', 'cancelled'],\n },\n };\n case 'created':\n return {\n include: {\n creators: [userId],\n },\n exclude: {\n statuses: ['completed', 'cancelled'],\n },\n };\n default:\n return {\n include: {},\n exclude: {},\n };\n }\n};\n\nexport default generateDefaultMyWorkFilters;\n","export default function onPageLoad() {\n const loader = document.getElementById('loading-wrapper');\n if (!loader) return;\n const removeLoader = () => {\n loader.remove();\n };\n removeLoader();\n}\n","import constants from './constants';\n\nconst cdnBase = 'https://app.superthread.com/cdn-cgi/image';\n\nconst generateSrcUrl = (src, width, height, pageCover = false) => {\n if (\n src.includes(constants.UNSPLASH_BASE_URL) ||\n src.includes('superthread.com/public') ||\n src.includes('https://lh3.googleusercontent.com')\n ) {\n const encoded = encodeURI(src);\n return `${cdnBase}/q=90,h=${height},w=${width}${pageCover ? ',fit=cover' : ''}/${encoded}`;\n }\n return src;\n};\n\nexport default generateSrcUrl;\n","import { checkIsApple } from '@/utilities/isApple';\n\nexport default {\n computed: {\n isApple() {\n return checkIsApple();\n },\n },\n};\n","const icons = [\n 'headphones',\n 'activity',\n 'alert-circle',\n 'anchor',\n 'award',\n 'bell',\n 'box',\n 'briefcase',\n 'camera',\n 'check-circle',\n 'clock',\n 'coffee',\n 'compass',\n 'credit-card',\n 'disc',\n 'feather',\n 'folder',\n 'flag',\n 'gift',\n 'globe',\n 'hash',\n 'heart',\n 'hexagon',\n 'home',\n 'image-st',\n 'inbox',\n 'info',\n 'key',\n 'life-buoy',\n 'link-st',\n 'loader',\n 'lock',\n 'mail',\n 'map',\n 'map-pin',\n 'meh',\n 'message-circle',\n 'mic',\n 'moon',\n 'music',\n 'paperclip',\n 'rocket',\n 'shopping-bag',\n 'target',\n 'shield',\n 'thumbs-up',\n 'thumbs-down',\n 'tool',\n 'trending-up',\n 'truck',\n 'tv',\n 'umbrella',\n 'watch',\n 'video-st',\n 'zap',\n];\n\nconst colors = [\n '#99CDFF',\n '#FDA29B',\n '#FEC84B',\n '#6CE9A6',\n '#7CD4FD',\n '#A4BCFD',\n '#BDB4FE',\n '#FAA7E0',\n '#FEB273',\n '#475467',\n];\n\nconst appColors = {\n warning300: '#FEC84B',\n gray300: '#D0D5DD',\n gray600: '#475467',\n gray900: '#101828',\n error600: '#D92D20',\n};\n\nconst predefinedListNames = ['todo', 'to do', 'qa', 'q&a', 'doing', 'backlog', 'ideas', 'done'];\n\nexport { icons, colors, predefinedListNames, appColors };\n","import { browserStorageGetItem, browserStorageRemoveItem } from '@/utilities/browser-storage.util';\n\nexport default function getRouteAfterLogin(clearAfterGet = true) {\n // Get the redirect route after login from the browser storage\n const redirectRouteAfterLogin = browserStorageGetItem('redirectRouteAfterLogin') ?? {};\n // Remove the redirect route after login from the browser storage\n if (clearAfterGet) {\n browserStorageRemoveItem('redirectRouteAfterLogin');\n }\n return redirectRouteAfterLogin;\n}\n","export enum IconType {\n Icon = 'icon',\n Emoji = 'emoji',\n Image = 'image',\n}\n","import { computed } from 'vue';\nimport { TeamMemberRole } from '@superthread-com/api';\nimport { useStore } from 'vuex';\n\nexport default function useCurrentRole() {\n const store = useStore();\n\n const currentRole = computed(() => {\n return store.getters.getCurrentRole;\n });\n\n const isOwner = computed(() => {\n return currentRole.value === TeamMemberRole.Owner;\n });\n\n const isAdmin = computed(() => {\n return currentRole.value === TeamMemberRole.Admin;\n });\n\n const isMember = computed(() => {\n return currentRole.value === TeamMemberRole.Member;\n });\n\n const isGuest = computed(() => {\n return currentRole.value === TeamMemberRole.Guest;\n });\n\n const isGuestReader = computed(() => {\n return currentRole.value === TeamMemberRole.GuestReader;\n });\n\n /**\n * Is true if the user has one of the roles with elevated\n * permissions. Only use this for the \"lowest\" elevated role\n * (i.e. this could be true for admins and owners). Check for \"higher\"\n * elevated roles specifically (i.e. isOwner for owner-specific UI,\n * isElevated for UI that could be seen by any admin or owner).\n *\n * NOTE: In 'Free' mode this should return true for all users. Currently it does not.\n */\n const isElevated = computed(() => {\n return isOwner.value || isAdmin.value;\n });\n\n return {\n currentRole,\n isOwner,\n isAdmin,\n isMember,\n isGuest,\n isElevated,\n isGuestReader,\n };\n}\n","export default {\n computed: {\n iconsContext() {\n return require.context('../assets/icons/', false);\n },\n },\n methods: {\n iconPath(name, extension = 'svg') {\n if (!name) return '';\n try {\n return this.iconsContext(`./${name}.${extension}`);\n } catch (error) {\n return '';\n }\n },\n\n getCustomIconStyle(path, styleOptions = {}, useMask = true) {\n const url = `url(${path})`;\n return useMask\n ? {\n // Use mask styles if you want to override colors\n // require set with css: background-color, width and height\n maskImage: url,\n webkitMaskImage: url,\n maskSize: 'contain', // change with css if needed, use !important to apply\n webkitMaskSize: 'contain',\n maskRepeat: 'no-repeat',\n webkitMaskRepeat: 'no-repeat',\n ...styleOptions,\n }\n : {\n // Use background-image to preserve original colors\n backgroundImage: url,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n ...styleOptions,\n };\n },\n },\n};\n","const imageExtensions = ['JPG', 'JPEG', 'PNG', 'SVG+XML', 'GIF', 'IMAGE'];\n\nconst isImage = (type: string) => type?.includes?.('image');\n\nconst isVideo = (type: string) => type?.includes?.('video');\n\nconst isPdf = (type: string) => type?.includes?.('pdf');\n\nexport { imageExtensions, isImage, isVideo, isPdf };\n","const isElectronApp = () => {\n return navigator?.userAgent.indexOf('Electron') >= 0;\n};\n\nexport default {\n computed: {\n isElectronApp() {\n return isElectronApp();\n },\n },\n};\n\nexport { isElectronApp };\n","import { ref, watch } from 'vue';\nimport useOnboardingActions from '@/utilities/composables/useOnboardingActions';\nimport getBranchName from '@/utilities/getBranchName';\nimport constants from '@/utilities/constants';\nimport { TeamMemberRole } from '@superthread-com/api';\nimport { Dispatch, useStore } from 'vuex';\nimport { useRoute } from 'vue-router';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport useIsElectronApp from '@/utilities/composables/useIsElectronApp';\nimport {\n QuickResourceType,\n QuickResourceActions,\n QuickResourceAction,\n} from '@/types/quickResourceType';\nimport useAudioTranscription from '@/utilities/composables/useAudioTranscription';\n\nconst { isElectronApp } = useIsElectronApp();\n\nconst isInput = () => {\n const { tagName, isContentEditable } = document.activeElement as HTMLElement;\n return (\n tagName.toLowerCase() === 'input' || tagName.toLowerCase() === 'textarea' || isContentEditable\n );\n};\n\nconst isElectronQuickNote = (routeName: string) => {\n return isElectronApp.value && routeName === constants.electronNotesRoute.name;\n};\n\nconst isGuestReader = (getters: any) => getters.getCurrentRole === TeamMemberRole.GuestReader;\n\nconst closeOtherPopups = (modalToOpen: QuickResourceType, getters: any, dispatch: Dispatch) => {\n if (modalToOpen !== QuickResourceType.QuickCard && getters.getQuickCardIsOn)\n dispatch(QuickResourceAction.setQuickCard, false);\n if (modalToOpen !== QuickResourceType.QuickPage && getters.getQuickPage)\n dispatch(QuickResourceAction.setQuickPage, false);\n if (modalToOpen !== QuickResourceType.QuickNote && getters.getQuickNote)\n dispatch(QuickResourceAction.setQuickNote, false);\n if (getters.getDeletePopupId) dispatch('deletePopupId', '');\n if (getters.showSearchModal) dispatch('toggleSearchModal', false);\n if (getters.getEmojiPickerDisplayed) dispatch('setEmojiPickerDisplayed', '');\n};\n\nconst openQuickResource = (resourceType: QuickResourceType, getters: any, dispatch: Dispatch) => {\n closeOtherPopups(resourceType, getters, dispatch);\n dispatch(QuickResourceActions[resourceType], true);\n};\n\nconst quickCardShortcutHandlerFn = (\n event: KeyboardEvent,\n completeOnboardingActions: Function,\n getters: any,\n dispatch: any,\n routeName: string\n) => {\n if (isGuestReader(getters)) return false;\n if (\n !isInput() &&\n (event.code === 'KeyC' || event.key === 'C' || event.key === 'c') &&\n !isElectronQuickNote(routeName)\n ) {\n openQuickResource(QuickResourceType.QuickCard, getters, dispatch);\n return true;\n }\n return false;\n};\n\nconst quickPageShortcutHandlerFn = (\n event: KeyboardEvent,\n completeOnboardingActions: Function,\n getters: any,\n dispatch: any,\n routeName: string\n) => {\n if (isGuestReader(getters)) return false;\n if (\n !isInput() &&\n (event.code === 'KeyP' || event.key === 'P' || event.key === 'p') &&\n !isElectronQuickNote(routeName)\n ) {\n openQuickResource(QuickResourceType.QuickPage, getters, dispatch);\n return true;\n }\n return false;\n};\n\nconst quickNoteShortcutHandlerFn = (\n event: KeyboardEvent,\n completeOnboardingActions: Function,\n getters: any,\n dispatch: any,\n routeName: string,\n hasPermissions: boolean\n) => {\n if (isGuestReader(getters)) return false;\n if (\n !isInput() &&\n (event.code === 'KeyN' || event.key === 'N' || event.key === 'n') &&\n hasPermissions &&\n !isElectronQuickNote(routeName)\n ) {\n openQuickResource(QuickResourceType.QuickNote, getters, dispatch);\n return true;\n }\n return false;\n};\n\nexport default function useShortcutHandlers() {\n const route = useRoute();\n const { translate } = useTranslate();\n const { completeOnboardingActions } = useOnboardingActions() as any;\n\n const quickCardShortcutHandler = ref<(event: KeyboardEvent) => void>(() => {});\n const quickPageShortcutHandler = ref<(event: KeyboardEvent) => void>(() => {});\n const quickNoteShortcutHandler = ref<(event: KeyboardEvent) => void>(() => {});\n const copyGitBranchNameShortcutHandler = ref<(cardId: string | number) => void>(() => {});\n\n const { hasAllPermissions } = useAudioTranscription();\n\n watch(\n () => useStore(),\n (store) => {\n if (!store) return;\n\n quickCardShortcutHandler.value = (event: KeyboardEvent) => {\n return quickCardShortcutHandlerFn(\n event,\n completeOnboardingActions,\n store.getters,\n store.dispatch,\n String(route.name)\n );\n };\n\n quickPageShortcutHandler.value = (event: KeyboardEvent) => {\n return quickPageShortcutHandlerFn(\n event,\n completeOnboardingActions,\n store.getters,\n store.dispatch,\n String(route.name)\n );\n };\n\n quickNoteShortcutHandler.value = (event: KeyboardEvent) => {\n return quickNoteShortcutHandlerFn(\n event,\n completeOnboardingActions,\n store.getters,\n store.dispatch,\n String(route.name),\n hasAllPermissions.value\n );\n };\n\n copyGitBranchNameShortcutHandler.value = (cardId: string | number) => {\n const card = store.getters.getCardById(cardId);\n const branchName = getBranchName(cardId, card.title);\n navigator.clipboard?.writeText?.(branchName);\n\n store.dispatch('addUiNotification', {\n message: translate('branchCopiedToClipboard'),\n icon: 'git-pull-request',\n duration: 4000,\n });\n };\n },\n { immediate: true }\n );\n\n return {\n copyGitBranchNameShortcutHandler,\n quickCardShortcutHandler,\n quickPageShortcutHandler,\n quickNoteShortcutHandler,\n isInput,\n openQuickResource,\n };\n}\n","export const lastVisitedNoteIdKey = 'last-visited-note-id';\nexport const quickPageNoteKey = 'quick-page-note-temp-value';\nexport const notesSidebarWidthKey = 'notes-sidebar-width';\nexport const notesCalendarIntegrationReminderKey = 'notes-calendar-integration';\nexport const notesCalendarUsedEventIdsKey = 'notes-calendar-used-event-ids';\nexport const noteTranscriptPersistKey = 'note-transcript-persist';\n\nexport const noteAiTitlePrompt =\n 'Generate a concise title from the following notes and transcript. The title should be 5 words or less that captures the essence of the content.';\n\nexport enum NoteContentType {\n UserNotes = 'user_notes',\n AiNotes = 'ai_notes',\n Transcript = 'transcript',\n}\n\nexport enum NoteTemplate {\n AutoEnhanced = 'auto_enhanced',\n CustomerCall = 'customer_call',\n RecurringMeeting = 'recurring_meeting',\n}\n","export default {\n computed: {\n draggedEntity() {\n if (!this.$store) return {};\n return this.$store.getters.draggedEntity;\n },\n draggingIsOn() {\n return Object.keys(this.draggedEntity).length > 0;\n },\n },\n};\n","import { getCurrentInstance, computed, Ref } from 'vue';\nimport useSetAndOpenProject from '@/utilities/composables/useSetAndOpenProject';\nimport { View, Project, Card, Page, Board, List } from '@superthread-com/api';\nimport { IEpic } from '@/types/epics';\nimport { ResourceType } from '@/types/resources';\nimport EventBus from '@/utilities/eventBus';\n\nexport default function useDeleteResource(id: Ref, type: Ref) {\n const _this = getCurrentInstance()?.proxy as any;\n if (!_this) return;\n\n const { setAndOpenProject, setAndOpenAdjacentProject } = useSetAndOpenProject() as any;\n\n let frozenTitle = '' as string;\n\n // delete functions\n\n const deleteProject = async () => {\n const currentProjId = _this.$store.getters.getCurrentProjectId;\n const deletingCurrentProject = currentProjId === id.value;\n\n if (deletingCurrentProject) {\n await setAndOpenAdjacentProject(id.value);\n }\n\n return _this.$store.dispatch('deleteProject', id.value).catch((err: Error) => {\n if (deletingCurrentProject) {\n setAndOpenProject(id.value);\n }\n throw err;\n });\n };\n\n const deleteCard = async () => {\n const result = await _this.$store.dispatch('deleteCard', {\n cardId: id.value,\n cardType: type.value,\n });\n\n if (_this.$store.getters.getIsCardDisplayed(id.value)) {\n EventBus.$emit('closeCard', {\n cardId: id.value,\n });\n }\n return result;\n };\n\n const deleteView = async () => {\n // when on view route and deleting the view, redirect to views route\n // possibly navigate back if it fails\n const deletingCurrentView = _this.$route.name === _this.$constants.routeNames.view;\n if (deletingCurrentView) {\n _this.$router.push({\n name: _this.$constants.routeNames.views,\n params: { dontFetch: true }, // dont fetch views on page load to avoid getting deleted view\n });\n }\n\n return _this.$store\n .dispatch('deleteView', {\n viewId: id.value,\n shared: (resource.value as View).shared,\n })\n .catch((err: Error) => {\n if (deletingCurrentView) {\n _this.$router.push({\n name: _this.$constants.routeNames.view,\n params: { viewId: id.value },\n });\n }\n throw err;\n });\n };\n\n const deletePage = async () => {\n const pageResource = resource.value as Page;\n const pageFromTree = _this.$store.getters.getProjectPagesTree(pageResource.project_id)[\n id.value\n ];\n\n const result = await _this.$store.dispatch('deletePage', {\n pageId: id.value,\n projectId: pageResource.project_id,\n });\n\n const allChildren: any[] = [];\n\n // collect all levels of child pages and remove them from recently viewed\n const collectAllChildren = (page: any) => {\n if (page.children) {\n page.children.forEach((childId: string) => {\n allChildren.push(childId);\n _this.$store.dispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: { id: childId, type: ResourceType.Page },\n teamId: _this.$store.getters.getTeamID,\n });\n const childPage = _this.$store.getters.getProjectPagesTree(pageResource.project_id)[\n childId\n ];\n if (childPage) {\n collectAllChildren(childPage);\n }\n });\n }\n };\n\n collectAllChildren(pageFromTree);\n\n const isChildPageOpened = allChildren.includes(currentPageId.value);\n\n if (openedPage.value.id === id.value || isChildPageOpened) {\n _this.$router.push(`/${teamSlug.value}/space-${currentProjectId.value}/boards`);\n }\n return result;\n };\n\n const deleteBoard = async () => {\n const result = await _this.$store.dispatch('deleteBoard', {\n boardId: id.value,\n projectId: (resource.value as Board).project_id,\n });\n\n if (currentBoardId === id.value) {\n _this.$router.push(`/${teamSlug.value}/space-${currentProjectId.value}/boards`);\n }\n\n return result;\n };\n\n const deleteList = () => {\n return _this.$store.dispatch('deleteList', {\n listId: id.value,\n });\n };\n\n const deleteResource = (): Promise => {\n let deleteFn: Function;\n switch (type.value) {\n case ResourceType.Project:\n deleteFn = deleteProject;\n break;\n case ResourceType.View:\n deleteFn = deleteView;\n break;\n case ResourceType.Epic:\n case ResourceType.Card:\n deleteFn = deleteCard;\n break;\n case ResourceType.Board:\n deleteFn = deleteBoard;\n break;\n case ResourceType.Page:\n deleteFn = deletePage;\n break;\n case ResourceType.List:\n deleteFn = deleteList;\n break;\n default:\n deleteFn = () => Promise.reject(new Error('Invalid resource type'));\n }\n\n // we need to store the title before the resource gets deleted locally\n frozenTitle = resourceTitle.value;\n\n return deleteFn();\n };\n\n // resource getters\n\n const getProject = computed((): Project => {\n return _this.$store.getters.getProjectById(id.value);\n });\n\n const getView = computed((): View => {\n return (\n [..._this.$store.getters.getPrivateViews, ..._this.$store.getters.getPublicViews].find(\n (v: View) => v.id === id.value\n ) ?? {}\n );\n });\n\n const getCard = computed((): IEpic => {\n return _this.$store.getters.getCards[id.value] ?? {};\n });\n\n const getPage = computed((): Page => {\n return _this.$store.getters.getPageById(id.value) ?? {};\n });\n\n const getBoard = computed((): Board => {\n return _this.$store.getters.getFlatBoards[id.value] ?? {};\n });\n\n const getList = computed((): List => {\n return _this.$store.getters.lists[id.value] ?? {};\n });\n\n const resource = computed((): Project | View | IEpic | Card | Page | Board | List => {\n let res;\n\n switch (type.value) {\n case ResourceType.Project:\n res = getProject.value;\n break;\n case ResourceType.View:\n res = getView.value;\n break;\n case ResourceType.Epic:\n case ResourceType.Card:\n res = getCard.value;\n break;\n case ResourceType.Board:\n res = getBoard.value;\n break;\n case ResourceType.Page:\n res = getPage.value;\n break;\n case ResourceType.List:\n res = getList.value;\n break;\n default:\n res = {};\n }\n\n return res;\n });\n const resourceTitle = computed((): string => {\n let resTitle;\n if ('title' in resource.value) {\n resTitle = resource.value.title;\n } else if ('name' in resource.value) {\n resTitle = resource.value.name;\n }\n\n if (resTitle === '' && ResourceType.Page) return 'Untitled page';\n\n return resTitle || '';\n });\n\n // helpers\n\n const teamSlug = computed(() => _this.$store.getters.getTeamSlug);\n const currentProjectId = computed(() => _this.$store.getters.getCurrentProjectId);\n const currentBoardId = _this.$store.getters.currentBoardId;\n const currentPageId = computed(() => _this.$store.getters.getCurrentPageID);\n const openedPage = computed(() => _this.$store.getters.getPage);\n\n return {\n resourceTitle: computed(() => resourceTitle.value || frozenTitle),\n deleteResource,\n };\n}\n","import { getCurrentInstance } from 'vue';\nimport { Store } from 'vuex';\n\nexport default function useAddCardInGroupByOrder(store?: Store) {\n const _this = getCurrentInstance();\n const proxy: any = store ?? _this?.proxy?.$store;\n\n const dispatchCardAction = (\n action: string,\n card: any,\n items: any[],\n groupBy: string,\n defaultId: string,\n idKey: string | number\n ) => {\n if (items.length > 0) {\n for (const item of items) {\n proxy.dispatch(action, {\n boardId: card.board_id,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: idKey ? item[idKey] : item,\n groupBy,\n });\n }\n } else {\n proxy.dispatch(action, {\n boardId: card.board_id,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: defaultId,\n groupBy,\n });\n }\n };\n\n const addCardInGroupByOrder = (card: any, tagsToAdd = card.tags || []) => {\n dispatchCardAction(\n 'addCardToGroupByList',\n card,\n card.members,\n 'assignee',\n 'unassigned',\n 'user_id'\n );\n dispatchCardAction('addCardToGroupByList', card, tagsToAdd, 'tag', 'notags', 'id');\n dispatchCardAction(\n 'addCardToGroupByList',\n card,\n [card?.epic?.id || ''],\n 'epic',\n 'noproject',\n 'id'\n );\n dispatchCardAction('addCardToGroupByList', card, [card.priority || 0], 'priority', '', 0);\n dispatchCardAction(\n 'addCardToGroupByList',\n card,\n [card.status || 'backlog'],\n 'statusType',\n '',\n 0\n );\n\n if (card?.epic?.id) {\n dispatchCardAction('addCardToGroupByList', card, [card.project_id], 'space', '', 0);\n }\n };\n\n const removeCardFromGroupByOrder = (card: any, tagsToAdd = card.tags || []) => {\n dispatchCardAction(\n 'removeCardFromGroupByList',\n card,\n card.members,\n 'assignee',\n 'unassigned',\n 'user_id'\n );\n dispatchCardAction('removeCardFromGroupByList', card, tagsToAdd, 'tag', 'notags', 'id');\n dispatchCardAction(\n 'removeCardFromGroupByList',\n card,\n [card?.epic?.id || ''],\n 'epic',\n 'noproject',\n 'id'\n );\n\n dispatchCardAction('removeCardFromGroupByList', card, [card.priority || 0], 'priority', '', 0);\n dispatchCardAction(\n 'addCardToGroupByList',\n card,\n [card.status || 'backlog'],\n 'statusType',\n '',\n 0\n );\n };\n\n return {\n addCardInGroupByOrder,\n removeCardFromGroupByOrder,\n };\n}\n","import { useTranslation } from 'i18next-vue';\nimport { isPublicPageApp } from '@/utilities/isPublicPageApp';\n\nexport default function useTranslate() {\n let translate: TranslateFn = (key) => {\n return key;\n };\n if (!isPublicPageApp()) {\n const { t } = useTranslation();\n if (t) {\n translate = t as TranslateFn;\n }\n }\n return {\n translate,\n };\n}\n\nexport type TranslateFn = (key: string, interpolations?: Record) => string;\n","import { getCurrentInstance } from 'vue';\n\nexport default function useSetAndOpenProject() {\n const _this = getCurrentInstance()?.proxy as any;\n if (!_this) return;\n\n /**\n * Gets the adjecent project (prioritizes previous one) of the project passed as param\n * then sets it as current project and navigates to it\n */\n const setAndOpenAdjacentProject = (\n projectId: string = _this.$store.getters.getCurrentProjectId\n ) => {\n const newProjectId = _this.$store.getters.getAdjacentProjectId(projectId);\n return setAndOpenProject(newProjectId);\n };\n\n /**\n * Sets the project passed as current one and navigates to it or fall back to manage spaces\n */\n const setAndOpenProject = (projectId: string) => {\n _this.$store.dispatch('setCurrentProjectId', projectId);\n\n if (!projectId) {\n return openManageSpaces();\n } else {\n return openProject(projectId);\n }\n };\n\n const openManageSpaces = () => {\n const isSettings = _this.$route.path.indexOf('/settings/') > -1;\n const toRouteName = isSettings\n ? _this.$constants.settingsManageSpacesRouteName\n : _this.$constants.manageSpacesRouteName;\n\n if (_this.$route.name !== toRouteName) {\n return _this.$router.push({ name: toRouteName });\n }\n return Promise.resolve();\n };\n\n const openProject = (projectId: string = '') => {\n const teamSlug = _this.$store.getters.getTeamSlug;\n const tabName = 'boards';\n const projectPath = `${_this.$constants.projectSlug}-${projectId}`;\n const toRoutePath = `/${teamSlug}/${projectPath}/${tabName}`;\n\n if (_this.$route.path !== toRoutePath) {\n return _this.$router.push(toRoutePath);\n }\n return Promise.resolve();\n };\n\n return {\n setAndOpenAdjacentProject,\n setAndOpenProject,\n };\n}\n","import { ref, Ref, computed, nextTick } from 'vue';\nimport { INoteTranscript, IncomingTranscript, TranscriptionState } from '@/types/transcript';\nimport { nanoid } from 'nanoid';\nimport constants from '@/utilities/constants';\nimport { useStore } from 'vuex';\nimport { NoteTranscriptSource } from '@superthread-com/api';\nimport { browserStorageSetItem } from '@/utilities/browser-storage.util';\nimport { noteTranscriptPersistKey } from '@/types/notes';\nimport useTranslate from '@/utilities/composables/useTranslate';\nimport useIsElectronApp from '@/utilities/composables/useIsElectronApp';\n\nexport default function useAudioTranscription(noteId: Ref = ref('newnote')) {\n const store = useStore();\n const { translate } = useTranslate();\n\n //@ts-ignore\n const electronAPI = window.electron;\n\n const { isElectronApp } = useIsElectronApp();\n\n const transcriptionState = computed((): TranscriptionState => {\n return store.getters.getTranscriptionState;\n });\n\n // recording control functions\n const startRecording = async (persistedNoteId: string = '') => {\n // note audio transcription is only available for teams that have `nat` feature flag enabled (paid plan and custom plans)\n if (!hasNoteTranscriptionFeatureFlag.value) return;\n\n // if we start recording on new note, create it before transcribing\n const newNoteId =\n persistedNoteId || (noteId.value === constants.newNote ? await createNote() : noteId.value);\n\n const transcriptionKeywords = store.getters.getUser.transcription_keywords || [];\n const memberKeywords = Object.values(store.getters.getTeamMembers || {}).map(\n (m: any) => m.first_name || m.display_name\n );\n electronAPI?.send('deepgram-keywords-channel', [...transcriptionKeywords, ...memberKeywords]);\n electronAPI?.send(\n 'deepgram-language-channel',\n store.getters.getUserSettings.transcription_language || 'en'\n );\n\n nextTick(() => {\n electronAPI?.send('recording-channel', 'start');\n store.dispatch('setTranscriptionState', {\n recording: 'pending',\n noteId: newNoteId,\n alreadyRecorded: transcriptionState.value.alreadyRecorded.add(newNoteId),\n });\n });\n\n setupChannels();\n };\n\n const alreadyRecordedForCurrentNote = computed(() => {\n return transcriptionState.value.alreadyRecorded.has(noteId.value);\n });\n\n const saveUnsavedTranscripts = async (noteId: string) => {\n const unsavedTranscripts =\n store.getters.getNotes[noteId]?.transcripts.filter((t: INoteTranscript) => t.ongoing) || [];\n\n if (unsavedTranscripts.length > 0) {\n store\n .dispatch('createTranscript', {\n noteId,\n transcripts: unsavedTranscripts.map((t: INoteTranscript) => ({\n source: t.source,\n content: !t.ongoing ? t.content : `${t.content || ''} ${t.interim_content}`,\n })),\n })\n .then(({ data }: any) => {\n store.dispatch('localSetNoteTranscripts', {\n noteId,\n transcripts: data.note.transcripts,\n });\n });\n }\n };\n\n const startRecordingForAnotherNote = async (newNoteForRecording: string) => {\n // note audio transcription is only available for teams that have `nat` feature flag enabled (paid plan and custom plans)\n if (!hasNoteTranscriptionFeatureFlag.value) return;\n\n saveUnsavedTranscripts(currentTranscriptionNoteId.value);\n const newNoteId =\n newNoteForRecording === constants.newNote ? await createNote() : newNoteForRecording;\n\n store.dispatch('setTranscriptionState', {\n noteId: newNoteId,\n alreadyRecorded: transcriptionState.value.alreadyRecorded.add(newNoteId),\n });\n };\n\n const stopRecording = (persistNoteRecording = false) => {\n if (persistNoteRecording && transcriptionState.value.recording === 'started') {\n browserStorageSetItem(noteTranscriptPersistKey, currentTranscriptionNoteId.value);\n }\n\n saveUnsavedTranscripts(currentTranscriptionNoteId.value);\n electronAPI?.send('recording-channel', 'stop');\n store.dispatch('setTranscriptionState', { recording: 'stopped', noteId: '' });\n removeChannels();\n };\n\n const currentTranscriptionNoteId = computed(() => {\n return transcriptionState.value.noteId;\n });\n\n const currentTranscriptionNoteTitle = computed(() => {\n return (\n store.getters.getNotes[currentTranscriptionNoteId.value]?.title || translate('untitledNote')\n );\n });\n\n const isRecordingPending = computed((): boolean => {\n return !!currentTranscriptionNoteId.value && transcriptionState.value.recording === 'pending';\n });\n\n const isRecordingStarted = computed((): boolean => {\n return !!currentTranscriptionNoteId.value && transcriptionState.value.recording === 'started';\n });\n\n const isRecordingStopped = computed((): boolean => {\n return transcriptionState.value.recording === 'stopped';\n });\n\n // create a new note\n const createNote = async () => {\n return store.dispatch('createNewNote', {\n title: '',\n });\n };\n\n const transcripts = computed((): INoteTranscript[] => {\n return store.getters.getNotes[noteId.value]?.transcripts || [];\n });\n\n const hasTranscripts = computed((): boolean => {\n return Boolean(transcripts.value.length);\n });\n\n const isTranscriptDone = (t: IncomingTranscript) => {\n return t.is_final && /^[^]*[.!?]\\s*$/.test(t.content.trim());\n };\n\n const createInterimTranscript = (t: IncomingTranscript) => {\n store.dispatch('localCreateTranscript', {\n noteId: currentTranscriptionNoteId.value,\n transcript: {\n local_id: nanoid(6),\n source: t.source,\n ongoing: true,\n content: '',\n interim_content: t.content,\n },\n });\n };\n\n const createFinalTranscript = (t: INoteTranscript) => {\n store.dispatch('createTranscript', {\n noteId: currentTranscriptionNoteId.value,\n transcripts: [\n {\n source: t.source,\n content: t.content || '',\n },\n ],\n });\n };\n\n const processTranscript = async (t: IncomingTranscript) => {\n if (!isRecordingStarted.value || !t.content) return;\n\n const notes = store.getters.getNotes;\n const note = notes[currentTranscriptionNoteId.value];\n if (!note) return;\n\n const { transcripts = [] } = note;\n\n // find last transcription of the same source\n const lastTranscriptIndex = transcripts\n .slice()\n .reverse()\n .findIndex((ti: any) => ti.source === t.source);\n\n const lastTranscript = transcripts[transcripts.length - lastTranscriptIndex - 1];\n\n // transcript is considered done if its content is final version of interim result and if it is a finished sentence\n const newTranscriptIsDone = isTranscriptDone(t);\n\n // if this is the first transcript of the source or if last transcript is done, create a new one\n if (lastTranscriptIndex == -1 || !lastTranscript.ongoing) {\n if (newTranscriptIsDone) {\n createFinalTranscript(t);\n } else {\n createInterimTranscript(t);\n }\n\n return;\n }\n\n // if this is a final version of the last transcript, update the content\n if (t.is_final) {\n lastTranscript.content = `${lastTranscript.content} ${t.content}`;\n lastTranscript.interim_content = '';\n } else {\n // if interim result is not done generating, update interim content\n lastTranscript.interim_content = t.content;\n }\n\n lastTranscript.ongoing = !newTranscriptIsDone;\n\n // update the transcript locally\n store.dispatch('localUpdateTranscript', {\n noteId: currentTranscriptionNoteId.value,\n transcript: {\n //@ts-ignore\n local_id: lastTranscript.local_id,\n content: lastTranscript.content,\n interim_content: lastTranscript.interim_content,\n ongoing: !newTranscriptIsDone,\n },\n });\n\n // if transcript is done, save it on the BE\n if (newTranscriptIsDone) {\n createFinalTranscript({ source: lastTranscript.source, content: lastTranscript.content });\n }\n };\n\n // sets up the transcription channel to listen to incoming transcriptions\n const setupChannels = () => {\n electronAPI.on('transcription-channel', (_: any, t: IncomingTranscript) => {\n processTranscript(t);\n });\n\n electronAPI.on('recording-channel', (_: any, recording: string) => {\n store.dispatch('setTranscriptionState', {\n ...(recording === 'stopped' && { noteId: '' }),\n recording,\n });\n\n // TOOD(senad): add a logic to stop recording when recieving 'stopped' event\n });\n };\n\n const removeChannels = () => {\n electronAPI.removeAllListeners('transcription-channel');\n electronAPI.removeAllListeners('recording-channel');\n };\n\n // setups up a listener to receive audio permissions\n const audioPermissionsCheck = () => {\n electronAPI.on('permissions-channel', (_: any, perm: string) => {\n const { source, permission_status } = JSON.parse(perm);\n //@ts-ignore\n store.dispatch('setTranscriptionState', {\n permissions: {\n ...transcriptionState.value.permissions,\n [source]: permission_status,\n },\n });\n });\n\n electronAPI.send('permissions-channel', 'get-microphone');\n electronAPI.send('permissions-channel', 'get-system');\n };\n\n const hasSystemAudioPermission = computed(() => {\n return transcriptionState.value.permissions.system === 'authorized';\n });\n\n const hasMicrophonePermission = computed(() => {\n return transcriptionState.value.permissions.microphone === 'authorized';\n });\n\n const hasAllPermissions = computed(() => {\n return isElectronApp.value\n ? hasSystemAudioPermission.value && hasMicrophonePermission.value\n : true;\n });\n\n const isMicrophonePending = computed(() => {\n return transcriptionState.value.permissions.microphone === 'pending';\n });\n\n const isSystemAudioPending = computed(() => {\n return transcriptionState.value.permissions.system === 'pending';\n });\n\n const isMicrophoneAuthorized = computed(() => {\n return transcriptionState.value.permissions.microphone === 'authorized';\n });\n\n const isSystemAudioAuthorized = computed(() => {\n return transcriptionState.value.permissions.system === 'authorized';\n });\n\n const requestPermission = (source: 'microphone' | 'system', callback = () => {}) => {\n const permissionStatus = transcriptionState.value.permissions[source];\n\n switch (permissionStatus) {\n case 'authorized':\n break;\n case 'denied':\n callback();\n break;\n default:\n electronAPI.send('permissions-channel', `request-${source}`);\n break;\n }\n };\n\n const getPermission = (source: 'microphone' | 'system') => {\n electronAPI.send('permissions-channel', `get-${source}`);\n };\n\n const getTranscriptContents = (separator: string = '\\n', noFormatting = true) => {\n if (noFormatting)\n return transcripts.value.map((t: INoteTranscript) => t.content).join(separator);\n\n return transcripts.value.reduce((acc: string, t: INoteTranscript, index: number) => {\n const sourceFrom = t.source === NoteTranscriptSource.Author ? 'Me' : 'Them';\n\n if (index === 0) return `${sourceFrom}: ${t.content}`;\n\n const prevTranscript = transcripts.value[index - 1];\n return acc + (prevTranscript.source !== t.source ? `\\n${sourceFrom}: ` : ' ') + t.content;\n }, '');\n };\n\n const hasNoteTranscriptionFeatureFlag = computed(() => {\n return store.getters.getTeamFeatureEnabled(constants.featureFlagIds.noteAudioTranscription);\n });\n\n return {\n startRecording,\n startRecordingForAnotherNote,\n stopRecording,\n isRecordingStopped,\n isRecordingPending,\n isRecordingStarted,\n alreadyRecordedForCurrentNote,\n\n setupChannels,\n removeChannels,\n\n transcriptionState,\n transcripts,\n hasTranscripts,\n processTranscript,\n isTranscriptDone,\n\n audioPermissionsCheck,\n hasMicrophonePermission,\n hasSystemAudioPermission,\n hasAllPermissions,\n requestPermission,\n getPermission,\n\n isMicrophonePending,\n isSystemAudioPending,\n isMicrophoneAuthorized,\n isSystemAudioAuthorized,\n\n createFinalTranscript,\n createInterimTranscript,\n createNote,\n\n getTranscriptContents,\n currentTranscriptionNoteId,\n currentTranscriptionNoteTitle,\n\n hasNoteTranscriptionFeatureFlag,\n };\n}\n","import i18next from 'i18next';\n\nconst translate = (key: string, interpolation?: any): string =>\n i18next.t(key, interpolation) as string;\n\nexport default translate;\n","export enum ResourceType {\n Team = 'team',\n Board = 'board',\n List = 'list',\n Card = 'card',\n Page = 'page',\n Project = 'project',\n Space = 'space',\n ChildPage = 'child-page',\n Comment = 'comment',\n CardTemplate = 'cardTemplate',\n PageTemplate = 'pageTemplate',\n NoteTemplate = 'noteTemplate',\n Epic = 'epic',\n View = 'view',\n EpicsBoard = 'epicsBoard',\n InEpicBoard = 'inEpicBoard',\n QuickChildCard = 'quickChildCard',\n Sprints = 'sprints',\n Sprint = 'sprint',\n SprintCard = 'sprintcard',\n Subscription = 'subscription',\n CardComment = 'card-comment',\n PageComment = 'page-comment',\n Member = 'member',\n Note = 'note',\n Agent = 'agent',\n AgentPromptIteration = 'agent_prompt_iteration',\n GoogleCalendarEvent = 'google_calendar_user_notes_events',\n}\n\nexport enum ResourceLoadedKey {\n Epics = 'epics',\n TeamMembers = 'teamMembers',\n SpaceTags = 'spaceTags',\n}\n","export default {\n computed: {\n isSafariCheck() {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator?.userAgent);\n return isSafari;\n },\n },\n};\n","const getListById = ({ listId, storeGetters }) => {\n if (storeGetters.lists[listId]) {\n return storeGetters.lists[listId];\n }\n\n return {};\n};\n\nconst handleAddEventBoardView = ({\n newIndex,\n oldIndex,\n cardId,\n listId,\n originalListId,\n destinationBoardId,\n originalBoardId,\n storeGetters,\n storeDispatch,\n cardModel = null,\n order,\n}) => {\n if (!cardId) return {};\n\n const { getListCards, getCards } = storeGetters;\n const destinationBoard = storeGetters.getFlatBoards[destinationBoardId];\n const originalBoard = storeGetters.getFlatBoards[originalBoardId];\n const isDestinationSprintBoard = destinationBoardId.includes('s');\n\n if (!getCards[cardId]) {\n storeDispatch('addCardToCards', { card: cardModel });\n }\n\n const newListObject = getListById({ listId, storeGetters });\n const { title, color, icon, behavior } = newListObject;\n\n if (\n handleListUpdate({\n cardId,\n newIndex,\n listId,\n originalListId,\n getListCards,\n storeDispatch,\n })\n )\n return null;\n\n updateCardFields({\n cardId,\n newListObject,\n listId,\n isDestinationSprintBoard,\n title,\n color,\n icon,\n behavior,\n storeDispatch,\n });\n if (originalBoardId !== destinationBoardId) {\n updateBoardFields({\n cardId,\n isDestinationSprintBoard,\n destinationBoard,\n destinationBoardId,\n storeDispatch,\n });\n }\n\n if (\n destinationBoard &&\n originalBoard &&\n originalBoard?.project_id !== destinationBoard?.project_id\n ) {\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: 'project_id',\n fieldValue: destinationBoard.project_id,\n });\n const card = getCards[cardId];\n storeDispatch('removeCardFromGroupByList', {\n boardId: '',\n epicId: card.epic?.id,\n cardId,\n listId: originalBoard.project_id,\n groupBy: 'space',\n });\n storeDispatch('addCardToGroupByList', {\n boardId: '',\n epicId: card.epic?.id,\n cardId,\n listId: destinationBoard.project_id,\n groupBy: 'space',\n });\n }\n\n return null;\n};\n\nconst handleListUpdate = ({\n cardId,\n newIndex,\n listId,\n originalListId,\n getListCards,\n storeDispatch,\n}) => {\n const originalList = [...(getListCards[originalListId] || [])];\n const newList = [...(getListCards[listId] || [])];\n\n if (newList[newIndex] === cardId) {\n return true;\n }\n\n if (originalList) {\n const originalIndex = originalList.indexOf(cardId);\n originalList.splice(originalIndex, 1);\n storeDispatch('setSingleListInListCards', {\n listId: originalListId,\n value: originalList,\n });\n\n if (originalListId === listId) {\n newList.splice(originalIndex, 1);\n }\n }\n\n if (newList) {\n newList.splice(newIndex, 0, cardId);\n storeDispatch('setSingleListInListCards', {\n listId,\n value: newList,\n });\n }\n\n return false;\n};\n\nconst updateCardFields = ({\n cardId,\n newListObject,\n listId,\n isDestinationSprintBoard,\n title,\n color,\n icon,\n behavior,\n storeDispatch,\n}) => {\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: 'list_id',\n fieldValue: isDestinationSprintBoard ? newListObject.orginalId : listId,\n });\n\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: 'list_title',\n fieldValue: title,\n });\n\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: 'color',\n fieldValue: color,\n });\n\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: 'list_color',\n fieldValue: color,\n });\n\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: 'status',\n fieldValue: behavior,\n });\n};\n\nconst updateBoardFields = ({\n cardId,\n isDestinationSprintBoard,\n destinationBoard,\n destinationBoardId,\n storeDispatch,\n}) => {\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: isDestinationSprintBoard ? 'sprint_id' : 'board_id',\n fieldValue: isDestinationSprintBoard ? destinationBoard?.orginalId : destinationBoardId,\n });\n\n // clear sprint or board id in case when card has both sprint id and board id\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: isDestinationSprintBoard ? 'board_id' : 'sprint_id',\n fieldValue: '',\n });\n\n storeDispatch('localUpdateCardField', {\n cardId,\n fieldName: 'board_title',\n fieldValue: destinationBoard?.title,\n });\n};\n\nconst handleUpdateEventBoardView = ({\n newIndex,\n oldIndex,\n cardId,\n listId,\n storeDispatch,\n storeGetters,\n}) => {\n const { getListCards } = storeGetters;\n\n const listCards = [...getListCards[listId]];\n if (listCards[newIndex] === cardId) return;\n\n listCards.splice(oldIndex, 1);\n listCards.splice(newIndex, 0, cardId);\n\n storeDispatch('setBoardListProp', {\n listId,\n propertyName: 'card_order',\n value: listCards,\n });\n\n storeDispatch('setSingleListInListCards', {\n listId,\n value: listCards,\n });\n};\n\nconst addCard = ({\n cardModel,\n cardId,\n destinationProjectId,\n destinationBoardId,\n destinationListId,\n destinationPosition,\n originalProjectId,\n originalBoardId,\n originalListId,\n originalPosition,\n storeGetters,\n storeDispatch,\n route,\n}) => {\n if (destinationListId !== originalListId) {\n handleAddEventBoardView({\n cardModel,\n cardId,\n newIndex: destinationPosition,\n oldIndex: originalPosition,\n listId: destinationListId,\n originalListId,\n destinationBoardId,\n originalBoardId,\n storeDispatch,\n storeGetters,\n });\n } else {\n handleUpdateEventBoardView({\n newIndex: destinationPosition,\n oldIndex: originalPosition,\n cardId,\n listId: destinationListId,\n storeDispatch,\n storeGetters,\n });\n }\n};\n\nexport {\n addCard,\n handleAddEventBoardView,\n handleUpdateEventBoardView,\n updateCardFields,\n updateBoardFields,\n handleListUpdate,\n getListById,\n};\n","/**\n * Generates a unique key for a sprint based on the project ID and sprint ID.\n *\n * @param {number | string} projectId - The ID of the project.\n * @param {number | string} sprintId - The ID of the sprint.\n * @returns {string} The generated sprint key: ${projectId}s${sprintId}.\n */\nconst getSprintKey = (projectId: number | string = '', sprintId: number | string = ''): string => {\n return `${projectId}s${sprintId}`;\n};\n\n/**\n * Generates a unique key for a sprint list based on the project ID, sprint ID, and list ID.\n *\n * @param {number | string} projectId - The ID of the project.\n * @param {number | string} sprintId - The ID of the sprint.\n * @param {number | string} listId - The ID of the list.\n * @returns {string} The generated sprint list key: ${projectId}s${sprintId}-${listId}.\n */\nconst getSprintListKey = (\n projectId: number | string = '',\n sprintId: number | string = '',\n listId: number | string = ''\n): string => {\n return `${getSprintKey(projectId, sprintId)}-${listId}`;\n};\n\nexport { getSprintKey, getSprintListKey };\n","const specialCharactersPattern = /[^a-zA-Z\\d-]/g;\n\nexport default specialCharactersPattern;\n","import specialCharactersPattern from './specialCharactersPattern';\n\nconst getDashedTitle = (title = '') =>\n title\n .replaceAll(/^\\s+|\\s+$/g, '')\n .replaceAll(/-{2,}|\\s/g, '-')\n .replaceAll(/-{2,}|\\s/g, '-')\n .replaceAll(' ', '-')\n .replace(specialCharactersPattern, '')\n .toLowerCase();\n\nexport default getDashedTitle;\n","export default function (str: string): string {\n return str.replace(\n /\\w\\S*/g,\n (text) => text.charAt(0).toUpperCase() + text.substring(1).toLowerCase()\n );\n}\n","import { ref, computed } from 'vue';\nimport constants from '@/utilities/constants';\nimport { NoteContentType, NoteTemplate, notesCalendarUsedEventIdsKey } from '@/types/notes';\nimport { translate } from '@/utilities';\nimport useAudioTranscription from '@/utilities/composables/useAudioTranscription';\nimport { useStore } from 'vuex';\nimport getTextToTitleCase from '@/utilities/getTextToTitleCase';\nimport { convertTimeTo24Hours, convertDateToDDMM } from '@/utilities/timeDifference';\nimport { browserStorageSetItem, browserStorageGetItem } from '@/utilities/browser-storage.util';\nimport { nanoid } from 'nanoid';\nimport { useRouter } from 'vue-router';\n\nexport default function useNotes() {\n const store = useStore();\n const router = useRouter();\n\n const { currentTranscriptionNoteId, stopRecording } = useAudioTranscription();\n\n const debouncedUpdateNoteTitle = ref();\n const debouncedUpdateNoteContent = ref();\n\n const noteTemplates = computed(() => {\n return store.getters.getNoteTemplates;\n });\n\n const noteTemplatesFavourited = computed(() => {\n const templates = noteTemplates.value;\n\n const favouritedTemplates = Object.fromEntries(\n Object.entries(templates).filter(([, value]: [any, any]) => value.is_favourited)\n );\n\n const autoEnhancedTemplate = {\n id: NoteTemplate.AutoEnhanced,\n title: translate('autoEnhanced'),\n icon: {\n src: 'zap',\n color: 'var(--iconDefault)',\n type: 'icon',\n },\n is_favourited: true,\n };\n\n const result = {\n [NoteTemplate.AutoEnhanced]: autoEnhancedTemplate,\n ...favouritedTemplates,\n };\n\n return result;\n });\n\n const getNoteEditorId = (noteId: string) => {\n const teamId = store.getters.getTeamID;\n return `${teamId}-editor-note-${noteId}`;\n };\n\n const debounceUpdateNoteTitle = (noteId: string, title: string, immediate = false) => {\n clearTimeout(debouncedUpdateNoteTitle.value);\n\n if (immediate) {\n store.dispatch('updateNoteTitle', { noteId, title });\n return;\n }\n\n debouncedUpdateNoteTitle.value = setTimeout(() => {\n store.dispatch('updateNoteTitle', { noteId, title });\n\n clearTimeout(debouncedUpdateNoteTitle.value);\n debouncedUpdateNoteTitle.value = null;\n }, 1000);\n };\n\n const updateCorrectNoteContent = (noteId: string, content: string, aiNoteId: string = '') => {\n const action = aiNoteId ? 'updateAiNoteContent' : 'updateNoteContent';\n store.dispatch(action, {\n noteId,\n ...(aiNoteId ? { aiNoteId } : { fieldType: NoteContentType.UserNotes }),\n content,\n });\n };\n\n const debounceUpdateNoteContent = (noteId: string, content: string, aiNoteId: string = '') => {\n clearTimeout(debouncedUpdateNoteContent.value);\n\n debouncedUpdateNoteContent.value = setTimeout(() => {\n updateCorrectNoteContent(noteId, content, aiNoteId);\n\n clearTimeout(debouncedUpdateNoteContent.value);\n debouncedUpdateNoteContent.value = null;\n }, 1000);\n };\n\n const clearUpdateNoteDebounceTimeout = ({\n noteId,\n title,\n content,\n aiNoteId = '',\n }: {\n noteId: string;\n title: string;\n content: string;\n aiNoteId: string;\n }) => {\n if (debouncedUpdateNoteTitle.value) {\n clearTimeout(debouncedUpdateNoteTitle.value);\n debouncedUpdateNoteTitle.value = null;\n\n store.dispatch('updateNoteTitle', { noteId, title });\n }\n\n if (debouncedUpdateNoteContent.value) {\n updateCorrectNoteContent(noteId, content, aiNoteId);\n\n clearTimeout(debouncedUpdateNoteContent.value);\n debouncedUpdateNoteContent.value = null;\n }\n };\n\n const createNote = async (\n title: string = '',\n calendarEvent: any = {},\n localId: string = constants.newNote,\n afterLocalNoteCreatedCallback: () => void = () => {}\n ) => {\n const localNote = {\n id: localId,\n title,\n time_created: Date.now() / 1000,\n ...(Object.keys(calendarEvent).length && {\n meeting_time: calendarEvent.start,\n meeting_metadata: {\n links: calendarEvent.meeting_links,\n },\n }),\n };\n\n store.dispatch('setNote', { note: localNote });\n afterLocalNoteCreatedCallback();\n\n const newNoteId = await store.dispatch('createNewNote', {\n title,\n calendarEvent,\n noteIdToUpdate: localId,\n });\n\n const oldEditorId = getNoteEditorId(constants.newNote);\n const newEditorId = getNoteEditorId(newNoteId);\n\n store.dispatch('updateEditorId', {\n oldId: oldEditorId,\n newId: newEditorId,\n resourceId: newNoteId,\n });\n\n return newNoteId;\n };\n\n const getNoteChronologicalAfterNoteId = (noteId: string, notesList: Array) => {\n if (noteId === constants.newNote) return notesList?.[1];\n\n const noteIndex = notesList.findIndex((note: any) => note.id === noteId);\n\n const noteBefore = notesList[noteIndex - 1];\n const noteAfter = notesList[noteIndex + 1];\n\n if (noteIndex === -1) return null;\n if (!noteAfter && noteBefore) return noteBefore;\n return noteAfter;\n };\n\n const deleteNote = (noteId: string) => {\n if (currentTranscriptionNoteId.value === noteId) stopRecording();\n store.dispatch('deleteNote', noteId);\n };\n\n const updateNoteTitle = async (noteId: string, title: string, immediate: boolean = false) => {\n store.dispatch('localUpdateNoteProp', {\n noteId,\n propertyName: 'title',\n value: title,\n });\n\n debounceUpdateNoteTitle(noteId, title, immediate);\n };\n\n const updateNoteContent = (noteId: string, content: string, aiNoteId: string = '') => {\n store.dispatch('localUpdateNoteProp', {\n noteId,\n ...(aiNoteId && { aiNoteId }),\n propertyName: aiNoteId ? 'content' : NoteContentType.UserNotes,\n value: content,\n });\n\n debounceUpdateNoteContent(noteId, content, aiNoteId);\n };\n\n const getNote = (noteId: string) => store.getters.getNotes[noteId] || {};\n\n const getAiNote = (noteId: string, templateId: string) => {\n return getNote(noteId)[NoteContentType.AiNotes]?.find(\n (note: any) => note?.note_template_id === templateId\n );\n };\n\n const updateLastNoteTemplateId = (noteId: string, templateId: string) => {\n if (!templateId) return;\n\n // Prevent updating if the last note template is the same\n if (getNote(noteId).last_note_template_id === templateId) return;\n\n store.dispatch('localUpdateNoteProp', {\n noteId,\n propertyName: 'last_note_template_id',\n value: templateId,\n });\n\n store.dispatch('updateLastNoteTemplateId', { noteId, templateId });\n };\n\n const getNoteHasAiNotes = (noteId: string) => {\n return getNote(noteId)[NoteContentType.AiNotes]?.length > 0;\n };\n\n const getLastNoteTemplate = (noteId: string) => {\n return getNote(noteId)?.last_note_template_id || '';\n };\n\n const getPublicNoteUrl = (noteId: string) => {\n return getNote(noteId).public_settings?.url || '';\n };\n\n const togglePublicNote = async (noteId: string) => {\n const isPublicNote = !getPublicNoteUrl(noteId);\n\n const updatedNote = await store.dispatch('updateNote', {\n noteId,\n payload: { is_public: isPublicNote },\n });\n\n store.dispatch('localUpdateNoteProp', {\n noteId,\n propertyName: 'is_public',\n value: isPublicNote,\n });\n\n store.dispatch('localUpdateNoteProp', {\n noteId,\n propertyName: 'public_settings',\n value: {\n url: isPublicNote ? updatedNote?.public_settings?.url : '',\n },\n });\n };\n\n const getNoteMeetingLinkInfo = (noteId: string) => {\n const linkInfo = getNote(noteId).meeting_metadata?.links?.[0] || {};\n\n return {\n link: linkInfo.link || '',\n provider: getTextToTitleCase(linkInfo.provider || ''),\n };\n };\n\n const usedEventIds = ref(browserStorageGetItem(notesCalendarUsedEventIdsKey) || []);\n\n const markEventAsUsed = (eventId: string) => {\n usedEventIds.value.push(eventId);\n browserStorageSetItem(notesCalendarUsedEventIdsKey, usedEventIds.value);\n };\n\n const getNoteTitleFromEvent = (event: any): string => {\n const eventStartDate = new Date(event.start * 1000);\n const eventEndDate = new Date(event.end * 1000);\n const formattedStartDate = convertTimeTo24Hours(eventStartDate);\n\n // If event is not today, add the day and month to the end time\n const formattedEndDate =\n convertTimeTo24Hours(eventEndDate) +\n (eventEndDate.toDateString() !== new Date().toDateString()\n ? `, ${convertDateToDDMM(event.end)}`\n : '');\n\n return `${event.title || translate('untitled')} (${formattedStartDate} - ${formattedEndDate})`;\n };\n\n const calendarEvents = computed(() => store.getters.getUpcomingGoogleCalendarEvents);\n\n const createNoteFromEvent = async (eventId: string) => {\n const calendarEvent = calendarEvents.value.find((e: any) => e.id === eventId);\n if (!calendarEvent) return;\n markEventAsUsed(eventId);\n const title = getNoteTitleFromEvent(calendarEvent);\n const localId = nanoid(10);\n const noteId = await createNote(title, calendarEvent, localId, () => {\n router.push({\n name: constants.routeNames.note,\n params: { noteId: localId },\n });\n });\n router.push({ name: constants.routeNames.note, params: { noteId } });\n };\n\n return {\n getNoteEditorId,\n noteTemplates,\n noteTemplatesFavourited,\n debouncedUpdateNoteTitle,\n updateCorrectNoteContent,\n debouncedUpdateNoteContent,\n debounceUpdateNoteTitle,\n debounceUpdateNoteContent,\n createNote,\n deleteNote,\n getNoteChronologicalAfterNoteId,\n updateNoteTitle,\n updateNoteContent,\n clearUpdateNoteDebounceTimeout,\n getAiNote,\n updateLastNoteTemplateId,\n getNoteHasAiNotes,\n getLastNoteTemplate,\n getPublicNoteUrl,\n togglePublicNote,\n getNoteMeetingLinkInfo,\n usedEventIds,\n markEventAsUsed,\n getNoteTitleFromEvent,\n calendarEvents,\n createNoteFromEvent,\n };\n}\n","import styleVariables from '@/assets/scss/variables.module.scss';\n\nexport default {\n computed: {\n theme() {\n return this.$store.getters.getTheme;\n },\n key() {\n const defaultStyle = {\n background: styleVariables.white,\n text: styleVariables.gray800,\n border: styleVariables.gray500,\n };\n\n if (this.theme === 'dark') {\n return {\n background: styleVariables.gray800,\n text: styleVariables.gray200,\n border: styleVariables.gray400,\n };\n }\n\n return defaultStyle;\n },\n },\n};\n","export default {\n parameterize(value: string = ''): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-zA-Z0-9 -]/, '')\n .replace(/\\s/g, '-');\n },\n};\n","import strings from './strings';\nimport translate from './translate';\n\nconst { parameterize } = strings;\n\nexport { parameterize, translate };\n","import { Project } from '@superthread-com/api';\n\n// Function to compare the time_created property of two projects\nfunction compareTimeCreated(a: Project, b: Project) {\n return (a.time_created ?? 0) - (b.time_created ?? 0);\n}\n\nfunction compareProjectOrder(a: Project, b: Project, projectOrder: string[]): number {\n const aIndex = projectOrder.indexOf(a.id ?? '');\n const bIndex = projectOrder.indexOf(b.id ?? '');\n if (aIndex === -1 && bIndex === -1) {\n // sort by time created if neither project is in the project order\n return compareTimeCreated(a, b);\n }\n if (aIndex === -1) {\n return 1;\n }\n if (bIndex === -1) {\n return -1;\n }\n return aIndex - bIndex;\n}\n\nfunction sortProjects(projects: Project[] = [], projectOrder: string[] = []): Project[] {\n const sortedProjects = [...projects];\n return projectOrder.length\n ? sortedProjects.sort((a, b) => compareProjectOrder(a, b, projectOrder))\n : sortedProjects.sort(compareTimeCreated);\n}\n\nexport default sortProjects;\n","export enum OnboardingActionType {\n AddWorkspaceLogo = 'add_workspace_logo',\n CustomiseYourProfile = 'customise_your_profile',\n ImportTasks = 'import_tasks',\n CreateCard = 'create_card',\n AddChildCard = 'add_child_card',\n CreatePage = 'create_page',\n MentionAnything = 'mention_anything',\n ViewKeyboardShortcuts = 'view_keyboard_shortcuts',\n ConnectSlack = 'connect_slack',\n}\n\nexport enum OnboardingActionStatus {\n NotCompleted = 'not_completed',\n Completed = 'completed',\n Dismissed = 'dismissed',\n}\n\nexport interface OnboardingAction {\n type: OnboardingActionType;\n status: OnboardingActionStatus;\n time_updated?: number;\n animate_completion?: boolean;\n}\n","const getCurrentDateInSeconds = () => {\n return Math.round(new Date().getTime() / 1000);\n};\n\nexport default getCurrentDateInSeconds;\n","import { ResourceType } from '@/types/resources';\n\nexport default {\n computed: {\n isProject() {\n return (this.$route.name === 'boards' || this.$route.name === 'pages') && !this.inEpicBoard;\n },\n\n notificationTypePage() {\n return this.$store.getters.getCurrentInboxResource.resource_type === 'page';\n },\n\n isPage() {\n return this.$route.name === 'page' && !this.inEpicBoard;\n },\n isBoard() {\n return this.$route.name === 'board' && !this.inEpicBoard;\n },\n isSprints() {\n return this.$route.name === this.$constants.routeNames.sprintsRouteName && !this.inEpicBoard;\n },\n isSprint() {\n return (\n (this.$route.name === this.$constants.routeNames.sprint || this.isSprintInbox) &&\n !this.inEpicBoard\n );\n },\n isSprintInbox() {\n return (\n this.isInbox &&\n this.$store.getters.getCurrentInboxResource.resource_type === ResourceType.Sprint\n );\n },\n isNewPage() {\n return this.$route.name === 'newpage' && !this.inEpicBoard;\n },\n isNewBoard() {\n return this.$route.name === 'newboard' && !this.inEpicBoard;\n },\n isAnyCardDisplayed() {\n return this.$store.getters.getIsAnyCardDisplayed || this.$store.getters.getChildCardCreation;\n },\n isManageSpaces() {\n return this.$route.name === this.$constants.manageSpacesRouteName && !this.inEpicBoard;\n },\n isEpicsBoard() {\n return this.$route.name === this.$constants.epicsBoardRoute.name && !this.inEpicBoard;\n },\n membersBasedOnRoute() {\n if (this.isManageSpaces) {\n const selectedProjectId = this.$store.getters.getSelectedProjectId;\n return selectedProjectId !== ''\n ? this.$store.getters.getTeamProjectById(selectedProjectId)?.members\n : [];\n }\n if (this.isProject || this.isPage) {\n const inactiveMembers = this.$store.getters.getInactiveTeamMembers;\n return Object.values(\n this.$store.getters.getCurrentMembers.filter((member) => !inactiveMembers[member.user_id])\n );\n }\n if (this.isBoard) {\n return this.$store.getters.currentBoard.members;\n }\n return [];\n },\n\n isInbox() {\n return this.$route.name === this.$constants.routeNames.inbox && !this.inEpicBoard;\n },\n },\n};\n","const isInViewport = (\n elem,\n boundElem,\n boundingOffests = { top: 0, right: 0, bottom: 0, left: 0 }\n) => {\n const rect = elem.getBoundingClientRect();\n const rectAgainst = boundElem.getBoundingClientRect\n ? boundElem.getBoundingClientRect()\n : boundElem.$el.getBoundingClientRect();\n const boundOffsets = { ...{ top: 0, right: 0, bottom: 0, left: 0 }, ...boundingOffests };\n const offsetedAgainstTop = rectAgainst.top + boundOffsets.top;\n const offsetedAgainsBottom = rectAgainst.bottom - boundOffsets.bottom;\n\n const vertical =\n (rect.bottom >= offsetedAgainstTop &&\n rect.top >= offsetedAgainstTop &&\n rect.bottom <= offsetedAgainsBottom) ||\n (rect.top <= offsetedAgainsBottom &&\n rect.bottom <= offsetedAgainsBottom &&\n rect.top >= offsetedAgainstTop);\n const horizontal = rect.right <= rectAgainst.right && rect.left >= rectAgainst.left;\n let deltaH = 0;\n if (!horizontal) {\n if (rect.right > rectAgainst.right) {\n deltaH = rect.right - rectAgainst.right;\n } else if (rect.left < rectAgainst.left) {\n deltaH = rectAgainst.left - rect.left;\n }\n }\n let deltaV = 0;\n if (!vertical) {\n if (rect.bottom > offsetedAgainsBottom) {\n deltaV = rect.bottom - offsetedAgainsBottom;\n } else if (rect.top < offsetedAgainstTop) {\n deltaV = -(offsetedAgainstTop - rect.top);\n }\n }\n\n return {\n vertical,\n horizontal,\n deltaH,\n deltaV,\n };\n};\n\nexport default isInViewport;\n","import EventBus from '@/utilities/eventBus';\n\nexport default {\n methods: {\n hideMemberDropdown() {\n if (this.$store.getters.getCurrentCardIdMemberDropdown) {\n this.$store.dispatch('setCurrentCardIdMemberDropdown', '');\n this.$store.dispatch('setCurrentCardMembersDropdown', {});\n }\n },\n hideCardActionsDropdown() {\n if (this.$store.getters.getCurrentCardIdActionEdit) {\n this.$store.dispatch('setCurrentCardIdForActionEdit', '');\n }\n },\n\n closeParentCardPopup() {\n if (this.$store.getters.getShowSetParentCardPopup) {\n this.$store.dispatch('setShowSetParentCardPopup', '');\n }\n },\n\n closeDupicateCardPopup() {\n if (this.$store.getters.getShowDuplicateCardPopup) {\n this.$store.dispatch('setShowDuplicateCardPopup', '');\n }\n },\n\n closeEmojiPicker() {\n if (this.$store.getters.getEmojiPickerDisplayed) {\n this.$store.dispatch('setEmojiPickerDisplayed', '');\n }\n },\n\n closePageUploadPopup() {\n if (Object.keys(this.$store.getters.getPageUploadPopup).length > 0) {\n this.$store.dispatch('setPageUploadPopup', {});\n }\n },\n\n closeRestOfCardDropdowns() {\n // for card sidebar members and parent card pill dropdown\n EventBus.$emit('closeCommentActionsDropdown');\n },\n hideManageProjectsDropdowns() {\n this.hideMemberDropdown();\n },\n\n hideAllDropdowns() {\n this.hideMemberDropdown();\n this.hideCardActionsDropdown();\n this.closeRestOfCardDropdowns();\n this.hideManageProjectsDropdowns();\n this.closeParentCardPopup();\n this.closeDupicateCardPopup();\n this.closeEmojiPicker();\n this.closePageUploadPopup();\n },\n },\n};\n","export enum MessageTypes {\n sidebarResize = 'sidebar-resize',\n sidebarResizeStart = 'sidebar-resize-start',\n sidebarResizeEnd = 'sidebar-resize-end',\n}\n","import getDashedTitle from '@/utilities/getDashedTitle';\n\nconst getBranchName = (resourceId, resourceTitle, character = '_') => {\n const title = getDashedTitle(resourceTitle).slice(0, 100).trim().replaceAll('-', character);\n const gitName = `st-${resourceId}${character}${title}`;\n return gitName;\n};\n\nexport default getBranchName;\n","import axios, { AxiosError } from 'axios';\nimport { store } from '@/store';\nimport { Api, HttpClient } from '@superthread-com/api';\n\nconst defaultConfig = () => ({\n withCredentials: true,\n withXSRFToken: true,\n});\n\nconst httpClient = new HttpClient({\n timeout: 20000,\n baseURL: `${process.env.VUE_APP_API_BASE_URL}/v1`,\n ...defaultConfig(),\n});\n\nconst http = httpClient.instance;\nconst { get: axiosBaseGet } = axios;\n\nlet refereshPromise: any = null;\nlet refreshPending: boolean = false;\n\nconst authRefresh = (client: any = http) => {\n if (refreshPending) return refereshPromise;\n\n refreshPending = true;\n refereshPromise = client\n .post('auth/refresh', {}, { ...defaultConfig() })\n .then((res: any) => {\n refreshPending = false;\n return res;\n })\n .catch((err: any) => {\n refreshPending = false;\n return Promise.reject(err);\n });\n return refereshPromise;\n};\n\nconst createAxiosResponseInterceptor = (client: any) => {\n const interceptor = client.interceptors.response.use(\n (response: any) => response,\n (errorResponse: any) => {\n if (axios.isCancel(errorResponse)) {\n return Promise.reject(errorResponse.message);\n }\n if (errorResponse.response?.status === 401) {\n /*\n * When response code is 401, try to refresh the token.\n * Eject the interceptor so it doesn't loop in case\n * token refresh causes the 401 response\n */\n client.interceptors.response.eject(interceptor);\n\n return authRefresh(client)\n .then(() => {\n const { config } = errorResponse.response;\n // Retry\n return client({\n method: config.method,\n url: config.url,\n data: config.data,\n params: config.params,\n ...defaultConfig(),\n });\n })\n .catch((error: AxiosError) => {\n const { pathname } = window.location;\n if (pathname !== '/login' && pathname !== '/' && error?.response) {\n if (store.getters.getLoggedIn) {\n window.location.href = '/login';\n } else {\n window.history.pushState({}, '', '/login');\n }\n }\n return Promise.reject(error);\n })\n .finally(() => createAxiosResponseInterceptor(client));\n }\n return Promise.reject(errorResponse);\n }\n );\n};\n\ncreateAxiosResponseInterceptor(http);\n\nconst api = new Api(httpClient);\n\nconst baseGet = (endpoint = '', params = {}) => http.get(endpoint, { params });\n\nconst authGet = (endpoint = '', customConfig?: any) =>\n http.get(endpoint, { ...defaultConfig(), ...customConfig });\n\nconst authPut = (endpoint = '', putData = {}, customConfig?: any) =>\n http.put(endpoint, putData, { ...defaultConfig(), ...customConfig });\n\nconst basePost = (endpoint = '', postData = {}) => http.post(endpoint, postData);\n\nconst authPost = (endpoint = '', postData = {}, customConfig?: any) =>\n http.post(endpoint, postData, { ...defaultConfig(), ...customConfig });\n\nconst authPatch = (endpoint = '', patchData = {}, customConfig?: any) =>\n http.patch(endpoint, patchData, { ...defaultConfig(), ...customConfig });\n\nconst authDelete = (endpoint = '', customConfig?: any) =>\n http.delete(endpoint, { ...defaultConfig(), ...customConfig });\n\nexport {\n authGet,\n authPut,\n authPost,\n authPatch,\n baseGet,\n basePost,\n authDelete,\n authRefresh,\n axiosBaseGet,\n http,\n api,\n};\n","const validateEmail = (email: string) =>\n /^(?=.{6,254}$)[a-zA-Z0-9!#$%&'*+\\\\/=()<>\\[\\]:,;?^_{|}~`-]+(\\.[a-zA-Z0-9!#$%&'*+\\\\/=()<>:,;?^_{|}~`-]+)*@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*(\\.[a-zA-Z0-9-]{2,63})$/.test(\n email\n );\n\nexport default validateEmail;\n","import { computed } from 'vue';\n\nexport default function useIsElectronApp() {\n const isElectronApp = computed((): boolean => navigator?.userAgent.indexOf('Electron') >= 0);\n\n return {\n isElectronApp,\n };\n}\n","const SECOND = 1000;\nconst MINUTE = 60 * SECOND;\nconst HOUR = 60 * MINUTE;\nconst DAY = 24 * HOUR;\nconst MONTH = 30 * DAY;\nconst YEAR = 365 * DAY;\nconst UNSPLASH_URL = 'https://app.superthread.com/fn/img/unsplash';\nconst UNSPLASH_DOWNLOAD_URL = 'https://app.superthread.com/fn/img/unsplash-download';\nconst UNSPLASH_BASE_URL = '.unsplash.com';\nconst screens = {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n xxl: '1536px',\n};\nconst ST_PUBLIC_PAGE_BASE_URL = 'https://pages.superthread.com/t/tMZnvavA/p/';\nconst staticAssetsUrl = 'https://assets.superthread.com';\nconst staticFilesUrl = 'https://static.superthread.com';\n\nexport default {\n fullScreen: 'fullScreen',\n docked: 'docked',\n modal: 'modal',\n postHogApiHost: 'https://eu.posthog.com',\n postHogApiKey: 'phc_Bk5R0M204Bj1sACe9sc9WkSEL7J9cyI3qAhEY7grJhQ',\n emptyMarkdownInput: '

',\n emptyEditor: '

',\n profileImageSupportedFiles: ['JPG', 'JPEG', 'PNG', 'GIF'],\n cardSupportedFiles: [\n 'JPG',\n 'PNG',\n 'PDF',\n 'GIF',\n 'TXT',\n 'MP4',\n 'BMP',\n 'JPEG',\n 'SVG',\n 'AVIF',\n 'WEBP',\n 'DOC',\n 'PLAIN',\n 'DOCX',\n 'RTF',\n 'ODG',\n 'XML',\n 'HTML',\n 'XLS',\n 'XLSX',\n 'ODS',\n 'KEY',\n 'ODP',\n 'PPS',\n 'PPT',\n 'PPTX',\n 'AVI',\n 'FLV',\n 'MOV',\n 'MKV',\n 'MPG',\n 'RM',\n 'VOB',\n 'WMV',\n 'H264',\n 'MPEG',\n '7Z',\n 'ARJ',\n 'DEB',\n 'PKG',\n 'RAR',\n 'RPM',\n 'TAR',\n 'ZIP',\n 'ZIPX',\n 'Z',\n 'GZ',\n 'TAR',\n 'JSON',\n ],\n userColors: [\n '#12B76A',\n '#4A9AFF',\n '#F04438',\n '#F79009',\n '#4E5BA6',\n '#7A5AF8',\n '#EE46BC',\n '#F63D68',\n '#667085',\n ],\n editorSupportedFiles: ['JPG', 'JPEG', 'PNG', 'GIF', 'AVIF', 'WEBP'],\n videoVolumeDefault: 1,\n videoVolumeStorageKey: 'video-volume',\n videoMuteVolumeKey: 'video-mute-volume',\n addCardButton: 'add-card-', // add-card-\n epicsBoardId: 'epics',\n inEpicBoardIdPrefix: 'inEpicBoard',\n epicsBoardRoute: {\n path: 'roadmap',\n name: 'epics-board',\n },\n epicRoute: {\n path: 'project',\n name: 'epic',\n },\n electronNotesRoute: {\n path: 'electronnotes',\n name: 'electronnotes',\n },\n newPage: 'newpage',\n newBoard: 'newboard',\n manageSpacesRouteName: 'manage-spaces',\n settingsManageSpacesRouteName: 'settings/manage-spaces',\n createSpaceRouteName: 'create-space',\n settingsCreateSpaceRouteName: 'settings/create-space',\n settingsMemberRouteName: 'settings/member',\n settingsSpaceRouteName: 'settings/space',\n settingsBoardsRouteName: 'settings/boards',\n settingsSelectedBoardRouteName: 'settings/boards/selected',\n settingsSprintsRouteName: 'settings/sprints',\n settingsWorkspaceRouteName: 'general',\n settingsImportRouteName: 'import',\n settingsNotificationsRouteName: 'notifications',\n settingsRouteName: 'settings',\n settingsTemplate: {\n root: 'templates',\n card: {\n root: {\n path: 'card',\n name: 'templates-card',\n },\n create: {\n path: 'create',\n name: 'templates-card-create',\n },\n edit: {\n path: 'edit',\n name: 'templates-card-edit',\n },\n },\n page: {\n root: {\n path: 'page',\n name: 'templates-page',\n },\n create: {\n path: 'create',\n name: 'templates-page-create',\n },\n edit: {\n path: 'edit',\n name: 'templates-page-edit',\n },\n },\n note: {\n root: {\n path: 'note',\n name: 'templates-note',\n },\n create: {\n path: 'create',\n name: 'templates-note-create',\n },\n edit: {\n path: 'edit',\n name: 'templates-note-edit',\n },\n view: {\n path: 'view',\n name: 'templates-note-view',\n },\n },\n },\n memberRouteName: 'member',\n roles: {\n owner: 'owner',\n admin: 'admin',\n member: 'member',\n guest: 'guest',\n },\n myWorkRouteName: 'my-work',\n hRx: /((dev|staging)-)?(app|release)(\\.)?superthread\\.com/,\n internalLinkRegEx: /(https:\\/\\/)?((dev|staging)-)?(app|release)(\\.)?superthread\\.com[^ |\\n]+\\n?/g,\n projectSlug: 'space',\n projectsSlug: 'spaces',\n // sidebar constants\n sidebarWidthRoot: '--sidebar-width',\n sidebarResizeSnapWidth: 15,\n sidebarTogglePercentage: 20,\n timelineSidebarResizeSnapWidth: 15,\n inboxListResizeSnapWidth: 15,\n updateCardCancel: 'update-card-cancel',\n smallCardMemberCountMax: 3,\n openedCardMemberCountMax: 5,\n stImageMinWidth: 100,\n SECOND,\n MINUTE,\n HOUR,\n DAY,\n MONTH,\n YEAR,\n UNSPLASH_URL,\n UNSPLASH_DOWNLOAD_URL,\n screens,\n UNSPLASH_BASE_URL,\n stImage: 'st-image',\n editorChecklistItem: 'checklist-item',\n newChecklistItem: 'newchecklistitem',\n dark: 'dark',\n light: 'light',\n fromSection: 'sidebar',\n blockAttributeName: 'block-id',\n filterTypes: [\n 'members',\n 'owners',\n 'creators',\n 'tags',\n 'statuses',\n 'boards',\n 'projects',\n 'epics',\n 'parent_cards',\n 'is_parent',\n 'is_child',\n 'due_date',\n 'linked_cards',\n 'time_created',\n 'time_updated',\n 'external_links',\n 'priority',\n 'estimates',\n 'title',\n ],\n quickCard: 'quick-card',\n quickChildCard: 'quick-child-card',\n projectsColumn: 'projects-column',\n newListButton: 'new-list',\n integrationRoutes: {\n github: {\n dev: 'https://github.com/apps/superthread-app-dev',\n staging: 'https://github.com/apps/superthread-app-staging',\n release: 'https://github.com/apps/superthread-app',\n production: 'https://github.com/apps/superthread-app',\n },\n zapier: 'https://zapier.com/apps/superthread/integrations',\n },\n searchGroupsOrder: ['members', 'cards', 'epics', 'pages', 'spaces', 'boards'],\n stImageDefaultWidth: 350,\n stImageDefaultHeight: 200,\n stImagePlaceholder: 'st-image-placeholder',\n corsProxyBaseUrl: 'https://app.superthread.com/fn/corsproxy?url=',\n redirectAfterGoogleSignInRoute: 'superthread://oauth2',\n desktopRedirectRoutes: {\n dev: 'https://dev-app.superthread.com/desktop-redirect',\n staging: 'https://staging-app.superthread.com/desktop-redirect',\n release: 'https://release.superthread.com/desktop-redirect',\n production: 'https://app.superthread.com/desktop-redirect',\n },\n changelogUrl: 'https://pages.superthread.com/t/tMZnvavA/p/2141',\n uiNotificationStatuses: {\n success: 'success',\n error: 'error',\n warning: 'warning',\n },\n uiNotificationLabelTypes: {\n opne: 'open',\n update: 'update',\n retry: 'retry',\n changelog: 'changelog',\n undo: 'undo',\n },\n uiNotificationElements: {\n button: 'button',\n span: 'span',\n checkBox: 'checkbox',\n },\n uiNotificationMaxTitleLength: 60,\n timelineHelperElementId: 'timeline-helper-element',\n timelineArrowButtonOffset: 12,\n timelineAnimatedScrollingSpeed: 1.5,\n connectToDesktopAppUrls: [\n 'http://localhost:40124/is-desktop-app-running',\n 'http://localhost:18283/is-desktop-app-running',\n 'http://127.0.0.1:40124/is-desktop-app-running',\n 'http://127.0.0.1:18283/is-desktop-app-running',\n ],\n timelineCardTitleMinWidth: 100,\n timelineTooltipDateFormat: 'EEE, dd MMM',\n infoSidebarProject: 'infoSidebar-project',\n emojiRegex: /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/,\n pageSyncTime: 60, // 60 seconds\n quickCardMaxTagsCount: 5,\n fullyLoadedBoardPropThreshold: 3,\n fullyLoadedSprintBoardPropThreshold: 2,\n fullyLoadedPagePropThreshold: 3,\n noSpaceName: 'No space name',\n showMemberHoverPreviewDelay: 500,\n estimateSystems: {\n fibonacci: {\n values: [1, 2, 3, 5, 8],\n label: 'fibonacciPoints',\n labelAbbreviation: 'fib.',\n type: 'points',\n },\n exponential: {\n values: [1, 2, 4, 8, 16],\n label: 'exponentialPoints',\n labelAbbreviation: 'exp.',\n type: 'points',\n },\n tshirt: {\n values: ['extraSmall', 'small', 'mediumSize', 'large', 'extraLarge'],\n valueAbbreviations: ['XS', 'S', 'M', 'L', 'XL'],\n label: 'tshirtSizes',\n type: 'sizes',\n },\n },\n toggleButtonClass: 'settings-sidebar-toggle-button',\n defaultSuggestedTagsColors: {\n bug: 'red',\n feature: 'blue',\n },\n featureFlagIds: {\n aiAssistant: 'ai0',\n aiAgents: 'ai1',\n aiSuggestedActions: 'ai2',\n privateSpace: 'pvt',\n userPermissions: 'up',\n inviteMembers: 'im',\n publicPageIndexing: 'ppi',\n sprint: 'spt',\n timelineLayout: 'tml',\n views: 'vws',\n noteAudioTranscription: 'nat',\n },\n limitIds: {\n spaceLimit: '#sp',\n },\n iconPicker: {\n createProject: 'create-project',\n manageProjects: 'manage-projects',\n sidebarProject: 'sidebar-project',\n page: 'page',\n templateContent: 'template-content',\n epicSidebar: 'epic-sidebar',\n epicBoardView: 'epic-board-view',\n },\n templateDropdown: {\n pageView: 'page-view',\n boardView: 'board-view',\n quickBoardView: 'quick-board-view',\n quickCardModalView: 'quick-card-modal-view',\n quickPageModalView: 'quick-page-modal-view',\n },\n updateEmailPopupTypes: {\n reauthenticate: 'reauthenticate',\n input: 'input',\n verify: 'verify',\n },\n timeline: 'timeline',\n list: 'list',\n calendarLayout: 'calendar',\n // number of items to show in the get started section when 'show less' is clicked\n getStartedShowLessCount: 3,\n projectPrivacyType: {\n open: 'open',\n private: 'private',\n },\n characterLimit: {\n comment: 5000,\n },\n knowledgeBaseUrls: {\n mentionAnyting: `${ST_PUBLIC_PAGE_BASE_URL}1095-other-features#17bfb836-c8d5-47e8-8b84-3095900a37f8`,\n childCards: `${ST_PUBLIC_PAGE_BASE_URL}1088-boards-cards-and-statuses#1c2685e0-d70b-4b0c-9b85-adc0b70cf737`,\n organisePages: `${ST_PUBLIC_PAGE_BASE_URL}1089-pages-subpages-and-public-pages#0e7663eb-aeca-48e4-bb57-4f97c2dd5b38`,\n createPages: `${ST_PUBLIC_PAGE_BASE_URL}1089-pages-subpages-and-public-pages#7b1c0284-990a-4248-9053-b7949870973e`,\n pageIconAndCoverImage: `${ST_PUBLIC_PAGE_BASE_URL}1089-pages-subpages-and-public-pages#f5f20f2f-dc87-4401-9d7d-91bb6ecba33e`,\n comments: `${ST_PUBLIC_PAGE_BASE_URL}1095-other-features#493de01a-1ab1-476b-850b-7d951da67d4c`,\n boardsCardsAndStatuses: `${ST_PUBLIC_PAGE_BASE_URL}1088-boards-cards-and-statuses`,\n },\n // Mon Dec 18 2023 00:00:00 GMT+0000\n onboardingActionsReleaseDate: 1702857600,\n resolved: 'resolved',\n open: 'open',\n onboardingActionsVideoPrefix: 'onboarding-actions-video',\n searchResultsType: {\n SearchModal: 'search_modal',\n MentionList: 'mention_list',\n },\n openSpace: 'open',\n notificationsIntegrations: {\n slackUser: 'slack_user',\n notificationDigest: 'notification_digest',\n },\n OAuthState: {\n googleCalendar: 'googleCalendarOAuthState',\n // necessary for integration to work because backend checks redirect_uri to match\n googleCalendarRedirectUri: 'googleCalendarRedirectUri',\n googleBaseUrl: 'https://accounts.google.com/o/oauth2/v2/auth',\n slack: 'slackOAuthState',\n slackRedirectUri: 'slackRedirectUri',\n },\n googleCalendarIntegration: 'google_calendar_user_notes',\n calendarUserNotesSettings: 'calendar_user_notes',\n webhookIntegrations: {\n slackChannel: 'slack_channel_webhook',\n },\n defaultTimeInputValue: '15:45',\n fullWidth: 'full-width',\n readOnly: 'read-only',\n epicDefaultIcon: 'box',\n resourceIconDefault: {\n height: 16,\n width: 16,\n },\n emptyEditorClass: 'is-editor-empty',\n cardDetailsSidebar: 'card-details-sidebar',\n epicDetailsSidebar: 'epic-details-sidebar',\n owner: 'owner',\n editorContentBaseClass: 'st-editor-content',\n rolledOverList: 'rolledover',\n routeNames: {\n teamLogin: 'teamlogin',\n login: 'login',\n workspaces: 'list-workspaces',\n newWorkspace: 'new-workspace',\n verifyEmail: 'verify-email',\n onboardingInfo: 'onboarding-info',\n join: 'join',\n board: 'board',\n space: 'boards',\n page: 'page',\n boardCard: 'board-card',\n sprintCard: 'sprint-card',\n inbox: 'inbox',\n view: 'view',\n newView: 'newview',\n views: 'views',\n billing: 'billing',\n sprintsRouteName: 'sprints',\n sprint: 'sprint',\n agents: 'agents',\n newAgent: 'newAgent',\n updateAgent: 'updateAgent',\n notesSettings: 'notes-settings',\n notes: 'notes',\n note: 'note',\n },\n editor: {\n sharedToWebClass: 'shared-to-web',\n bottomGutterClass: 'bottom-gutter',\n arrowUpInFirstRow: 'arrow-up-in-first-row',\n arrowLeftAtDocStart: 'arrow-left-at-doc-start',\n },\n staticAssetsUrl,\n staticImages: `${staticAssetsUrl}/images`,\n staticVideos: `${staticAssetsUrl}/videos`,\n downloadLinks: {\n macArm64: {\n text: 'macArm64Label',\n icon: 'download-cloud',\n link: `${staticFilesUrl}/desktop-app/Superthread-arm64.dmg`,\n },\n macx64: {\n text: 'macx64Label',\n icon: 'download-cloud',\n link: `${staticFilesUrl}/desktop-app/Superthread-x64.dmg`,\n },\n },\n contactMail: 'contact@superthread.com',\n importerRadioNewProject: 'radioNewProject',\n prStates: ['pr_draft', 'pr_open', 'pr_merged', 'pr_closed'],\n prStatusKeys: {\n pr_draft: 'draftPROpened',\n pr_open: 'pROpened',\n pr_merged: 'pRMerged',\n pr_closed: 'pRClosed',\n },\n gitBranchNameRegex: /^[a-zA-Z0-9._\\/-]{1,250}$/,\n boardEmailDomain: {\n dev: 'inbound.dev.superthread.com',\n staging: 'inbound.staging.superthread.com',\n prod: 'inbound.superthread.com',\n },\n keyboardShortcutCheatsheetUrl: `${ST_PUBLIC_PAGE_BASE_URL}1556-keyboard-shortcuts`,\n numberOfRecentWorkspaces: 2,\n cardView: 'cardView',\n boardView: 'boardView',\n noListsInEpicsBoardErr: 'Epics boards has no lists',\n missingCardTitleOrListIdErr: 'Missing card title or list id',\n userTypes: {\n user: 'user',\n system: 'system',\n },\n systemName: 'Superthread',\n memberSearchKeys: ['display_name', 'first_name', 'last_name', 'email'],\n memberSearchThreshold: 0.3,\n newNote: 'newnote',\n pageCoverImage: 'page-cover-image',\n};\n","import { translate } from '@/utilities';\n\n// TODO translate short and long time signatures\nconst msPerSecond = 1000;\nconst msPerMinute = 60 * msPerSecond;\nconst msPerHour = msPerMinute * 60;\nconst msPerDay = msPerHour * 24;\nconst msPerMonth = msPerDay * 30;\nconst msPerYear = msPerDay * 365;\n\nconst periods = [\n {\n value: msPerYear,\n labelPlural: 'years',\n labelSingular: 'a year',\n shortFormat: 'Y',\n },\n {\n value: msPerMonth,\n labelPlural: 'months',\n labelSingular: 'a month',\n shortFormat: 'M',\n },\n {\n value: msPerDay,\n labelPlural: 'days',\n labelSingular: 'a day',\n shortFormat: 'd',\n },\n {\n value: msPerHour,\n labelPlural: 'hours',\n labelSingular: 'an hour',\n shortFormat: 'h',\n },\n {\n value: msPerMinute,\n labelPlural: 'minutes',\n labelSingular: 'a minute',\n shortFormat: 'm',\n },\n {\n value: msPerSecond,\n labelPlural: 'seconds',\n labelSingular: 'a second',\n shortFormat: 's',\n },\n];\n\nconst monthsLabels = translate('monthsAbbreviation')?.split(',');\n// As line above is not reactive and can return undefind if utility is imported before translation was loaded,\n// this method is added to ensure that monthsLabels retires to get the value from translation.\nconst generateMonthsLabels = () => {\n return monthsLabels || translate('monthsAbbreviation')?.split(',') || [];\n};\n\nconst generateLabel = (value: number, periodIndex: number, shortFormat: boolean): string => {\n const period = periods[periodIndex];\n\n if (shortFormat) {\n return `${value}${period.shortFormat}`;\n }\n return value <= 1 ? period.labelSingular : `${value} ${period.labelPlural}`;\n};\n\nconst getTimeDifferenceRecursion = (\n elapsed: number,\n shortFormat: boolean,\n periodIndex = 0,\n valuesArray = [] as any\n): any => {\n if (elapsed <= msPerMinute) {\n valuesArray.push({\n label: translate('nowActivity'),\n });\n return valuesArray;\n }\n\n if (elapsed >= periods[periodIndex].value) {\n const value = Math.floor(elapsed / periods[periodIndex].value);\n valuesArray.push({\n label: generateLabel(value, periodIndex, shortFormat),\n });\n const rest = elapsed % periods[periodIndex].value;\n const newPeriodIndex = periodIndex + 1;\n return getTimeDifferenceRecursion(rest, shortFormat, newPeriodIndex, valuesArray);\n }\n return getTimeDifferenceRecursion(elapsed, shortFormat, periodIndex + 1, valuesArray);\n};\n\nconst timeDifference = (time: number, depth = 2, dueDate = false, shortFormat = false) => {\n const current = new Date().getTime();\n\n let elapsed = 0;\n if (dueDate) {\n elapsed = time - current;\n } else {\n elapsed = current - time;\n }\n\n const array = getTimeDifferenceRecursion(elapsed, shortFormat, 0, []);\n let finalString = '';\n const loopLimit = array.length < depth ? array.length : depth;\n for (let i = 0; i < loopLimit; i += 1) {\n let separator = ', ';\n if (i === loopLimit - 1 && i !== 0) {\n separator = ' and ';\n }\n finalString += i === 0 ? `${array[i].label}` : `${separator} ${array[i].label}`;\n }\n\n if (dueDate) {\n return `in ${finalString}`;\n } else {\n return shortFormat || finalString === translate('nowActivity')\n ? `${finalString}`\n : `${finalString} ago`;\n }\n};\n\nconst getDayFromDate = (time: number) => {\n const date = new Date(time * 1000);\n return date.getDay() - 1;\n};\n\nconst convertTimeTo12Hours = (date: Date) =>\n date.toLocaleTimeString(undefined, {\n hour12: true,\n hour: 'numeric',\n minute: 'numeric',\n });\n\nconst convertToTwoDigits = (value: number): string => (value < 10 ? `0${value}` : `${value}`);\n\nconst convertTimestampToDate = (time: number) => {\n const date = new Date(time * 1000);\n return `${generateMonthsLabels()[date.getMonth()]} ${date.getDate()}`;\n};\n\n//16 Mar\nconst convertTimestampToDateSecondFormat = (time: number) => {\n const date = new Date(time * 1000);\n return `${date.getDate()} ${generateMonthsLabels()[date.getMonth()]}`;\n};\n\n// Mon 16 Mar\nconst convertTimestampToDateSecondFormatWithDay = (time: number) => {\n const days = translate('daysAbbreviationLong')?.split(',');\n const day = getDayFromDate(time);\n return `${days.at(day)} ${convertTimestampToDateSecondFormat(time)}`;\n};\n\n//28 Jun, 11:36 (current year) / 28 Jun, 2022, 11:36 (not current year)\nconst convertTimestampToDDMlabelTime = (date: Date) => {\n const currentDate = new Date();\n const currentYear = currentDate.getFullYear();\n const year = currentYear === date.getFullYear() ? '' : `${date.getFullYear()}, `;\n const hours = convertToTwoDigits(date.getHours());\n const minutes = convertToTwoDigits(date.getMinutes());\n return `${date.getDate()} ${generateMonthsLabels()[date.getMonth()]}, ${year} ${hours}:${minutes}`;\n};\n\nconst convertToHoursMinutes = (date: Date) => {\n const hours = convertToTwoDigits(date.getHours());\n const minutes = convertToTwoDigits(date.getMinutes());\n return `${hours}:${minutes}`;\n};\n\n// March 16 2021\nconst timestampToFullDate = (time: number) => {\n const d = new Date(time * 1000);\n const day = convertToTwoDigits(d.getDate());\n const months = translate('months')?.split(',');\n const month = months[d.getMonth()];\n const year = d.getFullYear();\n return `${month} ${day}, ${year}`;\n};\n\n// 16 Mar 2024\nconst timestampToFullDateShort = (time: number) => {\n const d = new Date(time * 1000);\n const day = convertToTwoDigits(d.getDate());\n const month = generateMonthsLabels()[d.getMonth()];\n return `${day} ${month} ${d.getFullYear()}`;\n};\n\n// March 16 2021\nconst convertTimeTo24Hours = (time: Date) => {\n const hours = convertToTwoDigits(time.getHours());\n const minutes = convertToTwoDigits(time.getMinutes());\n return `${hours}:${minutes}`;\n};\n\n// 06/05/24\nconst convertDateToDDMMYY = (date: Date) => {\n const day = convertToTwoDigits(date.getDate());\n const month = convertToTwoDigits(date.getMonth() + 1);\n const year = String(date.getFullYear()).slice(-2);\n return `${day}/${month}/${year}`;\n};\n\n// 06/05\nconst convertDateToDDMM = (time: number) => {\n const date = new Date(time * 1000);\n const day = convertToTwoDigits(date.getDate());\n const month = convertToTwoDigits(date.getMonth() + 1);\n return `${day}/${month}`;\n};\n\nexport {\n getDayFromDate,\n timeDifference,\n convertTimeTo12Hours,\n convertTimestampToDate,\n convertTimestampToDateSecondFormat,\n convertTimestampToDateSecondFormatWithDay,\n timestampToFullDate,\n timestampToFullDateShort,\n convertTimeTo24Hours,\n convertTimestampToDDMlabelTime,\n convertToHoursMinutes,\n convertDateToDDMM,\n convertDateToDDMMYY,\n};\n","import { computed } from 'vue';\n\ntype WebpackContext = {\n (key: string): string;\n keys(): string[];\n resolve(key: string): string;\n};\n\ntype ViteContext = {\n keys: () => string[];\n resolve: (key: string) => string;\n};\n\n// Create a variable to store the webpack context if we're in webpack\n// This avoids dynamic require calls that cause warnings\nlet webpackIconsContext: WebpackContext | null = null;\ntry {\n // This will only work in Webpack and will be statically analyzable\n if (typeof require !== 'undefined') {\n // @ts-ignore - Webpack specific\n webpackIconsContext = require.context('@/assets/icons', false);\n }\n} catch (e) {\n // We're not in Webpack or there was an error\n webpackIconsContext = null;\n}\n\nexport default function useCustomIcon() {\n const iconsContext = computed(() => {\n if (webpackIconsContext) {\n // Webpack environment - use the pre-created context\n return webpackIconsContext;\n } else {\n // Vite environment (Nuxt)\n return {\n // For Vite, we'll provide a simpler implementation\n keys: (): string[] => {\n // Return a hardcoded list of your icon files or an empty array\n return [];\n },\n // Simple wrapper to match webpack's require.context interface\n resolve: (key: string): string => `/icons/${key.replace('./', '')}`,\n };\n }\n });\n\n function iconPath(name: string, extension = 'svg'): string {\n if (!name) return '';\n try {\n if (!webpackIconsContext) {\n return (iconsContext.value as ViteContext).resolve(`./${name}.${extension}`);\n }\n return (iconsContext.value as WebpackContext)(`./${name}.${extension}`);\n } catch (error) {\n return '';\n }\n }\n\n function getCustomIconStyle(\n path: string,\n styleOptions: Record = {},\n useMask: boolean = true\n ) {\n const url = `url(${path})`;\n return useMask\n ? {\n // Use mask styles if you want to override colors\n maskImage: url,\n webkitMaskImage: url,\n maskSize: 'contain', // change with css if needed, use !important to apply\n webkitMaskSize: 'contain',\n maskRepeat: 'no-repeat',\n webkitMaskRepeat: 'no-repeat',\n ...styleOptions,\n }\n : {\n // Use background-image to preserve original colors\n backgroundImage: url,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n ...styleOptions,\n };\n }\n\n return {\n iconPath,\n getCustomIconStyle,\n };\n}\n","/* eslint-disable class-methods-use-this */\nimport { authRefresh } from './api';\nimport { logError } from './sentry';\nimport { ResourceType } from '@/types/resources';\nimport useAddCardInGroupByOrder from '@/utilities/composables/useAddCardInGroupByOrder';\nimport translate from '@/utilities/translate';\nimport constants from '@/utilities/constants';\nimport { store } from '@/store';\nimport { getSprintKey, getSprintListKey } from '@/utilities/sprintKeys';\nimport { fetchCalendarEvents } from '@/utilities/getCalendarIntegration';\n\nclass SocketService {\n constructor({ storeDispatch, storeGetters, route }) {\n this.storeDispatch = storeDispatch;\n this.storeGetters = storeGetters;\n this.route = route;\n this.baseUrl = `${this.storeGetters.getRoutes.socket}/${this.storeGetters.getTeamID}/websockets/connect`;\n this.authExpired = false;\n this.openStateTimeout = null;\n this.subscriptions = {\n body: {\n subscribe: {\n agents: [],\n projects: [],\n boards: [],\n sprints: [],\n cards: [],\n },\n unsubscribe: {\n agents: [],\n projects: [],\n boards: [],\n sprints: [],\n cards: [],\n },\n unsubscribe_all: false,\n },\n };\n this.connect();\n }\n\n waitForConnection(callback, interval = 2000) {\n if (this.ws.readyState === 1) {\n this.openStateTimeout = null;\n clearInterval(this.openStateTimeout);\n callback();\n } else {\n this.openStateTimeout = setTimeout(() => {\n this.waitForConnection(callback, interval);\n }, interval);\n }\n }\n\n send(data) {\n this.waitForConnection(() => {\n this.ws.send(JSON.stringify(data));\n });\n }\n\n connect() {\n this.ws = new WebSocket(this.baseUrl);\n this.ws.onopen = this.onOpen;\n this.ws.onmessage = this.onMessage;\n this.ws.onerror = this.onError;\n this.ws.onclose = this.onClose;\n }\n\n disconnect() {\n this.ws.close();\n }\n\n onOpen = () => {\n this.storeDispatch('setSocketConnected', true);\n if (this.authExpired) {\n this.resubscribe();\n this.authExpired = false;\n }\n };\n\n onMessage = (event) => {\n const data = JSON.parse(event.data);\n if (data.same_user) return;\n switch (data.topic) {\n case 'card_archived':\n case 'card_unarchived':\n this.handleCardArchivedRestored(data.body);\n break;\n case 'resource_created':\n this.handleResourceCreated(data.body);\n break;\n case 'resource_updated':\n this.handleResourceUpdated(data.body);\n break;\n case 'resource_deleted':\n this.handleResourceDeleted(data.body);\n break;\n case 'card_moved':\n this.handleCardMoved(data.body);\n break;\n case 'page_moved':\n this.handlePageMoved(data.body);\n break;\n case 'board_moved':\n this.handleBoardMoved(data.body);\n break;\n case 'resource_archived':\n this.handleResourceArchived(data.body);\n break;\n default:\n break;\n }\n };\n\n // resource type should be: 'agents' 'projects', 'boards', 'sprints' or 'cards'\n subscribe(resourceType, id) {\n const subscribedList = this.subscriptions.body.subscribe[resourceType];\n const resourceIndex = subscribedList.indexOf(id);\n if (resourceIndex !== -1) return;\n this.subscriptions.topic = 'subscribe';\n subscribedList.push(id);\n this.send(this.subscriptions);\n this.clearUnsubscribeResources();\n }\n\n clearUnsubscribeResources() {\n this.subscriptions.body.unsubscribe = {\n agents: [],\n projects: [],\n boards: [],\n sprints: [],\n cards: [],\n };\n }\n\n // used for resubscribing to resources after auth expires\n resubscribe() {\n this.subscriptions.topic = 'subscribe';\n this.clearUnsubscribeResources();\n this.subscriptions.body.unsubscribe_all = false;\n this.send(this.subscriptions);\n }\n\n unsubscribe(resourceType, id) {\n this.subscriptions.topic = 'subscribe';\n // add to unsubscribe\n this.subscriptions.body.unsubscribe[resourceType].push(id);\n\n // remove from subscribed\n if (this.subscriptions.body.subscribe[resourceType].length > 0) {\n const index = this.subscriptions.body.subscribe[resourceType].findIndex((s) => s === id);\n if (index > -1) {\n this.subscriptions.body.subscribe[resourceType].splice(index, 1);\n }\n }\n\n this.send(this.subscriptions);\n this.clearUnsubscribeResources();\n }\n\n /**\n * @param {string} resourceType - gents, projects, boards, cards\n * @param {Array} resourceIds - list of resource ids to add or remove\n * @param {string} addKey - key to add resource to\n * @param {string} removeKey - key to remove resource from\n * @returns {void}\n * @memberof SocketService\n * @description add or remove resource from subscribe or unsubscribe list\n */\n\n addRemoveResource(\n resourceType,\n resourceIds = [],\n addKey = 'subscribe',\n removeKey = 'unsubscribe'\n ) {\n const addList = this.subscriptions.body[addKey][resourceType] || [];\n const removeList = this.subscriptions.body[removeKey][resourceType] || [];\n\n resourceIds.forEach((resourceId) => {\n const resourceIndex = addList.indexOf(resourceId);\n if (resourceIndex === -1) {\n addList.push(resourceId);\n }\n if (removeList.length > 0) {\n const index = removeList.indexOf(resourceId);\n if (index > -1) {\n removeList.splice(index, 1);\n }\n }\n });\n }\n\n /**\n * @param {string} resourceType - projects, boards, cards\n * @param {Array} subscribeTo - list of resource ids to subscribe to\n * @param {Array} unsubscribeFrom - list of resource ids to unsubscribe from\n */\n updateSubscriptions(resourceType, subscribeTo = [], unsubscribeFrom = []) {\n this.subscriptions.topic = 'subscribe';\n\n this.addRemoveResource(resourceType, subscribeTo);\n this.addRemoveResource(resourceType, unsubscribeFrom, 'unsubscribe', 'subscribe');\n\n this.send(this.subscriptions);\n this.clearUnsubscribeResources();\n }\n\n onError(event) {\n logError(event);\n }\n\n handleAuthRefresh() {\n // send refresh request\n authRefresh()\n .then(() => {\n // reconnect to socket service\n this.connect();\n this.storeDispatch('setSocketConnected', true);\n this.storeDispatch('callReconnectionCallbacks');\n })\n .catch(() => {\n // do not set socket connected to true when auth refresh fails\n });\n }\n\n onClose = (event) => {\n this.storeDispatch('setSocketConnected', false);\n if (event.reason === 'auth expired') {\n this.authExpired = true;\n this.handleAuthRefresh();\n return;\n }\n\n // unexpected websocket close error\n if (event.code === 1006) {\n this.connect();\n this.resubscribe();\n this.storeDispatch('setSocketConnected', true);\n this.storeDispatch('callReconnectionCallbacks');\n }\n };\n\n handleResourceCreated(data) {\n switch (data.resource_type) {\n case ResourceType.AgentPromptIteration:\n this.storeDispatch('handleAgentPromptIteration', data.resource);\n break;\n case 'project':\n this.storeDispatch('localAddProjectToTeamProjects', data.resource);\n break;\n case ResourceType.Card:\n this.storeDispatch('handleCardCreated', {\n listId: data.resource.list_id,\n card: { ...data.resource },\n });\n break;\n case ResourceType.Board:\n this.storeDispatch('handleBoardCreated', {\n board: { ...data.resource },\n });\n break;\n case 'page':\n this.storeDispatch('handlePageCreated', {\n page: { ...data.resource },\n });\n break;\n case ResourceType.Sprint:\n this.storeDispatch('postFetchSprint', { ...data.resource });\n break;\n case ResourceType.GoogleCalendarEvent:\n fetchCalendarEvents(store);\n break;\n default:\n break;\n }\n }\n\n handleResourceUpdated(data) {\n switch (data.resource_type) {\n case ResourceType.Subscription:\n this.handleSubscriptionUpdated(data);\n break;\n case ResourceType.Project:\n if (data.changes.length > 0) {\n this.storeDispatch('localUpdateProject', { id: data.resource_id, changes: data.changes });\n }\n break;\n case ResourceType.Card:\n this.storeDispatch('localUpdateCard', {\n cardId: data.resource_id,\n listId: data.hints.list_id,\n projectId: data.hints.project_id,\n changes: data.changes,\n });\n break;\n case ResourceType.Sprint:\n this.handleSprintUpdated(data);\n break;\n default:\n break;\n }\n }\n\n handleResourceDeleted(data) {\n switch (data.resource_type) {\n case ResourceType.Project:\n this.storeDispatch('addToSocketDeletedProjects', data.resource_id);\n this.storeDispatch('localRemoveProject', data.resource_id);\n break;\n case ResourceType.Board:\n this.handleBoardDeleted(data);\n break;\n case ResourceType.Page:\n this.handlePageDeleted(data);\n break;\n case ResourceType.Card:\n this.handleCardDeleted(data);\n break;\n default:\n break;\n }\n }\n\n handleSubscriptionUpdated(data) {\n const planIdChange = data.changes.find((change) => change.path.includes('plan_id'));\n if (planIdChange) {\n this.storeDispatch('getAllTeamFeatures');\n if (planIdChange.to !== 'free') {\n this.storeDispatch('addUiNotification', {\n icon: 'gift',\n message: translate('upgradedWorkspace'),\n duration: -1,\n dismissible: true,\n dismissCallback: () => window.location.reload(),\n labels: [\n {\n text: translate('reload'),\n type: constants.uiNotificationElements.button,\n callback: () => window.location.reload(),\n buttonStyle: 'attention',\n },\n ],\n id: 'plan-upgrade',\n });\n }\n }\n }\n\n handleSprintUpdated(data) {\n this.storeDispatch('localUpdateSprintInProject', {\n id: data.resource_id,\n changes: data.changes,\n });\n }\n\n handleCardMoved(data) {\n const { addCardInGroupByOrder, removeCardFromGroupByOrder } = useAddCardInGroupByOrder(store);\n const { card } = data;\n\n const originalListId = this.getListId(\n card.project_id,\n data.original_sprint_id,\n data.original_list_id\n );\n const destinationListId = this.getListId(\n card.project_id,\n data.destination_sprint_id,\n data.destination_list_id\n );\n const originalBoardId = this.getBoardId(\n data.original_project_id,\n data.original_sprint_id,\n data.original_board_id\n );\n const destinationBoardId = this.getBoardId(\n data.destination_project_id,\n data.destination_sprint_id,\n data.destination_board_id\n );\n\n removeCardFromGroupByOrder(card);\n addCardInGroupByOrder(card);\n\n this.storeDispatch('moveCardHandler', {\n cardModel: card,\n cardId: data.card_id,\n destinationProjectId: data.destination_project_id,\n destinationBoardId,\n destinationListId,\n destinationPosition: data.destination_position,\n originalProjectId: data.original_project_id,\n originalBoardId,\n originalListId,\n originalPosition: data.original_position,\n route: this.route,\n });\n }\n\n getListId(projectId, sprintId, listId) {\n return sprintId !== '' ? getSprintListKey(projectId, sprintId, listId) : listId;\n }\n\n getBoardId(projectId, sprintId, boardId) {\n return sprintId !== '' ? getSprintKey(projectId, sprintId) : boardId;\n }\n\n handlePageMoved(data) {\n this.storeDispatch('movePageHandler', {\n destinationProjectId: data.destination_project.id,\n originalProjectId: data.original_project.id,\n destinationPages: data.destination_project.pages,\n originalPages: data.original_project.pages,\n destinationPageOrder: data.destination_project.page_order,\n originalPageOrder: data.original_project.page_order,\n });\n }\n\n handleBoardMoved(data) {\n this.subscribe('projects', data.destination_project.id);\n this.storeDispatch('moveBoardHandler', {\n destinationProjectId: data.destination_project.id,\n originalProjectId: data.original_project.id,\n destinationBoardOrder: data.destination_project.board_order,\n originalBoardOrder: data.original_project.board_order,\n boardId: data.board_id,\n });\n }\n\n handleCardArchivedRestored(body) {\n const card = body.card;\n this.storeDispatch('localUpdateCardField', {\n cardId: card.id,\n fieldName: 'archived',\n fieldValue: card.archived || false,\n });\n if (card.archived) {\n const listCards = this.storeGetters.getListCards[card.list_id];\n const index = listCards.findIndex((c) => c === card.id);\n if (index > -1) {\n listCards.splice(index, 1);\n const listCardsObj = {};\n listCardsObj[card.list_id] = listCards;\n this.storeDispatch('setListCards', listCardsObj || {});\n }\n } else {\n this.storeDispatch('addCardToListCards', {\n listId: card.list_id,\n cardId: card.id || card.card_id || '',\n });\n }\n }\n\n handleCardDeleted(data) {\n const card = data.card;\n\n this.storeDispatch('removeCardFromCards', card.id);\n this.storeDispatch('removeCardFromListCards', {\n listId: card.list_id,\n cardId: card.id,\n });\n this.storeDispatch('removeCardFromGroupByBoard', {\n boardId: card.board_id,\n card: card,\n });\n\n const viewResult = this.storeGetters.getViewResults;\n const viewCardIndex = viewResult.findIndex((c) => c.id === card.id);\n if (viewCardIndex > -1) {\n viewResult.splice(viewCardIndex, 1);\n this.storeDispatch('setViewResults', viewResult);\n this.storeDispatch('currentViewTotalCount', viewResult.length);\n }\n\n this.storeDispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: { id: card.id, type: data.resource_type },\n teamId: this.storeGetters.getTeamID,\n });\n\n const isCardDisplayed = this.storeGetters.getIsCardDisplayed(card.id);\n if (isCardDisplayed) {\n this.storeDispatch('removeDisplayedCardsByField', {\n field: 'id',\n value: card.id,\n });\n\n const isOnlyCardDisplayed = this.storeGetters.getDisplayedCards.length === 1;\n if (isOnlyCardDisplayed) {\n this.storeDispatch('itemNotFound', true);\n }\n }\n }\n\n handlePageDeleted(data) {\n const page = data.page;\n const pageFromTree = this.storeGetters.getProjectPagesTree(page.project_id)[page.id];\n\n this.storeDispatch('localRemovePageFromPageOrder', {\n projectId: page.project_id,\n pageId: page.id,\n });\n this.storeDispatch('localRemovePagesFromTree', {\n projectId: page.project_id,\n pages: [pageFromTree],\n });\n this.storeDispatch('removeProjectPage', { pageId: page.id, projectId: page.project_id });\n this.storeDispatch('removePage', page.id);\n\n this.storeDispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: { id: page.id, type: data.resource_type },\n teamId: this.storeGetters.getTeamID,\n });\n\n const openedPage = this.storeGetters.getPage;\n if (openedPage.id === page.id) {\n this.storeDispatch('itemNotFound', true);\n }\n }\n\n handleBoardDeleted(data) {\n const board = data.board;\n\n const flatBoards = this.storeGetters.getFlatBoards;\n if (flatBoards?.hasOwnProperty(board.id)) {\n delete flatBoards[board.id];\n }\n const boardsArray = Object.values(flatBoards);\n this.storeDispatch('setFlatBoards', boardsArray);\n\n this.storeDispatch('addBoardInBoards', { id: `${board.id}_notFound`, notFound: true });\n\n this.storeDispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: { id: board.id, type: data.resource_type },\n teamId: this.storeGetters.getTeamID,\n });\n\n const currentBoardId = this.storeGetters.currentBoardId;\n if (currentBoardId === board.id) {\n this.storeDispatch('itemNotFound', true);\n }\n }\n\n handleResourceArchived(data) {\n switch (data.resource_type) {\n case ResourceType.Board:\n this.storeDispatch('updateBoardPropertyInBoards', {\n boardId: data.resource_id,\n propertyName: 'archived',\n value: data.archived,\n });\n break;\n case ResourceType.Page:\n this.storeDispatch('localUpdatePageProp', {\n pageId: data.resource_id,\n propertyName: 'archived',\n value: data.archived,\n });\n break;\n case ResourceType.Team:\n this.storeDispatch('logOut');\n break;\n default:\n break;\n }\n }\n}\n\nexport default SocketService;\n","// check if the device is an apple device\nexport const checkIsApple = () => {\n return /Mac|iPod|iPhone|iPad/.test(navigator.userAgent);\n};\n","import { reactive } from 'vue';\n\nexport const globalState = reactive({\n memberHoverPreviewShown: false,\n memberHoverTippyInstance: null,\n currentGroupAvatarId: null,\n currentGroupAvatarTimeout: null,\n});\n","export enum MyWorkTabId {\n Assigned = 'assigned',\n Created = 'created',\n}\n\nexport enum EpicTabId {\n Details = 'details',\n Cards = 'cards',\n}\n\nexport enum NoteTabId {\n Original = 'original',\n Enhanced = 'enhanced',\n Transcript = 'transcript',\n}\n\nexport type TabDropdownOptions = {\n items?: any;\n selectedItem?: any;\n title?: string;\n events?: any;\n};\n\nexport type Tab = {\n id: MyWorkTabId | EpicTabId | NoteTabId;\n label: string;\n icon?: string;\n disabled?: boolean;\n selected?: boolean;\n dropdownOptions?: TabDropdownOptions;\n};\n","import { userHashColor } from '@/utilities/composables/useUserHashColor';\nimport generateSrcUrl from '@/utilities/generateSrcUrl';\n\nexport default {\n computed: {\n userId() {\n return this.member.id || this.member.user_id || this.member.invitee_user_id || '';\n },\n storeMember() {\n return this.$store.getters.getMemberById(this.userId);\n },\n hidden() {\n return this.isGuestRole && Object.keys(this.storeMember).length === 0;\n },\n hiddenStyle() {\n return {\n backgroundColor: this.member.color ?? userHashColor(this.userId),\n maskPosition: 'center',\n };\n },\n memberInTeamMembers() {\n if (this.hidden) return {};\n return {\n ...this.storeMember,\n color: this.storeMember.color ?? userHashColor(this.storeMember),\n };\n },\n memberInitials() {\n if (this.hidden) return '';\n const { first_name, last_name, display_name, email } = this.memberInTeamMembers;\n const name =\n first_name || last_name || display_name || email || this.member.invitee_email || '';\n return name.substring(0, 1).toUpperCase();\n },\n fallbackStyle() {\n if (this.hidden)\n return {\n borderColor: `${this.member.color ?? userHashColor(this.userId)} !important`,\n backgroundColor: 'var(--background)',\n };\n const { thumbnail_image, profile_image } = this.memberInTeamMembers;\n const img = thumbnail_image || profile_image;\n return {\n backgroundColor: this.memberInTeamMembers.color || '#212121',\n ...(img && {\n backgroundImage: `url(\"${generateSrcUrl(img, 48, 48, true)}\")`,\n backgroundPosition: 'center',\n }),\n ...(this.showUserColor && {\n border: `2px solid ${this.memberInTeamMembers.color}`,\n }),\n };\n },\n memberColor() {\n return this.showUserColor ? this.memberInTeamMembers.color : '';\n },\n },\n};\n","import { getSprintKey } from '@/utilities/sprintKeys';\n\nexport default {\n computed: {\n listOfViewResults() {\n return this.$store.getters.getListOfViewResults;\n },\n currentViewResultsCount() {\n return this.$store.getters.getCurrentViewTotalCount;\n },\n cardCountLabel() {\n const cardLabel = this.translate(\n this.currentViewResultsCount === 1 ? 'card' : 'cards'\n ).toLowerCase();\n return this.isMobile && this.$route.name === this.$constants.routeNames.view ? '' : cardLabel;\n },\n },\n\n methods: {\n preloadNewViewResults(id, card_filters = this.$store.getters.getViewFilters) {\n if (id in this.listOfViewResults) return;\n\n this.fetchNewViewResults(card_filters).then(({ cards, count }) => {\n this.localAddViewResultsToList({\n cards,\n count,\n id,\n });\n cards.forEach((card) => {\n this.postFetchViewResults(card);\n });\n });\n },\n\n preloadViewResults(viewId) {\n if (viewId in this.listOfViewResults) return;\n\n this.fetchViewResults(viewId).then(({ cards, count }) => {\n this.localAddViewResultsToList({\n cards,\n count,\n id: viewId,\n });\n cards.forEach((card) => {\n this.postFetchViewResults(card);\n });\n });\n },\n\n fetchNewViewResults(card_filters = this.$store.getters.getViewFilters) {\n return this.$store.dispatch('fetchNewViewResults', {\n card_filters,\n type: 'card',\n });\n },\n\n fetchViewResults(viewId) {\n return this.$store.dispatch('fetchViewResults', viewId);\n },\n\n setViewResults({ cards, count }) {\n this.$store.dispatch('setViewResults', cards);\n this.$store.dispatch('currentViewTotalCount', count);\n },\n\n localViewResults(id) {\n return this.$store.getters.getViewResultsFromList(id) || {};\n },\n\n setViewResultsFromLocal(id) {\n const viewToSelect = [\n ...this.$store.getters.getPublicViews,\n ...this.$store.getters.getPrivateViews,\n ].find((view) => view.id === id);\n if (viewToSelect) this.$store.dispatch('setSelectedView', viewToSelect);\n\n const { cards = [], count = 0 } = this.localViewResults(id);\n this.setViewResults({ cards, count });\n },\n\n localAddViewResultsToList(payload) {\n this.$store.dispatch('localAddViewResultsToList', payload);\n },\n\n postFetchViewResults(card) {\n this.$store.dispatch('addCardToCards', { card });\n if (card.sprint_id) {\n this.fetchSprint(card.sprint_id, card.project_id);\n return;\n }\n this.fetchBoard(card.board_id);\n },\n\n fetchBoard(board_id) {\n const flatBoard = this.$store.getters.getFlatBoards[board_id] || {};\n if (!this.$isBoardFullyLoaded(flatBoard)) {\n this.$store.dispatch('fetchBoard', { boardId: board_id }).then(({ board }) => {\n this.fetchTags(board.project_id);\n });\n }\n },\n\n fetchSprint(sprintId, projectId) {\n const sprintKey = getSprintKey(projectId, sprintId);\n const sprint = this.$store.getters.getFlatBoards[sprintKey] || {};\n if (this.$isBoardFullyLoaded(sprint, true)) return;\n this.$store.dispatch('getSprint', { sprintId, projectId });\n },\n\n fetchTags(project_id) {\n if (!this.$store.getters.projectTags[project_id]) {\n this.$store.dispatch('fetchTags', { projectId: project_id });\n }\n },\n },\n};\n","export default {\n data() {\n return {\n // refresh variables\n refreshing: false,\n registration: null,\n updateExists: false,\n };\n },\n\n created() {\n // Listen for our custom event from the SW registration\n document.addEventListener('swUpdated', this.updateAvailable, { once: true });\n },\n\n methods: {\n // Store the SW registration so we can send it a message\n // We use `updateExists` to control whatever alert, toast, dialog, etc we want to use\n // To alert the user there is an update they need to refresh for\n updateAvailable(event) {\n this.registration = event.detail;\n this.updateExists = true;\n },\n\n // Called when the user accepts the update\n refreshApp() {\n this.updateExists = false;\n // Make sure we only send a 'skip waiting' message if the SW is waiting\n if (!this.registration || !this.registration.waiting) return;\n\n // Prevent multiple refreshes and attach listener only at this point\n navigator.serviceWorker.addEventListener('controllerchange', () => {\n if (this.refreshing) return;\n this.refreshing = true;\n // Here the actual reload of the page occurs\n window.location.reload();\n });\n\n // send message to SW to skip the waiting and activate the new SW\n this.registration.waiting.postMessage({ type: 'SKIP_WAITING' });\n },\n },\n};\n","const getRandomNumber = (x, y) =>\n Math.trunc(x + (y - x + 1) * (crypto.getRandomValues(new Uint32Array(1))[0] / 2 ** 32)) || 0;\n\nexport default getRandomNumber;\n","import { getCurrentInstance, computed, toRef, Ref } from 'vue';\nimport {\n OnboardingActionType,\n OnboardingActionStatus,\n OnboardingAction,\n} from '@/types/onboardingActions';\nimport constants from '@/utilities/constants';\nimport { Router, RouteLocationNormalized } from 'vue-router';\nimport { Team, User } from '@superthread-com/api';\n\n// ** ONBOARDING ACTIONS - ON CLICK FNs **\n\nconst goToWorkspaceSettingsRoute = (router: Router, route: Ref) => {\n if (constants.settingsWorkspaceRouteName !== route.value.name)\n router.push({\n name: constants.settingsWorkspaceRouteName,\n });\n};\n\nconst goToSettingsRoute = (router: Router, route: Ref) => {\n if (constants.settingsRouteName != route.value.name)\n router.push({\n name: constants.settingsRouteName,\n });\n};\n\nconst goToImportSettingsRoute = (router: Router, route: Ref) => {\n if (constants.settingsImportRouteName != route.value.name)\n router.push({\n name: constants.settingsImportRouteName,\n });\n};\n\nconst goToKeyboardShortcutRoute = (\n router: Router,\n route: Ref,\n dispatch: any\n) => {\n dispatch('completeOnboardingActions', [OnboardingActionType.ViewKeyboardShortcuts]);\n window.open(constants.keyboardShortcutCheatsheetUrl, '_blank');\n};\n\nconst goToNotificationsSettingsRoute = (router: Router, route: Ref) => {\n if (constants.settingsNotificationsRouteName != route.value.name) {\n router.push({\n name: constants.settingsNotificationsRouteName,\n });\n }\n};\n\nconst showQuickCardModal = (dispatch: any) => {\n dispatch('setQuickCard', true);\n};\n\nconst showQuickPageModal = (dispatch: any) => {\n dispatch('setQuickPage', true);\n};\n\nexport default function useOnboardingActions() {\n const _this = getCurrentInstance()?.proxy;\n if (!_this) return;\n\n const { $router } = _this;\n const routeRef = toRef(_this, '$route');\n\n // ** ONBOARDING ACTIONS - MAPS **\n\n const onboardingActionsDataMap = {\n [OnboardingActionType.MentionAnything]: {\n icon: 'at-sign',\n onClick: () => openOnboardingActionsVideoPreview(OnboardingActionType.MentionAnything),\n title: _this.translate(`${OnboardingActionType.MentionAnything}.title`),\n tooltip: _this.translate(`${OnboardingActionType.MentionAnything}.tooltip`),\n },\n [OnboardingActionType.AddChildCard]: {\n icon: 'card-child',\n onClick: () => openOnboardingActionsVideoPreview(OnboardingActionType.AddChildCard),\n title: _this.translate(`${OnboardingActionType.AddChildCard}.title`),\n tooltip: _this.translate(`${OnboardingActionType.AddChildCard}.tooltip`),\n },\n [OnboardingActionType.CreateCard]: {\n icon: 'new-card-icon',\n onClick: () => showQuickCardModal(_this.$store.dispatch),\n title: _this.translate(`${OnboardingActionType.CreateCard}.title`),\n tooltip: _this.translate(`${OnboardingActionType.CreateCard}.tooltip`),\n },\n [OnboardingActionType.CreatePage]: {\n icon: 'page',\n onClick: () => showQuickPageModal(_this.$store.dispatch),\n title: _this.translate(`${OnboardingActionType.CreatePage}.title`),\n tooltip: _this.translate(`${OnboardingActionType.CreatePage}.tooltip`),\n },\n [OnboardingActionType.AddWorkspaceLogo]: {\n icon: 'workspace',\n onClick: () => goToWorkspaceSettingsRoute($router, routeRef),\n title: _this.translate(`${OnboardingActionType.AddWorkspaceLogo}.title`),\n tooltip: _this.translate(`${OnboardingActionType.AddWorkspaceLogo}.tooltip`),\n },\n [OnboardingActionType.CustomiseYourProfile]: {\n icon: 'user',\n onClick: () => goToSettingsRoute($router, routeRef),\n title: _this.translate(`${OnboardingActionType.CustomiseYourProfile}.title`),\n tooltip: _this.translate(`${OnboardingActionType.CustomiseYourProfile}.tooltip`),\n },\n [OnboardingActionType.ImportTasks]: {\n icon: 'upload-cloud',\n onClick: () => goToImportSettingsRoute($router, routeRef),\n title: _this.translate(`${OnboardingActionType.ImportTasks}.title`),\n tooltip: _this.translate(`${OnboardingActionType.ImportTasks}.tooltip`),\n },\n [OnboardingActionType.ViewKeyboardShortcuts]: {\n icon: 'mac-command',\n onClick: () => goToKeyboardShortcutRoute($router, routeRef, _this.$store.dispatch),\n title: _this.translate(`${OnboardingActionType.ViewKeyboardShortcuts}.title`),\n tooltip: _this.translate(`${OnboardingActionType.ViewKeyboardShortcuts}.tooltip`),\n },\n [OnboardingActionType.ConnectSlack]: {\n icon: 'slack',\n onClick: () => goToNotificationsSettingsRoute($router, routeRef),\n title: _this.translate(`${OnboardingActionType.ConnectSlack}.title`),\n tooltip: _this.translate(`${OnboardingActionType.ConnectSlack}.tooltip`),\n },\n } as Record<\n OnboardingActionType,\n { icon: string; onClick: Function; title: string; tooltip: string; extension?: string }\n >;\n\n // ** ONBOARDING ACTIONS METHODS AND COMPUTEDS **\n\n const userCreatedAfterOnboardingActionsRelease = computed(() => {\n const { time_created } = _this.$store.getters.getUser;\n return time_created > constants.onboardingActionsReleaseDate;\n });\n\n const getOnboardingActions = computed((): OnboardingAction[] => {\n return _this.$store.getters.getOnboardingActions;\n });\n\n const getNotDismissedOnboardingActions = computed((): OnboardingAction[] => {\n return getOnboardingActions.value.filter(\n ({ status }) => status !== OnboardingActionStatus.Dismissed\n );\n });\n\n const getNotCompletedOnboardingActions = computed((): OnboardingAction[] => {\n return getOnboardingActions.value.filter(\n ({ status }) => status === OnboardingActionStatus.NotCompleted\n );\n });\n\n // onboarding actions for which completion animation is still on\n const getCompletionRunningOnboardingActions = computed((): OnboardingAction[] => {\n return getNotDismissedOnboardingActions.value.filter(\n ({ animate_completion }) => animate_completion\n );\n });\n\n const getFullyCompletedOnboardingActions = computed((): OnboardingAction[] => {\n return getNotDismissedOnboardingActions.value.filter(\n ({ status }) => status === OnboardingActionStatus.Completed\n );\n });\n\n const dismissOnboardingAction = (type: OnboardingActionType) => {\n _this.$store.dispatch('dismissOnboardingAction', type);\n };\n\n const completeOnboardingActions = (types: OnboardingActionType) => {\n _this.$store.dispatch('completeOnboardingActions', types);\n };\n\n const openOnboardingActionsVideoPreview = (\n type: OnboardingActionType,\n extension: string = 'mp4'\n ) => {\n const url = `${constants.staticVideos}/${type}.${extension}`;\n const id = `${constants.onboardingActionsVideoPrefix}-${type}`;\n _this.$store.dispatch('setPreviewAttachments', [\n {\n url,\n type: 'video',\n name: onboardingActionsDataMap[type].title,\n id,\n },\n ]);\n _this.$store.dispatch('setPreviewAttachmentId', {\n attachmentId: id,\n });\n };\n\n const team = computed((): Team => {\n return _this.$store.getters.getTeam;\n });\n\n const user = computed((): User => {\n return _this.$store.getters.getUser;\n });\n\n const teamLogo = computed(() => {\n return team?.value?.logo?.src ?? null;\n });\n\n const userProfileImage = computed(() => {\n return user?.value?.profile_image ?? null;\n });\n\n // skips onboarding actions that were already completed\n const shouldSkipOnboardingAction = (type: OnboardingActionType) => {\n if (type === OnboardingActionType.AddWorkspaceLogo && teamLogo.value) return true;\n if (type === OnboardingActionType.CustomiseYourProfile && userProfileImage.value) return true;\n return false;\n };\n\n const getOnboardingAction = (\n accumulator: OnboardingAction[],\n type: OnboardingActionType,\n onboardingActionsMap: any // onboarding actions from response\n ) => {\n // don't show if already set\n\n if (shouldSkipOnboardingAction(type)) return accumulator;\n\n //if any action is not returned in response, populate it with default not completed state\n const onboardingAction = {\n type,\n status: onboardingActionsMap[type]?.status ?? OnboardingActionStatus.NotCompleted,\n };\n\n accumulator.push(onboardingAction);\n return accumulator;\n };\n\n const fetchOnboardingActions = () => {\n if (!userCreatedAfterOnboardingActionsRelease.value) return;\n\n _this.$store\n .dispatch('fetchOnboardingActions')\n .then((onboarding_actions: OnboardingAction[]) => {\n const onboardingActionsMap = onboarding_actions.reduce((accumulator: any, item) => {\n accumulator[item.type] = { ...item };\n return accumulator;\n }, {});\n\n const onboardingActions = Object.values(OnboardingActionType).reduce(\n (accumulator: OnboardingAction[], type) =>\n getOnboardingAction(accumulator, type, onboardingActionsMap),\n []\n );\n _this.$store.dispatch('setOnboardingActions', onboardingActions);\n });\n };\n // ** GET STARTED SIDEBAR SECTION **\n\n const getGetStartedExpanded = computed((): boolean => {\n return _this.$store.getters.getGetStartedExpanded;\n });\n\n const toggleGetStartedExpanded = () => {\n _this.$store.dispatch('setGetStartedExpanded', !getGetStartedExpanded.value);\n };\n\n const setGetStartedExpandedFromLS = () => {\n const isExpanded = JSON.parse(localStorage.getItem('getStartedExpanded') ?? 'null');\n if (isExpanded !== null) {\n _this.$store.dispatch('setGetStartedExpanded', isExpanded);\n }\n };\n\n const getGetStartedShowAll = computed(() => {\n return _this.$store.getters.getGetStartedShowAll;\n });\n\n const toggleGetStartedShowAll = () => {\n _this.$store.dispatch('setGetStartedShowAll', !getGetStartedShowAll.value);\n };\n\n const setGetStartedShowAllFromLS = () => {\n const showAll = JSON.parse(localStorage.getItem('getStartedShowAll') ?? 'null');\n if (showAll !== null) {\n _this.$store.dispatch('setGetStartedShowAll', showAll);\n }\n };\n\n // to be used on dev/staging only\n const setAllAsNotCompleted = (e: KeyboardEvent) => {\n if (e.code !== 'KeyN' || !e.ctrlKey || !e.altKey) return;\n\n _this.$store.dispatch(\n 'setAsNotCompletedOnboardingAction',\n getOnboardingActions.value.map((a) => {\n return {\n type: a.type,\n status: OnboardingActionStatus.NotCompleted,\n };\n })\n );\n };\n\n return {\n OnboardingActionType,\n onboardingActionsDataMap,\n getOnboardingActions,\n getNotDismissedOnboardingActions,\n getNotCompletedOnboardingActions,\n getCompletionRunningOnboardingActions,\n getFullyCompletedOnboardingActions,\n dismissOnboardingAction,\n completeOnboardingActions,\n fetchOnboardingActions,\n userCreatedAfterOnboardingActionsRelease,\n openOnboardingActionsVideoPreview,\n\n toggleGetStartedExpanded,\n getGetStartedExpanded,\n setGetStartedExpandedFromLS,\n\n toggleGetStartedShowAll,\n getGetStartedShowAll,\n setGetStartedShowAllFromLS,\n setAllAsNotCompleted,\n teamLogo,\n userProfileImage,\n getOnboardingAction,\n };\n}\n","import { User } from '../../types';\nimport constants from '@/utilities/constants';\n\nconst userHashColor = (user: User | string) => {\n const id: string = typeof user === 'string' ? user : (user?.user_id ?? user?.id);\n\n if (!id) {\n return constants.userColors[0];\n }\n\n const colorIndex =\n id.split('').reduce((prev, curr) => prev + curr.charCodeAt(0), 0) % constants.userColors.length;\n\n return constants.userColors[colorIndex];\n};\n\nconst useUserHashColor = () => userHashColor;\n\nexport { userHashColor, useUserHashColor };\n","import emitter from 'tiny-emitter/instance';\n\ntype EventHandler = (...args: any[]) => void;\n\nexport default {\n $on(event: string, handler: EventHandler): void {\n emitter.on(event, handler);\n },\n $once(event: string, handler: EventHandler): void {\n emitter.once(event, handler);\n },\n $off(event: string, handler?: EventHandler): void {\n emitter.off(event, handler);\n },\n $emit(event: string, ...args: any[]): void {\n emitter.emit(event, ...args);\n },\n};\n","export enum groupByOption {\n status = 'status',\n assignee = 'assignee',\n // owner = 'owner',\n tag = 'tag',\n priority = 'priority',\n space = 'space',\n // board = 'board',\n statusType = 'statusType',\n none = 'none',\n epic = 'epic',\n}\n","export function browserStorageSetItem(itemName: string, value: any): void {\n const valueToStore = typeof value === 'string' ? value : JSON.stringify(value);\n window?.localStorage.setItem(itemName, valueToStore);\n}\n\nexport function browserStorageGetItem(\n itemName: string & (T extends void ? 'Specify return type of the function call' : string)\n): T | null {\n if (typeof window === 'undefined') return null;\n const item = window?.localStorage.getItem(itemName);\n\n if (item === null || item === 'undefined') {\n return null;\n }\n\n try {\n return JSON.parse(item) as T;\n } catch (_) {\n // localStorage.getItem() returns string always,\n // but in this case we want to say that we know it is NOT string\n return item as unknown as T;\n }\n}\n\nexport function browserStorageRemoveItem(key: string): void {\n if (typeof window === 'undefined') return;\n window?.localStorage.removeItem(key);\n}\n\n/**\n * Function is used to get/set item from/to localStorage, where item is an object\n * @param itemName - name of the item to get/set from/to localStorage\n * @param key - key of the item to set in localStorage\n * @param value - value to set\n */\nexport function browserStorageGetAndSetItem(itemName: string, key: string, value: any): void {\n if (typeof window === 'undefined') return;\n const item: any = browserStorageGetItem(itemName) || {};\n item[key] = value;\n browserStorageSetItem(itemName, item);\n}\n\n/**\n * Function is used to rename an item in localStorage\n * @param oldKey - old key of the item to rename\n * @param newKey - new key of the item\n * @returns void\n */\nexport function browserStorageRenameItem(oldKey: string, newKey: string): void {\n if (typeof window === 'undefined') return;\n const item: any = browserStorageGetItem(oldKey) || {};\n browserStorageSetItem(newKey, item);\n browserStorageRemoveItem(oldKey);\n}\n\n/**\n * Function is used to remove multiple items from localStorage by keys\n * @param keys - array of keys to remove\n * @returns void\n */\nexport function removeMultipleItemsByKeys(keys: string[]): void {\n if (typeof window === 'undefined') return;\n keys.forEach((key) => {\n window?.localStorage.removeItem(key);\n });\n}\n\n/**\n * Function is used to remove multiple items from localStorage by prefix\n * @param prefix - prefix of the items to remove\n * @returns void\n */\nexport function removeMultipleItemsByPrefix(prefix: string): void {\n if (typeof window === 'undefined') return;\n Object.keys(window.localStorage).forEach((key) => {\n if (key.startsWith(prefix)) {\n window?.localStorage.removeItem(key);\n }\n });\n}\n\n/**\n * Function is used to remove multiple items from localStorage by array of prefixes\n * @param prefixes - array of prefixes of the items to remove\n * @returns void\n * */\nexport function removeMultipleItemsByArrayPrefix(prefixes: string[]): void {\n if (typeof window === 'undefined') return;\n Object.keys(window.localStorage).forEach((key) => {\n prefixes.forEach((prefix) => {\n if (key.startsWith(prefix)) {\n window?.localStorage.removeItem(key);\n }\n });\n });\n}\n","import { CardStatus } from '@superthread-com/api';\n\nconst cardStatusType = {\n Backlog: 'backlog',\n Rolledover: 'rolledover',\n ...CardStatus,\n} as const;\n\nexport default cardStatusType;\n","import { useStore } from 'vuex';\n\nconst POLL_INTERVAL = 2500;\nconst RECENT_NOTES_COUNT = 5;\n\nexport default function useNotesPoll() {\n const store = useStore();\n\n const fetchNotes = async () => {\n return store.dispatch('fetchNotesForPoll');\n };\n\n const getRecentNotes = (notes: any) => {\n return Object.values(notes)\n .sort((a: any, b: any) => b.time_created - a.time_created)\n .slice(0, RECENT_NOTES_COUNT);\n };\n\n // Fetchs notes and sends recent *n* notes to electron process to be displayed in tray menu.\n const setNotes = async () => {\n const notes = await fetchNotes();\n\n //@ts-ignore\n const electronAPI = window.electron;\n if (electronAPI?.send) {\n electronAPI.send('send-notes-channel', getRecentNotes(notes));\n }\n };\n\n // Setups notes polling interval.\n const setupNotesPoll = async () => {\n await setNotes();\n setInterval(setNotes, POLL_INTERVAL);\n };\n\n return {\n getRecentNotes,\n setNotes,\n setupNotesPoll,\n };\n}\n","export default [\n {\n id: 'slack',\n icon: 'slack',\n name: 'Slack',\n bundleID: 'com.tinyspeck.slackmacgap',\n processName: 'Slack',\n },\n {\n id: 'teams',\n icon: 'teams',\n name: 'Teams',\n bundleID: 'com.microsoft.teams2',\n // msteams triggers meeting notification twice as it has 2 separate processes using mic/cam\n // we have child bundle id to not generate notification for helpers mic/cam usage\n childBundleID: 'com.microsoft.teams2',\n processName: 'Microsoft Teams',\n },\n {\n id: 'zoom',\n icon: 'zoom',\n name: 'Zoom',\n bundleID: 'us.zoom.xos',\n processName: 'zoom.us',\n },\n {\n id: 'webex',\n icon: 'webex',\n name: 'Webex',\n bundleID: 'Cisco-Systems.Spark',\n processName: 'Webex',\n },\n {\n id: 'facetime',\n icon: 'facetime',\n name: 'Facetime',\n bundleID: 'com.apple.avconferenced',\n processName: 'avconferenced',\n },\n {\n id: 'whatsapp',\n icon: 'whatsapp',\n name: 'WhatsApp',\n bundleID: 'net.whatsapp.WhatsApp',\n processName: 'WhatsApp',\n },\n {\n id: 'safari',\n icon: 'safari',\n name: 'Safari',\n bundleID: 'com.apple.Safari',\n processName: 'Safari',\n },\n {\n id: 'chrome',\n icon: 'chrome',\n name: 'Chrome',\n bundleID: 'com.google.Chrome',\n processName: 'Google Chrome',\n },\n {\n id: 'firefox',\n icon: 'firefox',\n name: 'Firefox',\n bundleID: 'org.mozilla.firefox',\n processName: 'Firefox',\n },\n {\n id: 'edge',\n icon: 'edge',\n name: 'Edge',\n bundleID: 'com.microsoft.edgemac',\n processName: 'Microsoft Edge',\n },\n];\n","export const isPublicPageApp = () => {\n // @ts-ignore\n if (typeof useRuntimeConfig === 'function') {\n // Nuxt environment\n // @ts-ignore\n return useRuntimeConfig().public.appId === 'public';\n }\n return false;\n};\n","import cardStatusType from '@/types/cardStatusType';\n\ntype StatusKey = (typeof cardStatusType)[keyof typeof cardStatusType];\n\nconst getCardStatus = (status: StatusKey, isEpic: boolean = false) => {\n return getDefaultCardStatuses(isEpic)[status];\n};\n\nconst getDefaultCardStatuses = (isEpic: boolean = false) => {\n return {\n backlog: {\n label: 'Backlog',\n icon: isEpic ? 'hex-16' : 'circle-dotted',\n id: cardStatusType.Backlog,\n color: '#98A2B3',\n },\n committed: {\n label: 'Not started',\n icon: isEpic ? 'hexagon-16' : 'disc',\n id: cardStatusType.Committed,\n color: '#98A2B3',\n },\n started: {\n label: 'In progress',\n icon: isEpic ? 'play-hex-16' : 'play-circle',\n id: cardStatusType.Started,\n color: '#498CF7',\n },\n completed: {\n label: 'Done',\n icon: isEpic ? 'check-hex-16' : 'check-circle',\n id: cardStatusType.Completed,\n color: '#32D583',\n },\n cancelled: {\n label: 'Cancelled',\n icon: isEpic ? 'x-hex-16' : 'x-circle',\n id: cardStatusType.Cancelled,\n color: '#F79009',\n },\n rolledover: {\n label: 'Rolled over',\n icon: 'arrow-right-circle',\n id: cardStatusType.Rolledover,\n color: '#475467',\n },\n };\n};\n\nconst getBoardLists = (isEpic: boolean = false) => {\n return [\n {\n id: getCardStatus(cardStatusType.Backlog, isEpic).id,\n label: getCardStatus(cardStatusType.Backlog, isEpic).label,\n title: 'Backlog',\n behavior: getCardStatus(cardStatusType.Backlog, isEpic).id,\n icon: getCardStatus(cardStatusType.Backlog, isEpic).icon,\n color: getCardStatus(cardStatusType.Backlog, isEpic).color,\n },\n {\n id: getCardStatus(cardStatusType.Committed, isEpic).id,\n label: getCardStatus(cardStatusType.Committed, isEpic).label,\n title: 'To do',\n behavior: getCardStatus(cardStatusType.Committed, isEpic).id,\n icon: getCardStatus(cardStatusType.Committed, isEpic).icon,\n color: getCardStatus(cardStatusType.Committed, isEpic).color,\n },\n {\n id: getCardStatus(cardStatusType.Started, isEpic).id,\n label: getCardStatus(cardStatusType.Started, isEpic).label,\n title: 'Doing',\n behavior: getCardStatus(cardStatusType.Started, isEpic).id,\n icon: getCardStatus(cardStatusType.Started, isEpic).icon,\n color: getCardStatus(cardStatusType.Started, isEpic).color,\n },\n {\n id: getCardStatus(cardStatusType.Completed, isEpic).id,\n label: getCardStatus(cardStatusType.Completed, isEpic).label,\n title: 'Done',\n behavior: getCardStatus(cardStatusType.Completed, isEpic).id,\n icon: getCardStatus(cardStatusType.Completed, isEpic).icon,\n color: getCardStatus(cardStatusType.Completed, isEpic).color,\n },\n {\n id: getCardStatus(cardStatusType.Cancelled, isEpic).id,\n label: getCardStatus(cardStatusType.Cancelled, isEpic).label,\n title: 'Cancelled',\n behavior: getCardStatus(cardStatusType.Cancelled, isEpic).id,\n icon: getCardStatus(cardStatusType.Cancelled, isEpic).icon,\n color: getCardStatus(cardStatusType.Cancelled, isEpic).color,\n },\n ];\n};\n\nconst defaultSprintStatuses = [\n {\n title: getCardStatus(cardStatusType.Committed).label,\n status: getCardStatus(cardStatusType.Committed).id,\n },\n {\n title: getCardStatus(cardStatusType.Started).label,\n status: getCardStatus(cardStatusType.Started).id,\n },\n {\n title: getCardStatus(cardStatusType.Completed).label,\n status: getCardStatus(cardStatusType.Completed).id,\n },\n {\n title: getCardStatus(cardStatusType.Cancelled).label,\n status: getCardStatus(cardStatusType.Cancelled).id,\n },\n {\n title: getCardStatus(cardStatusType.Rolledover).label,\n status: getCardStatus(cardStatusType.Rolledover).id,\n },\n];\n\nexport { getCardStatus, getBoardLists, defaultSprintStatuses, getDefaultCardStatuses };\n","enum QuickResourceType {\n QuickCard = 'quickCard',\n QuickPage = 'quickPage',\n QuickNote = 'quickNote',\n}\n\nenum QuickResourceAction {\n setQuickCard = 'setQuickCard',\n setQuickPage = 'setQuickPage',\n setQuickNote = 'setQuickNote',\n}\n\nconst QuickResourceActions: Record = {\n [QuickResourceType.QuickCard]: QuickResourceAction.setQuickCard,\n [QuickResourceType.QuickPage]: QuickResourceAction.setQuickPage,\n [QuickResourceType.QuickNote]: QuickResourceAction.setQuickNote,\n};\n\nexport { QuickResourceType, QuickResourceAction, QuickResourceActions };\n","import * as Sentry from '@sentry/vue';\nconst isLocalhost = window.location.hostname === 'localhost';\nconst isEnvDevOrLocal = ['dev', 'local'].includes(`${process.env.VUE_APP_ENV}`);\n\nconst initSentry = (vueRouterRef: any, appInstance: any) => {\n if (!isLocalhost && !isEnvDevOrLocal) {\n Sentry.init({\n ...(appInstance ? { app: appInstance } : {}),\n dsn: 'https://c872c89d21344a3bbd8f18732ac6713b@o340344.ingest.sentry.io/5444532',\n integrations: [\n Sentry.browserTracingIntegration({\n ...(vueRouterRef && { router: vueRouterRef }),\n }),\n ],\n tracesSampleRate: 0.8,\n environment: process.env.VUE_APP_ENV,\n });\n }\n};\n\nconst logError = (error: any) => Sentry.captureException(error);\n\nexport { logError, initSentry };\n","import getDashedTitle from '@/utilities/getDashedTitle';\nimport EventBus from '@/utilities/eventBus';\nimport cardStatuses from '@/mixins/cardStatuses';\nimport { ResourceType } from '@/types/resources';\nimport { getCardStatus } from '@/utilities/defaultCardStatuses';\nimport cardStatusType from '@/types/cardStatusType';\n\nexport default {\n mixins: [cardStatuses],\n data() {\n return {\n currentlyViewed: () => ({}),\n recentlyViewedGenItemTimeout: null,\n };\n },\n computed: {\n displayedCards() {\n return this.$store.getters.getDisplayedCards;\n },\n\n gettersAndIconsMap() {\n return {\n [this.$constants.routeNames.view]: {\n getter: () => this.$store.getters.getSelectedView,\n icon: 'view',\n },\n [this.$constants.routeNames.page]: {\n getter: () => this.$store.getters.getPage,\n icon: (page) => page?.icon?.src || 'page',\n iconType: (page) => page?.icon?.type || 'icon',\n },\n [this.$constants.routeNames.board]: {\n getter: () => this.$store.getters.currentBoard,\n icon: 'board',\n },\n [this.$constants.routeNames.space]: {\n getter: () => this.$store.getters.getCurrentProject,\n icon: (project) => project?.icon?.src || '',\n iconType: (project) => project.icon?.type || '',\n },\n [this.$constants.routeNames.boardCard]: {\n getter: (id) => this.$store.getters.getCardById(id),\n icon: (card) => this.cardStatusIcon(card),\n },\n [this.$constants.epicRoute.name]: {\n getter: (id) => this.$store.getters.getCardById(id),\n icon: (epic) => this.cardStatusIcon(epic),\n additionalIcon: (epic) => epic?.icon || { src: this.$constants.epicDefaultIcon },\n },\n [ResourceType.Member]: {\n getter: (id) => this.$store.getters.getMemberById(id),\n },\n [this.$constants.routeNames.note]: {\n getter: (id) => this.$store.getters.getNotes[id],\n icon: 'note',\n iconType: 'icon',\n },\n };\n },\n\n recentlyViewedLS() {\n const currentTeamIdLS = this.teamId ?? localStorage.getItem('currentTeamId');\n return currentTeamIdLS\n ? JSON.parse(localStorage.getItem(`recentlyViewed:${currentTeamIdLS}`) || '[]')\n : [];\n },\n\n teamId() {\n return this.$store.getters.getTeamID;\n },\n\n teamSlug() {\n return this.$store.getters.getTeamSlug;\n },\n\n pages() {\n return this.$store.getters.getPages;\n },\n\n cards() {\n return this.$store.getters.getCards;\n },\n\n boards() {\n return this.$store.getters.getFlatBoards;\n },\n\n notes() {\n return this.$store.getters.getNotes;\n },\n },\n watch: {\n $route: {\n immediate: true,\n handler(newVal) {\n if (newVal.params?.noteId === this.$constants.newNote) return;\n\n this.recentlyViewedGenItemTimeout = setTimeout(() => {\n const id = newVal.params?.userId || newVal.params?.noteId;\n this.generateItemForRecentlyViewedDropdown(newVal.name, newVal.path, id);\n }, 250);\n },\n },\n displayedCards(newVal, oldVal) {\n // check if any elements from oldVal are missing in newVal\n // these elements are newly opened cards\n const diff = newVal.filter((nv) => !oldVal.some((ov) => ov?.id === nv?.id));\n\n for (const newCard of diff) {\n const { title } = this.$store.getters.getCardById(newCard.id);\n const isEpic = newCard.resource_type === ResourceType.Epic;\n const path = isEpic ? this.$constants.epicRoute.path : 'card';\n const routeName = isEpic\n ? this.$constants.epicRoute.name\n : this.$constants.routeNames.boardCard;\n this.generateItemForRecentlyViewedDropdown(\n routeName,\n `/${this.teamSlug}/${path}-${newCard.id}-${getDashedTitle(title)}/`,\n newCard.id\n );\n return;\n }\n\n this.addItemToRecentlyViewedDropdown();\n },\n teamId: {\n handler(newVal) {\n if (!newVal) return;\n this.setRecentlyViewed(this.recentlyViewedLS);\n },\n immediate: true,\n },\n },\n mounted() {\n EventBus.$on('addQuickCardToRecentlyViewed', this.saveQuickCardCreatedToRecentlyViewed);\n EventBus.$on('addQuickPageToRecentlyViewed', this.saveQuickPageCreatedToRecentlyViewed);\n },\n beforeUnmount() {\n EventBus.$off('addQuickCardToRecentlyViewed', this.saveQuickCardCreatedToRecentlyViewed);\n EventBus.$off('addQuickPageToRecentlyViewed', this.saveQuickPageCreatedToRecentlyViewed);\n\n this.setRecentlyViewed([]);\n this.generateItemForRecentlyViewedDropdown(this.$route.name, this.$route.path);\n clearTimeout(this.recentlyViewedGenItemTimeout);\n },\n methods: {\n setRecentlyViewed(payload) {\n this.$store.dispatch('setElectronRecentlyViewed', payload);\n },\n\n cardStatusIcon(card) {\n const currentCardList = this.$store.getters.lists[card.list_id] || null;\n const cardStatus = currentCardList || this.cardStatuses[card.status] || {};\n const isEpic = card.type === ResourceType.Epic;\n\n return (\n (getCardStatus(cardStatus?.behavior, isEpic) || {}).icon ||\n cardStatus.icon ||\n getCardStatus(cardStatusType.Backlog, isEpic).icon ||\n ''\n );\n },\n\n isInvalidItemForRecentlyViewed(item, type) {\n if (!item) return true;\n if (type === ResourceType.Member) return false;\n\n const { id, title, name } = item;\n return (\n !id ||\n (!title &&\n !name &&\n type !== this.$constants.routeNames.page &&\n type !== this.$constants.routeNames.note)\n );\n },\n\n getLabel(item, type) {\n const memberLabel = item.display_name || `${item.first_name} ${item.last_name}`;\n return (\n item.title ||\n item.name ||\n (type === ResourceType.Member && memberLabel) ||\n (type === this.$constants.routeNames.page ? this.translate('pageTitlePlaceholder') : '') ||\n (type === this.$constants.routeNames.note ? this.translate('untitledNote') : '')\n );\n },\n\n generateItemForRecentlyViewedDropdown(type, path, resourceId) {\n // adds the previously stored item to the dropdown\n this.addItemToRecentlyViewedDropdown(this.teamId);\n\n const config = this.gettersAndIconsMap[type];\n if (!config) return;\n\n const item = config.getter(resourceId);\n\n if (this.isInvalidItemForRecentlyViewed(item, type)) return;\n\n const { id, project_id, time_created } = item;\n const label = this.getLabel(item, type);\n\n const configIconType = typeof config.iconType === 'function' ? config.iconType(item) : '';\n\n let icon;\n if ([this.$constants.epicRoute.name, this.$constants.routeNames.boardCard].includes(type)) {\n icon = {\n name: config.icon(item),\n color: item.list_color,\n };\n } else {\n icon = {\n name: typeof config.icon === 'function' ? config.icon(item) : config.icon,\n color: item.icon?.color || '',\n type: item.icon?.type ? item.icon.type : configIconType,\n };\n }\n\n let additionalIcon;\n if (type === this.$constants.epicRoute.name) {\n additionalIcon = config.additionalIcon(item);\n }\n\n const payload = {\n label,\n icon,\n id,\n type,\n path,\n ...(project_id && { project_id }),\n\n // special case icon, currently only used for epics\n ...(additionalIcon && { additionalIcon }),\n\n // special case for members\n ...(type === ResourceType.Member && {\n role: item.role,\n first_name: item.first_name,\n last_name: item.last_name,\n }),\n\n ...(time_created && { time_created }),\n };\n\n // sets the current item to be added later on\n this.currentlyViewed = payload;\n },\n\n addItemToRecentlyViewedDropdown(teamId = this.teamId) {\n if (Object.keys(this.currentlyViewed).length) {\n const { currentlyViewed } = this;\n this.addToElectronRecentlyViewed({ currentlyViewed, teamId });\n this.currentlyViewed = {};\n }\n },\n\n addToElectronRecentlyViewed(payload) {\n if (this.isResourceDeleted(payload.currentlyViewed)) return;\n this.handleNoteTitleChange(payload);\n this.$store.dispatch('addToElectronRecentlyViewed', payload);\n },\n\n isResourceDeleted(currentlyViewed) {\n if (currentlyViewed.type === this.$constants.routeNames.page) {\n return !this.pages[currentlyViewed.id];\n } else if (currentlyViewed.type === this.$constants.routeNames.boardCard) {\n return !this.cards[currentlyViewed.id];\n } else if (currentlyViewed.type === this.$constants.routeNames.board) {\n return this.boards[`${currentlyViewed.id}_notFound`];\n } else if (currentlyViewed.type === this.$constants.routeNames.note) {\n return !this.notes[currentlyViewed.id];\n }\n return false;\n },\n\n handleNoteTitleChange(payload) {\n if (payload.currentlyViewed.type === this.$constants.routeNames.note) {\n const stateNote = this.notes[payload.currentlyViewed.id];\n if (stateNote && stateNote.title !== payload.currentlyViewed.label) {\n payload.currentlyViewed.label = stateNote.title || this.translate('untitledNote');\n }\n }\n },\n\n saveQuickCardCreatedToRecentlyViewed(card) {\n const path = `/${this.teamSlug}/card-${card.id}-${getDashedTitle(card.title)}`;\n const icon = {\n name: this.cardStatusIcon(card),\n color: card.list_color || '',\n };\n const payload = {\n label: card.title,\n path,\n icon,\n type: this.$constants.routeNames.boardCard,\n id: card.id,\n };\n\n this.addToElectronRecentlyViewed({\n currentlyViewed: payload,\n teamId: this.teamId,\n });\n },\n\n saveQuickPageCreatedToRecentlyViewed(page) {\n const label = page.title || this.translate('pageTitlePlaceholder');\n const path = `/${this.teamSlug}/page-${page.id}-${getDashedTitle(label)}`;\n const icon = {\n name: 'page',\n color: '',\n type: '',\n };\n const payload = {\n label,\n path,\n icon,\n type: this.$constants.routeNames.page,\n id: page.id,\n };\n\n this.addToElectronRecentlyViewed({\n currentlyViewed: payload,\n teamId: this.teamId,\n });\n },\n },\n};\n","import { store } from '@/store';\nimport constants from '@/utilities/constants';\n\nexport default [\n {\n path: `/${constants.routeNames.join}`,\n name: constants.routeNames.join,\n component: () =>\n import(\n /* webpackChunkName: \"authentication\" */ '@/components/pages/authentication/StJoin.vue'\n ),\n meta: { requiresAuth: false },\n },\n {\n path: '/login',\n name: constants.routeNames.login,\n component: () =>\n import(\n /* webpackChunkName: \"authentication\" */ '@/components/pages/authentication/Login.vue'\n ),\n meta: { requiresAuth: false },\n beforeEnter: (to, from, next) => {\n const { redirect } = to.query;\n if (redirect) {\n const redirectQuery = redirect.split('?')[1] || '';\n const [key, value] = redirectQuery.split('=') || [];\n if (key === 'updateEmail' && value === 'true') {\n const team_subdomain = redirect.split('/')[1];\n store.dispatch('setRedirectRouteAfterLogin', {\n params: { team_subdomain },\n query: { [key]: value },\n path: redirect,\n fullPath: redirect,\n });\n }\n }\n next();\n },\n },\n {\n path: `/${constants.routeNames.verifyEmail}`,\n name: constants.routeNames.verifyEmail,\n component: () =>\n import(\n /* webpackChunkName: \"authentication\" */ '@/components/pages/authentication/VerifyEmail.vue'\n ),\n meta: { requiresAuth: false },\n beforeEnter: (to, from, next) => {\n if (!from || from.name !== 'login') {\n return next({ name: 'login' });\n }\n\n return next();\n },\n },\n {\n // electron app -> sign in with google -> redirect to browser -> select account -> redirect to electron ap -> /oauth2\n path: '/oauth2',\n name: 'oauth2',\n meta: { requiresAuth: false },\n beforeEnter: (to, from, next) => {\n const { code, state } = to.query;\n\n if (state !== localStorage.getItem('authStateParam') || !code) {\n return next({ name: 'login' });\n }\n\n localStorage.removeItem('authStateParam');\n\n // pass authentication code to BE\n return store\n .dispatch('passAuthCode', {\n code,\n redirect_uri: constants.desktopRedirectRoutes[process.env.VUE_APP_ENV],\n })\n .then(() => next({ name: constants.routeNames.workspaces }))\n .catch(() => next({ name: 'login' }));\n },\n component: { template: '
' }, // Dummy component to satisfy the type\n },\n {\n path: '/desktop-redirect',\n name: 'desktop-redirect',\n meta: { requiresAuth: false },\n component: () =>\n import(\n /* webpackChunkName: \"authentication\" */ '@/components/pages/authentication/DesktopRedirect.vue'\n ),\n },\n];\n","import constants from '@/utilities/constants';\n\nexport default [\n {\n path: '/workspaces/new',\n name: constants.routeNames.newWorkspace,\n component: () =>\n import(/* webpackChunkName: \"workspaces\" */ '@/components/pages/workspaces/NewWorkspace.vue'),\n },\n {\n path: '/workspaces',\n name: constants.routeNames.workspaces,\n component: () =>\n import(\n /* webpackChunkName: \"workspaces\" */ '@/components/pages/workspaces/ListWorkspaces.vue'\n ),\n },\n {\n path: `/${constants.routeNames.onboardingInfo}`,\n name: constants.routeNames.onboardingInfo,\n component: () =>\n import(/* webpackChunkName: \"workspaces\" */ '@/components/pages/OnboardingGatheringInfo.vue'),\n },\n];\n","import attachGScript from '@/utilities/attachGScript';\n\ndeclare global {\n interface Window {\n ga: any;\n }\n}\n\nconst ga = (...args: any) => {\n if (!window.ga) {\n window.ga = {};\n }\n if (!window.ga.q) window.ga.q = [];\n window.ga.q.push(args);\n};\n\nconst gaInit = (clientTrackingId: string) => {\n if (!clientTrackingId) return Promise.reject(new Error('No client tracking Id'));\n return attachGScript()\n .then((/* event */) => {\n window.ga = ga;\n window.ga.l = +new Date();\n window.ga('create', clientTrackingId);\n window.ga('send', 'pageview');\n })\n .catch((/* error */) => {\n console.warn('Google Analytics script not loaded.');\n });\n};\n\nconst gaMixin = {\n methods: {\n sendGAEvent(eventCategory = '', eventAction = '', eventLabel = '') {\n ga('send', 'event', eventCategory, eventAction, eventLabel);\n },\n },\n};\n\nexport { gaInit, gaMixin, ga };\n","import { store } from '@/store';\nimport constants from '@/utilities/constants';\nimport { ga } from '@/mixins/gAnalytics';\nimport { Page, Project, Team } from '@/types';\nimport isMobile from '../../utilities/isMobile';\nimport { isElectronApp } from '@/mixins/electronHelpersMixin';\nimport { browserStorageSetItem } from '@/utilities/browser-storage.util';\nimport getRouteAfterLogin from '@/utilities/getRouteAfterLogin';\n\nlet popstateDetected = false;\n\nwindow.addEventListener('popstate', () => {\n popstateDetected = true;\n});\n\nconst isLoggingIn = () => {\n const localLogin = localStorage.getItem('login');\n return localLogin === 'authProvider';\n};\n\nconst removeLocalStorageItem = (item: string) => {\n localStorage.removeItem(item);\n};\n\nconst setUser = (user: any) => {\n store.dispatch('setLoggedIn');\n store.dispatch('setUser', user);\n store.dispatch('setOnboardingUserID', user.id);\n};\n\nconst setTeam = (team: any, routeName = '') => {\n if (routeName === constants.routeNames.workspaces) return;\n store.dispatch('setCurrentTeamId', team.id);\n store.dispatch('setTeamSubDomain', team.sub_domain);\n const key = `${team.id}-currentProjectId`;\n const currentProjectId = localStorage.getItem(key);\n if (currentProjectId) {\n store.dispatch('setCurrentProjectId', currentProjectId);\n }\n};\n\nconst getPendingInvities = (user: any, next: Function, routeName: string) => {\n if (window.location.pathname === '/oauth2/authorize') {\n return next();\n }\n store\n .dispatch('getPendingInvities')\n .then((data) => {\n if (data.pending_invites.length === 0 && user.teams.length === 1) {\n setTeam(user.teams[0]);\n const defaultTabName = store.getters.getDefaultTabName;\n return next(defaultTabName);\n }\n if (data.pending_invites.length || user.teams.length) {\n if (routeName === constants.routeNames.workspaces) return next();\n return next({ name: constants.routeNames.workspaces });\n }\n if (isLoggingIn()) {\n store.dispatch('setOnboardingErrorMessage', '');\n return next({ name: constants.routeNames.newWorkspace });\n }\n // no teams and no pending invites\n if (data.pending_invites.length === 0 && user.teams.length === 0) {\n return next({ name: constants.routeNames.newWorkspace });\n }\n removeLocalStorageItem('login');\n })\n .catch(() => {\n if (user.teams?.length) {\n return next({ name: constants.routeNames.workspaces });\n }\n return next({ name: constants.routeNames.newWorkspace });\n });\n};\n\nconst handleRedirectLogin = (user: any, to: any, next: Function) => {\n const teamSubDomain = store.getters.getTeamSubDomain;\n const localCurrentTeamId = localStorage.getItem('currentTeamId');\n const teamIndex = user.teams.findIndex((t: Team) => t.id === localCurrentTeamId);\n store.dispatch('setRedirectRouteAfterLogin', {});\n const isAuthorizeRoute = to.name === 'authorize';\n const getRouteAfterLoginData = getRouteAfterLogin();\n\n if (isAuthorizeRoute || getRouteAfterLoginData.trusted) {\n const fullPath = isAuthorizeRoute ? to.fullPath : getRouteAfterLoginData.fullPath;\n const redirectData = {\n fullPath,\n trusted: true,\n };\n store.dispatch('setRedirectRouteAfterLogin', redirectData);\n browserStorageSetItem('redirectRouteAfterLogin', redirectData);\n if (user.teams.length === 0) {\n return next({ name: constants.routeNames.onboardingInfo });\n }\n store.dispatch('setOnboardingErrorMessage', '');\n return next(fullPath);\n }\n if (teamIndex !== -1) {\n setTeam(user.teams[teamIndex], to?.name);\n removeLocalStorageItem('login');\n if (to.name === 'home') {\n const defaultTabName =\n localStorage.getItem('lastVisitedRoute') || store.getters.getDefaultTabName;\n return next(defaultTabName);\n }\n }\n if (\n to.params.team_subdomain &&\n (!localCurrentTeamId || teamSubDomain !== to.params.team_subdomain)\n ) {\n const team = user.teams.find((t: Team) => t.sub_domain === to.params.team_subdomain);\n if (team && Object.keys(team).length) {\n setTeam(team);\n return next();\n } else {\n return getPendingInvities(user, next, to?.name);\n }\n } else if (teamIndex === -1) {\n return getPendingInvities(user, next, to?.name);\n }\n next();\n};\n\nconst checkGuestAttempt = (to: any, from: any, next: Function) => {\n // when user is guest and trying to access create-space or settings/create-space\n if (\n store.getters.getTeam?.role === 'guest' &&\n [constants.createSpaceRouteName, constants.settingsCreateSpaceRouteName].includes(to.name)\n ) {\n next({\n name: constants.manageSpacesRouteName,\n path: `${store.getters.getTeamSubDomain}/${constants.manageSpacesRouteName}`,\n params: { team_subdomain: store.getters.getTeamSubDomain },\n });\n }\n};\n\nconst handleRedirect = (user: any, to: any) => {\n const teamSubDomain = store.getters.getTeamSubDomain;\n const currentTeamId = localStorage.getItem('currentTeamId') ?? -1;\n let teamIndex = -1;\n if (currentTeamId !== -1) {\n teamIndex = user.teams.findIndex((t: Team) => t.id === currentTeamId);\n }\n if (teamIndex > -1) {\n setTeam(user.teams[teamIndex], to?.name);\n } else if (user.teams.length) {\n const defaultTeam = user.teams[0];\n setTeam(defaultTeam, to?.name);\n }\n if (to.params.team_subdomain && (!currentTeamId || teamSubDomain !== to.params.team_subdomain)) {\n const team = user.teams.find((t: any) => t.sub_domain === to.params.team_subdomain);\n setTeam(team);\n }\n};\n\nconst tryFetchingUser = (to: any, from: any, next: Function) =>\n store\n .dispatch('loadUser')\n .then(({ user }) => {\n setUser(user);\n handleRedirectLogin(user, to, next);\n checkGuestAttempt(to, from, next);\n\n store.dispatch('setOnboardingErrorMessage', '');\n\n if (!from.name) {\n /* User reloading or coming fresh */\n if (to.name === 'page') {\n store.dispatch('setCurrentTabName', 'pages');\n }\n\n if (to.name === 'board') {\n store.dispatch('setCurrentTabName', 'boards');\n }\n }\n })\n .catch((/* error */) => {\n // trusted routes are routes that are allowed to be accessed directly without workspace checks\n const trustedRoutes = ['/oauth2/authorize'];\n const previousRoute = { ...to, trusted: trustedRoutes.includes(to.path) };\n store.dispatch('setPreviousRoute', previousRoute);\n store.dispatch('setRedirectRouteAfterLogin', previousRoute);\n if (to.name !== 'home') {\n browserStorageSetItem('redirectRouteAfterLogin', previousRoute);\n }\n store.dispatch('setNotLoggedIn');\n if (previousRoute.path !== '/login') {\n return next('/login');\n }\n next();\n });\n\nconst handleLogin = (to: any, from: any, next: Function) => {\n if (!store.getters.getLoggedIn || !Object.keys(store.getters.getUser).length) {\n tryFetchingUser(to, from, next);\n } else if (\n (from.name === null || from.name === undefined) &&\n to.name !== 'login' &&\n to.name !== 'create' &&\n to.name !== 'join'\n ) {\n store\n .dispatch('loadUser')\n .then(({ user }) => {\n setUser(user);\n handleRedirect(user, to);\n checkGuestAttempt(to, from, next);\n if (to.name === 'home') {\n if (store.getters.getTeamID && !isLoggingIn()) {\n const teamSlug = store.getters.getTeamSlug;\n const currentProjectId = `${constants.projectSlug}-${store.getters.getCurrentProjectId}`;\n const currentTabName = store.getters.getCurrentTabName;\n removeLocalStorageItem('login');\n return next(`/${teamSlug}/${currentProjectId}/${currentTabName}`);\n }\n }\n next();\n })\n .catch(() => {\n // intentional empty catch block\n });\n } else {\n store.dispatch('setPreviousRoute', from);\n checkGuestAttempt(to, from, next);\n next();\n }\n};\n\nconst loadProjects = async () => {\n await store.dispatch('loadTeamProjects').then((data) => {\n data.forEach((project: Project) => {\n const projectId = project.id;\n const pagesIds: string[] = [];\n const pagesObject: { [key: string]: Page } = {};\n const pagesTree: { [key: string]: { [key: string]: any } } = {\n root: { id: 'root', children: [] },\n };\n const archivePages: { [key: string]: Page } = {};\n const archivedPagesTree: { [key: string]: Page } = {};\n\n project.pages.forEach((page: Page) => {\n pagesIds.push(page.id);\n pagesObject[page.id] = page;\n });\n [...(project.page_order || [])].forEach((p) => {\n pagesTree[p.id] = p;\n });\n [...(project.archive_pages || [])].forEach((p) => {\n archivePages[p.id] = p;\n });\n [...(project.archive_page_order || [])].forEach((p) => {\n archivedPagesTree[p.id] = p;\n });\n\n store.dispatch('setProjectPages', { projectId, pagesIds });\n store.dispatch('setPages', pagesObject);\n store.dispatch('setProjectPagesTree', { projectId, pagesTree });\n store.dispatch('setFlatBoards', project.boards);\n store.dispatch('setProjectBoards', {\n projectId,\n projectBoards: project.board_order,\n });\n store.dispatch('setProjectArchivePagesTree', { projectId, archivedPagesTree });\n store.dispatch('setProjectArchivePages', archivePages);\n });\n });\n};\n\nexport const beforeEachGuard = async (to: any, from: any, next: Function) => {\n if (\n store.getters.getIsAnyCardDisplayedInLayout(constants.fullScreen) &&\n to.name !== constants.routeNames.boardCard &&\n to.name !== constants.routeNames.sprintCard &&\n to.name !== constants.epicRoute.name\n ) {\n store.dispatch('setDisplayedCards');\n }\n if (\n !store.getters.getPreviousNextButtonClicked &&\n to.path !== '/' &&\n isElectronApp() &&\n !(\n from.path === '/' &&\n (to.name === constants.routeNames.boardCard ||\n to.name === constants.epicRoute.name ||\n to.name === constants.routeNames.sprintCard)\n )\n ) {\n store.dispatch('addToElectronBrowseHistory', {\n path: to.path,\n replaceAfterIndex:\n store.getters.getElectronBrowseHistoryIndex !==\n store.getters.getElectronBrowseHistory.length - 1\n ? store.getters.getElectronBrowseHistoryIndex\n : null,\n });\n store.dispatch(\n 'setElectronBrowseHistoryIndex',\n store.getters.getElectronBrowseHistoryIndex + 1\n );\n }\n if (\n isMobile() &&\n to.name !== constants.routeNames.boardCard &&\n to.name !== constants.routeNames.sprintCard &&\n to.name !== constants.epicRoute.name\n ) {\n store.dispatch('setDisplayedCards');\n }\n store.dispatch('setCurrentRoute', to);\n if (\n (from.name === 'page' ||\n from.name === 'board' ||\n from.name === constants.epicsBoardRoute.name ||\n from.name === constants.routeNames.sprint ||\n from.anem === constants.routeNames.sprintsRouteName) &&\n (to.name === 'boards' ||\n to.name === 'pages' ||\n to.name === 'view' ||\n to.name === 'views' ||\n to.name === 'board-card' ||\n to.name === 'sprint-card' ||\n to.name === constants.epicRoute.name ||\n to.name === 'board' ||\n to.name === 'page' ||\n to.name === 'inbox' ||\n to.name === constants.routeNames.sprint ||\n to.name === constants.routeNames.sprintsRouteName)\n ) {\n if (store.getters.getFavouritesOpened) {\n store.dispatch('setFavouritesOpened', false);\n store.dispatch('setOpenedFavouriteItem', {});\n }\n }\n if (to.name !== from.name && (to.name === 'inbox' || to.name === 'views')) {\n store.dispatch('setCurrentBoardId', '');\n store.dispatch('setCurrentPageID', '');\n store.dispatch('setPage', { content: '' });\n }\n\n if (to.meta?.requiresAuth === false) {\n store.dispatch('setPreviousRoute', from);\n next();\n } else {\n handleLogin(to, from, next);\n }\n\n if (\n ![\n 'board',\n 'board-card',\n 'sprint-card',\n constants.epicRoute.name,\n constants.epicsBoardRoute.name,\n ].includes(`${to.name}`)\n ) {\n // destroy board view\n store.dispatch('setBoardViewNoDestroy', false);\n }\n\n if (store.getters.socketDeletedProjects.length) {\n store.dispatch('clearSocketDeletedProjects');\n }\n\n if (!popstateDetected) {\n switch (to.name) {\n case constants.epicsBoardRoute.name:\n case 'board':\n to.meta.scrollPositions[to.params.boardId] = 0;\n break;\n case 'page':\n to.meta.scrollPositions[to.params.pageId] = 0;\n break;\n case 'boards': {\n const projectId = to.params.projectIdParam.split('-')[1];\n to.meta.scrollPositions[projectId] = 0;\n break;\n }\n default:\n break;\n }\n } else if (to.name === 'boards' || to.name === 'sprints') {\n const toProjectId = to.params.projectIdParam?.split('-')[1] || to.params.projectId;\n\n if (toProjectId !== store.getters.getCurrentProjectId) {\n const project = store.getters.getMyProjectById(toProjectId);\n if (!project) {\n await loadProjects();\n }\n store.dispatch('setCurrentProjectId', toProjectId);\n }\n }\n to.meta.popstate = popstateDetected;\n popstateDetected = false;\n};\n\nexport const afterEachGuard = (to: any) => {\n ga('set', 'page', to.path);\n ga('send', 'pageview');\n if (\n !['/login', '/desktop-redirect', '/oauth2'].includes(to.path) &&\n !['authorize', 'login', 'oauth2', 'desktop-redirect'].includes(to.name) &&\n !to.path.includes('/electronnotes')\n ) {\n localStorage.setItem('lastVisitedRoute', to.path);\n }\n};\n\nexport default {\n beforeEachGuard,\n afterEachGuard,\n};\n","import getDashedTitle from '@/utilities/getDashedTitle';\nimport { translate } from '@/utilities';\nimport cons from '@/utilities/constants';\nimport { ResourceType } from '@/types/resources';\nimport { getSprintKey } from '@/utilities/sprintKeys';\n\nfunction makeCardRouteHandler(\n store: any,\n router: any,\n _to: any,\n _from: any,\n type: ResourceType.Card | ResourceType.Epic\n) {\n const previousRoute = sessionStorage.getItem('route');\n const teamSlug = store.getters.getTeamSlug;\n const previousPathByType = type === ResourceType.Epic ? cons.epicRoute.path : 'card';\n const isComingFromVerifyCode = _from.name === 'verify-email';\n const reloadWithPreviousRoute =\n (_from.fullPath === '/' || isComingFromVerifyCode) && // Coming from root or verify-email\n previousRoute &&\n previousRoute !== '/' &&\n previousRoute !== '/login' && // Previous route is not root or login\n !previousRoute.includes(`${teamSlug}/${previousPathByType}-`); // Previous route doesn't include '/card-' or '/project-'\n const reloadWithoutPreviousRoute =\n (_from.fullPath === '/' || isComingFromVerifyCode) &&\n (!previousRoute || previousRoute === '/' || previousRoute === '/login');\n const cardOpenedFromSettings = previousRoute?.includes('/settings/');\n let toPath = _to.fullPath.replace(\n /\\?userNavigated=true|&userNavigated=true|&cardIdButton=true|\\?cardIdButton=true|\\?cardMoved=true|&cardMoved=true|\\?cardOpenedFromNotes=true|&cardOpenedFromNotes=true/g,\n ''\n );\n\n if (type === ResourceType.Epic && _to.params?.selectedTabId) {\n const tabIdToAdd = `/${_to.params.selectedTabId}`;\n if (!toPath.endsWith(tabIdToAdd)) {\n toPath += tabIdToAdd;\n }\n }\n\n const isCardMoved = _to.query?.cardMoved;\n const cardOpenedFromNotes = _to.query?.cardOpenedFromNotes;\n const usePush =\n isCardMoved ||\n (['inbox'].includes(_from.name) && !store.getters.getIsAnyCardDisplayed) ||\n cardOpenedFromNotes;\n\n const isCardIdButtonClicked = _to.query?.cardIdButton;\n\n return function cardRouteHandler(data: any, type: ResourceType.Card | ResourceType.Epic) {\n const card = data;\n if (\n isCardMoved ||\n reloadWithoutPreviousRoute ||\n isCardIdButtonClicked ||\n cardOpenedFromSettings ||\n cardOpenedFromNotes ||\n (reloadWithoutPreviousRoute && store.getters.getIsSettingsOpen) ||\n isComingFromVerifyCode\n ) {\n let boardId = '';\n if (card.sprint_id) {\n boardId = getSprintKey(card.project_id, card.sprint_id);\n } else if (card.type === ResourceType.Epic) {\n boardId = cons.epicsBoardId;\n } else {\n boardId = card.board_id;\n }\n\n const projectId = card.project_id;\n const boardTitle = store.getters.getFlatBoards[boardId]?.title || '';\n const routeItemName = card.sprint_id ? 'sprint' : 'board';\n const dashedBoardTitle = getDashedTitle(boardTitle);\n\n let nextRoute = '';\n if (!boardId) {\n nextRoute = `/${teamSlug}/space-${card.project_id}/boards`;\n } else if (boardId === cons.epicsBoardId) {\n nextRoute = `/${teamSlug}/${cons.epicsBoardRoute.path}`;\n } else {\n nextRoute = `/${teamSlug}/${routeItemName}-${boardId}-${dashedBoardTitle}/${store.getters.cardsLayout()}`;\n }\n\n const boardRouteWithoutCardsLayout = `/${teamSlug}/${routeItemName}-${boardId}-${dashedBoardTitle}`;\n\n if (\n router.currentRoute.fullPath !== nextRoute &&\n router.currentRoute.fullPath !== boardRouteWithoutCardsLayout\n ) {\n // if usePush then push route instead of replace route to allow back navigation to inbox\n const routerCommand = usePush ? 'push' : 'replace';\n const { state } = history;\n router[routerCommand]({\n path: card.sprint_id ? boardRouteWithoutCardsLayout : nextRoute,\n }).then(() => {\n // After successful navigation to the previous route, update history\n const historyStateProps = isComingFromVerifyCode\n ? {\n back: toPath,\n current: toPath,\n }\n : {\n back: state.current,\n current: toPath,\n };\n history.replaceState(\n { ...state, cardId: _to.params.cardId, ...historyStateProps },\n '',\n toPath\n );\n localStorage.setItem('lastVisitedRoute', toPath);\n\n if (isCardIdButtonClicked && boardId && !_from.name.includes('inbox')) {\n const { cardId } = history.state || '';\n if (cardId) {\n const [, sprintId] = _from.params?.sprintId?.split('s') || [];\n const card = store.getters.getCardById(cardId);\n const boardIdFromRoute = _from.params?.boardId;\n if (\n (card && boardIdFromRoute && card.board_id === boardIdFromRoute) ||\n (sprintId && sprintId === card.sprint_id)\n )\n return;\n }\n const notificationMessage =\n type === ResourceType.Epic\n ? translate('roadmapOpenedInTheBackground')\n : translate('boardOpenedInTheBackground', {\n boardTitle,\n });\n store.dispatch('setCurrentBoardId', boardId);\n store.dispatch('setCurrentProjectId', projectId);\n store.dispatch('addUiNotification', { message: notificationMessage });\n } else {\n // Set and display the card\n store.dispatch('setDisplayedCards', [_to.params.cardId]);\n }\n });\n }\n } else if (reloadWithPreviousRoute) {\n const { state } = history;\n router.replace({ path: previousRoute }).then(() => {\n history.replaceState(\n { ...state, back: state.current, cardId: _to.params.cardId },\n '',\n toPath\n );\n localStorage.setItem('lastVisitedRoute', toPath);\n\n // Fetch and display the card\n store.dispatch('setDisplayedCards', [_to.params.cardId]);\n });\n }\n\n if (\n _to.query.userNavigated &&\n !reloadWithPreviousRoute &&\n !isCardIdButtonClicked &&\n !reloadWithoutPreviousRoute\n ) {\n history.pushState(\n {\n ...history.state,\n cardId: _to.params.cardId,\n back: history.state.current,\n current: toPath,\n },\n '',\n toPath\n );\n localStorage.setItem('lastVisitedRoute', toPath);\n }\n };\n}\n\nfunction cardBeforeEnterHandler(store: any, router: any, to: any, from: any, next: any) {\n const type = to.name === cons.epicRoute.name ? ResourceType.Epic : ResourceType.Card;\n\n // add function to handle card\n const cardRouteHandler = makeCardRouteHandler(store, router, to, from, type);\n // check if card is already on state don't fetch it again\n if (store.getters.getCards[to.params.cardId]) {\n cardRouteHandler(store.getters.getCards[to.params.cardId], type);\n } else {\n store\n .dispatch('fetchCard', {\n cardId: to.params.cardId,\n type,\n })\n .then((card: any) => {\n cardRouteHandler(card, type);\n })\n .catch(() => {\n if (from.path === '/') {\n next({\n name: 'cardnotfound',\n params: {\n team_subdomain: store.getters.getTeamSlug,\n cardId: to.params.cardId,\n cardTitle: to.params.cardTitle,\n },\n });\n } else {\n store.dispatch('itemNotFound', true);\n }\n });\n }\n}\n\nexport { makeCardRouteHandler, cardBeforeEnterHandler };\n","import type { RouteLocationRaw } from 'vue-router';\nimport type { Store } from 'vuex';\n\nexport type RoleList = { allowed: string[] } | { disallowed: string[] };\n\n/**\n * @param store\n * @param redirect The list of redirects. Provide undefined if you want to use this with next() within a beforeEnter guard.\n * @param roles\n * @returns\n */\nexport default function (\n store: Store,\n redirect: { pass: RouteLocationRaw | undefined; fail: RouteLocationRaw | undefined },\n roles: RoleList\n): RouteLocationRaw | undefined {\n if (!store.getters.getUser.teams) return redirect.pass;\n const currentRole = store.getters.getUser.teams?.find(\n (team: any) => team.id === store.getters.getTeamID\n ).role;\n if ('allowed' in roles && roles.allowed) {\n if (roles.allowed.includes(currentRole)) {\n return redirect.pass;\n }\n }\n if ('disallowed' in roles && roles.disallowed) {\n if (!roles.disallowed.includes(currentRole)) {\n return redirect.pass;\n }\n }\n return redirect.fail;\n}\n","import getDashedTitle from '@/utilities/getDashedTitle';\nimport constants from '@/utilities/constants';\nimport { BoardLayout } from '@superthread-com/api';\n\nexport default async function (store: any, to: any, _from: any, next: any) {\n const teamSlug = store.getters.getTeamSlug;\n\n if (to.params.cardsLayout === BoardLayout.Timeline) {\n await store.dispatch('getAllTeamFeatures');\n\n if (!store.getters.getTeamFeatureEnabled(constants.featureFlagIds.timelineLayout)) {\n const path = `/${teamSlug}/board-${to.params.boardId}${getDashedTitle(\n to.params.boardTitle\n )}/board`;\n next({ path });\n }\n }\n if (to.params.boardId) {\n store.dispatch('setCurrentBoardId', to.params.boardId);\n }\n store.dispatch('setCurrentTabName', 'boards');\n next();\n}\n","import checkRole from './checkRole';\nimport { TeamMemberRole } from '@superthread-com/api';\nimport type { Store } from 'vuex';\nimport { RootState } from '@/types';\n\nexport default function (store: Store, next: Function, failPath: string = '') {\n const roleCheck = checkRole(\n store,\n {\n pass: undefined,\n fail: { path: failPath },\n },\n { disallowed: [TeamMemberRole.GuestReader] }\n );\n return roleCheck;\n}\n","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';\nimport { translate } from '@/utilities';\nimport constants from '@/utilities/constants';\nimport { store } from '@/store';\nimport { authRefresh } from '../utilities/api';\nimport authentication from './modules/authentication';\nimport workspaces from './modules/workspaces';\nimport { beforeEachGuard, afterEachGuard } from './utilities';\nimport { cardBeforeEnterHandler } from './utilities/cardRouteHandler';\nimport EventBus from '../utilities/eventBus';\nimport checkRole from './utilities/checkRole';\nimport boardViewBeforeEnter from '@/router/utilities/boardViewBeforeEnter';\nimport { TeamMemberRole } from '@superthread-com/api';\nimport { EpicTabId } from '@/types/tabs';\nimport guestReaderCheck from './utilities/guestReaderCheck';\nimport { browserStorageGetItem, browserStorageRemoveItem } from '@/utilities/browser-storage.util';\nimport getCalendarIntegration from '@/utilities/getCalendarIntegration';\nimport useIsElectronApp from '@/utilities/composables/useIsElectronApp';\nconst { isElectronApp } = useIsElectronApp();\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes: [\n {\n path: '/:pathMatch(.*)*',\n name: 'notfound',\n component: () =>\n import(/* webpackChunkName: \"404notfound\" */ '../components/pages/NotFound.vue'),\n },\n\n // APP //\n {\n path: '',\n name: 'home',\n },\n\n ...authentication,\n ...workspaces,\n\n {\n path: '/integrations',\n name: 'integrations',\n component: () =>\n import(/* webpackChunkName: \"integrations\" */ '../components/pages/Integrations.vue'),\n beforeEnter: (to, _from, next) => {\n if (to.query.state) {\n const integration: any = to.query.type;\n store\n .dispatch('createInstallationForIntegration', {\n integration,\n payload: {\n [integration]: {\n id: to.query.installation_id,\n },\n },\n })\n .then(() => {\n store.dispatch('addUiNotification', {\n message: translate('gitHubConnected'),\n duration: 5000,\n });\n });\n const workspaces = store.getters.getUser.teams;\n const workspace = workspaces.find((ws: any) => ws.id === to.query.state);\n const defaultTabName = store.getters.getDefaultTabName;\n\n if (workspace) {\n store.dispatch('setCurrentTeamId', workspace.id);\n store.dispatch('setTeamSubDomain', workspace.sub_domain);\n const key = `${workspace.id}-currentProjectId`;\n const currentProjectIdForWs = localStorage.getItem(key);\n if (currentProjectIdForWs) {\n store.dispatch('setCurrentProjectId', currentProjectIdForWs);\n }\n store.dispatch('fetchTeamMembers').catch(() => {});\n router.push(defaultTabName);\n }\n }\n next();\n },\n },\n\n {\n path: '/:team_subdomain/login/',\n name: constants.routeNames.teamLogin,\n component: () =>\n import(\n /* webpackChunkName: \"loginOnboarding\" */ '../components/pages/authentication/Login.vue'\n ),\n meta: { requiresAuth: false },\n },\n\n {\n // settings without workspace, navigate to current workspace\n path: '/settings:pathMatch(.*)*',\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n const pathMatch = Array.isArray(to.params.pathMatch) ? to.params.pathMatch.join('/') : '';\n return {\n path: `/${teamSlug}/settings${pathMatch ?? ''}`,\n query: to.query,\n };\n },\n },\n\n {\n // inbox without workspace, navigate to current workspace\n path: '/inbox:pathMatch(.*)*',\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n const pathMatch = Array.isArray(to.params.pathMatch) ? to.params.pathMatch.join('/') : '';\n return {\n path: `/${teamSlug}/inbox${pathMatch ? '/' + pathMatch : ''}`,\n query: to.query,\n };\n },\n },\n\n {\n path: '/:team_subdomain/settings',\n name: 'settings',\n component: () => import(/* webpackChunkName: \"settings\" */ '../settings/pages/Settings.vue'),\n redirect: () => {\n const teamSlug = store.getters.getTeamSlug;\n return { path: `/${teamSlug}/settings/profile` };\n },\n beforeEnter: (_to, from, next) => {\n EventBus.$emit('closeCard');\n store.dispatch('setRouteBeforeSettings', from.path);\n next();\n },\n children: [\n {\n path: 'integration',\n name: 'integration',\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/Integration.vue'),\n },\n redirect: () => {\n const teamSlug = store.getters.getTeamSlug;\n return { path: `/${teamSlug}/settings/integration/github` };\n },\n beforeEnter: (_, __, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n children: [\n {\n path: 'github',\n name: 'github',\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/GithubIntegration.vue'),\n },\n {\n path: 'zapier',\n name: 'zapier',\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/ZapierIntegration.vue'),\n },\n {\n path: 'slack',\n name: 'slack',\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/SlackUnfurling.vue'),\n beforeEnter: (to, _from, next) => {\n const integration = 'slack_team_unfurl';\n const teamSlug = store.getters.getTeamSlug;\n\n const state = localStorage.getItem('slackOAuthState');\n localStorage.removeItem('slackOAuthState');\n if (to.query.code && to.query.state === state) {\n const redirectUri = `${window.location.origin}/${teamSlug}/settings/integration/slack`;\n store\n .dispatch('createInstallationForIntegration', {\n integration,\n payload: {\n slack_team_unfurl: {\n code: to.query.code,\n redirect_uri: redirectUri,\n },\n },\n })\n .then(() => {\n store\n .dispatch('getTeamIntegrationInstallations', {\n integration,\n })\n .then(() => {\n router.push(`/${teamSlug}/settings/integration/slack`);\n next();\n });\n })\n .catch(() => {\n next();\n });\n } else {\n store\n .dispatch('getTeamIntegrationInstallations', {\n integration,\n })\n .then(() => {\n next();\n })\n .catch(() => {\n next();\n });\n }\n },\n },\n ],\n },\n {\n path: 'tags',\n name: 'tags',\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTags.vue'),\n },\n beforeEnter: (to, from, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n store\n .dispatch('fetchTags', {\n projectId: store.getters.getCurrentProjectId,\n })\n .then(() => {\n next();\n });\n },\n },\n {\n path: constants.settingsTemplate.root,\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplates.vue'),\n },\n children: [\n {\n path: '',\n redirect: () => {\n return {\n name: constants.settingsTemplate.card.root.name,\n };\n },\n },\n ],\n },\n {\n path: `${constants.settingsTemplate.root}/${constants.settingsTemplate.card.root.path}`,\n name: constants.settingsTemplate.card.root.name,\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplates.vue'),\n },\n beforeEnter: (_, __, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n children: [\n {\n path: constants.settingsTemplate.card.create.path,\n name: constants.settingsTemplate.card.create.name,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplateContent.vue'\n ),\n },\n {\n path: `${constants.settingsTemplate.card.edit.path}/:templateId`,\n name: constants.settingsTemplate.card.edit.name,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplateContent.vue'\n ),\n },\n ],\n },\n {\n path: `${constants.settingsTemplate.root}/${constants.settingsTemplate.page.root.path}`,\n name: constants.settingsTemplate.page.root.name,\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplates.vue'),\n },\n beforeEnter: (_, __, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n children: [\n {\n path: constants.settingsTemplate.page.create.path,\n name: constants.settingsTemplate.page.create.name,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplateContent.vue'\n ),\n },\n {\n path: `${constants.settingsTemplate.page.edit.path}/:templateId`,\n name: constants.settingsTemplate.page.edit.name,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplateContent.vue'\n ),\n },\n ],\n },\n {\n path: `${constants.settingsTemplate.root}/${constants.settingsTemplate.note.root.path}`,\n name: constants.settingsTemplate.note.root.name,\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplates.vue'),\n },\n beforeEnter: (_, __, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n children: [\n {\n path: constants.settingsTemplate.note.create.path,\n name: constants.settingsTemplate.note.create.name,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplateContent.vue'\n ),\n },\n {\n path: `${constants.settingsTemplate.note.edit.path}/:templateId`,\n name: constants.settingsTemplate.note.edit.name,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplateContent.vue'\n ),\n },\n {\n path: `${constants.settingsTemplate.note.view.path}/:templateId`,\n name: constants.settingsTemplate.note.view.name,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceTemplateContent.vue'\n ),\n },\n ],\n },\n {\n path: 'members',\n name: 'members',\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/MembersManagement.vue'),\n },\n beforeEnter: (to, from, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n if (from.name) {\n authRefresh();\n next();\n } else {\n Promise.all([\n store.dispatch('fetchTeamMembers').catch(() => {}),\n authRefresh(),\n store.dispatch('getTeamPendingInvities'),\n ]).then(() => {\n next();\n });\n }\n },\n },\n {\n path: 'general',\n name: 'general',\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/WorkspaceManagement.vue'),\n },\n beforeEnter: (_, __, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n },\n {\n path: 'import',\n name: 'import',\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/Import.vue'),\n },\n beforeEnter: (to, from, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n store\n .dispatch('getImportHistory')\n .then((data) => {\n store.dispatch('setImportHistory', data);\n next();\n })\n .catch(() => {\n next();\n });\n },\n children: [\n {\n path: 'trello',\n name: 'trello',\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/ImportSetup.vue'),\n },\n {\n path: 'jira',\n name: 'jira',\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/ImportSetup.vue'),\n },\n {\n path: 'shortcut',\n name: 'shortcut',\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/ImportSetup.vue'),\n },\n ],\n },\n {\n path: 'billing',\n name: 'billing',\n redirect: () => {\n const teamSlug = store.getters.getTeamSlug;\n return { path: `/${teamSlug}/settings/billing/plan` };\n },\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/PlanAndBilling.vue'),\n },\n children: [\n {\n path: 'plan',\n name: 'plan',\n beforeEnter: (_to, _from, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = checkRole(\n store,\n {\n pass: undefined,\n fail: { path: `/${teamSlug}/settings` },\n },\n { allowed: ['owner', 'admin'] }\n );\n if (roleCheck) {\n next(roleCheck);\n } else {\n next();\n }\n },\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/Plan.vue'),\n },\n {\n path: 'payment',\n name: 'payment',\n beforeEnter: (_to, _from, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = checkRole(\n store,\n {\n pass: undefined,\n fail: { path: `/${teamSlug}/settings` },\n },\n { allowed: ['owner', 'admin'] }\n );\n if (roleCheck) {\n next(roleCheck);\n } else {\n next();\n }\n next();\n },\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/Billing.vue'),\n },\n ],\n },\n {\n path: 'profile',\n name: 'profile',\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/EditUserProfile.vue'),\n },\n },\n {\n path: 'notes',\n name: constants.routeNames.notesSettings,\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/NotesSettings.vue'),\n },\n beforeEnter: async (to, from, next) => {\n const state = browserStorageGetItem(constants.OAuthState.googleCalendar);\n const redirectUri = browserStorageGetItem(\n constants.OAuthState.googleCalendarRedirectUri\n );\n const integration = constants.googleCalendarIntegration;\n\n browserStorageRemoveItem(constants.OAuthState.googleCalendar);\n browserStorageRemoveItem(constants.OAuthState.googleCalendarRedirectUri);\n\n if (to.query.code && to.query.state === state) {\n try {\n await store.dispatch('createInstallationForIntegration', {\n integration,\n payload: {\n google_calendar_user_notes: {\n code: to.query.code,\n redirect_uri: redirectUri,\n },\n },\n });\n\n getCalendarIntegration({ store, fetchEvents: isElectronApp.value });\n } catch (_) {\n next({ name: constants.routeNames.notesSettings });\n }\n } else {\n await getCalendarIntegration();\n }\n\n next();\n },\n },\n {\n path: 'preferences',\n name: 'preferences',\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/Preferences.vue'),\n },\n },\n {\n path: 'manage-spaces',\n name: constants.settingsManageSpacesRouteName,\n components: {\n Settings: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/ManageProjectsContent.vue'\n ),\n },\n beforeEnter: (_, __, next) => {\n if (store.getters.getCurrentProjectId) {\n store.dispatch('setCurrentProjectId', '');\n }\n next();\n },\n },\n {\n path: 'create-space',\n name: constants.settingsCreateSpaceRouteName,\n components: {\n Settings: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/CreateProjectContent.vue'\n ),\n },\n beforeEnter: (_, __, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n\n next();\n },\n },\n\n {\n path: `${constants.projectSlug}-:projectIdParam`,\n name: constants.settingsSpaceRouteName,\n components: {\n Settings: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/SettingsProjects.vue'),\n },\n beforeEnter: (to, _from, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n const projectId = to.params.projectIdParam;\n if (projectId !== store.getters.getSettingsCurrentProjectId)\n store.dispatch('setSettingsCurrentProjectId', projectId);\n next();\n },\n children: [\n {\n path: `boards`,\n name: constants.settingsBoardsRouteName,\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/BoardsSettings.vue'),\n beforeEnter: async (to, _from, next) => {\n const gitHubIntegrated =\n store.getters.getIntegrationInstallations('github').length > 0;\n if (!gitHubIntegrated) {\n store.dispatch('getTeamIntegrationInstallations', {\n integration: 'github',\n });\n }\n store.dispatch('getTeamIntegrationInstallations', {\n integration: constants.webhookIntegrations.slackChannel,\n });\n\n const projectId = to.params?.projectIdParam;\n if (projectId) {\n try {\n const sprint = await store.dispatch('getSprintSettings', projectId);\n const { board_order: projectBoards } = await store.dispatch(\n 'loadBoards',\n projectId\n );\n store.dispatch('setProjectPreviewBoards', {\n projectBoards,\n projectId,\n });\n const [firstBoardId] = projectBoards ?? [];\n if (store.getters.getSettingsCurrentBoardId === -1) {\n store.dispatch('setSettingsCurrentBoardId', firstBoardId);\n }\n\n if (to?.name === constants.settingsBoardsRouteName) {\n if (sprint.enabled && !to.params.boardId) {\n next({\n path: `${to.path}/sprints`,\n });\n return;\n } else if (projectBoards.length && !sprint.enabled) {\n next({\n path: `${to.path}/${firstBoardId}`,\n });\n return;\n }\n }\n next();\n } catch (e) {\n next();\n }\n } else {\n next();\n }\n },\n children: [\n {\n path: ':boardId',\n name: constants.settingsSelectedBoardRouteName,\n component: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/BoardsSettings.vue'\n ),\n beforeEnter: (_to, _from, next) => {\n const boardId = _to.params?.boardId;\n const projectId = _to.params?.projectIdParam;\n\n const slackChannelWebhookIntegrated = store.getters\n .getIntegrationInstallations(constants.webhookIntegrations.slackChannel)\n .find((i: any) => i.slack_channel_webhook?.board_id === boardId);\n\n if (!slackChannelWebhookIntegrated) {\n store.dispatch('getTeamIntegrationInstallations', {\n integration: constants.webhookIntegrations.slackChannel,\n });\n }\n\n if (projectId) {\n store\n .dispatch('loadBoards', projectId)\n .then(({ board_order: projectBoards }) => {\n if (!projectBoards.includes(boardId) && boardId !== 'sprints') {\n next({\n name: constants.settingsBoardsRouteName,\n params: {\n ..._to.params,\n },\n });\n store.dispatch('addUiNotification', {\n message: translate('boardDoesNotExists'),\n status: constants.uiNotificationStatuses.error,\n });\n }\n });\n }\n\n next();\n },\n children: [\n {\n path: 'slack',\n name: 'slack-channel-integration',\n beforeEnter: (_to, _from, next) => {\n const state = browserStorageGetItem(constants.OAuthState.slack);\n const redirectUri = browserStorageGetItem(\n constants.OAuthState.slackRedirectUri\n );\n const integration = constants.webhookIntegrations.slackChannel;\n const boardId = _to.params.boardId;\n const slackCode = _to.query.code;\n const slackState = _to.query.state;\n\n browserStorageRemoveItem(constants.OAuthState.slack);\n browserStorageRemoveItem(constants.OAuthState.slackRedirectUri);\n\n if (slackCode && state === slackState) {\n const webhookInstallation = {\n integration,\n payload: {\n slack_channel_webhook: {\n code: slackCode,\n board_id: boardId,\n redirect_uri: redirectUri,\n },\n },\n };\n\n store\n .dispatch('createInstallationForIntegration', webhookInstallation)\n .then(({ data }) => {\n store.dispatch('createBoardWebhookNotification', {\n boardId,\n integration,\n integrationId: data.id,\n });\n })\n .then(() => {\n store.dispatch('getTeamIntegrationInstallations', {\n integration: constants.webhookIntegrations.slackChannel,\n });\n })\n .catch(() => {\n store.dispatch('addUiNotification', {\n message: translate('slackIntegrationError'),\n status: constants.uiNotificationStatuses.error,\n });\n });\n\n next({\n name: constants.settingsSelectedBoardRouteName,\n params: _to.params,\n });\n } else {\n store.dispatch('addUiNotification', {\n message: translate('slackIntegrationError'),\n status: constants.uiNotificationStatuses.error,\n });\n next({\n name: constants.settingsSelectedBoardRouteName,\n params: _to.params,\n });\n }\n },\n },\n ],\n },\n ],\n },\n {\n path: `sprints`,\n name: constants.settingsSprintsRouteName,\n component: () =>\n import(/* webpackChunkName: \"settings\" */ '@/settings/pages/SprintsSettings.vue'),\n },\n ],\n },\n\n {\n path: 'notifications',\n name: 'notifications',\n components: {\n Settings: () =>\n import(\n /* webpackChunkName: \"settings\" */ '@/settings/pages/NotificationsIntegrations.vue'\n ),\n },\n beforeEnter: (to, from, next) => {\n const teamSlug = store.getters.getTeamSlug;\n const roleCheck = guestReaderCheck(store, next, `/${teamSlug}/settings`);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n // load notification digest\n store.dispatch('fetchNotificationDigest').then(() => {\n store.dispatch('fetchNotificationDigestSettings');\n });\n\n const integration = 'slack_user';\n const state = localStorage.getItem('slackOAuthState');\n localStorage.removeItem('slackOAuthState');\n if (to.query.code && to.query.state === state) {\n const teamSlug = store.getters.getTeamSlug;\n const redirectUri = `${window.location.origin}/${teamSlug}/settings/notifications`;\n store\n .dispatch('createInstallationForIntegration', {\n integration,\n payload: {\n slack_user: {\n code: to.query.code,\n redirect_uri: redirectUri,\n },\n },\n })\n .then(() => {\n store\n .dispatch('getTeamIntegrationInstallations', {\n integration,\n })\n .then(() => {\n store.dispatch('getTeamIntegrationsSettings', integration).then((data) => {\n if (data.slack_user) {\n store.dispatch('setIntegrationSettings', {\n integration: integration,\n settings: data.slack_user,\n });\n }\n router.push(`/${teamSlug}/settings/notifications`);\n next();\n });\n });\n })\n .catch(() => {\n next();\n });\n } else {\n store\n .dispatch('getTeamIntegrationInstallations', { integration })\n .then(() => {\n store.dispatch('getTeamIntegrationsSettings', integration).then((data) => {\n if (data.slack_user) {\n store.dispatch('setIntegrationSettings', {\n integration: integration,\n settings: data.slack_user,\n });\n }\n next();\n });\n })\n .catch(() => {\n next();\n });\n }\n },\n },\n ],\n },\n {\n path: '/:team_subdomain',\n name: 'project-pages',\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/ProjectPages.vue'),\n redirect: () => {\n const { getTeamSlug, getTeamID } = store.getters;\n\n const key = `${getTeamID}-currentProjectId`;\n const currentProjectId = localStorage.getItem(key);\n if (currentProjectId) {\n return { path: `/${getTeamSlug}/space-${currentProjectId}/boards` };\n }\n return { path: `/${getTeamSlug}/${constants.manageSpacesRouteName}` };\n },\n children: [\n {\n path: '/:team_subdomain/page-:pageId:pageTitle(-.*)?',\n name: 'page',\n meta: {\n scrollPositions: {},\n },\n component: () =>\n import(\n /* webpackChunkName: \"projectPages\" */ '../components/sections/PageColumnNewEditor.vue'\n ),\n beforeEnter(to, _from, next) {\n store.dispatch('setCurrentBoardId', '');\n store.dispatch('setCurrentTabName', 'pages');\n store.dispatch('setCurrentPageID', to.params.pageId);\n next();\n },\n },\n {\n path: '/:team_subdomain/board-:boardId(\\\\d+):boardTitle?/:cardsLayout?',\n name: constants.routeNames.board,\n meta: {\n scrollPositions: {},\n },\n props: true,\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/BoardView.vue'),\n beforeEnter(to, _from, next) {\n boardViewBeforeEnter(store, to, _from, next);\n },\n },\n {\n path: '/:team_subdomain/card-:cardId:cardTitle(-.*)?',\n name: constants.routeNames.boardCard,\n beforeEnter(_to, _from, next) {\n cardBeforeEnterHandler(store, router, _to, _from, next);\n },\n component: { template: '
' },\n },\n {\n path: '/:team_subdomain/card-:cardId:cardTitle(-.*)?',\n name: 'cardnotfound',\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/CardNotFound.vue'),\n },\n {\n path: `/:team_subdomain/:projectIdParam(${constants.projectSlug}-.*)/newboard`,\n name: 'newboard',\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/NewBoard.vue'),\n },\n {\n path: `/:team_subdomain/:projectIdParam(${constants.projectSlug}-.*)/newpage`,\n name: 'newpage',\n component: () =>\n import(\n /* webpackChunkName: \"projectPages\" */ '../components/sections/PageColumnNewEditor.vue'\n ),\n beforeEnter(to, from, next) {\n if (store.getters.getFavouritesOpened) {\n store.dispatch('setFavouritesOpened', false);\n store.dispatch('setOpenedFavouriteItem', {});\n }\n if (from.name === null) {\n store.dispatch('setNewPageCreating', true);\n store.dispatch('setCurrentPageID', 'newpage');\n }\n next();\n },\n },\n {\n path: `/:team_subdomain/${constants.projectSlug}-:projectId/sprints`,\n name: constants.routeNames.sprintsRouteName,\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/sprints/Sprints.vue'),\n },\n {\n path: `/:team_subdomain/:projectIdParam(${constants.projectSlug}-.*)`,\n name: 'project',\n redirect: (to) => {\n const unsplitParam = to.params.projectIdParam ?? '';\n const [projectId] = (typeof unsplitParam === 'string' ? unsplitParam : '').split('/');\n return `/${to.params.team_subdomain}/${projectId}/boards`;\n },\n component: () =>\n import(\n /* webpackChunkName: \"projectPages\" */ '../components/sections/ProjectContentColumn.vue'\n ),\n children: [\n {\n path: 'boards',\n name: 'boards',\n meta: {\n scrollPositions: {},\n },\n beforeEnter(_to, _from, next) {\n store.dispatch('setCurrentTabName', 'boards');\n next();\n },\n component: { template: '
' },\n },\n ],\n },\n {\n path: '/:team_subdomain/manage-spaces',\n name: constants.manageSpacesRouteName,\n component: () =>\n import(\n /* webpackChunkName: \"projectPages\" */ '../components/pages/ProjectManagement.vue'\n ),\n beforeEnter: (to, from, next) => {\n if (store.getters.getItemNotFound) {\n store.dispatch('itemNotFound', false);\n }\n if (store.getters.getCurrentProjectId) {\n store.dispatch('setCurrentProjectId', '');\n }\n next();\n },\n },\n {\n path: '/:team_subdomain/create-space',\n name: constants.createSpaceRouteName,\n component: () =>\n import(\n /* webpackChunkName: \"projectPages\" */ '../components/pages/ProjectManagement.vue'\n ),\n beforeEnter: (_, __, next) => {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n if (store.getters.getItemNotFound) {\n store.dispatch('itemNotFound', false);\n }\n next();\n },\n },\n {\n path: `/:team_subdomain/${constants.epicsBoardRoute.path}/:cardsLayout?`,\n name: constants.epicsBoardRoute.name,\n meta: {\n scrollPositions: {},\n },\n props: true,\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/BoardView.vue'),\n beforeEnter(_to, _from, next) {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n if (store.getters.getCurrentRole === TeamMemberRole.Guest) {\n store.dispatch('itemNotFound', true);\n return;\n }\n\n if (_to.name === constants.epicsBoardRoute.name) {\n _to.params.boardId = constants.epicsBoardId;\n store.dispatch('setCurrentBoardId', constants.epicsBoardId);\n if (store.getters.getCurrentProjectId) {\n store.dispatch('setCurrentProjectId', '');\n }\n }\n\n next();\n },\n },\n {\n path: `/:team_subdomain/${constants.epicRoute.path}-:cardId-:cardTitle?/:selectedTabId?`,\n name: constants.epicRoute.name,\n component: { template: '
' },\n beforeEnter(_to, _from, next) {\n if (\n !_to.params.selectedTabId ||\n Object.values(EpicTabId).indexOf(_to.params.selectedTabId as EpicTabId) === -1\n ) {\n _to.params.selectedTabId = store.getters.getEpicSelectedTabId(_to.params.cardId);\n }\n\n if (_to.params.selectedTabId) {\n store.dispatch('setEpicSelectedTabId', {\n cardId: _to.params.cardId,\n tabId: _to.params.selectedTabId,\n });\n }\n cardBeforeEnterHandler(store, router, _to, _from, next);\n },\n },\n {\n // Sprint id format in url is projectId + 's' + sprintId because fetching sprint by sprintId is not possible without projectId\n path: '/:team_subdomain/sprint-:sprintId(\\\\d+s\\\\d+):sprintTitle?/:cardsLayout?',\n name: constants.routeNames.sprint,\n meta: {\n scrollPositions: {},\n },\n props: true,\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/sprints/SprintView.vue'),\n beforeEnter(to, _from, next) {\n if (to.params.sprintId) {\n store.dispatch('setCurrentBoardId', to.params.sprintId);\n store.dispatch('setCurrentTabName', 'boards');\n }\n next();\n },\n },\n {\n path: '/:team_subdomain/sprintcard-:cardId:cardTitle(-.*)?',\n name: constants.routeNames.sprintCard,\n component: { template: '
' },\n beforeEnter(_to, _from, next) {\n cardBeforeEnterHandler(store, router, _to, _from, next);\n },\n },\n {\n path: '/:team_subdomain/views',\n name: 'views',\n component: () => import(/* webpackChunkName: \"views\" */ '../components/pages/Views.vue'),\n beforeEnter: (_, __, next) => {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n },\n {\n path: '/:team_subdomain/newview',\n name: 'newview',\n component: () =>\n import(/* webpackChunkName: \"views\" */ '../components/pages/NewView.vue'),\n beforeEnter: (_, __, next) => {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n },\n {\n path: '/:team_subdomain/view-:viewId:viewTitle(-.*)?',\n name: 'view',\n component: () =>\n import(/* webpackChunkName: \"views\" */ '../components/pages/SingleView.vue'),\n beforeEnter: (_, __, next) => {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n },\n {\n path: '/:team_subdomain/inbox',\n name: 'inbox',\n component: () => import(/* webpackChunkName: \"inbox\" */ '../components/pages/Inbox.vue'),\n beforeEnter: (_, __, next) => {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n },\n {\n path: '/:team_subdomain/note-:noteId?',\n redirect: (to) => {\n return {\n name: constants.routeNames.note,\n params: {\n team_subdomain: to.params.team_subdomain,\n noteId: to.params.noteId || '',\n },\n };\n },\n },\n {\n path: '/:team_subdomain/notes',\n name: constants.routeNames.notes,\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/notes/Notes.vue'),\n children: [\n {\n path: 'note-:noteId?',\n name: constants.routeNames.note,\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/notes/Notes.vue'),\n },\n ],\n },\n {\n path: '/:team_subdomain/my-work/:selectedTabId?',\n name: 'my-work',\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/MyWork.vue'),\n beforeEnter(_to, from, next) {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n store.dispatch('setMyWorkUserId', store.getters.getUserId);\n next();\n },\n },\n {\n name: constants.routeNames.agents,\n path: '/:team_subdomain/agents',\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/Agents.vue'),\n beforeEnter(_to, from, next) {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n next();\n },\n children: [\n {\n name: constants.routeNames.newAgent,\n path: 'new',\n component: () =>\n import(\n /* webpackChunkName: \"projectPages\" */ '../components/sections/NewAgent.vue'\n ),\n },\n {\n name: constants.routeNames.updateAgent,\n path: 'update/:agentId',\n component: () =>\n import(\n /* webpackChunkName: \"projectPages\" */ '../components/sections/NewAgent.vue'\n ),\n },\n ],\n },\n {\n path: '/:team_subdomain/member-:userId/:selectedTabId?',\n name: 'member',\n component: () =>\n import(/* webpackChunkName: \"projectPages\" */ '../components/pages/MyWork.vue'),\n beforeEnter(to, from, next) {\n const lastRoute = browserStorageGetItem('lastVisitedRoute') || '';\n const roleCheck = guestReaderCheck(store, next, lastRoute);\n\n if (roleCheck) {\n return next(roleCheck);\n }\n if (!from.name) {\n store.dispatch('fetchTeamMembers').catch(() => {});\n }\n store.dispatch('setMyWorkUserId', to.params.userId);\n next();\n },\n },\n ],\n },\n {\n path: '/create-space',\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n return {\n name: constants.createSpaceRouteName,\n path: `/${teamSlug}${to.path}`,\n query: to.query,\n params: { team_subdomain: teamSlug },\n };\n },\n },\n {\n path: '/manage-spaces:pathMatch(.*)*',\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n const pathMatch = Array.isArray(to.params.pathMatch) ? to.params.pathMatch.join('/') : '';\n return {\n path: `/${teamSlug}/manage-spaces${pathMatch ? '/' + pathMatch : ''}`,\n query: to.query,\n params: { team_subdomain: teamSlug },\n };\n },\n },\n {\n path: `/${constants.epicsBoardRoute.path}`,\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n return {\n name: constants.epicsBoardRoute.name,\n path: `/${teamSlug}${to.path}`,\n params: { team_subdomain: teamSlug },\n };\n },\n },\n {\n path: '/views',\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n return {\n name: 'views',\n path: `/${teamSlug}${to.path}`,\n params: { team_subdomain: teamSlug },\n };\n },\n },\n {\n path: '/my-work',\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n return { path: `/${teamSlug}${to.path}`, params: { team_subdomain: teamSlug } };\n },\n },\n {\n path: '/my-work/notes',\n redirect: () => {\n const teamSlug = store.getters.getTeamSlug;\n return { path: `/${teamSlug}/notes`, params: { team_subdomain: teamSlug } };\n },\n },\n {\n path: '/notes',\n redirect: (to) => {\n const teamSlug = store.getters.getTeamSlug;\n return { path: `/${teamSlug}${to.path}`, params: { team_subdomain: teamSlug } };\n },\n },\n {\n path: '/oauth2/authorize/',\n name: 'authorize',\n component: () =>\n import(\n /* webpackChunkName: \"loginOnboarding\" */ '../components/pages/IntegrationWorkspaceList.vue'\n ),\n },\n ] as Array,\n});\n\nrouter.beforeEach((to: any, from: any, next: Function) => {\n beforeEachGuard(to, from, next);\n});\n\nrouter.afterEach((to: any) => {\n afterEachGuard(to);\n});\n\nexport default router;\n","export default {\n computed: {\n isViewOpen() {\n return [\n this.$constants.routeNames.view,\n this.$constants.routeNames.views,\n this.$constants.routeNames.newView,\n ].includes(this.$route.name);\n },\n },\n};\n","import electronHelpersMixin from '@/mixins/electronHelpersMixin';\nimport isSafari from './isSafari';\n\nexport default {\n mixins: [electronHelpersMixin, isSafari],\n data() {\n return {\n displayOverlay: false,\n };\n },\n computed: {\n getOpenInDesktopAppLS() {\n return this.$store.getters.getOpenInDesktopApp;\n },\n isSettings() {\n const pathName = window.location.pathname;\n return pathName.endsWith('/settings') || pathName.includes('/settings/');\n },\n teamSlug() {\n return this.$store.getters.getTeamSlug;\n },\n disableOpeningLinksInApp() {\n return (\n window.location.pathname.includes('/desktop-redirect') ||\n this.isElectronApp ||\n this.isMobile ||\n this.isSettings ||\n this.getOpenInDesktopAppLS === false\n );\n },\n },\n mounted() {\n if (this.disableOpeningLinksInApp) {\n return;\n }\n\n // safari does not allow connecting to electron app's local express server\n // => always display notification for choosing to open in app\n if (this.isSafariCheck) {\n this.openInAppHandler();\n return;\n }\n\n this.isElectronAppRunning().then((installed) => {\n if (installed) this.openInAppHandler();\n });\n },\n methods: {\n openInAppHandler() {\n if (this.getOpenInDesktopAppLS === null) {\n this.displayChooseToOpenInDesktopAppNotif();\n } else {\n this.displayOverlay = true;\n this.openCurrentRouteInDesktopApp();\n }\n },\n async isElectronAppRunning() {\n for (const url of this.$constants.connectToDesktopAppUrls) {\n try {\n const response = await fetch(url);\n if (response.ok) {\n const { installed } = await response.json();\n return installed;\n }\n } catch (error) {\n continue;\n }\n }\n\n return false;\n },\n\n openCurrentRouteInDesktopApp() {\n // dont display desktop redirect overlay component if 'open in app'\n // is triggered by clicking on button in toast notification\n if (this.displayOverlay) this.$store.dispatch('setShowRedirectedToAppOverlay', true);\n const url = new URL(window.location.href);\n const { pathname, search, hash } = url;\n window.location.href = `superthread:/${pathname}${search}${hash}`;\n },\n setOpenInDesktopAppLS(value) {\n this.$store.dispatch('setOpenInDesktopApp', value);\n },\n displayChooseToOpenInDesktopAppNotif() {\n this.displayOverlay = false;\n const notificationLabels = [\n {\n text: this.translate('electronOpenInApp'),\n type: this.$constants.uiNotificationElements.button,\n callback: this.openCurrentRouteInDesktopApp,\n buttonStyle: 'attention',\n },\n {\n text: this.translate('rememberChoice'),\n type: this.$constants.uiNotificationElements.checkBox,\n action: 'setOpenInDesktopApp',\n },\n ];\n this.$store.dispatch('addUiNotification', {\n message: `${this.translate('electronOpenInDesktopApp')}?`,\n icon: 'monitor',\n subtitle: this.translate('electronAppIsInstalled'),\n labels: notificationLabels,\n duration: -1,\n });\n },\n },\n};\n","import { IconType } from '@/types/iconTypes';\n\nexport default {\n computed: {\n iconEnum() {\n return IconType.Icon;\n },\n emojiEnum() {\n return IconType.Emoji;\n },\n imageEnum() {\n return IconType.Image;\n },\n },\n};\n","import { getBoardLists, getDefaultCardStatuses } from '@/utilities/defaultCardStatuses';\n\nexport default {\n computed: {\n cardStatuses() {\n return getDefaultCardStatuses();\n },\n },\n\n methods: {\n defaultLists(isEpic = false) {\n return getBoardLists(isEpic);\n },\n },\n};\n","import { Tag, TagColor } from '@superthread-com/api';\n\nexport interface SuggestionTag extends Tag {\n name: string;\n color: TagColor;\n}\n\nexport enum SuggestionType {\n tag = 'tag',\n relation = 'relation',\n}\n\nexport type SuggestionTooltipType = 'accept' | 'reject' | 'default';\n\nexport interface RemoveSuggestionPayload {\n type: SuggestionType;\n card_id?: string;\n tagName?: string;\n ignoreSuggestion?: boolean; // ignore suggestion so it wont appear again for the current card\n}\n","import { RootState as IState } from '@/types';\nimport { Modal } from '@/types/modal';\nimport { browserStorageGetItem } from '@/utilities/browser-storage.util';\nimport { hideEmptyGroupByBoardKey, showWeekendsByBoardKey } from '@/utilities/localDrafts';\n\nconst getDefaultState = (): IState => ({\n currentProjectId: '',\n\n currentEditCommentID: '',\n\n commentToDeleteId: '',\n commentToDeleteParentId: '',\n commentToDeleteResourceType: '',\n\n commentsAreActive: false,\n\n userSettings: {},\n user: { team: {} },\n\n teams: {},\n teamProjects: [],\n projectOrder: [],\n socketDeletedProjects: [],\n\n comments: [],\n\n cardsCommentsAndActivities: {},\n\n commentsSection: 'pages',\n\n loggedIn: false,\n previousRoute: {},\n popUpMessage: '',\n\n loginDetails: {\n userName: '',\n email: '',\n password: '',\n teamID: '',\n teamSubDomain: localStorage.teamSubDomain || '',\n teamSubDomains: localStorage.getItem('teamSubDomains')\n ? JSON.parse(localStorage.teamSubDomains)\n : [],\n },\n\n emojiPickerDisplayed: '',\n\n routes: {\n local: {\n host: 'http://localhost:8080',\n users: 'http://localhost:12000',\n projects: 'http://localhost:12001',\n pages: 'http://localhost:12002',\n reactions: 'http://localhost:12003',\n comments: 'http://localhost:12004',\n boards: 'http://localhost:12005',\n lists: 'http://localhost:12006',\n cards: 'http://localhost:12007',\n checklists: 'http://localhost:12008',\n checklistitems: 'http://localhost:12009',\n search: '',\n files: '',\n views: 'http://localhost:12001',\n socket: '',\n integrations: '',\n editorSocket: 'ws://localhost:8787',\n },\n dev: {\n host: 'https://dev-app.superthread.com',\n users: 'https://api.dev.superthread.com',\n projects: 'https://api.dev.superthread.com',\n pages: 'https://api.dev.superthread.com',\n reactions: 'https://api.dev.superthread.com',\n comments: 'https://api.dev.superthread.com',\n boards: 'https://api.dev.superthread.com',\n lists: 'https://api.dev.superthread.com',\n cards: 'https://api.dev.superthread.com',\n checklists: 'https://api.dev.superthread.com',\n checklistitems: 'https://api.dev.superthread.com',\n search: 'https://api.dev.superthread.com',\n files: 'https://api.dev.superthread.com',\n views: 'https://api.dev.superthread.com',\n socket: 'wss://api.dev.superthread.com/v1',\n integrations: 'https://api.dev.superthread.com',\n editorSocket: 'wss://yjs-ws.superthread.workers.dev',\n },\n test: {\n host: 'https://dev-app.superthread.com',\n users: 'https://api.dev.superthread.com',\n projects: 'https://api.dev.superthread.com',\n pages: 'https://api.dev.superthread.com',\n reactions: 'https://api.dev.superthread.com',\n comments: 'https://api.dev.superthread.com',\n boards: 'https://api.dev.superthread.com',\n lists: 'https://api.dev.superthread.com',\n cards: 'https://api.dev.superthread.com',\n checklists: 'https://api.dev.superthread.com',\n checklistitems: 'https://api.dev.superthread.com',\n search: 'https://api.dev.superthread.com',\n files: 'https://api.dev.superthread.com',\n views: 'https://api.dev.superthread.com',\n socket: 'wss://api.dev.superthread.com/v1',\n integrations: 'https://api.dev.superthread.com',\n editorSocket: 'wss://yjs-ws.superthread.workers.dev',\n },\n staging: {\n host: 'https://staging-app.superthread.com',\n users: 'https://api.staging.superthread.com',\n projects: 'https://api.staging.superthread.com',\n pages: 'https://api.staging.superthread.com',\n reactions: 'https://api.staging.superthread.com',\n comments: 'https://api.staging.superthread.com',\n boards: 'https://api.staging.superthread.com',\n lists: 'https://api.staging.superthread.com',\n cards: 'https://api.staging.superthread.com',\n checklists: 'https://api.staging.superthread.com',\n checklistitems: 'https://api.staging.superthread.com',\n search: 'https://api.staging.superthread.com',\n files: 'https://api.staging.superthread.com',\n views: 'https://api.staging.superthread.com',\n socket: 'wss://api.staging.superthread.com/v1',\n integrations: 'https://api.staging.superthread.com',\n editorSocket: 'wss://collaboration-staging.superthread.com',\n },\n release: {\n host: 'https://app.superthread.com',\n users: 'https://api.superthread.com',\n projects: 'https://api.superthread.com',\n pages: 'https://api.superthread.com',\n reactions: 'https://api.superthread.com',\n comments: 'https://api.superthread.com',\n boards: 'https://api.superthread.com',\n lists: 'https://api.superthread.com',\n cards: 'https://api.superthread.com',\n checklists: 'https://api.superthread.com',\n checklistitems: 'https://api.superthread.com',\n search: 'https://api.superthread.com',\n files: 'https://api.superthread.com',\n views: 'https://api.superthread.com',\n socket: 'wss://api.superthread.com/v1',\n integrations: 'https://api.superthread.com',\n editorSocket: 'wss://collaboration.superthread.com',\n },\n production: {\n host: 'https://app.superthread.com',\n users: 'https://api.superthread.com',\n projects: 'https://api.superthread.com',\n pages: 'https://api.superthread.com',\n reactions: 'https://api.superthread.com',\n comments: 'https://api.superthread.com',\n boards: 'https://api.superthread.com',\n lists: 'https://api.superthread.com',\n cards: 'https://api.superthread.com',\n checklists: 'https://api.superthread.com',\n checklistitems: 'https://api.superthread.com',\n search: 'https://api.superthread.com',\n files: 'https://api.superthread.com',\n views: 'https://api.superthread.com',\n socket: 'wss://api.superthread.com/v1',\n integrations: 'https://api.superthread.com',\n editorSocket: 'wss://collaboration.superthread.com',\n },\n },\n helpPopupIsOn: false,\n\n commentListOrderBy: 'time',\n\n projectFormName: '',\n projectFormDescription: '',\n\n currentTabName: 'boards',\n members: [],\n showSearchModal: false,\n showAskAiNotesModal: false,\n searchResults: [],\n childSearchResults: [],\n lastSearchQuery: '',\n lastAskAiNotesSearchQuery: '',\n notificationMessage: '',\n notificationType: '',\n darkMode: false,\n cachedComponents: ['ProjectPages'],\n boardsBackground: '',\n sidebarExpanded: true,\n addMemberPopupIsOn: false,\n addMembersTarget: {},\n displayMembersDropdownId: '',\n\n displayEditLinkPopup: false,\n displayEditorTooltip: {\n editorID: '',\n show: false,\n },\n commentLinkUrl: '',\n commentLinkText: '',\n displayInfoSidebar: false,\n\n teamMembers: {},\n inactiveMembers: {},\n\n redirectRouteAfterLogin: {},\n notificationCount: 0,\n notificationAlerts: [],\n teamMemberNotifications: [],\n\n publicViews: [],\n privateViews: [],\n selectedViewType: 'card',\n viewPreview: [],\n selectedView: {},\n viewFilters: {\n include: {},\n exclude: {},\n sort_by: {\n field: 'time_created',\n },\n },\n viewPills: [],\n viewResultsList: {},\n viewEditMode: false,\n boardsFilters: [],\n uiNotifications: [],\n favouritesOpened: false,\n openedFavouriteItem: {},\n membersSearchInput: '',\n headerMemberDropdownPosition: {},\n activeComment: '',\n currentRoute: {},\n socketConnected: false,\n displayVideoLinkPopup: '',\n installations: {},\n importProgressSteps: {},\n routeBeforeSettings: '',\n importProgressCurrentStep: 1,\n settingsCurrentProjectId: '',\n settingsCurrentBoardId: '1',\n integrationSettings: {},\n projectSidebarExpanded: {},\n projectsExpanded: true,\n favouritesExpanded: true,\n draggingEntityProjectFromId: '',\n draggingSidebarItem: false,\n selectedProjectId: '',\n pendingInvites: [],\n currentRole: '',\n doubleCheckPopup: false,\n confirmationModal: false,\n localCardIds: {},\n colorsPopup: false,\n commentsOrder: 'newest',\n quickCard: false,\n membersToAddQuickCard: [],\n quickCardBoardId: '',\n quickPage: false,\n noteInQuickPage: '',\n quickNote: false,\n cardCommentActivityFilter: 'all',\n commentsInProgressPatch: [],\n commentsInProgressDelete: [],\n online: true,\n loadedFiles: [],\n projectPreviewLastScrollPos: {},\n favourites: [],\n favouritesFolderExpanded: {},\n newFolderInput: false,\n importHistory: [],\n favouriteFolderForRename: '',\n favouriteFolderTitle: '',\n showPeekSidebar: false,\n theme: '',\n electronBrowseHistory: [],\n electronBrowseHistoryIndex: -1,\n electronRecentlyViewed: [],\n themePreference: '',\n inviteeRole: '',\n inviteesProjectIds: [],\n redirectProjectId: 1,\n currentInboxResource: {},\n inboxFilter: 'unresolved',\n inboxListWidth: 350,\n inboxListExpanded: true,\n showOnboarding: false,\n openInDesktopApp: JSON.parse(localStorage.getItem('openInDesktopApp') || 'null'),\n showRedirectedToAppOverlay: false,\n membersDropdownInvitees: [],\n editorForCardLink: '',\n myWorkSelectedTabId: {},\n myWorkUserId: '',\n deletePopupId: '',\n itemNotFound: false,\n trashProjects: [],\n boardsColumnLayout: JSON.parse(localStorage.getItem('boardsColumnLayout') ?? '{}'),\n pagesColumnLayout: JSON.parse(localStorage.getItem('pagesColumnLayout') ?? '{}'),\n pressedEscCancelDragging: false,\n currentViewTotalCount: 0,\n sidebarHovered: false,\n sidebarDragging: {},\n teamFeatures: [],\n showUpdateEmailPopup: false,\n showHideReplies: {},\n editorOpen: {},\n pageIconPickerDisplayed: false,\n hideEmptyGroups:\n browserStorageGetItem(hideEmptyGroupByBoardKey(browserStorageGetItem('currentTeamId') ?? '')) ||\n [],\n showWeekends:\n browserStorageGetItem(showWeekendsByBoardKey(browserStorageGetItem('currentTeamId') || '')) ||\n [],\n reconnectionCallbacks: {},\n previousNextButtonClicked: false,\n resolveInlineComment: false,\n notificationDigest: {},\n notificationDigestSettings: {},\n boardEmbedPopup: {},\n isSettingsOpen: false,\n showUpgradePlanPopup: '',\n myWorkSortBy: {},\n modal: {} as Modal,\n recentWorkspaces: JSON.parse(localStorage.getItem('recentWorkspaces') ?? '[]'),\n openWorkspaceThroughQuickSwitcher: false,\n sidebarSprintsExpanded: {},\n notes: {},\n noteCreating: '',\n aiNoteGenerating: '',\n aiNoteGeneratingTitle: '',\n noteTemplates: [],\n transcriptionState: {\n noteId: '',\n recording: 'stopped',\n alreadyRecorded: new Set(),\n permissions: {\n microphone: 'unknown',\n system: 'unknown',\n },\n },\n resourceLoaded: {\n teamMembers: false,\n spaceTags: false,\n epics: false,\n },\n noteTemplateDraft: {},\n noteTemplateSections: [],\n agents: [],\n agentRuns: [],\n currentAgentId: '',\n agentPromptIterations: {},\n upcomingGoogleCalendarEvents: [],\n teamSubscription: {},\n availablePlans: [],\n subGroupByEnabled: {},\n workspaceSectionExpanded: true,\n});\n\nexport default getDefaultState;\n","import { Project } from '@/types';\nimport EventBus from './eventBus';\n\nconst localUpdatePageProp = (pageId: string, value: any, prop: string, storeDispatch: any) => {\n storeDispatch('localUpdatePageProp', {\n pageId,\n propertyName: prop,\n value,\n });\n if (prop === 'icon') {\n EventBus.$emit(`${pageId}-updatePageIcon`, value);\n }\n};\n\nconst updateBoardPropertyInBoards = (\n boardId: string,\n value: any,\n prop: string,\n storeDispatch: any\n) => {\n storeDispatch('updateBoardPropertyInBoards', {\n boardId,\n propertyName: prop,\n value,\n });\n};\n\nconst updateBoard = (\n newProject: Project,\n type: string,\n path: [string, any, string, any],\n to: any,\n from: any,\n storeDispatch: any,\n storeGetters: any\n) => {\n const [, index, prop] = path;\n const boardId = newProject.board_order?.[index];\n\n if (prop === 'title' && boardId) {\n updateBoardPropertyInBoards(boardId, to, 'title', storeDispatch);\n }\n\n if (type === 'create') {\n updateBoardPropertyInBoards(to.id, false, 'archived', storeDispatch);\n const board = storeGetters.getFlatBoards[to.id];\n if (board?.is_bookmarked) {\n storeDispatch('addBoardToBookmarked', board);\n }\n }\n};\n\nconst updatePage = (\n newProject: Project,\n type: string,\n path: [string, any, string, any],\n to: any,\n from: any,\n storeDispatch: any\n) => {\n const project = newProject;\n const [, index, prop, prop2] = path;\n const page = newProject.pages?.[index] ?? {};\n const pageId = page?.id;\n\n if (type === 'create') {\n const title = to.title || '';\n const icon = to.icon;\n localUpdatePageProp(to.id, title, 'title', storeDispatch);\n if (icon) {\n localUpdatePageProp(to.id, icon, 'icon', storeDispatch);\n }\n\n if (project.pages?.findIndex((page: any) => page.id === to.id) === -1) {\n project.pages.splice(index, 0, to);\n }\n\n storeDispatch('addPageToFlatPages', { ...to, projectId: project.id });\n storeDispatch('addPageToProjectPages', {\n pageId: page.id,\n projectId: project.id,\n });\n }\n\n if (type === 'update' && pageId) {\n if (prop === 'title') {\n localUpdatePageProp(pageId, to, 'title', storeDispatch);\n page.title = to;\n }\n if (prop === 'icon') {\n if (from === null) {\n page.icon = to;\n } else if (prop2 === 'src' || prop2 === 'color' || prop2 === 'type') {\n page.icon[prop2] = to;\n }\n if (to === null) {\n page.icon = {\n src: '',\n blurhash: '',\n type: '',\n };\n }\n localUpdatePageProp(pageId, page.icon, 'icon', storeDispatch);\n }\n }\n\n if (type === 'delete') {\n const pageId = from.id;\n const copiedPages = [...(newProject.pages ?? [])];\n const pageIndex = copiedPages.findIndex((page: any) => page.id === pageId);\n if (pageIndex === -1) return project;\n copiedPages.splice(pageIndex, 1);\n project.pages = copiedPages;\n }\n\n return project;\n};\n\nconst updateArchivedPages = (\n newProject: Project,\n type: string,\n to: any,\n from: any,\n storeDispatch: any,\n storeGetters: any\n) => {\n if (type === 'delete') {\n const archived = false;\n localUpdatePageProp(from.id, archived, 'archived', storeDispatch);\n }\n\n if (type === 'create') {\n const parentPageId = storeGetters.getProjectPagesTree(newProject.id)[to.id]?.parent;\n const page = storeGetters.getPages[parentPageId];\n if (page?.archived) {\n localUpdatePageProp(to.id, page.archived, 'archived', storeDispatch);\n }\n }\n};\n\nconst updateBoardPageTitle = (\n project: any,\n type: string,\n path: [string, any, string, any],\n to: any,\n from: any,\n storeDispatch: any,\n storeGetters: any\n) => {\n let newProject = project;\n const [basePath] = path;\n\n if (basePath === 'boards') {\n updateBoard(newProject, type, path, to, from, storeDispatch, storeGetters);\n }\n\n if (basePath === 'pages') {\n newProject = updatePage(newProject, type, path, to, from, storeDispatch);\n }\n\n if (basePath === 'archive_pages') {\n updateArchivedPages(newProject, type, to, from, storeDispatch, storeGetters);\n }\n\n if (basePath === 'page_order' && type === 'update') {\n const newPageTree: any = {};\n [...(to || [])].forEach((p) => {\n newPageTree[p.id] = p;\n });\n\n storeDispatch('setProjectPageOrderTree', {\n projectId: newProject.id,\n pagesTree: newPageTree,\n });\n\n /* storeDispatch('setProjectPagesTree', { projectId: newProject.id, to }); */\n newProject.page_order = to;\n }\n\n if (basePath === 'archive_page_order') {\n const newArchivePageTree: any = {};\n [...(to || [])].forEach((p) => {\n newArchivePageTree[p.id] = p;\n });\n\n storeDispatch('setProjectArchivedTree', {\n projectId: newProject.id,\n archiveTree: newArchivePageTree,\n });\n }\n\n return newProject;\n};\n\nexport default updateBoardPageTitle;\n","/* eslint-disable no-param-reassign */\nconst objectSet = (object, path, value) => {\n const decomposedPath = path;\n const base = decomposedPath[0];\n\n if (base === undefined) {\n return object;\n }\n\n if (Array.isArray(object) && !object.length) {\n object = [];\n } else if (!Array.isArray(object) && !Object.prototype.hasOwnProperty.call(object, base)) {\n object[base] = {};\n }\n // Determine if there is still layers to traverse\n value =\n decomposedPath.length <= 1 ? value : objectSet(object[base], decomposedPath.slice(1), value);\n\n if (Array.isArray(object)) {\n return [...object, value];\n }\n\n return {\n ...object,\n [base]: value,\n };\n};\n\nexport default objectSet;\n","/**\n * Main vuex actions\n * @packageDocumentation\n * @category Store\n */\nimport { ActionTree, ActionContext } from 'vuex';\nimport { nanoid } from 'nanoid';\nimport { RootState as State } from '@/types';\nimport {\n authGet,\n basePost,\n authPost,\n authDelete,\n authPatch,\n api,\n authPut,\n authRefresh,\n} from '@/utilities/api';\nimport updateBoardPageTitle from '@/utilities/updateBoardPageTitleInProject';\nimport constants from '@/utilities/constants';\nimport objectSet from '@/utilities/objectSet';\nimport getRandomNumber from '@/utilities/getRandomNumber';\nimport { icons, colors } from '@/utilities/colorsAndIcons';\nimport {\n AddMembersRequest,\n MemberRole,\n ChildCommentResponse,\n CommentResponse,\n UpdateCommentRequest,\n UpdateCommentStatusRequest,\n CreateCommentRequest,\n CreateCommentReactionRequest,\n CreateProjectRequest,\n GetUserResponse,\n User,\n GetFilesResponse,\n File,\n UpdateNotificationDigestRequest,\n UpdateNotificationDigestSettingsRequest,\n AddWatcherRequest,\n UpdateUserResponse,\n SprintState,\n} from '@superthread-com/api';\nimport { ResourceType } from '@/types/resources';\nimport { browserStorageGetItem, browserStorageSetItem } from '@/utilities/browser-storage.util';\nimport { subGroupByBoardKey } from '@/utilities/localDrafts';\nimport { Modal } from '@/types/modal';\nimport { translate } from '@/utilities';\nimport { OnboardingActionType } from '@/types/onboardingActions';\nimport { NoteContentType } from '@/types/notes';\nimport { toRaw } from 'vue';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst activePromises: { [key: string]: Promise } = {};\n\nlet abortSearchController: AbortController | undefined;\nlet viewsPaginationCursor: string | undefined;\nlet notificationsPaginationCursor: string | undefined;\nlet notesPaginationCursor: string | undefined;\n\nconst actions: ActionTree = {\n /**\n * Login Action\n * https://api.superthread.com/v1/auth/email\n */\n login({ getters }: ActionContext) {\n return basePost(`${getters.getRoutes.users}/v1/auth/email`, {\n email: getters.getEmail,\n password: getters.getPassword,\n }).catch((error) => {\n throw error;\n });\n },\n /**\n * Action to login with username and password only and set cookie\n */\n loginUsernamePass({ getters }: ActionContext) {\n return authPost(`${getters.getRoutes.users}/v1/auth/email`, {\n email: getters.getEmail,\n password: getters.getPassword,\n }).catch((error) => {\n throw error;\n });\n },\n\n async setUserSettings({ commit, getters }, settings) {\n const oldSettings = getters.getUserSettings;\n commit('setUserSettings', settings);\n return api.auth.updateUserSettings('me', settings).catch((error) => {\n commit('setUserSettings', oldSettings);\n throw error;\n });\n },\n async fetchUserSettings({ commit }) {\n return api.auth\n .getUserSettings('me')\n .then(({ data }) => {\n const { settings } = data;\n if (!settings) return;\n commit('setUserSettings', settings);\n })\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Action for loading user details.\n * https://api.superthread.com/v1/users/{user_id}\n */\n async loadUser({ dispatch, commit }) {\n const meUser = api.auth\n .getUser('me')\n .then(({ data }: { data: GetUserResponse }) => {\n if (data.token_outdated) {\n authRefresh();\n }\n const user: User = { teams: [], ...data.user };\n commit('setUser', user);\n return { user };\n })\n .catch((error) => {\n throw error;\n });\n\n dispatch('fetchUserSettings').catch(() => {});\n\n return meUser;\n },\n /**\n * Action for checking if user has token_privileged which is requiered to update email.\n */\n checkForTokenPrivileged() {\n return api.auth\n .getUser('me')\n .then(({ data }: { data: GetUserResponse }) => {\n return data.token_privileged;\n })\n .catch((error: Error) => {\n throw error;\n });\n },\n /**\n * Action for sending a code to a new email address.\n * @param {string} email - new email address\n * @param {boolean} resend - flag for resending a new code to same email without requiering a privileged token\n */\n sendCodeToNewEmail({ getters }, { email, resend = false }: { email: string; resend: boolean }) {\n return api.auth\n .sendUpdateUserEmailCode(getters.getUserId, { email }, { resend })\n .catch((error: Error) => {\n throw error;\n });\n },\n /**\n * Action for update user's email address.\n * @param {string} email - must match address the code was sent to\n * @param {boolean} resend - code sent to new email\n */\n updateUserEmail({ getters }, { email, code }: { email: string; code: string }) {\n return api.auth.updateUserEmail(getters.getUserId, { email, code }).catch((error: Error) => {\n throw error;\n });\n },\n /**\n * Sets the flag when user is logged in.\n */\n setLoggedIn({ commit }: ActionContext) {\n commit('setLoggedIn');\n },\n /**\n * Sets the flag when user is not loged in.\n */\n setNotLoggedIn({ commit }) {\n commit('setNotLoggedIn');\n },\n /**\n * Sets passed user to state.\n * @param {User} user\n */\n setUser({ commit }, user: User) {\n commit('setUser', user);\n },\n\n /**\n * PROJECTS\n */\n\n /**\n * Action for adding a new project.\n */\n addProject({ getters, dispatch, commit }, { isPrivate, icon, members } = {}) {\n const { getProjectFormName, getProjectFormDescription, getTeamID, getTeamProjects, getUserId } =\n getters;\n if (!getProjectFormName) return Promise.reject(new Error(constants.noSpaceName));\n const newTeamProjects = [...getTeamProjects];\n const currentDate = Math.floor(Date.now() / 1000);\n const projectMembers = [{ user_id: getUserId, role: MemberRole.Admin }, ...(members || [])];\n const localId = nanoid(6);\n const randomColorIndex = getRandomNumber(0, colors.length - 1);\n const randomIconIndex = getRandomNumber(0, icons.length - 1);\n\n const newProject = {\n description: '',\n id: localId,\n is_member: true,\n is_private: Boolean(isPrivate),\n members: projectMembers,\n team_id: getTeamID,\n time_created: currentDate,\n time_updated: currentDate,\n title: getProjectFormName,\n total_members: projectMembers.length,\n total_members_online: 0,\n user_id: getUserId,\n icon: {\n src: icon?.src || icons[randomIconIndex],\n color: icon?.color || colors[randomColorIndex],\n type: icon?.type || 'icon',\n },\n board_order: [],\n boards: [],\n pages: [],\n page_order: [],\n };\n newTeamProjects.push(newProject);\n dispatch('setProjectFormName', '');\n dispatch('setProjectFormDescription', '');\n dispatch('setTeamProjects', newTeamProjects);\n\n const payload: CreateProjectRequest = {\n title: getProjectFormName,\n description: getProjectFormDescription,\n is_private: newProject.is_private,\n icon: {\n src: newProject.icon.src,\n color: newProject.icon.color,\n type: newProject.icon.type,\n },\n members: projectMembers,\n };\n\n return api.projects\n .createProject(getTeamID, payload)\n .then(({ data }) => {\n const { project } = data;\n if (project) {\n commit('localUpdateProject', {\n localId,\n newId: project.id,\n });\n commit('localAddProjectInPageTree', project.id);\n const newProjctsOrder = [...getters.getProjectOrder];\n newProjctsOrder.push(project.id);\n commit('setProjectOrder', newProjctsOrder);\n }\n return data;\n })\n .catch((error) => {\n commit('localUpdateFailRequest', localId);\n throw error;\n });\n },\n\n addToSocketDeletedProjects({ commit }, projectId) {\n commit('addToSocketDeletedProjects', projectId);\n },\n\n clearSocketDeletedProjects({ commit }) {\n commit('clearSocketDeletedProjects');\n },\n\n localRemoveProject({ getters, commit }, projectId) {\n const { getTeamProjects } = getters;\n const newTeamProjects = [...getTeamProjects];\n const index = newTeamProjects.findIndex((p) => p.id === projectId);\n if (index > -1) {\n const project = { ...newTeamProjects[index] };\n newTeamProjects.splice(index, 1);\n commit('setTeamProjects', { projects: newTeamProjects });\n\n // remove project from projectOrder\n const newProjectOrder = [...getters.getProjectOrder];\n const projectIndex = newProjectOrder.indexOf(projectId);\n if (projectIndex > -1) {\n newProjectOrder.splice(projectIndex, 1);\n commit('setProjectOrder', newProjectOrder);\n }\n\n // add project to trashed projects\n const trashedProjects = [...getters.getTrashProjects];\n trashedProjects.push(project);\n commit('setTrashProjects', trashedProjects);\n }\n },\n\n localAddProjectToTeamProjects({ commit, getters }, newProject) {\n const newTeamProjects = [...getters.getTeamProjects];\n\n const alreadyExists = newTeamProjects.some((p) => p.id === newProject.id);\n if (alreadyExists) return;\n // add is_member flag to project if undefined\n if (newProject.is_member === undefined) {\n newProject.is_member = newProject.members?.some((m: any) => m.user_id === getters.getUserId);\n }\n newTeamProjects.push(newProject);\n commit('setTeamProjects', { projects: newTeamProjects });\n },\n\n /**\n * Joins user on project, for the passed project id.\n * @param {string} projectId\n */\n joinProject({ getters, dispatch }, projectId) {\n const { getTeamID, getUser } = getters;\n const payload: AddMembersRequest = {\n members: [{ user_id: getUser.id, role: MemberRole.Member }],\n };\n return api.projects\n .addProjectMember(getTeamID, projectId, payload)\n .then(() => dispatch('loadTeamProjects'))\n .catch((error) => {\n throw error;\n });\n },\n /**\n * Action to load all projects for user's team.\n */\n loadTeamProjects({ commit, getters }) {\n const key = 'loadTeamProjects';\n const existingPromise = activePromises[key];\n if (existingPromise !== undefined) return existingPromise;\n\n const promise = api.projects\n .getProjects(getters.getTeamID)\n .then(({ data }) => data)\n .then(({ projects, project_order }) => {\n commit('setTeamProjects', { projects, projectOrder: project_order });\n if (projects) {\n projects.forEach((project) => {\n commit('setProjectBoards', {\n projectId: project.id,\n projectBoards: project.board_order,\n });\n const projectBoards = project.boards\n .map((item: any) => {\n const oldBoardData = getters.getFlatBoards[item.id];\n return {\n ...item,\n // save old layout property\n ...(oldBoardData?.layout && { layout: oldBoardData.layout }),\n project_id: project.id,\n };\n })\n .filter((board) => {\n if (board.id) return !getters.getFlatBoards[board.id];\n return false;\n });\n if (projectBoards.length > 0) {\n commit('setFlatBoards', projectBoards);\n }\n });\n }\n return projects;\n })\n .catch(() => {})\n .finally(() => {\n delete activePromises[key];\n });\n activePromises[key] = promise;\n return promise;\n },\n setTeamProjects({ commit }, teamProjects) {\n commit('setTeamProjects', { projects: teamProjects });\n },\n setTeam({ commit }, team) {\n commit('setTeam', team);\n },\n /**\n * Action to set project order\n */\n setProjectOrder({ commit }, projectOrder) {\n commit('setProjectOrder', projectOrder);\n },\n /**\n * Updates project field.\n * @param {object} projectData {title: string, description: string, overview_page_id: number}\n */\n updateProject(\n { getters, commit, dispatch },\n { projectData, projectId = getters.getCurrentProjectId, skipCheck = false }\n ) {\n const { getTeamID, getSelectedProjectId, getTeamProjectById } = getters;\n let currentProjectId: string;\n if (!skipCheck) {\n currentProjectId = getSelectedProjectId === '' ? projectId : getSelectedProjectId;\n } else {\n currentProjectId = projectId;\n }\n const currentProject = { ...getTeamProjectById(currentProjectId) };\n const currentProjectTimeUpdated = currentProject?.time_updated;\n const timeUpdated = new Date().getTime();\n\n const updateFields = (fieldValueSource: any, forceUpdate = false) => {\n const fieldsToUpdate = ['title', 'description', 'icon', 'estimate_system'];\n fieldsToUpdate.forEach((field) => {\n if (forceUpdate || (projectData[field] && projectData[field] !== currentProject[field])) {\n dispatch('localUpdateTeamProjectField', {\n projectId: currentProjectId,\n fieldName: field,\n fieldValue: fieldValueSource[field],\n });\n }\n });\n };\n\n updateFields(projectData);\n\n dispatch('localUpdateTeamProjectField', { fieldName: 'time_updated', fieldValue: timeUpdated });\n\n return api.projects.updateProject(getTeamID, currentProjectId, projectData).catch((error) => {\n updateFields(currentProject, true);\n dispatch('localUpdateTeamProjectField', {\n fieldName: 'time_updated',\n fieldValue: currentProjectTimeUpdated,\n });\n commit('setSelectedProjectId', '');\n throw error;\n });\n },\n\n /**\n * Updates team project field locally.\n * @param {object} fieldNameValueObject {fieldName: string, fieldValue: string}\n */\n localUpdateTeamProjectField(\n { commit, getters },\n { projectId = getters.getCurrentProjectId, fieldName, fieldValue }\n ) {\n const payload = {\n projectId,\n fieldName,\n fieldValue,\n };\n commit('setTeamProjectField', payload);\n },\n\n /**\n * Sets a flag for displaying a popup for help section.\n * @param {boolean} payload\n */\n setHelpPopupIsOn({ commit }, payload: boolean) {\n commit('setHelpPopupIsOn', payload);\n },\n /**\n * Sets current project id on state and local storage.\n * @param {string} id\n */\n setCurrentProjectId({ commit, getters }, id: string) {\n commit('setCurrentProjectId', {\n teamId: getters.getTeamID,\n projectId: id,\n });\n },\n /**\n * Sets project description from form input when adding project or editing description.\n * @param {string} description\n */\n setProjectFormDescription({ commit }, description: string) {\n commit('setProjectFormDescription', description);\n },\n /**\n * Sets project name from form input.\n * @param {string} name\n */\n setProjectFormName({ commit }, name: string) {\n commit('setProjectFormName', name);\n },\n\n /**\n * PAGES\n */\n /**\n * Sets previous route path.\n * @param {string} route\n */\n setPreviousRoute({ commit }, route: string) {\n commit('setPreviousRoute', route);\n },\n /**\n * Action sets user's password.\n * @param {string} password\n */\n setPassword({ commit }, password: string) {\n commit('setPassword', password);\n },\n /**\n * Action sets user's username.\n * @param {string} username\n */\n setUserName({ commit }, username: string) {\n commit('setUserName', username);\n },\n /**\n * Action sets user's email address.\n * @param {string} email\n */\n setEmail({ commit }, email: string) {\n commit('setEmail', email);\n },\n\n /**\n * Action sets the team subdomain to store and browser's local storage.\n * @param {string} teamSubdomain\n */\n setTeamSubDomain({ commit }, teamSubdomain: string) {\n commit('setTeamSubDomain', teamSubdomain);\n },\n\n removeTeamSubDomain({ commit }, index: number) {\n commit('removeTeamSubDomain', index);\n },\n\n /**\n * COMMENTS\n */\n\n addLocalComment({ commit }, payload) {\n commit('addLocalComment', payload);\n },\n\n updateLocalCommentId({ commit }, { commentId, localId, childCommentId, commentPayload, cardId }) {\n commit('updateLocalCommentId', {\n commentId,\n localId,\n childCommentId,\n commentPayload,\n cardId,\n });\n },\n\n removeLocalComment({ commit }, { localCommentId, parentCommentId }) {\n commit('removeLocalComment', { localCommentId, parentCommentId });\n },\n\n localUpdateComment({ commit }, { fieldName, fieldValue, commentId, childCommentId, cardId }) {\n commit('localUpdateComment', { fieldName, fieldValue, commentId, childCommentId, cardId });\n },\n\n /**\n * Add new comment from page or card.\n */\n addComment(\n { dispatch, getters },\n { content, context = '', isCard = false, card_id, page_id = getters.getCurrentPageID }\n ) {\n const totalCommentCount = parseInt(getters.getPage?.total_comments || 0, 10);\n if (!isCard) {\n dispatch('localUpdatePageProp', {\n pageId: getters.getPage.id,\n propertyName: 'total_comments',\n value: `${totalCommentCount + 1}`,\n });\n }\n\n if (content === constants.emptyMarkdownInput || content === '')\n return Promise.reject(new Error('Comment content is empty.'));\n\n const body: CreateCommentRequest = {\n content,\n schema: getters.commentsSchema,\n ...(context && { context }),\n ...(isCard && { card_id }),\n ...(!isCard && { page_id }),\n };\n\n return api.comments\n .createComment(getters.getTeamID, body)\n .then(({ data }: { data: CommentResponse }) => {\n return data;\n })\n .catch((err) => {\n if (!isCard) {\n dispatch('localUpdatePageProp', {\n pageId: getters.getPage.id,\n propertyName: 'total_comments',\n value: `${totalCommentCount - 1}`,\n });\n }\n return err;\n });\n },\n\n /**\n * Add new child comment for existing comment.\n * https://api.superthread.com/v1/{team_id}/comments/{comment_id}/children\n */\n addChildComment({ getters }, { content, commentId }) {\n const commentContent = content.replace(/(<([^>]+)>)/, '');\n if (!commentContent.length) return Promise.reject(new Error('Comment content is empty.'));\n const body: CreateCommentRequest = {\n content,\n schema: getters.commentsSchema,\n };\n\n return api.comments\n .createChildComment(getters.getTeamID, commentId, body)\n .then(({ data }: { data: ChildCommentResponse }) => {\n return data;\n })\n .catch((err) => err);\n },\n\n /**\n * Update edited comment in the comment list.\n */\n updateComment({ getters, commit }, { commentId, content, childComment, childCommentId, status }) {\n const body: UpdateCommentRequest = {\n ...(content && { content }),\n schema: getters.commentsSchema,\n ...(status && { status }),\n };\n const updateChild = () =>\n api.comments.updateChildComment(getters.getTeamID, commentId, childCommentId, body);\n const updateParent = () => api.comments.updateComment(getters.getTeamID, commentId, body);\n const update = childComment ? updateChild : updateParent;\n\n return update().catch(({ response }) => {\n const error = response.data;\n if (error.message === 'oldSchema') {\n // add ui notification\n commit('addUiNotification', {\n message: translate('updateAppToEditComment'),\n duration: 4000,\n id: nanoid(4),\n });\n }\n throw error;\n });\n },\n\n updateCommentStatus({ getters }, { commentId, status }) {\n const body: UpdateCommentStatusRequest = {\n status,\n };\n return api.comments.updateCommentStatus(getters.getTeamID, commentId, body);\n },\n\n /**\n * Loads comments for the previously set comments section\n * Used only for pages, we get card comments within activity\n */\n loadComments({ getters, commit, dispatch }) {\n return api.comments\n .getComments(getters.getTeamID, { page_id: getters.getCurrentPageID })\n .then(({ data }) => {\n commit('setComments', data.comments);\n return data;\n })\n .catch((/* err */) => {\n dispatch('addUiNotification', {\n message: translate('couldntLoadComments'),\n status: constants.uiNotificationStatuses.error,\n labels: [\n {\n text: translate('retry'),\n type: constants.uiNotificationElements.button,\n action: 'loadComments',\n buttonStyle: 'important',\n },\n ],\n });\n });\n },\n\n /**\n * Load comment by comment id\n */\n loadComment({ getters, commit, dispatch }, commentId) {\n return api.comments\n .getComment(getters.getTeamID, commentId)\n .then(({ data }) => {\n commit('addComment', data.comment);\n return data;\n })\n .catch((/* err */) => {\n dispatch('addUiNotification', {\n message: translate('couldntLoadComments'),\n status: constants.uiNotificationStatuses.error,\n labels: [\n {\n text: translate('retry'),\n type: constants.uiNotificationElements.button,\n action: 'loadComment',\n params: { commentId },\n buttonStyle: 'important',\n },\n ],\n });\n });\n },\n\n /**\n * Sets the current comment di for further manipualtion.\n * @param {string} commentId\n */\n setCurrentEditCommentID({ commit }, commentId) {\n commit('setCurrentEditCommentID', commentId);\n },\n\n /**\n * Sets current comments.\n * @param {object} payload\n */\n setComments({ commit }, payload) {\n commit('setComments', payload);\n },\n\n /**\n * Sets current card comments and activities.\n * @param {object} payload\n */\n setCardCommentsAndActivities({ commit }, { cardId, payload }) {\n commit('setCardCommentsAndActivities', { cardId, payload });\n },\n\n /**\n * Dispatches API call to delete comment using commentToDeleteId previously set.\n */\n deleteComment(\n { getters, commit, dispatch },\n { commentId, commentType, cardId = '', parentCommentId = '' }\n ) {\n const teamId = getters.getTeamID;\n\n const totalCommentCount = parseInt(getters.getPage.total_comments, 10);\n const currentRouteName = getters.getCurrentRoute.name;\n let comments = null;\n let commentIndex = -1;\n if (cardId && commentType === ResourceType.CardComment) {\n comments = getters.getCardCommentsAndActivities(cardId);\n } else {\n comments = getters.getPageComments;\n if (currentRouteName === 'page' && !parentCommentId) {\n dispatch('localUpdatePageProp', {\n pageId: getters.getPage.id,\n propertyName: 'total_comments',\n value: `${totalCommentCount - 1}`,\n });\n }\n }\n let commentToDeleteId = '';\n if (parentCommentId) {\n commentToDeleteId = parentCommentId;\n commentIndex = comments.findIndex((c: any) => c.id === parentCommentId);\n } else {\n commentToDeleteId = commentId;\n commentIndex = comments.findIndex((c: any) => c.id === commentId);\n }\n dispatch('addCommentInProgressDelete', commentToDeleteId);\n const oldComment = { ...comments[commentIndex] };\n\n commit('removeLocalComment', { localCommentId: commentId, parentCommentId, cardId });\n const childCommentString = parentCommentId\n ? `${parentCommentId}/children/${commentId}`\n : `${commentId}`;\n return authDelete(`${getters.getRoutes.pages}/v1/${teamId}/comments/${childCommentString}`)\n .then(({ data }) => {\n dispatch('removeCommentInProgressDelete', commentToDeleteId);\n return data;\n })\n .catch((error) => {\n commit('addLocalComment', {\n comment: oldComment,\n index: commentIndex,\n });\n if (currentRouteName === 'page') {\n dispatch('localUpdatePageProp', {\n pageId: getters.getPage.id,\n propertyName: 'total_comments',\n value: `${totalCommentCount + 1}`,\n });\n }\n throw error;\n });\n },\n\n /* POPUP */\n\n /**\n * Sets the message to be displayed on popup.\n * @param {string} message\n */\n setPopUpMessage({ commit }, message: string) {\n commit('setPopUpMessage', message);\n },\n\n /**\n * Sets the name of the current tab.\n * @param {string} tabName pages/boards\n */\n setCurrentTabName({ commit }, tabName) {\n commit('setCurrentTabName', tabName);\n },\n\n /**\n * Sets a flag controling the display of comments list in the page view.\n * @param {boolean} active\n */\n setCommentsAreActive({ commit, dispatch }, active: boolean) {\n if (!active) {\n dispatch('setHighlightedPageLevelComments', []);\n }\n commit('setCommentsAreActive', active);\n },\n\n /**\n * Sets a flag determing where the comment is written.\n * @param {string} section Identifier where the comment is pages/card\n */\n setCommentsSection({ commit }, section) {\n commit('setCommentsSection', section);\n },\n\n /**\n * Fetches Team Members\n * */\n fetchTeamMembers({ commit, getters }) {\n const teamId = getters.getTeamID;\n if (!teamId) return Promise.reject(new Error('No team id.'));\n return api.auth\n .getTeamMembers(teamId)\n .then(({ data }) => {\n const members = [...(data.members ?? []), ...(data.invited ?? [])].sort((a, b) =>\n (a.display_name || a.email || '').localeCompare(b.display_name || b.email || '')\n );\n commit('setTeamMembers', { members });\n if (data.inactive) {\n commit('setTeamMembers', {\n members: data.inactive.sort((a, b) =>\n (a.display_name || a.email || '').localeCompare(b.display_name || b.email || '')\n ),\n inactive: true,\n });\n }\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Set team members\n * @param {array} teamMembers Array of team members\n * */\n setTeamMembers({ commit }, teamMembers) {\n commit('setTeamMembers', { members: teamMembers });\n },\n\n /**\n * Set current project members\n * @param {array} projectMembers Array of project members\n */\n setProjectMembers({ commit }, projectMembers) {\n commit('setCurrentMembers', projectMembers);\n },\n\n /**\n * Sets a showSearchModal flag.\n * @param {boolean} payload\n */\n toggleSearchModal({ commit }, payload: boolean) {\n commit('toggleSearchModal', payload);\n },\n\n /**\n * Sets a showAskAiNotesModal flag.\n * @param {boolean} payload\n */\n toggleAskAiNotes({ commit }, payload: boolean) {\n commit('toggleAskAiNotes', payload);\n },\n\n cancelSearch() {\n if (abortSearchController !== undefined) {\n abortSearchController.abort();\n }\n },\n\n fetchSearchResults({ getters }, { query, advanceOptions }) {\n if (abortSearchController !== undefined) {\n // cancel previous request\n abortSearchController.abort();\n }\n\n const queryParams = {\n query,\n archived: advanceOptions.archived,\n grouped: advanceOptions.grouped,\n types: advanceOptions.types,\n ...(advanceOptions.fields && { fields: advanceOptions.fields }),\n project_ids: advanceOptions.spaces,\n statuses: advanceOptions.statuses,\n parent_card: advanceOptions.parentCard,\n };\n\n abortSearchController = new AbortController();\n\n return api.search\n .getSearch(getters.getTeamID, queryParams, {\n signal: abortSearchController.signal,\n paramsSerializer: {\n indexes: null,\n },\n })\n .then((response) => {\n abortSearchController = undefined;\n return response;\n })\n .catch((error) => {\n if (error === 'canceled') return;\n abortSearchController = undefined;\n throw error;\n });\n },\n\n /**\n * Dispatches API call to search microservice and cancels previous request\n * @param {string} query\n */\n sendSearchQuery({ commit, dispatch }, { query, advanceOptions, childCard = false }) {\n if (query !== '') {\n return dispatch('fetchSearchResults', { query, advanceOptions })\n .then((resp) => {\n const { data } = resp;\n if (childCard) {\n commit('setChildSearchResults', data);\n return;\n }\n commit('setSearchResults', data);\n return data;\n })\n .catch((/* err */) => {});\n }\n if (childCard) {\n commit('setChildSearchResults', []);\n } else {\n commit('setSearchResults', []);\n }\n return Promise.resolve('No search query!');\n },\n\n /**\n * Sets search results to store.\n * @param {array} results\n */\n setSearchResults({ commit }, results: any[]) {\n commit('setSearchResults', results);\n },\n\n setLastSearchQuery({ commit }, lastSearchQuery: string) {\n commit('setLastSearchQuery', lastSearchQuery);\n },\n\n setLastAskAiNotesSearchQuery({ commit }, lastSearchQuery: string) {\n commit('setLastAskAiNotesSearchQuery', lastSearchQuery);\n },\n\n /**\n * Sets search results to store.\n * @param {array} results\n */\n setChildSearchResults({ commit }, results: any[]) {\n commit('setChildSearchResults', results);\n },\n\n /**\n * Updates user profile properties\n * @param {{ first_name: string, last_name: string, display_name: string }} payload\n * https://api.superthread.com/v1/users/{user_id}\n */\n updateUserProfile({ getters, dispatch }, payload) {\n return api.auth\n .updateUser(getters.getUserId, payload)\n .then(({ data }: { data: UpdateUserResponse }) => {\n const { profile_image } = data?.user || {};\n if (profile_image) {\n dispatch('completeOnboardingActions', [OnboardingActionType.CustomiseYourProfile]);\n }\n return data;\n });\n },\n\n /**\n * Loads project by passed project id\n * @param {string} projectId project id\n */\n loadProjectDetails({ getters, dispatch }, projectId) {\n return api.projects\n .getProject(getters.getTeamID, projectId)\n .then(({ data }) => {\n if (data.project) {\n dispatch('setProjectMembers', data.project.members || []);\n }\n return data;\n })\n .catch((err: any) => err);\n },\n\n /**\n * Sets the message to be displayed on notification.\n * @param {string} message\n */\n setNotificationMessage({ commit }, message) {\n commit('setNotificationMessage', message);\n },\n\n /**\n * Sets the type of the notification to be displayed.\n * @param {string} message\n */\n setNotificationType({ commit }, type) {\n commit('setNotificationType', type);\n },\n /**\n * Toggles global dark mode toggle.\n */\n toggleDarkMode({ commit }) {\n commit('toggleDarkMode');\n },\n /**\n * Sets the background image of a boards.\n * @param {string} value\n */\n setBoardsBackground({ commit }, value) {\n commit('setBoardsBackground', value);\n },\n /**\n * Sets sidebarExpanded property to the state.\n * @param {boolean} payload\n */\n setSidebarExpanded({ getters, commit }, payload) {\n if (getters.displayInfoSidebar) commit('displayInfoSidebar', false);\n commit('setSidebarExpanded', payload);\n },\n\n setDisplayEditLinkPopup({ commit }, payload) {\n commit('setDisplayEditLinkPopup', payload);\n },\n\n setDisplayEditorTooltip({ commit }, payload) {\n commit('setDisplayEditorTooltip', payload);\n },\n\n setCommentLinkUrl({ commit }, value) {\n commit('setCommentLinkUrl', value);\n },\n\n resolveInlineComment({ commit }, payload) {\n commit('resolveInlineComment', payload);\n },\n\n logOut({ getters, commit }, redirectData) {\n return authPost(`${getters.getRoutes.users}/v1/auth/logout`)\n .then(({ data }) => {\n commit('resetState');\n localStorage.clear();\n if (redirectData) {\n browserStorageSetItem('redirectRouteAfterLogin', redirectData);\n }\n window.location.href = `${data.logout_redirect_url}`;\n })\n .catch((e) => {\n throw e;\n });\n },\n /**\n * Sets property for displaying add new member popup to the state\n * @param {boolean} payload\n */\n setAddMemberPopup({ commit }, payload) {\n commit('setAddMemberPopup', payload);\n },\n /**\n * Sets property for displaying add members dropdown to the state\n * @param {string} payload\n */\n setDisplayMembersDropdownId({ commit }, payload) {\n commit('setDisplayMembersDropdownId', payload);\n },\n\n setMembersSearchInput({ commit }, payload) {\n commit('setMembersSearchInput', payload);\n },\n\n setAddMembersTarget({ commit }, target) {\n commit('setAddMembersTarget', target);\n },\n /**\n * Sets a flag controling the display of info sidebar.\n */\n displayInfoSidebar({ commit }, payload) {\n commit('displayInfoSidebar', payload);\n },\n\n localAddUserInWorkspace({ commit }, workspace) {\n commit('localAddUserInWorkspace', workspace);\n },\n\n locaRemoveUserFromWorkspace({ commit }, teamId) {\n commit('locaRemoveUserFromWorkspace', teamId);\n },\n\n archiveWorkspace({ getters, commit }, teamId = getters.getTeamID) {\n return api.auth\n .updateTeam(teamId, {\n archived: true,\n })\n .then(({ data }) => {\n commit('resetState');\n localStorage.clear();\n // @ts-ignore\n window.location.href = `${data.logout_redirect_url}`;\n });\n },\n\n deleteWorkspace({ getters, commit }, teamId = getters.getTeamID) {\n return api.auth.deleteTeam(teamId).then(({ data }) => {\n commit('resetState');\n localStorage.clear();\n window.location.href = `${data.logout_redirect_url}`;\n });\n },\n\n addCardIdForLocalId({ commit }, { localId, id }) {\n commit('addCardIdForLocalId', { localId, id });\n },\n\n uploadFiles({ getters, commit }, { payload, id, localId, showActualFileSize = false }) {\n const abortUploadController: AbortController = new AbortController();\n return authPost(`${getters.getRoutes.files}/v1/${getters.getTeamID}/files`, payload, {\n signal: abortUploadController.signal,\n headers: { 'Content-Type': 'multipart/form-data' },\n onUploadProgress: (progressEvent: { loaded: number; total: number }) => {\n if (!id || !localId) return;\n const uploadProgress = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n // If the id starts with 'editor-', it is an editor upload.\n if ((id as string)?.startsWith?.('editor-')) {\n commit('insertOrUpdateEditorUpload', {\n // We should persist the id as-is, without the prefix.\n id: (id as string)?.replace('editor-', ''),\n progress: uploadProgress,\n });\n } else {\n commit('addAttachmentUploadDetails', {\n id,\n localId,\n uploadDetails: {\n uploadProgress,\n // Actual file size is original file size,\n // while progressEvent.total is the size + all body bytes (multipart/form-data)\n ...(!showActualFileSize && { fileSize: progressEvent.total }),\n cancelUpload: () => {\n abortUploadController.abort();\n },\n },\n });\n }\n },\n timeout: 600000,\n }).then((data) => {\n if ((id as string)?.startsWith?.('editor-')) {\n commit('removeEditorUpload', (id as string)?.replace('editor-', ''));\n }\n return data;\n });\n },\n\n getFiles({ getters, commit, dispatch }, payload) {\n const uploadInProgressCardId = getters.getCardAttachmentUploadingId;\n\n return api.files\n .getFiles(getters.getTeamID, payload)\n .then(({ data }: { data: GetFilesResponse }) => {\n const { files }: { files?: File[] } = data;\n files?.forEach((file: any) => {\n dispatch('addLoadedFile', file);\n });\n if (payload.card_id) {\n const attachmentsInProgress =\n uploadInProgressCardId !== -1 && uploadInProgressCardId === payload.card_id\n ? getters\n .getAttachments(uploadInProgressCardId, 'c')\n .filter((att: any) => att.local_id)\n : [];\n\n commit('setAttachments', {\n files: [...attachmentsInProgress, ...(files ?? [])],\n id: payload.card_id,\n prefix: 'c',\n });\n return files;\n }\n if (payload.page_id) {\n return files;\n }\n return data;\n });\n },\n\n getFile({ getters, dispatch }, id) {\n return authGet(`${getters.getRoutes.files}/v1/${getters.getTeamID}/files/${id}?noredirect=true`)\n .then(({ data }) => {\n dispatch('addLoadedFile', data.file);\n return data.file;\n })\n .catch((error) => error);\n },\n\n deleteFile({ getters, commit }, { fileId, cardId }: { fileId: string; cardId: string }) {\n if (cardId) {\n commit('localRemoveFileFromCard', { cardId, fileId });\n }\n return authDelete(`${getters.getRoutes.files}/v1/${getters.getTeamID}/files/${fileId}`).catch(\n (error) => {\n throw error;\n }\n );\n },\n\n resetState({ commit }) {\n commit('resetState');\n },\n\n addMemberToProject(\n { commit, getters, state, dispatch },\n { membersToAdd, projectId = getters.getCurrentProjectId }\n ) {\n const { getTeamID, getRedirectProjectId } = getters;\n const membersPayload: any[] = [];\n const project = getters.getTeamProjectById(projectId);\n const existingProjectMembers = project?.members ?? getters.getCurrentMembers;\n let isMe = false;\n\n dispatch('addProjectMembers', {\n membersToAdd,\n projectId,\n });\n membersToAdd.forEach((memberToAdd: any) => {\n isMe = memberToAdd.user_id === getters.getUserId;\n const memberExist = existingProjectMembers.some(\n (m: any) => m.user_id === memberToAdd.user_id\n );\n\n if (!memberExist) {\n membersPayload.push(memberToAdd);\n const memberAlreadyAdded = state.members.some((m) => m.user_id === memberToAdd.user_id);\n if (!memberAlreadyAdded) commit('addMemberToProject', { memberToAdd });\n commit('joinProject', { memberId: memberToAdd.user_id, projectId });\n if (getRedirectProjectId === projectId) {\n commit('joinProject', getRedirectProjectId);\n }\n }\n });\n\n const existingOrder = [...getters.getProjectOrder];\n if (isMe) {\n // add project to projectOrder\n const newOrder = [...existingOrder];\n const index = newOrder.indexOf(projectId);\n // prevent adding project to projectOrder multiple times\n if (index === -1) {\n newOrder.push(projectId);\n commit('setProjectOrder', newOrder);\n }\n }\n\n if (membersPayload.length < 1) return Promise.resolve();\n\n return api.projects\n .addProjectMember(getTeamID, projectId, { members: membersPayload })\n .catch((error: any) => {\n dispatch('removeProjectMembers', {\n membersToRemove: membersToAdd,\n projectId,\n });\n membersToAdd.forEach((memberToAdd: any) => {\n commit('removeMemberFromProject', { memberToRemove: memberToAdd });\n commit('leaveProject', { memberId: memberToAdd.user_id });\n });\n commit('setProjectOrder', existingOrder);\n throw error;\n });\n },\n\n addProjectMembers({ commit }, { membersToAdd, projectId }) {\n const { getTeamProjects } = this.getters;\n const projectIndex = getTeamProjects.findIndex((i: any) => i.id === projectId);\n if (projectIndex !== -1) {\n const { members: projectMembers } = getTeamProjects[projectIndex];\n const newMembers = [...projectMembers];\n membersToAdd.forEach((memberToAdd: any) => {\n const memberExist = projectMembers.some((m: any) => m.user_id === memberToAdd.user_id);\n if (!memberExist) {\n newMembers.push(memberToAdd);\n }\n });\n commit('setProjectMembers', {\n members: newMembers,\n projectId,\n projectIndex,\n });\n }\n },\n\n removeProjectMembers({ commit }, { membersToRemove, projectId }) {\n const { getTeamProjects } = this.getters;\n const projectIndex = getTeamProjects.findIndex((i: any) => i.id === projectId);\n if (projectIndex !== -1) {\n const { members: projectMembers } = getTeamProjects[projectIndex];\n const newMembers = [...projectMembers];\n membersToRemove.forEach((memberToRemove: any) => {\n const memberIndex = projectMembers.findIndex(\n (m: any) => m.user_id === memberToRemove.user_id\n );\n if (memberIndex !== -1) {\n newMembers.splice(memberIndex, 1);\n }\n });\n commit('setProjectMembers', {\n members: newMembers,\n projectId,\n projectIndex,\n });\n }\n },\n /**\n * Remove a member from a project.\n * @param {string} memberId\n */\n removeMemberFromProject(\n { commit, getters, dispatch },\n { memberToRemove, projectId = getters.getCurrentProjectId }\n ) {\n const { getTeamID, getSelectedProjectId } = getters;\n\n const currentProjectId = getSelectedProjectId === '' ? projectId : getSelectedProjectId;\n dispatch('removeProjectMembers', {\n membersToRemove: [memberToRemove],\n projectId: currentProjectId,\n });\n if (projectId === currentProjectId) {\n commit('removeMemberFromProject', { memberToRemove });\n }\n commit('leaveProject', {\n memberId: memberToRemove.user_id,\n projectId: currentProjectId,\n });\n const memberId = memberToRemove.user_id;\n const isMe = memberId === getters.getUserId;\n\n return api.projects\n .deleteProjectMember(getTeamID, currentProjectId, memberId)\n .then(({ data }) => {\n if (isMe) {\n // remove project from projectOrder\n const newOrder = [...getters.getProjectOrder];\n const index = newOrder.findIndex((i) => i === currentProjectId);\n newOrder.splice(index, 1);\n commit('setProjectOrder', newOrder);\n }\n return data;\n })\n .catch((error: any) => {\n dispatch('addProjectMembers', {\n membersToAdd: [memberToRemove],\n projectId: currentProjectId,\n });\n if (projectId === getSelectedProjectId) {\n commit('addMemberToProject', { memberToAdd: memberToRemove });\n commit('joinProject', { memberId: memberToRemove.user_id });\n }\n throw error;\n });\n },\n\n transferSpaceOwnership(\n { commit, getters },\n { ownerId, projectId = getters.getCurrentProjectId }\n ) {\n commit('setTeamProjectField', { projectId, fieldName: 'user_id', fieldValue: ownerId });\n return api.projects.setProjectOwner(getters.getTeamID, projectId, {\n user_id: ownerId,\n });\n },\n\n /**\n * Sets route path for redirection.\n * @param {string} route\n */\n setRedirectRouteAfterLogin({ commit }, route: object) {\n commit('setRedirectRouteAfterLogin', route);\n },\n\n /* NOTIFICATIONS */\n\n /**\n * Loads count of notifications\n */\n loadNotificationCount({ getters, commit }) {\n return authGet(\n `${getters.getRoutes.projects}/v1/${getters.getTeamID}/notifications?filter=unseen`\n )\n .then(({ data }) => {\n commit('setNotificationCount', data.count);\n commit('setNotificationAlerts', data.notifications);\n })\n .catch((err) => err);\n },\n localUpdateNotificationCount({ commit }, count) {\n commit('setNotificationCount', count);\n },\n /**\n * Loads team member notifications.\n */\n async loadTeamMemberNotifications({ getters, commit }, { loadMore = false, filter = '' }) {\n if (notificationsPaginationCursor === 'end' && loadMore === true) return [];\n\n return api.activity\n .getNotifications(getters.getTeamID, {\n ...(loadMore && { cursor: notificationsPaginationCursor }),\n ...(filter && { filter }),\n })\n .then(({ data }) => {\n // Filter out member_added notifications for boards until backend disables them\n const notifications = (data.notifications || []).filter(\n (n: any) => !(n.type === 'member_added' && n.resource_type === 'board')\n );\n notificationsPaginationCursor = data.cursor || 'end';\n if (loadMore) {\n commit('setTeamMemberNotifications', [\n ...getters.getTeamMemberNotifications,\n ...notifications,\n ]);\n } else {\n commit('setTeamMemberNotifications', notifications);\n }\n });\n },\n /**\n * Update team member notifications by Id.\n */\n updateTeamMemberNotification({ getters }, { id, read, interacted }) {\n return authPatch(`${getters.getRoutes.projects}/v1/${getters.getTeamID}/notifications/${id}`, {\n read,\n interacted,\n }).catch((err) => err);\n },\n\n localRemoveNotification({ commit }, notificationId) {\n commit('localRemoveNotification', notificationId);\n },\n\n /* *\n * Update notifications. Mark all as read or seen.\n */\n markAllReadSeen({ getters, commit }, option) {\n const notifications = getters.getTeamMemberNotifications;\n const mostRecentNotificationId = notifications[0].id;\n const read = { read_up_to_id: mostRecentNotificationId };\n const seen = { seen_up_to_id: mostRecentNotificationId };\n if (option === 'read') {\n commit('localUpdateNotifMarkAllAsRead', notifications);\n }\n return authPatch(\n `${getters.getRoutes.projects}/v1/${getters.getTeamID}/notifications`,\n option === 'seen' ? seen : read\n ).catch((err) => {\n throw err;\n });\n },\n setTeamMemberNotifications({ commit }, notifications) {\n commit('setTeamMemberNotifications', notifications);\n },\n\n inviteUser({ getters, dispatch }, body) {\n /*\n api.auth.createTeamInvite(getters.getTeamID, body)\n */\n return authPost(`${getters.getRoutes.users}/v1/teams/${getters.getTeamID}/invites`, body).then(\n ({ data }) => {\n dispatch('fetchTeamMembers');\n return data;\n }\n );\n },\n updateTeamDetails({ dispatch, getters }, body) {\n return api.auth\n .updateTeam(getters.getTeamID, body)\n .then(({ data }) => {\n const { id, logo } = data?.team || {};\n if (logo?.src) {\n dispatch('completeOnboardingActions', [OnboardingActionType.AddWorkspaceLogo]);\n }\n dispatch('updateRecentWorkspace', { workspaceId: id, updatedFields: data?.team });\n return data;\n })\n .catch((error) => error);\n },\n setRedirectProjectId({ commit }, payload) {\n commit('setRedirectProjectId', payload);\n },\n\n setInviteeRole({ commit }, payload) {\n commit('setInviteeRole', payload);\n },\n setInviteesProjectIds({ commit }, payload) {\n commit('setInviteesProjectIds', payload);\n },\n\n loadViews({ commit, getters }, payload) {\n const { getRoutes, getTeamID } = getters;\n return authGet(`${getRoutes.views}/v1/${getTeamID}/views`, { params: payload }).then(\n ({ data }) => {\n if (payload.shared) {\n commit('setPublicViews', data.views);\n } else {\n commit('setPrivateViews', data.views);\n }\n }\n );\n },\n\n setSelectedViewType({ commit }, viewType) {\n commit('setSelectedViewType', viewType);\n },\n\n updateSelectedViewName({ commit }, viewName) {\n commit('updateSelectedViewName', viewName);\n },\n\n fetchNewViewResults({ getters }, payload) {\n const { getRoutes, getTeamID } = getters;\n return authPost(\n `${getRoutes.views}/v1/${getTeamID}/views/preview`,\n { ...payload },\n { params: { count: 100 } }\n ).then(({ data }) => {\n viewsPaginationCursor = data.cursor || 'end';\n return data;\n });\n },\n\n hideAllReplies({ commit }, payload) {\n commit('hideAllReplies', payload);\n },\n showHideReplies({ commit }, payload) {\n commit('showHideReplies', payload);\n },\n\n setViewResults({ commit }, payload) {\n commit('setViewResults', payload);\n },\n\n updateLocalViewId({ commit }, { key, viewId }) {\n commit('updateLocalViewId', { key, viewId });\n },\n\n localAddViewResultsToList({ commit }, payload) {\n commit('localAddViewResultsToList', payload);\n },\n\n updateCountInViewResultsList({ commit }, payload) {\n commit('updateCountInViewResultsList', payload);\n },\n\n createView({ getters }, payload) {\n const { getRoutes, getTeamID } = getters;\n return authPost(`${getRoutes.views}/v1/${getTeamID}/views`, { ...payload }).then(\n ({ data }) => data\n );\n },\n\n updateView({ getters }, updatingData) {\n const { getRoutes, getTeamID } = getters;\n return authPatch(`${getRoutes.views}/v1/${getTeamID}/views/${updatingData.id}`, {\n ...updatingData.payload,\n }).then(({ data }) => data);\n },\n\n fetchViewResults({ commit, getters }, viewId) {\n const { getRoutes, getTeamID } = getters;\n return authGet(`${getRoutes.views}/v1/${getTeamID}/views/${viewId}/results`, {\n params: { count: 100 },\n }).then(({ data }) => {\n const { cards = [], count = 0, cursor } = data;\n viewsPaginationCursor = cursor || 'end';\n commit('localAddViewResultsToList', { cards, count, viewId });\n return data;\n });\n },\n\n currentViewTotalCount({ commit }, payload) {\n commit('currentViewTotalCount', payload);\n },\n\n fetchMoreViewResults({ commit, getters }, viewId) {\n if (viewsPaginationCursor === 'end') return { cards: [] };\n\n const { getTeamID, getViewEditMode, getCurrentRoute } = getters;\n const params = viewsPaginationCursor\n ? { count: 100, cursor: viewsPaginationCursor }\n : { count: 100 };\n const card_filters = getters.getViewFilters;\n const type = 'card';\n const isMyWorkRoute = getCurrentRoute.name === constants.myWorkRouteName;\n const isMemberRoute = getCurrentRoute.name === constants.memberRouteName;\n const request =\n !getViewEditMode && !isMyWorkRoute && !isMemberRoute\n ? api.views.getViewResults(getTeamID, viewId, params)\n : api.views.viewPreview(getTeamID, { card_filters, type }, params);\n\n return request.then(({ data }) => {\n const { cards = [], cursor } = data;\n viewsPaginationCursor = cursor || 'end';\n commit('setViewResults', [...getters.getViewResults, ...cards]);\n return data;\n });\n },\n\n fetchView({ commit, getters }, viewId) {\n const { getRoutes, getTeamID } = getters;\n return authGet(`${getRoutes.views}/v1/${getTeamID}/views/${viewId}`).then(({ data }) => {\n commit('setSelectedView', data);\n commit('setSelectedViewType', data.type);\n });\n },\n\n localAddViewToViewList({ commit }, view) {\n commit('localAddViewToViewList', view);\n },\n\n setSelectedView({ commit }, view) {\n commit('setSelectedView', view);\n },\n\n setViewFilters({ commit }, filters) {\n commit('setViewFilters', filters);\n },\n\n setViewPills({ commit }, payload) {\n commit('setViewPills', payload);\n },\n\n setViewEditMode({ commit }, changed) {\n commit('setViewEditMode', changed);\n },\n\n localUpdateViewId({ commit }, payload) {\n commit('localUpdateViewId', payload);\n },\n\n itemNotFound({ commit }, payload) {\n commit('itemNotFound', payload);\n },\n\n getAllTrashProjects({ commit, getters }, trash) {\n return api.projects.getProjects(getters.getTeamID, { trash }).then(({ data }) => {\n commit('setTrashProjects', data.projects);\n // filter out trashed from the projectOrder\n const newOrder = getters.getProjectOrder.filter((id: string) => {\n return !data.projects?.some((p: any) => p.id === id);\n });\n commit('setProjectOrder', newOrder);\n });\n },\n\n deleteView(\n { commit, dispatch, getters, state },\n { viewId, shared }: { viewId: string; shared: boolean }\n ) {\n const key = shared ? 'publicViews' : 'privateViews';\n const index = state[key].findIndex((v: any) => v.id === viewId);\n const view = { ...state[key][index] };\n\n commit('localDeleteView', { key, index });\n const rawFavourites = toRaw(getters.getFavourites);\n const favourites = cloneDeep(rawFavourites);\n const isFavourite = getters.isFavourite(viewId, ResourceType.View);\n if (isFavourite) {\n commit('localRemoveFromFavourites', {\n resourceId: viewId,\n resourceType: ResourceType.View,\n });\n }\n\n return api.views\n .viewDelete(getters.getTeamID, viewId)\n .then(() => {\n if (isFavourite) {\n dispatch('deleteUserFavourite', {\n resource_id: viewId,\n resource_type: ResourceType.View,\n title: view.name,\n });\n }\n })\n .catch((err: Error) => {\n commit('localAddView', { view, key, index });\n if (isFavourite) {\n commit('setFavourites', favourites);\n }\n throw err;\n });\n },\n\n localDeleteView({ commit }, { key, index }) {\n commit('localDeleteView', { key, index });\n },\n\n fetchBoardsFilters({ commit, getters }) {\n const { getRoutes, getTeamID } = getters;\n\n return authGet(`${getRoutes.search}/v1/${getTeamID}/search/boards`).then(({ data }) => {\n const { boards } = data;\n commit('setBoardsFilters', boards);\n });\n },\n /**\n * Adds a new UI notification to state.\n * @param {object} notificatin\n */\n addUiNotification({ commit }, notification) {\n const newNotification = {\n ...notification,\n id: notification.id ?? nanoid(4),\n };\n commit('addUiNotification', newNotification);\n },\n /**\n * Removes UI notification by id\n * @param {string} notificationId\n */\n removeUiNotificationById({ commit }, notificationId) {\n commit('removeUiNotificationById', notificationId);\n },\n setOpenedFavouriteItem({ commit }, favouriteItem) {\n commit('setOpenedFavouriteItem', favouriteItem);\n },\n setHeaderMemberDropdownPosition({ commit }, payload) {\n commit('setHeaderMemberDropdownPosition', payload);\n },\n\n setActiveComment({ commit }, payload) {\n commit('setActiveComment', payload);\n },\n\n setImportHistory({ commit }, value) {\n commit('setImportHistory', value);\n },\n\n watchResource({ dispatch }, { resourceType, resourceId, subscribe, message }) {\n let actionName = '';\n switch (resourceType) {\n case ResourceType.Board:\n actionName = 'watchBoard';\n break;\n case ResourceType.List:\n actionName = 'watchList';\n break;\n case ResourceType.Card:\n actionName = 'watchCard';\n break;\n case ResourceType.Page:\n actionName = 'watchPage';\n break;\n }\n\n if (actionName) {\n dispatch(actionName, { resourceId, subscribe, message });\n }\n },\n\n async watchPage({ getters, dispatch }, { resourceId, subscribe, message }) {\n const { getTeamID, getUserId } = getters;\n const localPageUpdatePayload = {\n pageId: resourceId,\n propertyName: 'is_watching',\n value: subscribe,\n };\n dispatch('localUpdatePageProp', localPageUpdatePayload);\n\n const successHandler = () => {\n dispatch('addUiNotification', {\n message: translate(message.success, { name: 'page' }),\n duration: 4000,\n });\n };\n\n const errHandler = () => {\n const revertPayload = {\n pageId: resourceId,\n propertyName: 'is_watching',\n value: !subscribe,\n };\n dispatch('localUpdatePageProp', revertPayload);\n dispatch('addUiNotification', {\n message: translate(message.error, { name: 'page' }),\n status: constants.uiNotificationStatuses.error,\n });\n };\n\n if (subscribe) {\n const body: AddWatcherRequest = { user_id: getUserId };\n await api.pages\n .addPageWatcher(getTeamID, resourceId, body)\n .then(successHandler)\n .catch(errHandler);\n } else {\n await api.pages\n .deletePageWatcher(getTeamID, resourceId, getUserId)\n .then(successHandler)\n .catch(errHandler);\n }\n },\n\n async watchCard({ getters, dispatch }, { resourceId, subscribe, message }) {\n const { getTeamID, getUserId } = getters;\n const localCardUpdatePayload = {\n cardId: resourceId,\n fieldName: 'is_watching',\n fieldValue: subscribe,\n };\n dispatch('localUpdateCardField', localCardUpdatePayload);\n\n const isEpicCard = getters.getCards[resourceId]?.board_id === constants.epicsBoardId;\n const resourceCardName = isEpicCard ? ResourceType.Project : ResourceType.Card;\n\n const successHandler = () => {\n dispatch('addUiNotification', {\n message: translate(message.success, { name: resourceCardName }),\n duration: 4000,\n });\n };\n\n const errHandler = () => {\n const revertPayload = {\n cardId: resourceId,\n fieldName: 'is_watching',\n fieldValue: !subscribe,\n };\n dispatch('localUpdateCardField', revertPayload);\n dispatch('addUiNotification', {\n message: translate(message.error, { name: resourceCardName }),\n status: constants.uiNotificationStatuses.error,\n });\n };\n\n if (subscribe) {\n const body: AddWatcherRequest = { user_id: getUserId };\n await api.boards\n .addCardWatcher(getTeamID, resourceId, body)\n .then(successHandler)\n .catch(errHandler);\n } else {\n await api.boards\n .deleteCardWatcher(getTeamID, resourceId, getUserId)\n .then(successHandler)\n .catch(errHandler);\n }\n },\n\n async watchBoard({ getters, dispatch }, { resourceId, subscribe, message }) {\n const { getTeamID, getUserId } = getters;\n const localBoardUpdatePayload = {\n boardId: resourceId,\n propertyName: 'is_watching',\n value: subscribe,\n };\n dispatch('updateBoardPropertyInBoards', localBoardUpdatePayload);\n\n const successHandler = () => {\n dispatch('addUiNotification', {\n message: translate(message.success, { name: 'board' }),\n duration: 4000,\n });\n };\n\n const errHandler = () => {\n const revertPayload = {\n boardId: resourceId,\n propertyName: 'is_watching',\n value: !subscribe,\n };\n dispatch('updateBoardPropertyInBoards', revertPayload);\n dispatch('addUiNotification', {\n message: translate(message.error, { name: 'board' }),\n status: constants.uiNotificationStatuses.error,\n });\n };\n\n if (subscribe) {\n const body: AddWatcherRequest = { user_id: getUserId };\n await api.boards\n .addBoardWatcher(getTeamID, resourceId, body)\n .then(successHandler)\n .catch(errHandler);\n } else {\n await api.boards\n .deleteBoardWatcher(getTeamID, resourceId, getUserId)\n .then(successHandler)\n .catch(errHandler);\n }\n },\n\n async watchList({ getters, dispatch }, { resourceId, subscribe, message }) {\n const { getTeamID, getUserId } = getters;\n const localListUpdatePayload = {\n listId: resourceId,\n propertyName: 'is_watching',\n value: subscribe,\n };\n dispatch('setBoardListProp', localListUpdatePayload);\n\n const successHandler = () => {\n dispatch('addUiNotification', {\n message: translate(message.success, { name: 'list' }),\n duration: 4000,\n });\n };\n\n const errHandler = () => {\n const revertPayload = {\n listId: resourceId,\n propertyName: 'is_watching',\n value: !subscribe,\n };\n dispatch('setBoardListProp', revertPayload);\n dispatch('addUiNotification', {\n message: translate(message.error, { name: 'list' }),\n status: constants.uiNotificationStatuses.error,\n });\n };\n\n if (subscribe) {\n const body: AddWatcherRequest = { user_id: getUserId };\n await api.boards\n .addListWatcher(getTeamID, resourceId, body)\n .then(successHandler)\n .catch(errHandler);\n } else {\n await api.boards\n .deleteListWatcher(getTeamID, resourceId, getUserId)\n .then(successHandler)\n .catch(errHandler);\n }\n },\n\n // eslint-disable-next-line\n fetchProjectData({ getters }, { teamId, resourceId }) {\n return api.projects\n .getProject(teamId, resourceId)\n .then(({ data }) => data.project)\n .catch((error) => {\n throw error;\n });\n },\n\n setFavouritesOpened({ commit }, value) {\n commit('setFavouritesOpened', value);\n },\n\n moveBoardHandler(\n { commit, getters, dispatch },\n { destinationProjectId, originalProjectId, destinationBoardOrder, originalBoardOrder, boardId }\n ) {\n const projectExpanded = getters.getProjectExpanded(\n `${getters.getTeamSlug}-${destinationProjectId}`\n );\n if (projectExpanded) {\n dispatch('loadBoards', destinationProjectId);\n }\n if (!getters.getFlatBoards[boardId]?.lists) {\n dispatch('fetchBoard', { boardId });\n }\n\n if (getters.currentBoardId === boardId) {\n dispatch('setCurrentProjectId', destinationProjectId);\n }\n\n commit('localUpdateProjectBoardsOrder', {\n projectId: destinationProjectId,\n payload: destinationBoardOrder,\n });\n commit('localUpdateProjectBoardsOrder', {\n projectId: originalProjectId,\n payload: originalBoardOrder,\n });\n\n commit('setProjectBoards', {\n projectId: destinationProjectId,\n projectBoards: destinationBoardOrder,\n });\n\n commit('setProjectBoards', {\n projectId: originalProjectId,\n projectBoards: originalBoardOrder,\n });\n\n commit('updateBoardPropertyInBoards', {\n boardId,\n propertyName: 'project_id',\n value: destinationProjectId,\n });\n },\n\n localAddPageInProject({ commit, getters }, { projectId, page }) {\n if (!projectId || !page) return;\n const projectForUpdate = getters.getTeamProjects.find((p: any) => p.id === projectId);\n const newPage = {\n id: page.id,\n title: page.title,\n ...(page.icon && { icon: page.icon }),\n };\n if (!projectForUpdate.pages) return;\n projectForUpdate.pages.push(newPage);\n commit('updateProjectById', projectForUpdate);\n },\n\n localUpdateSprintInProject({ commit, getters }, { id, changes }) {\n const unfinishedCards: any[] = [];\n const cardIds: string[] = [];\n changes.forEach((change: any) => {\n const [resource] = change.path;\n if (resource === 'lists') return;\n if (change.type === 'update') {\n commit('updateBoardPropertyInBoards', {\n boardId: id,\n propertyName: resource,\n value: change.to,\n });\n }\n if (change.type === 'create' && resource === 'unfinished_cards') {\n unfinishedCards.push(change.to);\n cardIds.push(change.to.id);\n }\n });\n if (unfinishedCards.length) {\n setTimeout(() => {\n const rolledoverList = {\n id: `${id}-rolledover`,\n title: 'Rolled over',\n board_id: id,\n team_id: getters.getTeamID,\n card_order: cardIds,\n cards: unfinishedCards,\n behavior: 'rolledover',\n };\n commit('updateBoardPropertyInBoards', {\n boardId: id,\n propertyName: 'unfinished_cards',\n value: unfinishedCards,\n });\n commit('addBoardListId', {\n boardId: id,\n listId: `${id}-rolledover`,\n });\n commit('setSingleListInListCards', { listId: `${id}-rolledover`, value: cardIds });\n commit('setBoardListsFlat', [rolledoverList]);\n }, 300);\n }\n },\n\n localUpdateProject({ commit, getters, dispatch }, { id, changes }) {\n const project = getters.getTeamProjectById(id) || {};\n const projectString = JSON.stringify(project);\n\n let newProject = JSON.parse(projectString);\n const newPageTree: any = {};\n\n changes.forEach((change: any) => {\n if (\n ['page_order', 'archive_page_order', 'archive_pages', 'pages', 'boards'].includes(\n change.path[0]\n )\n ) {\n newProject = updateBoardPageTitle(\n newProject,\n change.type,\n change.path,\n change.to,\n change.from,\n dispatch,\n getters\n );\n } else {\n newProject = objectSet(newProject, change.path, change.to);\n }\n });\n\n commit('updateProjectById', newProject);\n [...(newProject.page_order || [])].forEach((p) => {\n newPageTree[p.id] = p;\n });\n\n /* commit('setProjectPagesTree', {\n projectId: newProject.id,\n pagesTree: { ...getters.getProjectPagesTree(newProject.id), ...newPageTree },\n }); */\n\n if (project.board_order !== newProject.board_order) {\n commit('setProjectBoards', {\n projectId: id,\n projectBoards: newProject.board_order,\n });\n }\n },\n\n setCurrentRoute({ commit }, route) {\n commit('setCurrentRoute', route);\n },\n\n setSocketConnected({ commit }, value) {\n commit('setSocketConnected', value);\n },\n\n setDisplayVideoLinkPopup({ commit }, value) {\n commit('setDisplayVideoLinkPopup', value);\n },\n\n createBoardWebhookNotification({ getters, commit }, { boardId, integration, integrationId }) {\n const { getTeamID } = getters;\n\n return api.boards\n .createWebhookNotification(getTeamID, boardId, {\n destination_type: integration,\n integration_id: integrationId,\n })\n .then(({ data }) => {\n commit('updateBoardPropertyInBoards', {\n boardId,\n propertyName: 'webhook_notifications',\n value: data.board?.webhook_notifications,\n });\n });\n },\n\n deleteBoardWebhookNotification({ getters }, { boardId, webhookDestination }) {\n const { getTeamID } = getters;\n\n return api.boards.deleteWebhookNotification(getTeamID, boardId, webhookDestination);\n },\n\n createInstallationForIntegration({ getters }, { integration, payload }) {\n return api.integrations\n .createIntegrationInstallation(getters.getTeamID, integration, payload)\n .catch(() => {});\n },\n\n deleteInstallationForIntegration({ getters }, { integration, installationId }) {\n const { getRoutes, getTeamID } = getters;\n return authDelete(\n `${getRoutes.integrations}/v1/${getTeamID}/integrations/${integration}/installations/${installationId}`\n );\n },\n\n getTeamIntegrations({ getters }) {\n const { getRoutes, getTeamID } = getters;\n return authGet(`${getRoutes.integrations}/v1/${getTeamID}/integrations`).then(\n ({ data }) => data\n );\n },\n\n getTeamIntegrationInstallations({ commit, getters }, { integration }) {\n const { getRoutes, getTeamID } = getters;\n return authGet(\n `${getRoutes.integrations}/v1/${getTeamID}/integrations/${integration}/installations`\n ).then(({ data }) => {\n commit('setInstallations', {\n integration,\n installations: data.installations,\n });\n });\n },\n\n toggleBoardWebhookNotificationOption(\n { getters, commit },\n { boardId, webhookDestination, payload }\n ) {\n const { getTeamID } = getters;\n\n return api.boards\n .updateWebhookNotificationBoard(getTeamID, boardId, webhookDestination, payload)\n .then(({ data }) => {\n commit('updateBoardPropertyInBoards', {\n boardId,\n propertyName: 'webhook_notifications',\n value: data.board?.webhook_notifications,\n });\n });\n },\n\n toggleListWebhookNotificationOption(\n { getters, dispatch },\n { listId, webhookDestination, payload }\n ) {\n const { getTeamID } = getters;\n\n return api.boards\n .updateWebhookNotificationList(getTeamID, listId, webhookDestination, payload)\n .then(({ data }) => {\n dispatch('setBoardListProp', {\n listId,\n propertyName: 'webhook_notifications',\n value: data.list?.webhook_notifications,\n });\n });\n },\n\n setUpImport({ getters }, value) {\n return api.importer\n .createImport(getters.getTeamID, value)\n .then(({ data }) => data.import)\n .catch((error) => {\n throw error;\n });\n },\n\n updateImportSettings({ getters }, { value, importId }) {\n return authPatch(\n `${getters.getRoutes.projects}/v1/${getters.getTeamID}/imports/${importId}`,\n value\n )\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n startImportProcess({ getters }, importId) {\n return authPost(\n `${getters.getRoutes.projects}/v1/${getters.getTeamID}/imports/${importId}/queue`\n )\n .then((data) => data)\n .catch((e) => {\n throw e;\n });\n },\n\n getImportHistory({ getters }) {\n return authGet(`${getters.getRoutes.projects}/v1/${getters.getTeamID}/imports`)\n .then(({ data }) => data.imports)\n .catch((error) => {\n throw error;\n });\n },\n\n setImportProgressSteps({ commit }, payload) {\n commit('setImportProgressSteps', payload);\n },\n\n updateImportProgressSteps({ commit }, { step, propertyName, value }) {\n commit('updateImportProgressSteps', { step, propertyName, value });\n },\n\n setRouteBeforeSettings({ commit }, value) {\n commit('setRouteBeforeSettings', value);\n },\n\n setImportProgressCurrentStep({ commit }, value) {\n commit('setImportProgressCurrentStep', value);\n },\n\n setSettingsCurrentProjectId({ commit }, id: string) {\n commit('setSettingsCurrentProjectId', id);\n },\n\n setCachedComponents({ commit }, components) {\n commit('setCachedComponents', components);\n },\n\n setSettingsCurrentBoardId({ commit }, id: string) {\n commit('setSettingsCurrentBoardId', id);\n },\n getTeamIntegrationsSettings({ getters }, integration) {\n const { getRoutes, getTeamID } = getters;\n return authGet(\n `${getRoutes.integrations}/v1/${getTeamID}/integrations/${integration}/settings`\n ).then(({ data }) => data);\n },\n\n updateIntegrationsSettings({ getters }, { integration, payload }) {\n return authPatch(\n `${getters.getRoutes.projects}/v1/${getters.getTeamID}/integrations/${integration}/settings`,\n {\n [integration]: payload,\n }\n )\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n setIntegrationSettings({ commit }, { integration, settings }) {\n commit('setIntegrationSettings', { integration, settings });\n },\n\n updateLocalIntegrationSettings({ commit }, { integration, payload }) {\n commit('updateLocalIntegrationSettings', { integration, payload });\n },\n\n setUpcomingGoogleCalendarEvents({ commit }, events) {\n commit('setUpcomingGoogleCalendarEvents', events);\n },\n\n getUpcomingGoogleCalendarEvents({ getters, commit }, { installation_id }) {\n const key = 'getUpcomingGoogleCalendarEvents';\n\n const existingPromise = activePromises[key];\n if (existingPromise !== undefined) return existingPromise;\n\n const promise = api.integrations\n .getGcalEvents(getters.getTeamID, installation_id)\n .then(({ data }) => {\n if (data.events) {\n commit('setUpcomingGoogleCalendarEvents', data.events);\n }\n delete activePromises[key];\n return data;\n });\n\n activePromises[key] = promise;\n return promise;\n },\n\n fetchIntegrationDetails({ getters }, { client_id }) {\n return authGet(`${getters.getRoutes.integrations}/oauth2/clients/${client_id}`)\n .then(({ data }) => data)\n .catch((error) => error);\n },\n\n setExpandedProject({ commit }, { id, value }) {\n commit('setExpandedProject', { id, value });\n },\n\n setBoardsColumnLayout(\n { commit, getters },\n { layout, projectId = getters.getCurrentProjectId, teamSlug = getters.getTeamSlug }\n ) {\n commit('setBoardsColumnLayout', { layout, projectId, teamSlug });\n },\n\n fetchAgents({ commit, getters }) {\n if (getters.getTeamFeatureEnabled(constants.featureFlagIds.aiAgents)) {\n return api.ai.getAiAgents(getters.getTeamID).then(({ data }) => {\n commit('setAgents', data.agents);\n });\n }\n },\n\n getAgentById({ getters }, agentId) {\n return api.ai.getAiAgent(getters.getTeamID, agentId).then(({ data }) => {\n return data.agent;\n });\n },\n\n createAgent({ getters, commit }, payload) {\n return api.ai.createAiAgent(getters.getTeamID, payload).then(({ data }) => {\n const agents = [...getters.getAgents, data.agent];\n commit('setAgents', agents);\n return agents;\n });\n },\n\n updateAgent({ getters, commit }, { agentId, payload }) {\n return api.ai.updateAiAgent(getters.getTeamID, agentId, payload).then(({ data }) => {\n const agents = [...(getters.getAgents || [])];\n const agentIndex = agents.findIndex((a) => a.id === agentId);\n if (agentIndex !== -1) {\n agents.splice(agentIndex, 1, data.agent);\n } else {\n agents.push(data.agent);\n }\n commit('setAgents', agents);\n return agents;\n });\n },\n\n attachAgent({ getters, commit }, { agentId, payload }) {\n return authPost(\n `${getters.getRoutes.users}/v1/${getters.getTeamID}/ai/agents/${agentId}/attachments`,\n payload\n ).then(({ data }) => {\n const agents = [...(getters.getAgents || [])];\n const agentIndex = agents.findIndex((a) => a.id === agentId);\n if (agentIndex !== -1) {\n agents.splice(agentIndex, 1, data);\n } else {\n agents.push(data);\n }\n commit('setAgents', agents);\n return agents;\n });\n },\n\n detachAgent({ getters, commit }, { agentId, attachmentId }) {\n return authDelete(\n `${getters.getRoutes.users}/v1/${getters.getTeamID}/ai/agents/${agentId}/attachments/${attachmentId}`\n ).then(({ data }) => {\n const agents = [...(getters.getAgents || [])];\n const agentIndex = agents.findIndex((a) => a.id === agentId);\n if (agentIndex !== -1) {\n agents.splice(agentIndex, 1, data);\n }\n\n commit('setAgents', agents);\n return data.attached_resources;\n });\n },\n\n deleteAgent({ getters, commit }, agentId) {\n return api.ai.deleteAiAgent(getters.getTeamID, agentId).then(() => {\n const agents = [...(getters.getAgents || [])];\n const agentIndex = agents.findIndex((a) => a.id === agentId);\n if (agentIndex !== -1) {\n agents.splice(agentIndex, 1);\n }\n commit('setAgents', agents);\n return agents;\n });\n },\n\n setCurrentAgentId({ commit }, agentId) {\n commit('setCurrentAgentId', agentId);\n },\n\n fetchAgentPromptIterations({ getters, commit }, agentId) {\n return api.ai.getAiAgentPromptIterations(getters.getTeamID, agentId).then(({ data }) => {\n commit('setPromptIterationsForAgent', {\n agentId: agentId,\n iterations: data.agent_prompt?.iterations || [],\n });\n return data.agent_prompt;\n });\n },\n\n sendMessageToPromptBuilderAssistant({ getters, commit }, { agentId, message }) {\n const payload = {\n message: message,\n };\n\n return api.ai\n .addAiAgentPromptIteration(getters.getTeamID, agentId, payload)\n .then(({ data }) => {\n const iterations = [...getters.getAgentPromptIterations(agentId), data.prompt_iteration];\n commit('setPromptIterationsForAgent', { agentId, iterations });\n return data;\n });\n },\n\n handleAgentPromptIteration({ getters, commit }, event) {\n const agentId = event.agent_id;\n const history = getters.getAgentPromptIterations(agentId);\n\n const isAlreadyPresent = history.some((item: any) => item.id === event.iteration.id);\n let iterations;\n\n if (isAlreadyPresent) {\n iterations = history.map((i: any) => {\n if (i.id === event.iteration.id) {\n return { ...i, ...event.iteration };\n }\n return i;\n });\n } else {\n iterations = [...history, event.iteration];\n }\n\n commit('setPromptIterationsForAgent', { agentId, iterations });\n },\n\n resetChatHistoryForAgent({ getters, commit }, agentId) {\n return api.ai\n .deleteAiAgentPromptHistory(getters.getTeamID, agentId)\n .then(() => commit('setPromptIterationsForAgent', { agentId, iterations: [] }));\n },\n\n fetchAgentRuns({ getters, commit }, agentId) {\n return api.ai.getAiAgentRuns(getters.getTeamID, agentId).then(({ data }) => {\n commit('setAgentRuns', data.runs);\n return data;\n });\n },\n\n setPagesColumnLayout(\n { commit, getters },\n { layout, projectId = getters.getCurrentProjectId, teamSlug = getters.getTeamSlug }\n ) {\n commit('setPagesColumnLayout', { layout, projectId, teamSlug });\n },\n\n setProjectsExpanded({ commit }, value) {\n commit('setProjectsExpanded', value);\n },\n\n setFavouritesExpanded({ commit }, value) {\n commit('setFavouritesExpanded', value);\n },\n\n setDraggingEntityProjectFromId({ commit }, id) {\n commit('setDraggingEntityProjectFromId', id);\n },\n\n setDraggingSidebarItem({ commit }, value) {\n commit('setDraggingSidebarItem', value);\n },\n\n localAddProjectBoardOrder({ commit }, { projectId, boardId }) {\n commit('localAddProjectBoardOrder', { projectId, boardId });\n },\n\n localAddPageInTree({ commit }, { projectId, pageId }) {\n commit('localAddPageInTree', { projectId, pageId });\n },\n\n setSelectedProjectId({ commit }, projectId) {\n commit('setSelectedProjectId', projectId);\n },\n\n localRemovePageInTree({ commit }, { projectId, pageId }) {\n commit('localRemovePageFromPageOrder', { projectId, pageId });\n commit('localRemoveBoardOrPageInProject', {\n projectId,\n itemId: pageId,\n section: 'pages',\n });\n },\n\n localRemoveBoardFromOrder({ commit }, { projectId, boardId }) {\n commit('localRemoveBoardFromOrder', { projectId, boardId });\n commit('localRemoveBoardOrPageInProject', {\n projectId,\n itemId: boardId,\n section: 'boards',\n });\n },\n\n /**\n * Get pending invites for a team\n * https://api.superthread.com/v1/users/{user_id}/pending_invites\n */\n getTeamPendingInvities({ commit, getters }) {\n return authGet(`${getters.getRoutes.users}/v1/teams/${getters.getTeamID}/invites`)\n .then(({ data }) => commit('setPendingInvites', data))\n .catch((error) => error);\n },\n\n deleteTeamInvite({ getters }, payload) {\n return authDelete(`${getters.getRoutes.users}/v1/teams/${getters.getTeamID}/invites`, {\n data: { invitee_emails: payload },\n })\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n deleteTeamMember({ getters }, userId) {\n return authDelete(`${getters.getRoutes.users}/v1/teams/${getters.getTeamID}/members/${userId}`)\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n updateTeamMember({ commit, getters }, { userId, payload }) {\n return authPatch(\n `${getters.getRoutes.projects}/v1/teams/${getters.getTeamID}/members/${userId}`,\n {\n role: payload,\n }\n )\n .then(({ data }) => {\n commit('localUpdateTeamMember', { userId, updatedFields: data?.member || {} });\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n resendTeamInvite({ getters }, payload) {\n return authPost(\n `${getters.getRoutes.projects}/v1/teams/${getters.getTeamID}/invites/resend`,\n payload\n )\n .then((data) => data)\n .catch((e) => {\n throw e;\n });\n },\n\n deleteProject({ getters, dispatch, commit }, projectId: string) {\n const project = getters.getTeamProjectById(projectId);\n const oldProjectOrder = [...getters.getProjectOrder];\n const oldTrashedProjects = [...getters.getTrashProjects];\n\n dispatch('localRemoveProject', project.id);\n\n return api.projects.trashProject(getters.getTeamID, project.id).catch((err) => {\n commit('setTrashProjects', oldTrashedProjects);\n dispatch('localAddProjectToTeamProjects', project);\n dispatch('setProjectOrder', oldProjectOrder);\n throw err;\n });\n },\n\n deletePopupId({ commit }, payload) {\n commit('deletePopupId', payload);\n },\n\n setCurrentRole({ commit }, payload) {\n commit('setCurrentRole', payload);\n },\n\n setDoubleCheckPopup({ commit }, payload) {\n commit('setDoubleCheckPopup', payload);\n },\n\n setConfirmationModal({ commit }, payload) {\n commit('setConfirmationModal', payload);\n },\n\n setColorsPopup({ commit }, payload) {\n commit('setColorsPopup', payload);\n },\n\n setCommentsOrder({ commit }, payload) {\n commit('setCommentsOrder', payload);\n },\n\n loadActivity({ getters }, payload) {\n return api.comments\n .activityDetail(getters.getTeamID, payload)\n .then(({ data }) => data)\n .catch((error) => error);\n },\n closeEditor({ commit }, payload) {\n commit('closeEditor', payload);\n },\n editorOpen({ commit }, payload) {\n commit('editorOpen', payload);\n },\n\n setQuickCard({ commit }, payload: boolean) {\n commit('setQuickCard', payload);\n },\n\n setQuickCardBoardId({ commit }, payload) {\n commit('setQuickCardBoardId', payload);\n },\n\n setQuickPage({ commit }, value) {\n commit('setQuickPage', value);\n },\n\n setNoteInQuickPage({ commit }, value) {\n commit('setNoteInQuickPage', value);\n },\n\n setQuickNote({ commit }, value) {\n commit('setQuickNote', value);\n },\n\n setCardCommentActivityFilter({ commit }, payload) {\n commit('setCardCommentActivityFilter', payload);\n },\n\n addCommentInProgressPatch({ commit }, payload) {\n commit('addCommentInProgressPatch', payload);\n },\n\n removeCommentInProgressPatch({ commit }, payload) {\n commit('removeCommentInProgressPatch', payload);\n },\n\n addCommentInProgressDelete({ commit }, payload) {\n commit('addCommentInProgressDelete', payload);\n },\n\n removeCommentInProgressDelete({ commit }, payload) {\n commit('removeCommentInProgressDelete', payload);\n },\n\n setOnline({ commit }, value) {\n commit('setOnline', value);\n },\n\n addLoadedFile({ commit }, payload) {\n commit('addLoadedFile', payload);\n },\n\n setProjectPreviewLastScrollPos({ commit }, { projectId, scrollPosition }) {\n commit('setProjectPreviewLastScrollPos', { projectId, scrollPosition });\n },\n\n fetchFavourites({ commit, getters }) {\n return api.favourites\n .getFavourites(getters.getTeamID)\n .then(({ data }: any) => {\n if (data) {\n commit('setFavourites', data.favourites);\n return data.favourites;\n }\n })\n .catch((err: any) => err);\n },\n\n setFavourites({ commit }, favourites) {\n commit('setFavourites', favourites);\n },\n\n addFavourite({ commit, getters, dispatch }, item) {\n const { getFavourites } = getters;\n const payload = {\n ...(item.parent_id && { parent_id: item.parent_id }),\n position: item.position,\n title: item.title,\n resource_type: item.resource_type,\n resource_id: item.resource_id,\n };\n const favourites = getFavourites;\n\n commit('addInFavourites', payload);\n\n if (item.resource_type === ResourceType.Sprint && item?.state === SprintState.Active) {\n payload.resource_id = `${item.project_id}s0`;\n }\n\n return api.favourites\n .addFavourite(getters.getTeamID, payload)\n .then(({ data }: any) => {\n if (data) {\n commit('setFavourites', data.favourites);\n dispatch('addUiNotification', {\n message: `${translate(payload.resource_type)} ${translate('addedSuccesfully')}`,\n icon: 'star',\n duration: 4000,\n });\n return data.favourites;\n }\n })\n .catch(() => {\n commit('setFavourites', favourites);\n });\n },\n\n localRemoveFromFavourites({ commit }, { resourceId, resourceType }) {\n commit('localRemoveFromFavourites', {\n resourceId,\n resourceType,\n });\n },\n\n addInRootFavourite({ commit }, resource) {\n commit('addInFavourites', resource);\n },\n\n addInParentFavourite({ commit }, { item, parentId, position = -1 }) {\n commit('addInParentFavourite', { item, parentId, position });\n },\n\n deleteUserFavourite({ commit, getters, dispatch }, resource) {\n const { getTeamID, getFavourites } = getters;\n const favourites = getFavourites;\n\n commit('localRemoveFromFavourites', {\n resourceId: resource.resource_id,\n resourceType: resource.resource_type,\n });\n\n let resourceIdForRequest = `${resource.resource_type}:${resource.resource_id}`;\n if (resource.resource_type === ResourceType.Sprint && resource?.state === SprintState.Active) {\n resourceIdForRequest = `${resource.resource_type}:${resource.project_id}s0`;\n }\n\n return api.favourites\n .deleteFavourite(getTeamID, resourceIdForRequest)\n .then(() => {\n dispatch('addUiNotification', {\n message: `${translate(resource.resource_type)} ${translate('deletedSuccesfully')}`,\n icon: 'unfavourite',\n duration: 4000,\n });\n })\n .catch(() => {\n commit('setFavourites', favourites);\n });\n },\n\n localUpdateResourceInFavourites({ commit }, resource) {\n commit('localUpdateResourceInFavourites', resource);\n },\n\n updateFavourite({ commit, getters }, { resource, payload }) {\n const { getTeamID, getFavourites } = getters;\n const favourites = getFavourites;\n let resourceForUpdateKey = `${resource.resource_type}:${resource.resource_id}`;\n\n if (resource.resource_type === ResourceType.Sprint) {\n const sprint = getters.getFlatBoards[resource.resource_id];\n if (sprint?.state === SprintState.Active) {\n resourceForUpdateKey = `${resource.resource_type}:${sprint.project_id}s0`;\n }\n }\n\n const resourceForUpdate = {\n ...resource,\n ...payload,\n };\n\n if (!payload.position) {\n commit('localUpdateResourceInFavourites', resourceForUpdate);\n }\n\n return api.favourites\n .updateFavourite(getTeamID, resourceForUpdateKey, payload)\n .then(({ data }: any) => {\n commit('setFavourites', data.favourites);\n })\n .catch(() => {\n commit('setFavourites', favourites);\n });\n },\n\n setFavouritesFolderExpand({ commit }, { id, value }) {\n commit('setFavouritesFolderExpand', { id, value });\n },\n\n toggleCommentReaction({ commit, getters }, payload) {\n commit('toggleCommentReaction', payload);\n const { getTeamID } = getters;\n const { commentId, reaction } = payload;\n let removeProgressTimeout: any = null;\n // set as in progress so activity pooling does not override the change\n commit('addCommentInProgressPatch', commentId);\n\n const body: CreateCommentReactionRequest = {\n unicode: reaction.native,\n variation: reaction.colons,\n };\n\n return api.comments\n .createCommentReaction(getTeamID, commentId, reaction.id, body)\n .catch(() => {\n commit('toggleCommentReaction', payload);\n })\n .finally(() => {\n // remove in progress so activity pooling can override the change\n removeProgressTimeout = setTimeout(() => {\n commit('removeCommentInProgressPatch', commentId);\n clearTimeout(removeProgressTimeout);\n }, 1000);\n });\n },\n\n removeCommentReaction({ commit, getters }, payload) {\n commit('toggleCommentReaction', payload);\n const { getTeamID } = getters;\n const { commentId, reaction } = payload;\n let removeProgressTimeout: any = null;\n\n // set as in progress so activity pooling does not override the change\n commit('addCommentInProgressPatch', commentId);\n\n return api.comments\n .deleteCommentReaction(getTeamID, commentId, reaction.id)\n .catch(() => {\n commit('toggleCommentReaction', payload);\n })\n .finally(() => {\n // remove in progress so activity pooling can override the change\n removeProgressTimeout = setTimeout(() => {\n commit('removeCommentInProgressPatch', commentId);\n clearTimeout(removeProgressTimeout);\n }, 1000);\n });\n },\n\n setEmojiPickerDisplayed({ commit }, payload) {\n commit('setEmojiPickerDisplayed', payload);\n },\n\n setNewFolderInput({ commit }, value) {\n commit('setNewFolderInput', value);\n },\n\n setFavouriteFolderForRename({ commit }, value) {\n commit('setFavouriteFolderForRename', value);\n },\n\n setFavouriteFolderTitle({ commit }, value) {\n commit('setFavouriteFolderTitle', value);\n },\n\n showPeekSidebar({ commit }, value) {\n commit('showPeekSidebar', value);\n },\n\n setTheme({ commit }, value) {\n commit('setTheme', value);\n },\n addToElectronBrowseHistory({ commit }, payload) {\n commit('addToElectronBrowseHistory', payload);\n },\n setElectronBrowseHistory({ commit }, value) {\n commit('setElectronBrowseHistory', value);\n },\n setElectronBrowseHistoryIndex({ commit }, value) {\n commit('setElectronBrowseHistoryIndex', value);\n },\n setElectronRecentlyViewed({ commit }, value) {\n commit('setElectronRecentlyViewed', value);\n },\n addToElectronRecentlyViewed({ commit }, payload) {\n commit('addToElectronRecentlyViewed', payload);\n },\n removeFromElectronRecentlyViewed({ commit }, payload) {\n commit('removeFromElectronRecentlyViewed', payload);\n },\n updateItemInElectronRecentlyViewed({ commit }, payload) {\n commit('updateItemInElectronRecentlyViewed', payload);\n },\n setThemePreference({ commit }, value) {\n commit('setThemePreference', value);\n },\n\n setCurrentInboxResource({ commit }, value) {\n commit('setCurrentInboxResource', value);\n },\n\n setInboxFilters({ commit }, value) {\n commit('setInboxFilters', value);\n },\n\n setInboxListWidth({ commit }, value) {\n commit('setInboxListWidth', value);\n },\n setInboxListExpanded({ commit }, value) {\n commit('setInboxListExpanded', value);\n },\n\n setShowOnboarding({ commit }, value) {\n commit('setShowOnboarding', value);\n },\n\n setOpenInDesktopApp({ commit }, value) {\n commit('setOpenInDesktopApp', value);\n },\n\n setShowRedirectedToAppOverlay({ commit }, value) {\n commit('setShowRedirectedToAppOverlay', value);\n },\n\n updateFile({ getters }, { fileId, payload }) {\n if (!fileId) return Promise.reject(new Error('invalid file id'));\n return api.files.updateFile(getters.getTeamID, fileId, payload);\n },\n\n setMembersDropdownInvitees({ commit }, value) {\n commit('setMembersDropdownInvitees', value);\n },\n\n addMembersDropdownInvitee({ commit }, value) {\n commit('addMembersDropdownInvitee', value);\n },\n\n removeMembersDropdownInvitee({ commit }, value) {\n commit('removeMembersDropdownInvitee', value);\n },\n\n setEditorForCardLink({ commit }, value) {\n commit('setEditorForCardLink', value);\n },\n\n /**\n * Sets a selected tab in for 'my work' page for each individual user\n * Default value is AssignedToMe\n * @param {string} tabId\n * @param {string} userId\n */\n setMyWorkSelectedTabId({ commit }, { userId, tabId }) {\n commit('setMyWorkSelectedTabId', { userId, tabId });\n },\n\n /**\n * Sets a selected userId for which 'my-work' page is displayed\n * @param {string} userId\n */\n setMyWorkUserId({ commit }, userId) {\n commit('setMyWorkUserId', userId);\n },\n\n fetchArchivedBoardsByWorkspace({ getters, commit }) {\n const { getRoutes, getTeamID } = getters;\n\n return authGet(`${getRoutes.search}/v1/${getTeamID}/search/boards?archived=true`).then(\n ({ data }) => {\n const { boards } = data;\n const archivedBoards = boards.filter((board: any) => board.archived);\n commit('setFlatBoards', archivedBoards);\n }\n );\n },\n\n /**\n * Adds a card to first place in array of current view results for views/my work/members page\n * @param {object} value { card }\n */\n addCardToCurrentViewResults({ commit }, value) {\n commit('addCardToCurrentViewResults', value);\n },\n\n setPressedEscCancelDrag({ commit }, value) {\n commit('setPressedEscCancelDrag', value);\n },\n\n setSidebarHover({ commit }, value) {\n commit('setSidebarHover', value);\n },\n\n setSidebarDragging({ commit }, value) {\n commit('setSidebarDragging', value);\n },\n\n /**\n * Sets flag for displaying the 'Update email' popup\n * @param {string} type - type of currently displayed popup ('reauthenticate', 'input' or 'verify')\n */\n setShowUpdateEmailPopup({ commit }, type: string) {\n commit('setShowUpdateEmailPopup', type);\n },\n\n async AiTask({ getters }, payload) {\n const response = await fetch(`${getters.getRoutes.projects}/v1/${getters.getTeamID}/ai/llm`, {\n method: 'POST',\n body: JSON.stringify(payload),\n credentials: 'include',\n headers: {\n Accept: 'text/event-stream',\n },\n });\n\n return response;\n },\n\n getAllTeamFeatures({ commit, getters }) {\n return api.auth.getTeamFeatures(getters.getTeamID).then(({ data }) => {\n if (data.token_outdated) {\n authRefresh();\n }\n commit('setTeamFeatures', data?.features);\n return data;\n });\n },\n\n setTeamFeatures({ commit }, features) {\n commit('setTeamFeatures', features);\n },\n\n toggleTeamFeature({ commit, getters }, { featureId, value }) {\n const oldValue = getters.getTeamFeature(featureId);\n commit('updateTeamFeature', { featureId, feature: { ...oldValue, enabled: true } });\n return authPut(\n `${getters.getRoutes.users}/v1/teams/${getters.getTeamID}/features/${featureId}`,\n {\n enabled: value,\n }\n )\n .then(({ data }) => {\n authRefresh().then(() => {\n api.auth.getUser('me').then(({ data }) => {\n commit('setUser', data.user);\n });\n });\n commit('updateTeamFeature', { featureId, feature: data?.feature });\n })\n .catch(() => {\n commit('updateTeamFeature', { featureId, feature: oldValue });\n });\n },\n\n updateTeamFeature({ commit }, { featureId, feature }) {\n commit('updateTeamFeature', { featureId, feature });\n },\n\n setPageIconPickerDisplayed({ commit }, value) {\n commit('setPageIconPickerDisplayed', value);\n },\n\n setHideEmptyGroups({ commit, getters }, { value, boardId = getters.currentBoardId }) {\n const teamId = getters.getTeamID;\n if (!teamId || !boardId) return;\n commit('setHideEmptyGroups', { value, boardId, teamId });\n },\n\n setShowWeekends({ commit, getters }, payload: boolean) {\n const teamId = getters.getTeamID;\n const currentBoardId = getters.currentBoardId;\n if (!teamId || !currentBoardId) return;\n commit('setShowWeekends', { value: payload, boardId: currentBoardId, teamId });\n },\n\n addReconnectionCallback({ commit }, { callbackId, callback }) {\n commit('addReconnectionCallback', { callbackId, callback });\n },\n\n removeReconnectionCallback({ commit }, callbackId) {\n commit('removeReconnectionCallback', callbackId);\n },\n\n callReconnectionCallbacks({ getters }) {\n const { getReconnectionCallbacks } = getters;\n Object.keys(getReconnectionCallbacks || []).forEach((key) => {\n const callback = getReconnectionCallbacks[key];\n if (typeof callback === 'function') {\n callback();\n }\n });\n },\n\n previousNextButtonClicked({ commit }, value) {\n commit('previousNextButtonClicked', value);\n },\n\n /**\n * Updates user timezone in store and in backend\n * @param timezone_id {string} - new timezone id\n */\n updateUserTimezoneId({ commit }, timezone_id) {\n return api.auth\n .updateUser('me', {\n timezone_id,\n })\n .then(() => commit('setUserTimezoneId', timezone_id))\n .catch((err: Error) => {\n throw err;\n });\n },\n\n /**\n * Fetches notification digest for current team\n */\n fetchNotificationDigest({ getters, commit }) {\n return api.activity\n .getNotificationDigest(getters.getTeamID)\n .then(({ data }) => {\n commit('updateNotificationDigest', data?.digest);\n })\n .catch((err: Error) => {\n throw err;\n });\n },\n\n /**\n * Sets notification digest for current team\n */\n updateNotificationDigest({ getters, commit }, payload: UpdateNotificationDigestRequest) {\n const oldNotifDigest = getters.getNotificationDigest;\n commit('updateNotificationDigest', payload);\n return api.activity.updateNotificationDigest(getters.getTeamID, payload).catch((err: Error) => {\n commit('updateNotificationDigest', oldNotifDigest);\n throw err;\n });\n },\n\n /**\n * Sets notification digest settings for current team\n */\n fetchNotificationDigestSettings({ getters, commit }) {\n return api.activity\n .getNotificationDigestSettings(getters.getTeamID)\n .then(({ data }) => {\n commit('updateNotificationDigestSettings', data);\n })\n .catch((err: Error) => {\n throw err;\n });\n },\n\n /**\n * Sets notification digest settings for current team\n */\n updateNotificationDigestSettings(\n { getters, commit },\n payload: UpdateNotificationDigestSettingsRequest\n ) {\n const oldNotifDigestSettings = getters.getNotificationDigestSettings;\n commit('updateNotificationDigestSettings', payload);\n return api.activity\n .updateNotificationDigestSettings(getters.getTeamID, payload)\n .catch((err: Error) => {\n commit('updateNotificationDigestSettings', oldNotifDigestSettings);\n throw err;\n });\n },\n\n setBoardEmbedPopup({ commit }, payload) {\n commit('setBoardEmbedPopup', payload);\n },\n\n async askQuestionAi({ getters }, payload) {\n const response = await fetch(`${getters.getRoutes.projects}/v1/${getters.getTeamID}/ai/ask`, {\n method: 'POST',\n body: JSON.stringify(payload),\n credentials: 'include',\n headers: {\n Accept: 'text/event-stream',\n },\n });\n\n return response;\n },\n\n localRemovePageFromPageOrder({ commit }, payload) {\n commit('localRemovePageFromPageOrder', payload);\n },\n\n removeProjectPage({ commit }, payload) {\n commit('removeProjectPage', payload);\n },\n\n updatePageInTeamProject({ commit }, { projectId, pageId, field, value }) {\n commit('updatePageInTeamProject', { projectId, pageId, field, value });\n },\n\n addPageToTeamProject({ commit }, { projectId, page }) {\n commit('addProjectPage', { page, projectId });\n },\n\n removePageFromTeamProject({ commit }, { pageId, projectId }) {\n commit('removeProjectPage', { pageId, projectId });\n },\n\n setIsSettingsOpen({ commit }, value) {\n commit('setIsSettingsOpen', value);\n },\n\n setShowUpgradePlanPopup({ commit }, value) {\n commit('setShowUpgradePlanPopup', value);\n },\n\n setMyWorkSortBy({ commit, getters }, payload) {\n commit('setMyWorkSortBy', { teamId: getters.getTeamID, ...payload });\n },\n\n setMyWorkSortByForAllUsers({ commit }, payload) {\n commit('setMyWorkSortByForAllUsers', payload);\n },\n\n localRemoveTeamMember({ commit }, userId) {\n commit('localRemoveTeamMember', userId);\n },\n\n setModal({ commit }, payload: Modal) {\n commit('setModal', payload);\n },\n\n setRecentWorkspaces({ commit }, workspace) {\n commit('setRecentWorkspaces', workspace);\n },\n\n updateRecentWorkspace({ commit }, { workspaceId, updatedFields }) {\n commit('updateRecentWorkspace', { workspaceId, updatedFields });\n },\n\n setOpenWorkspaceThroughQuickSwitcher({ commit }, value) {\n commit('setOpenWorkspaceThroughQuickSwitcher', value);\n },\n\n setSidebarSprintsExpanded({ commit, getters }, { projectId, value }) {\n const teamSlug = getters.getTeamSlug;\n commit('setSidebarSprintsExpanded', { teamSlug, projectId, value });\n },\n\n localAddSprintToProject({ commit }, { projectId, sprint }) {\n commit('localAddSprintToProject', { projectId, sprint });\n },\n\n setNote({ commit }, note) {\n commit('setNote', note);\n },\n\n fetchNotesForPoll({ getters }) {\n return api.pages.getNotes(getters.getTeamID).then(({ data }) => {\n const notes = (data?.notes || []).reduce((acc: any, note: any) => {\n acc[note.id] = { ...note };\n return acc;\n }, {});\n return notes;\n });\n },\n\n getNotes({ dispatch, getters }, { loadMore } = { loadMore: false }) {\n if (notesPaginationCursor === 'end' && loadMore === true) return [];\n\n return api.pages\n .getNotes(getters.getTeamID, {\n count: 50,\n ...(loadMore && { cursor: notesPaginationCursor }),\n })\n .then(({ data }) => {\n const notes = (data?.notes || []).reduce((acc: any, note: any) => {\n acc[note.id] = { ...note };\n return acc;\n }, {});\n dispatch('setNotes', { ...getters.getNotes, ...notes });\n notesPaginationCursor = data.cursor || 'end';\n return notes;\n });\n },\n\n setNotes({ commit }, notes) {\n commit('setNotes', notes);\n },\n\n updateNoteTitle({ commit, getters }, { noteId, title }) {\n // update the note in recently viewed if present\n const recentlyViewed = getters.getElectronRecentlyViewed || [];\n const noteIndex = recentlyViewed.findIndex(\n (item: any) => item.type === 'note' && item.id === noteId\n );\n\n if (noteIndex !== -1) {\n const updatedItem = {\n ...recentlyViewed[noteIndex],\n label: title || translate('untitledNote'),\n };\n\n commit('updateItemInElectronRecentlyViewed', {\n id: noteId,\n type: 'note',\n teamId: getters.getTeamID,\n toUpdate: updatedItem,\n });\n }\n\n return api.pages.updateNote(getters.getTeamID, noteId, { title });\n },\n\n updateNoteContent({ getters }, { noteId, content }) {\n return api.pages.updateNote(getters.getTeamID, noteId, {\n [NoteContentType.UserNotes]: content,\n });\n },\n\n updateAiNoteContent({ getters }, { noteId, aiNoteId, content }) {\n return api.pages.updateEnhancedNote(getters.getTeamID, noteId, aiNoteId, { content });\n },\n\n createNewNote(\n { getters, dispatch },\n { title = '', calendarEvent = null, noteIdToUpdate = constants.newNote }\n ) {\n const key = 'createNewNote';\n const existingPromise = activePromises[key];\n if (existingPromise !== undefined) return existingPromise;\n\n const noteFromCalendarEvent = Object.keys(calendarEvent || {}).length > 0;\n\n const promise = api.pages\n .createNote(getters.getTeamID, {\n title,\n ...(noteFromCalendarEvent && { google_calendar_event: calendarEvent }),\n })\n .then(({ data }) => {\n dispatch('setNote', {\n noteIdToUpdate,\n note: {\n ...data.note,\n ...(noteFromCalendarEvent && { fromCalendarEvent: true }),\n },\n });\n return data.note?.id;\n })\n .finally(() => {\n delete activePromises[key];\n });\n\n activePromises[key] = promise;\n return promise;\n },\n\n deleteNote({ commit, getters, dispatch }, noteId) {\n commit('deleteNote', noteId);\n return api.pages.deleteNote(getters.getTeamID, noteId).then(() => {\n dispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: {\n id: noteId,\n type: constants.routeNames.note,\n },\n teamId: getters.getTeamID,\n });\n });\n },\n\n getNote({ commit, getters }, noteId) {\n return api.pages.getNote(getters.getTeamID, noteId).then(({ data }) => {\n commit('setNote', { noteIdToUpdate: noteId, note: data.note });\n });\n },\n\n updateNote({ getters }, { noteId, payload }) {\n return api.pages.updateNote(getters.getTeamID, noteId, payload).then(({ data }) => data.note);\n },\n\n localUpdateNoteProp({ commit }, { noteId, aiNoteId, propertyName, value }) {\n commit('localUpdateNoteProp', { noteId, aiNoteId, propertyName, value });\n },\n\n setAiNoteGenerating({ commit }, noteId) {\n commit('setAiNoteGenerating', noteId);\n },\n\n setAiNoteGeneratingTitle({ commit }, noteId) {\n commit('setAiNoteGeneratingTitle', noteId);\n },\n\n fetchNoteTemplates({ dispatch, getters }) {\n return api.pages\n .getNoteTemplates(getters.getTeamID)\n .then(({ data }) => {\n //@ts-ignore\n dispatch('setNoteTemplates', data.templates);\n return data;\n })\n .catch((error) => error);\n },\n\n setNoteTemplates({ commit }, templates) {\n commit('setNoteTemplates', templates);\n },\n\n async applyNoteTemplate({ getters }, { noteId, templateId }) {\n const response = await fetch(\n `${getters.getRoutes.pages}/v1/${getters.getTeamID}/notes/${noteId}/apply_template`,\n {\n method: 'POST',\n body: JSON.stringify({ note_template_id: templateId }),\n credentials: 'include',\n headers: {\n Accept: 'text/event-stream',\n },\n }\n );\n\n return response;\n },\n\n setAiNote({ commit }, { noteId, templateId, aiNote }) {\n commit('setAiNote', { noteId, templateId, aiNote });\n },\n\n generateAiActions({ commit, getters }, { noteId, aiNoteId }) {\n // Set isGeneratingActions to true to show loading spinner\n commit('localUpdateNoteProp', {\n noteId,\n aiNoteId,\n propertyName: 'isGeneratingActions',\n value: true,\n });\n\n return api.ai\n .createAiActions(getters.getTeamID, { note_id: noteId }, { timeout: 60000 })\n .then(({ data }) => {\n commit('setAiActions', { noteId, aiNoteId, actions: data.actions });\n return data.actions;\n })\n .catch((error) => error)\n .finally(() => {\n commit('localUpdateNoteProp', {\n noteId,\n aiNoteId,\n propertyName: 'isGeneratingActions',\n value: false,\n });\n });\n },\n\n updateAiAction({ commit, getters }, { noteId, aiNoteId, actionId, payload }) {\n return api.ai\n .updateAiAction(getters.getTeamID, actionId, payload)\n .then(({ data }) => {\n commit('updateAiAction', { noteId, aiNoteId, actionId, action: data.action });\n return data;\n })\n .catch((error) => error);\n },\n\n setAiActions({ commit }, { noteId, aiNoteId, actions }) {\n commit('setAiActions', { noteId, aiNoteId, actions });\n },\n\n updateLastNoteTemplateId({ getters }, { noteId, templateId }) {\n return api.pages.updateNote(getters.getTeamID, noteId, { last_note_template_id: templateId });\n },\n\n setSelectedNoteTabId({ commit }, { noteId, tabId }) {\n commit('setSelectedNoteTabId', { noteId, tabId });\n },\n\n localCreateTranscript({ commit }, { noteId, transcript }) {\n commit('localCreateTranscript', { noteId, transcript });\n },\n\n localUpdateTranscript({ commit }, { noteId, transcript }) {\n commit('localUpdateTranscript', { noteId, transcript });\n },\n\n localSetNoteTranscripts({ commit }, { noteId, transcripts }) {\n commit('localSetNoteTranscripts', { noteId, transcripts });\n },\n\n createTranscript({ getters }, { noteId, transcripts }) {\n return api.pages.updateNote(getters.getTeamID, noteId, { transcripts });\n },\n\n setTranscriptionState({ commit }, value) {\n commit('setTranscriptionState', value);\n },\n\n setResourceLoaded({ commit }, { resource, value }) {\n commit('setResourceLoaded', { resource, value });\n },\n\n fetchNoteTemplate({ commit, getters }, templateId) {\n if (!templateId) return Promise.resolve({});\n\n return authGet(\n `${getters.getRoutes.pages}/v1/${getters.getTeamID}/notes/templates/${templateId}`\n )\n .then(({ data }) => {\n commit('setNoteTemplate', data.note_template || {});\n return data.note_template;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n createNoteTemplate({ commit, getters }, noteTemplate = getters.getNoteTemplateDraft) {\n // remove all fields from noteTemplate.sections except title and description\n noteTemplate.sections = noteTemplate.sections.map((section: any) => ({\n title: section.title,\n description: section.description,\n }));\n // remove sections from noteTemplate.sections that are empty\n noteTemplate.sections = noteTemplate.sections.filter((section: any) => section.title);\n const tempId = nanoid(4);\n\n return authPost(`${getters.getRoutes.pages}/v1/${getters.getTeamID}/notes/templates`, {\n ...noteTemplate,\n }).then(({ data }) => {\n commit('replaceNoteTemplateId', { localId: tempId, template: data.note_template ?? {} });\n commit('setNoteTemplate', {\n ...data.note_template,\n });\n return data;\n });\n },\n\n updateNoteTemplate(\n { commit, getters },\n { templateId, noteTemplate = getters.getNoteTemplateDraft }\n ) {\n if (!templateId) return Promise.resolve({});\n\n const oldTemplate = getters.getNoteTemplates[templateId];\n return authPatch(\n `${getters.getRoutes.pages}/v1/${getters.getTeamID}/notes/templates/${templateId}`,\n {\n ...noteTemplate,\n }\n )\n .then(({ data }) => {\n commit('setNoteTemplate', {\n id: templateId,\n ...data.note_template,\n });\n return data;\n })\n .catch((error) => {\n commit('setNoteTemplate', { id: templateId, ...oldTemplate });\n throw error;\n });\n },\n\n deleteNoteTemplate({ commit, getters }, templateId) {\n if (!templateId) return Promise.resolve({});\n\n commit('deleteNoteTemplate', templateId);\n return authDelete(\n `${getters.getRoutes.pages}/v1/${getters.getTeamID}/notes/templates/${templateId}`\n );\n },\n\n setNoteTemplateDraft({ commit }, template) {\n commit('setNoteTemplateDraft', template);\n },\n\n updateNoteTemplateDraftField({ commit }, { fieldName, value }) {\n commit('updateNoteTemplateDraftField', { fieldName, value });\n },\n\n clearNoteTemplateDraft({ commit }) {\n commit('clearNoteTemplateDraft');\n },\n\n setNoteTemplateSections({ commit }, sections) {\n commit('setNoteTemplateSections', sections);\n },\n\n favouriteNoteTemplate({ commit, getters }, resource) {\n commit('setNoteTemplate', {\n id: resource.id,\n ...resource,\n is_favourited: true,\n });\n return authPut(\n `${getters.getRoutes.pages}/v1/${getters.getTeamID}/notes/templates/${resource.id}/favourite`\n ).catch(() => {\n commit('setNoteTemplate', {\n id: resource.id,\n ...resource,\n is_favourited: false,\n });\n });\n },\n\n unfavouriteNoteTemplate({ commit, getters }, resource) {\n commit('setNoteTemplate', {\n id: resource.id,\n ...resource,\n is_favourited: false,\n });\n return authDelete(\n `${getters.getRoutes.pages}/v1/${getters.getTeamID}/notes/templates/${resource.id}/favourite`\n ).catch(() => {\n commit('setNoteTemplate', {\n id: resource.id,\n ...resource,\n is_favourited: true,\n });\n });\n },\n\n async fetchTeamSubscription({ commit, getters }) {\n const resp = await api.auth.getSubscription(getters.getTeamID);\n if (resp) {\n commit('setTeamSubscription', resp.data.subscription);\n }\n },\n\n async fetchAvailablePlans({ commit, getters }) {\n const resp = await api.auth.getAvailablePlans(getters.getTeamID);\n if (resp) {\n commit('setAvailablePlans', resp.data);\n }\n },\n\n setSubGroupByEnabled({ commit, getters }, { value, boardId = getters.currentBoardId }) {\n const teamId = getters.getTeamID;\n if (!teamId || !boardId) return;\n const v: boolean =\n value ?? !!browserStorageGetItem(subGroupByBoardKey(teamId, boardId));\n\n browserStorageSetItem(subGroupByBoardKey(teamId, boardId), `${v}`);\n commit('setSubGroupByEnabled', { value: v, boardId });\n },\n\n setListsExpanded({ commit, getters }, { boardId, listId, value }) {\n const teamSlug = getters.getTeamSlug;\n commit('setListsExpanded', { teamSlug, boardId, listId, value });\n },\n\n setWorkspaceSectionExpanded({ commit }, value) {\n commit('setWorkspaceSectionExpanded', value);\n },\n};\n\nexport default actions;\n","/**\n * Main vuex mutations\n * @packageDocumentation\n * @category Store\n */\nimport { MutationTree } from 'vuex';\nimport { RootState as State } from '@/types';\nimport getDefaultState from './state';\nimport {\n browserStorageGetAndSetItem,\n browserStorageSetItem,\n} from '@/utilities/browser-storage.util';\nimport {\n myWorkSortByKey,\n hideEmptyGroupByBoardKey,\n showWeekendsByBoardKey,\n} from '@/utilities/localDrafts';\nimport { MyWorkTabId } from '@/types/tabs';\nimport { getSprintKey } from '@/utilities/sprintKeys';\nimport { ResourceType, ResourceLoadedKey } from '@/types/resources';\nimport { NoteContentType } from '@/types/notes';\nimport { GetAvailablePlansResponse, Subscription } from '@superthread-com/api';\n\nconst mutations: MutationTree = {\n setTeamProjects(state, { projects, projectOrder }) {\n state.teamProjects = projects;\n if (projectOrder) {\n state.projectOrder = projectOrder;\n }\n },\n\n setProjectOrder(state, projectOrder) {\n // temp workaround filter out trashed projects\n const newProjectOrder = projectOrder.filter((id: string) => {\n return !state.trashProjects.some((project: any) => project.id === id);\n });\n state.projectOrder = newProjectOrder;\n },\n\n addToSocketDeletedProjects(state, projectId) {\n state.socketDeletedProjects.push(projectId);\n },\n\n clearSocketDeletedProjects(state) {\n state.socketDeletedProjects.splice(0, state.socketDeletedProjects.length);\n },\n\n setUserSettings(state, settings) {\n state.userSettings = { ...state.userSettings, ...settings };\n },\n\n setUser(state, user: any) {\n state.user = user;\n user.teams.forEach((team: any) => {\n state.teams[team.id] = team;\n });\n },\n\n setTeam(state, team) {\n const existingTeam = state.teams[team.id];\n state.teams[team.id] = { ...(existingTeam ?? {}), ...team };\n },\n\n setCommentsSection(state, section) {\n state.commentsSection = section;\n },\n\n setComments(state, comments) {\n state.comments = comments;\n },\n\n setCardCommentsAndActivities(state, { cardId, payload }) {\n state.cardsCommentsAndActivities[cardId] = payload;\n },\n\n addComment(state, comment) {\n const index = state.comments.findIndex((c) => c.id === comment.id);\n if (index > -1) {\n state.comments.splice(index, 1, comment);\n } else {\n state.comments.push(comment);\n }\n },\n\n setUserName(state, userName: string) {\n state.loginDetails.userName = userName;\n },\n\n setEmail(state, email: string) {\n state.loginDetails.email = email;\n },\n\n setPassword(state, password: string) {\n state.loginDetails.password = password;\n },\n\n setTeamSubDomain(state, teamSubDomain: string) {\n state.loginDetails.teamSubDomain = teamSubDomain;\n localStorage.setItem('teamSubDomain', teamSubDomain);\n if (!teamSubDomain) return;\n if (state.loginDetails.teamSubDomains.includes(teamSubDomain)) return;\n\n state.loginDetails.teamSubDomains.push(teamSubDomain);\n localStorage.setItem('teamSubDomains', JSON.stringify(state.loginDetails.teamSubDomains));\n },\n\n removeTeamSubDomain(state, index: number) {\n state.loginDetails.teamSubDomains.splice(index, 1);\n localStorage.setItem('teamSubDomains', JSON.stringify(state.loginDetails.teamSubDomains));\n },\n\n setLoggedIn(state) {\n state.loggedIn = true;\n },\n\n setNotLoggedIn(state) {\n state.loggedIn = false;\n },\n\n setCurrentProjectId(state, { teamId, projectId = '' }) {\n state.currentProjectId = projectId;\n const key = `${teamId}-currentProjectId`;\n localStorage.setItem(key, projectId);\n },\n\n setCurrentEditCommentID(state, id: string) {\n state.currentEditCommentID = id;\n },\n\n setPreviousRoute(state, route: object) {\n state.previousRoute = route;\n },\n\n setPopUpMessage(state, message: string) {\n state.popUpMessage = message;\n },\n\n setHelpPopupIsOn(state, isOn) {\n state.helpPopupIsOn = isOn;\n },\n\n setCommentListOrderBy(state, orderBy) {\n state.commentListOrderBy = orderBy;\n },\n\n setProjectFormName(state, projectFormName) {\n state.projectFormName = projectFormName;\n },\n\n setProjectFormDescription(state, projectFormDescription) {\n state.projectFormDescription = projectFormDescription;\n },\n\n setCommentsAreActive(state, active) {\n state.commentsAreActive = active;\n },\n\n setCurrentTabName(state, tabName) {\n state.currentTabName = tabName;\n },\n\n itemNotFound(state, value) {\n state.itemNotFound = value;\n },\n\n setTrashProjects(state, projects) {\n state.trashProjects = projects;\n },\n\n addLocalComment(state, { comment, index = null, parentCommentId, cardId = null }) {\n let comments = [];\n if (cardId) {\n comments = state.cardsCommentsAndActivities[cardId] ?? [];\n } else {\n comments = state.comments;\n }\n if (parentCommentId) {\n let parentCommentIndex = -1;\n const parentComment = comments.find((c: any, cIndex: number) => {\n if (c.id === parentCommentId) {\n parentCommentIndex = cIndex;\n return c;\n }\n return false;\n });\n if (parentCommentIndex > -1) {\n if (!parentComment.children) {\n parentComment.children = { child_comments: [], count: 0 };\n }\n parentComment.children.child_comments.push(comment);\n parentComment.children.count += 1;\n comments.splice(parentCommentIndex, 1, parentComment);\n return;\n }\n }\n if (index) {\n comments.splice(index, 0, comment);\n return;\n }\n comments.push(comment);\n },\n\n updateLocalCommentId(\n state,\n { commentId, localId, childCommentId, commentPayload = {}, cardId = null }\n ) {\n const parentCommentId = childCommentId ? commentId : localId;\n const comments = cardId ? state.cardsCommentsAndActivities[cardId] : state.comments;\n let commentIndex: number = -1;\n const comment = comments.find((c: any, cIndex: number) => {\n if (c.id === parentCommentId) {\n commentIndex = cIndex;\n return c;\n }\n return false;\n });\n if (!comment) return;\n if (childCommentId) {\n let childCommentIndex = -1;\n const childComment = comment.children.child_comments.find((childC: any, cIndex: number) => {\n if (childC.id === localId) {\n childCommentIndex = cIndex;\n return childC;\n }\n return false;\n });\n if (childCommentIndex > -1) {\n delete childComment.localCommentId;\n comment.children.child_comments.splice(childCommentIndex, 1, {\n ...childComment,\n ...commentPayload,\n });\n }\n comments.splice(commentIndex, 1, { ...comment });\n if (cardId) {\n state.cardsCommentsAndActivities[cardId] = comments;\n } else {\n state.comments = comments;\n }\n return;\n }\n comments.splice(commentIndex, 1, {\n ...comment,\n ...commentPayload,\n ...{ id: commentId, localCommentId: false },\n });\n if (cardId) {\n state.cardsCommentsAndActivities[cardId] = comments;\n } else {\n state.comments = comments;\n }\n },\n\n removeLocalComment(state, { localCommentId, parentCommentId, cardId = null }) {\n if (cardId) {\n if (parentCommentId) {\n const parentComment = state.cardsCommentsAndActivities[cardId].find(\n (c: any) => c.id === parentCommentId\n );\n const childCommentIndex = parentComment.children.child_comments.findIndex(\n (c: any) => c.id === localCommentId\n );\n if (childCommentIndex !== -1) {\n parentComment.children.child_comments.splice(childCommentIndex, 1);\n parentComment.children.count -= 1;\n return;\n }\n }\n const comments = state.cardsCommentsAndActivities[cardId];\n const index = comments.findIndex((c: any) => c.id === localCommentId);\n if (index !== -1) {\n comments.splice(index, 1);\n }\n return;\n }\n let { comments: commentsArray } = state;\n if (parentCommentId) {\n const parentComment = state.comments.find((c: any) => c.id === parentCommentId);\n commentsArray = parentComment.children.child_comments;\n parentComment.children.count -= 1;\n }\n\n const index = commentsArray.findIndex((c: any) => c.id === localCommentId);\n if (index !== -1) {\n commentsArray.splice(index, 1);\n }\n },\n\n localUpdateComment(state, { fieldName, fieldValue, commentId, childCommentId, cardId = null }) {\n const comments = cardId ? state.cardsCommentsAndActivities[cardId] : state.comments;\n let commentIndex: number = -1;\n const comment = comments.find((c: any, cIndex: number) => {\n if (c.id === commentId) {\n commentIndex = cIndex;\n return c;\n }\n return false;\n });\n if (!comment) return;\n if (!childCommentId) {\n comments.splice(commentIndex, 1, { ...comment, [fieldName]: fieldValue });\n } else {\n let childIndex = -1;\n const childComment = comment.children?.child_comments.find((c: any, cIndex: number) => {\n if (c.id === childCommentId) {\n childIndex = cIndex;\n return c;\n }\n return false;\n });\n comment.children.child_comments.splice(childIndex, 1, {\n ...childComment,\n [fieldName]: fieldValue,\n });\n comments.splice(commentIndex, 1, { ...comment });\n }\n if (cardId) {\n state.cardsCommentsAndActivities[cardId] = comments;\n } else {\n state.comments = comments;\n }\n },\n\n toggleCommentReaction(state, { commentId, parentResourceId, userId, reaction, cardId = null }) {\n const comments = cardId ? state.cardsCommentsAndActivities[cardId] : state.comments;\n let commentIndex: number = -1;\n const primaryCommentId = parentResourceId || commentId;\n const parentComment = comments.find((c: any, cIndex: number) => {\n if (c.id === primaryCommentId) {\n commentIndex = cIndex;\n return c;\n }\n return false;\n });\n\n let comment = parentComment;\n let childCommentIndex: number = -1;\n\n if (parentResourceId) {\n comment = parentComment.children.child_comments.find((c: any, index: number) => {\n if (c.id === commentId) {\n childCommentIndex = index;\n return c;\n }\n return false;\n });\n }\n\n const storeComment = (comment: any) => {\n if (childCommentIndex > -1) {\n parentComment.children.child_comments.splice(childCommentIndex, 1, { ...comment });\n comments.splice(commentIndex, 1, { ...parentComment });\n } else {\n comments.splice(commentIndex, 1, { ...comment });\n }\n if (cardId) {\n state.cardsCommentsAndActivities[cardId] = comments;\n } else {\n state.comments = comments;\n }\n };\n\n if (!comment) return;\n const newReaction = {\n id: reaction.id,\n members: [\n {\n user_id: userId,\n variation: reaction.colons,\n },\n ],\n unicode: reaction.native,\n };\n if (!comment.reactions) comment.reactions = [];\n const existingReaction = comment.reactions.find((r: any) => r.id === reaction.id);\n if (existingReaction) {\n // find if user already reacted\n const userAlreadyReacted = existingReaction.members.find((u: any) => u.user_id === userId);\n if (userAlreadyReacted) {\n // remove user from members\n existingReaction.members = existingReaction.members.filter(\n (u: any) => u.user_id !== userId\n );\n if (existingReaction.members.length === 0) {\n // remove reaction when left empty\n comment.reactions = comment.reactions.filter((r: any) => r.id !== reaction.id);\n }\n storeComment(comment);\n return;\n }\n // add user to members\n existingReaction.members.push({\n user_id: userId,\n variation: reaction.colons,\n });\n storeComment(comment);\n return;\n }\n comment.reactions.push(newReaction);\n storeComment(comment);\n },\n\n setEmojiPickerDisplayed(state, payload) {\n state.emojiPickerDisplayed = payload;\n },\n\n setCurrentMembers(state, members) {\n state.members = members;\n },\n\n toggleSearchModal(state, payload) {\n state.showSearchModal = payload;\n },\n\n toggleAskAiNotes(state, payload) {\n state.showAskAiNotesModal = payload;\n },\n\n setSearchResults(state, results = []) {\n state.searchResults = results;\n },\n\n setChildSearchResults(state, results = []) {\n state.childSearchResults = results;\n },\n\n setLastSearchQuery(state, lastSearchQuery) {\n state.lastSearchQuery = lastSearchQuery;\n },\n\n setLastAskAiNotesSearchQuery(state, lastSearchQuery) {\n state.lastAskAiNotesSearchQuery = lastSearchQuery;\n },\n\n setNotificationMessage(state, message: string) {\n state.notificationMessage = message;\n },\n\n setNotificationType(state, type: string) {\n state.notificationType = type;\n },\n\n toggleDarkMode(state) {\n state.darkMode = !state.darkMode;\n },\n\n setBoardsBackground(state, value: string) {\n state.boardsBackground = value;\n },\n\n setTeamProjectField(state, { projectId, fieldName, fieldValue }) {\n const projectIndex = state.teamProjects.findIndex((project: any) => project.id === projectId);\n if (projectIndex > -1) {\n state.teamProjects[projectIndex][fieldName] = fieldValue;\n }\n },\n\n setImportHistory(state, payload) {\n state.importHistory = payload;\n },\n setRedirectProjectId(state, payload) {\n state.redirectProjectId = payload;\n },\n setInviteeRole(state, payload) {\n state.inviteeRole = payload;\n },\n setInviteesProjectIds(state, payload) {\n state.inviteesProjectIds = payload;\n },\n\n setSidebarExpanded(state, payload) {\n state.sidebarExpanded = payload;\n },\n\n setAddMemberPopup(state, payload) {\n state.addMemberPopupIsOn = payload;\n },\n\n setAddMembersTarget(state, target) {\n state.addMembersTarget = target;\n },\n\n deletePopupId(state, payload) {\n state.deletePopupId = payload;\n },\n\n setDisplayMembersDropdownId(state, payload) {\n state.displayMembersDropdownId = payload;\n },\n\n setMembersSearchInput(state, payload) {\n state.membersSearchInput = payload;\n },\n\n setDisplayEditLinkPopup(state, payload) {\n state.displayEditLinkPopup = payload;\n },\n\n setDisplayEditorTooltip(state, payload) {\n state.displayEditorTooltip = payload;\n },\n\n setCommentLinkUrl(state, value) {\n state.commentLinkUrl = value;\n },\n\n displayInfoSidebar(state, payload) {\n state.displayInfoSidebar = payload;\n },\n\n resolveInlineComment(state, payload) {\n state.resolveInlineComment = payload;\n },\n\n setTeamMembers(state, { members, inactive = false }) {\n const membersObj: { [key: string]: any } = {};\n members.forEach((m: any) => {\n membersObj[m.id] = m;\n });\n if (inactive) {\n state.inactiveMembers = membersObj;\n return;\n }\n state.teamMembers = membersObj;\n },\n\n localAddUserInWorkspace(state, workspace) {\n const i = state.user.teams.findIndex((team: any) => team.id === workspace.id);\n if (i > -1) state.user.teams.splice(i, 1, workspace);\n else state.user.teams.push(workspace);\n },\n\n locaRemoveUserFromWorkspace(state, teamID) {\n const teamIndex = state?.user?.teams.findIndex((team: { id: any }) => team.id === teamID);\n state?.user?.teams.splice(teamIndex, 1);\n },\n\n resetState(state) {\n const newState = {\n ...getDefaultState(),\n user: state.user,\n theme: state.theme,\n themePreference: state.themePreference,\n recentWorkspaces: state.recentWorkspaces,\n transcriptionState: {\n noteId: '',\n alreadyRecorded: new Set(),\n recording: 'stopped',\n permissions: state.transcriptionState.permissions,\n },\n hideEmptyGroups: state.hideEmptyGroups,\n showWeekends: state.showWeekends,\n };\n Object.assign(state, newState);\n },\n\n addMemberToProject(state, { memberToAdd }) {\n const newMembers = [...state.members, memberToAdd];\n state.members = newMembers;\n },\n\n removeMemberFromProject(state, { memberToRemove }) {\n const mIndex = state.members.findIndex((i) => i.user_id === memberToRemove.user_id);\n state.members.splice(mIndex, 1);\n },\n\n setRedirectRouteAfterLogin(state, route: object) {\n state.redirectRouteAfterLogin = route;\n },\n\n setNotificationCount(state, count) {\n state.notificationCount = count;\n },\n\n setNotificationAlerts(state, currentNotifications) {\n state.notificationAlerts = currentNotifications;\n },\n\n setTeamMemberNotifications(state, notifications) {\n state.teamMemberNotifications = notifications;\n },\n\n localUpdateNotifMarkAllAsRead(state, notifications) {\n const newNotificationList = notifications.map((n: any) => ({ ...n, read: true }));\n state.teamMemberNotifications = newNotificationList;\n },\n\n localRemoveNotification(state, notificationId) {\n const index = state.teamMemberNotifications.findIndex((n: any) => n.id === notificationId);\n if (index > -1) {\n state.teamMemberNotifications.splice(index, 1);\n }\n },\n\n setPublicViews(state, views) {\n state.publicViews = views;\n },\n\n setPrivateViews(state, views) {\n state.privateViews = views;\n },\n\n setSelectedViewType(state, viewType) {\n state.selectedViewType = viewType;\n },\n\n setViewResults(state, viewResults) {\n state.viewPreview = viewResults;\n },\n\n localAddViewResultsToList(state, { cards, count, id }) {\n state.viewResultsList[id] = { cards, count };\n },\n\n updateCountInViewResultsList(state, { newCount, id }) {\n state.viewResultsList[id].count = newCount;\n },\n\n currentViewTotalCount(state, count) {\n state.currentViewTotalCount = count;\n },\n\n setSelectedView(state, view) {\n state.selectedView = view;\n },\n\n updateSelectedViewName(state, name) {\n state.selectedView.name = name;\n },\n\n setViewFilters(state, payload) {\n state.viewFilters = payload;\n },\n\n setViewPills(state, pills) {\n state.viewPills = pills;\n },\n\n setViewEditMode(state, changed) {\n state.viewEditMode = changed;\n },\n\n localAddViewToViewList(state, view) {\n if (view.shared) {\n state.publicViews.unshift(view);\n } else {\n state.privateViews.unshift(view);\n }\n },\n\n updateLocalViewId(state, { key, viewId }) {\n if (key === 'publicViews') {\n state.publicViews[0].id = viewId;\n } else {\n state.privateViews[0].id = viewId;\n }\n },\n\n localDeleteView(state, { key, index }) {\n state[key].splice(index, 1);\n },\n\n localAddView(state, { view, key, index }) {\n state[key].splice(index, 0, view);\n },\n\n setBoardsFilters(state, boards) {\n state.boardsFilters = boards;\n },\n addUiNotification(state, notification) {\n if (notification.onlineStatus) {\n const index = state.uiNotifications.findIndex((n: any) => n.onlineStatus === false);\n\n if (index !== -1) {\n state.uiNotifications.splice(index, 1);\n }\n }\n /* Do not push a notification if its `id` is already displayed */\n if (!state.uiNotifications.find((n) => n.id === notification.id)) {\n state.uiNotifications.push(notification);\n }\n },\n\n removeUiNotificationById(state, notificationId) {\n const index = state.uiNotifications.findIndex((n) => n.id === notificationId);\n\n if (index > -1) {\n state.uiNotifications.splice(index, 1);\n }\n },\n\n setFavouritesOpened(state, value) {\n state.favouritesOpened = value;\n },\n\n setOpenedFavouriteItem(state, favouriteItem) {\n state.openedFavouriteItem = favouriteItem;\n },\n setHeaderMemberDropdownPosition(state, payload) {\n state.headerMemberDropdownPosition = payload;\n },\n\n setActiveComment(state, payload) {\n state.activeComment = payload;\n },\n\n updateProjectById(state, project) {\n const index = state.teamProjects.findIndex((p) => p.id === project.id);\n\n if (index > -1) {\n state.teamProjects.splice(index, 1, project);\n }\n },\n\n setCurrentRoute(state, route) {\n state.currentRoute = route;\n },\n\n setSocketConnected(state, value) {\n state.socketConnected = value;\n },\n localUpdateProject(state, { localId, newId }) {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === localId);\n if (projectIndex > -1) {\n state.teamProjects[projectIndex].id = newId;\n }\n },\n localUpdateFailRequest(state, localId) {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === localId);\n if (projectIndex > -1) {\n state.teamProjects.splice(projectIndex, 1);\n }\n },\n\n joinProject(state, { memberId, projectId = state.currentProjectId }) {\n const { user } = state;\n if (memberId === user.id) {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === projectId);\n if (projectIndex !== -1) {\n state.teamProjects[projectIndex] = {\n ...state.teamProjects[projectIndex],\n is_member: true,\n };\n }\n }\n },\n\n leaveProject(state, { memberId, projectId = state.currentProjectId }) {\n const { user, selectedProjectId } = state;\n const currentProjectId = selectedProjectId !== '' ? selectedProjectId : projectId;\n if (memberId === user.id) {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === currentProjectId);\n if (projectIndex !== -1) {\n delete state.teamProjects[projectIndex].is_member;\n }\n }\n },\n\n setDisplayVideoLinkPopup(state, value) {\n state.displayVideoLinkPopup = value;\n },\n\n setInstallations(state, { integration, installations }) {\n state.installations[integration] = installations;\n },\n\n addInstallation(state, { integration, installation }) {\n state.installations[integration] = installation;\n },\n\n setImportProgressSteps(state, payload) {\n state.importProgressSteps = payload;\n },\n\n updateImportProgressSteps(state, { step, propertyName, value }) {\n state.importProgressSteps[step][propertyName] = value;\n },\n\n setRouteBeforeSettings(state, value) {\n state.routeBeforeSettings = value;\n },\n\n setImportProgressCurrentStep(state, value) {\n state.importProgressCurrentStep = value;\n },\n\n setSettingsCurrentProjectId(state, projectId) {\n state.settingsCurrentProjectId = projectId;\n },\n\n setCachedComponents(state, components) {\n state.cachedComponents = components;\n },\n\n setSettingsCurrentBoardId(state, boardId) {\n state.settingsCurrentBoardId = boardId;\n },\n\n setIntegrationSettings(state, { integration, settings }) {\n state.integrationSettings[integration] = settings;\n },\n\n updateLocalIntegrationSettings(state, { integration, payload }) {\n state.integrationSettings[integration] = {\n ...state.integrationSettings[integration],\n ...payload,\n };\n },\n\n setUpcomingGoogleCalendarEvents(state, events) {\n state.upcomingGoogleCalendarEvents = events;\n },\n\n setExpandedProject(state, { id, value }) {\n state.projectSidebarExpanded[id] = value;\n browserStorageGetAndSetItem('projectsExpanded', id, value);\n },\n\n setBoardsColumnLayout(state, { layout, projectId, teamSlug }) {\n const key = `${teamSlug}-${projectId}`;\n state.boardsColumnLayout[key] = layout;\n browserStorageGetAndSetItem('boardsColumnLayout', key, layout);\n },\n\n setPagesColumnLayout(state, { layout, projectId, teamSlug }) {\n const key = `${teamSlug}-${projectId}`;\n state.pagesColumnLayout[key] = layout;\n browserStorageGetAndSetItem('pagesColumnLayout', key, layout);\n },\n\n setProjectsExpanded(state, value) {\n state.projectsExpanded = value;\n localStorage.setItem('projSectionExpanded', value);\n },\n\n setFavouritesExpanded(state, value) {\n state.favouritesExpanded = value;\n localStorage.setItem('favSectionExpanded', value);\n },\n\n localRemoveBoardOrPageInProject(state, { projectId, itemId, section }) {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === projectId);\n if (projectIndex > -1) {\n const itemIndex = state.teamProjects[projectIndex][section].findIndex(\n (i: any) => i.id === itemId\n );\n if (itemIndex > -1) {\n state.teamProjects[projectIndex][section].splice(itemIndex, 1);\n }\n }\n },\n\n localUpdateProjectBoardOrder(state, { projectToId, projectFromId, boardId, position = -1 }) {\n const projectIndexTo = state.teamProjects.findIndex((i: any) => i.id === projectToId);\n if (\n projectIndexTo > -1 &&\n state.teamProjects[projectIndexTo].board_order.indexOf(boardId) === -1\n ) {\n if (position !== -1) {\n state.teamProjects[projectIndexTo].board_order.splice(position, 0, boardId);\n } else {\n state.teamProjects[projectIndexTo].board_order.push(boardId);\n }\n }\n\n const projectIndexFrom = state.teamProjects.findIndex((i: any) => i.id === projectFromId);\n\n if (projectIndexFrom > -1) {\n const boardForRemoveIndex = state.teamProjects[projectIndexFrom].board_order.findIndex(\n (id: any) => id === boardId\n );\n if (boardForRemoveIndex > -1) {\n state.teamProjects[projectIndexFrom].board_order.splice(boardForRemoveIndex, 1);\n }\n }\n },\n\n localRemoveBoardFromOrder(state, { projectId, boardId }) {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === projectId);\n\n if (projectIndex > -1) {\n const boardForRemoveIndex = state.teamProjects[projectIndex].board_order.findIndex(\n (id: any) => id === boardId\n );\n if (boardForRemoveIndex > -1) {\n state.teamProjects[projectIndex].board_order.splice(boardForRemoveIndex, 1);\n }\n }\n },\n\n localUpdateProjectBoardsOrder(state, { projectId, payload }) {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === projectId);\n if (projectIndex > -1) {\n state.teamProjects[projectIndex].board_order = payload;\n }\n },\n\n localAddProjectBoardOrder(state, { projectId, boardId }) {\n const projectIndexTo = state.teamProjects.findIndex((i: any) => i.id === projectId);\n if (projectIndexTo > -1 && state.teamProjects[projectIndexTo]) {\n const boardOrder = state.teamProjects[projectIndexTo].board_order;\n if (boardOrder && boardOrder.indexOf(boardId) === -1) {\n boardOrder.push(boardId);\n } else if (!boardOrder) {\n state.teamProjects[projectIndexTo].board_order = [boardId];\n }\n }\n },\n\n setDraggingEntityProjectFromId(state, id) {\n state.draggingEntityProjectFromId = id;\n },\n\n setDraggingSidebarItem(state, payload) {\n state.draggingSidebarItem = payload;\n },\n\n setSelectedProjectId(state, projectId) {\n state.selectedProjectId = projectId;\n },\n\n setPendingInvites(state, payload) {\n state.pendingInvites = payload;\n },\n\n setCurrentRole(state, payload) {\n state.currentRole = payload;\n },\n\n setDoubleCheckPopup(state, payload) {\n state.doubleCheckPopup = payload;\n },\n\n setConfirmationModal(state, payload) {\n state.confirmationModal = payload;\n },\n\n addCardIdForLocalId(state, { localId, id }) {\n state.localCardIds[localId] = id;\n },\n\n setColorsPopup(state, payload) {\n state.colorsPopup = payload;\n },\n\n setCommentsOrder(state, payload) {\n state.commentsOrder = payload;\n },\n\n setQuickCard(state, isOn) {\n state.quickCard = isOn;\n },\n\n setQuickCardBoardId(state, payload) {\n state.quickCardBoardId = payload;\n },\n\n setQuickPage(state, value) {\n state.quickPage = value;\n },\n\n setNoteInQuickPage(state, value) {\n state.noteInQuickPage = value;\n },\n\n setQuickNote(state, value) {\n state.quickNote = value;\n },\n\n setCardCommentActivityFilter(state, payload) {\n state.cardCommentActivityFilter = payload;\n },\n\n addCommentInProgressPatch(state, payload) {\n state.commentsInProgressPatch.push(payload);\n },\n\n removeCommentInProgressPatch(state, payload) {\n const commentIndex = state.commentsInProgressPatch.indexOf(payload);\n state.commentsInProgressPatch.splice(commentIndex, 1);\n },\n\n addCommentInProgressDelete(state, payload) {\n state.commentsInProgressDelete.push(payload);\n },\n\n removeCommentInProgressDelete(state, payload) {\n const commentIndex = state.commentsInProgressDelete.indexOf(payload);\n state.commentsInProgressDelete.splice(commentIndex, 1);\n },\n\n addLoadedFile(state, payload) {\n if (state.loadedFiles.find((file: any) => file.id === payload.id)) return;\n state.loadedFiles.push(payload);\n },\n\n setOnline(state, value) {\n state.online = value;\n },\n\n setProjectMembers(state, { members, projectId, projectIndex }) {\n if (projectIndex > -1) {\n state.teamProjects[projectIndex].members = members;\n } else {\n const projectIndex = state.teamProjects.findIndex((i: any) => i.id === projectId);\n if (projectIndex > -1) {\n const newProject = { ...state.teamProjects[projectIndex], members };\n state.teamProjects.splice(projectIndex, 1, newProject);\n }\n }\n },\n\n setProjectPreviewLastScrollPos(state, { projectId, scrollPosition }) {\n const temp = { ...state.projectPreviewLastScrollPos };\n if (!scrollPosition) {\n delete temp[projectId];\n state.projectPreviewLastScrollPos = temp;\n } else {\n state.projectPreviewLastScrollPos[projectId] = scrollPosition;\n }\n },\n hideAllReplies(state) {\n state.showHideReplies = {};\n },\n showHideReplies(state, payload) {\n state.showHideReplies[payload.commentId] = payload.show;\n },\n closeEditor(state) {\n state.editorOpen = {};\n },\n editorOpen(state, payload) {\n state.editorOpen[payload.commentId] = payload.open;\n },\n\n setFavourites(state, favourites) {\n const processFavourite = (item: any) => {\n if (item.resource_type === ResourceType.Sprint && !item.resource_id.includes('s')) {\n item.original_resource_id = item.resource_id;\n item.resource_id = getSprintKey(item.project_id, item.resource_id);\n }\n if (item.children) {\n item.children = item.children.map(processFavourite);\n }\n return item;\n };\n\n const favouritesForSet = favourites.map(processFavourite);\n state.favourites = favouritesForSet;\n },\n\n addInFavourites(state, item) {\n if (item.position > -1) {\n state.favourites.splice(item.position, 0, item);\n } else {\n state.favourites.push(item);\n }\n },\n\n addInParentFavourite(state, { item, parentId, position = -1 }) {\n const parentIndex = state.favourites.findIndex((f: any) => f.resource_id === parentId);\n if (state.favourites[parentIndex].children) {\n if (position > -1) {\n state.favourites[parentIndex].children.splice(position, 0, item);\n } else {\n state.favourites[parentIndex].children.push(item);\n }\n } else {\n state.favourites[parentIndex].children = [item];\n }\n },\n\n localRemoveFromFavourites(state, { resourceId, resourceType }) {\n for (let i = 0; i < state.favourites.length; i++) {\n const favourite = state.favourites[i];\n if (!favourite) continue;\n if (favourite.resource_id === resourceId && favourite.resource_type === resourceType) {\n state.favourites.splice(i, 1);\n } else if (favourite.children) {\n for (let j = 0; j < favourite.children.length; j++) {\n if (\n favourite.children[j].resource_id === resourceId &&\n favourite.children[j].resource_type === resourceType\n ) {\n favourite.children.splice(j, 1);\n }\n }\n }\n }\n },\n\n localUpdateResourceInFavourites(state, resource) {\n for (let i = 0; i < state.favourites.length; i++) {\n const favourite = state.favourites[i];\n if (\n favourite.resource_id === resource.resource_id &&\n favourite.resource_type === resource.resource_type\n ) {\n state.favourites.splice(i, 1, resource);\n }\n if (favourite?.children) {\n for (let j = 0; j < favourite.children.length; j++) {\n if (\n favourite.children[j].resource_id == resource.resource_id &&\n favourite.children[j].resource_type === resource.resource_type\n ) {\n favourite.children.splice(j, 1, resource);\n }\n }\n }\n }\n },\n\n setFavouritesFolderExpand(state, { id, value }) {\n state.favouritesFolderExpanded[id] = value;\n let existing = localStorage.getItem('favouritesFolderExpanded');\n existing = existing ? JSON.parse(existing) : {};\n // @ts-ignore: Object is possibly 'null'.\n existing[id] = value;\n localStorage.setItem('favouritesFolderExpanded', JSON.stringify(existing));\n },\n\n setNewFolderInput(state, value) {\n state.newFolderInput = value;\n },\n\n setFavouriteFolderForRename(state, value) {\n state.favouriteFolderForRename = value;\n },\n\n setFavouriteFolderTitle(state, value) {\n state.favouriteFolderTitle = value;\n },\n showPeekSidebar(state, value) {\n state.showPeekSidebar = value;\n },\n\n setTheme(state, value) {\n state.theme = value;\n },\n addToElectronBrowseHistory(state, payload) {\n if (payload.replaceAfterIndex) {\n state.electronBrowseHistory.splice(payload.replaceAfterIndex + 1);\n }\n\n state.electronBrowseHistory.push(payload.path);\n },\n setElectronBrowseHistoryIndex(state, value) {\n state.electronBrowseHistoryIndex = value;\n },\n setElectronRecentlyViewed(state, value) {\n state.electronRecentlyViewed = value;\n },\n addToElectronRecentlyViewed(state, payload) {\n const { currentlyViewed, teamId } = payload;\n const { type, id } = currentlyViewed;\n\n const recentlyViewed = state.electronRecentlyViewed.length\n ? state.electronRecentlyViewed\n : JSON.parse(localStorage.getItem(`recentlyViewed:${teamId}`) ?? '[]');\n\n const index = recentlyViewed.findIndex((i: any) => i.type === type && i.id === id);\n\n if (index > -1) {\n recentlyViewed.splice(index, 1);\n }\n\n recentlyViewed.unshift(currentlyViewed);\n\n if (recentlyViewed.length > 10) {\n recentlyViewed.pop();\n }\n\n state.electronRecentlyViewed.splice(0, state.electronRecentlyViewed.length, ...recentlyViewed);\n\n localStorage.setItem(`recentlyViewed:${teamId}`, JSON.stringify(state.electronRecentlyViewed));\n },\n removeFromElectronRecentlyViewed(state, payload) {\n const { currentlyViewed, teamId } = payload;\n const { type, id } = currentlyViewed;\n\n const recentlyViewed = state.electronRecentlyViewed.length\n ? state.electronRecentlyViewed\n : JSON.parse(localStorage.getItem(`recentlyViewed:${teamId}`) ?? '[]');\n\n const index = recentlyViewed.findIndex((i: any) => i.type === type && i.id === id);\n\n if (index === -1) {\n return;\n }\n\n recentlyViewed.splice(index, 1);\n\n state.electronRecentlyViewed.splice(0, state.electronRecentlyViewed.length, ...recentlyViewed);\n\n localStorage.setItem(`recentlyViewed:${teamId}`, JSON.stringify(recentlyViewed));\n },\n updateItemInElectronRecentlyViewed(\n state,\n { id, type, teamId, toUpdate }: { id: string; type: string; teamId: string; toUpdate: any }\n ) {\n const recentlyViewed = state.electronRecentlyViewed.length\n ? state.electronRecentlyViewed\n : JSON.parse(localStorage.getItem(`recentlyViewed:${teamId}`) ?? '[]');\n\n const index = recentlyViewed.findIndex((i: any) => i.type === type && i.id === id);\n\n if (index === -1) {\n return;\n }\n\n state.electronRecentlyViewed.splice(index, 1, {\n ...recentlyViewed[index],\n ...toUpdate,\n });\n localStorage.setItem(`recentlyViewed:${teamId}`, JSON.stringify(recentlyViewed));\n },\n setThemePreference(state, value) {\n state.themePreference = value;\n },\n\n setCurrentInboxResource(state, value) {\n state.currentInboxResource = value;\n },\n\n setInboxFilters(state, value) {\n state.inboxFilter = value;\n },\n\n setInboxListWidth(state, value) {\n state.inboxListWidth = value;\n },\n setInboxListExpanded(state, value) {\n state.inboxListExpanded = value;\n },\n\n setShowOnboarding(state, value) {\n state.showOnboarding = value;\n },\n\n setOpenInDesktopApp(state, value) {\n state.openInDesktopApp = value;\n localStorage.setItem('openInDesktopApp', value);\n },\n\n setShowRedirectedToAppOverlay(state, value) {\n state.showRedirectedToAppOverlay = value;\n },\n\n setMembersDropdownInvitees(state, value) {\n state.membersDropdownInvitees = value;\n },\n\n addMembersDropdownInvitee(state, value) {\n const alreadyAdded = state.membersDropdownInvitees.some(\n (invitee) => (value.id && invitee.id === value.id) || invitee.email === value.email\n );\n if (!alreadyAdded) {\n state.membersDropdownInvitees.push(value);\n }\n },\n\n removeMembersDropdownInvitee(state, value) {\n const index = state.membersDropdownInvitees.findIndex(\n (invitee) => (value.id && invitee.id === value.id) || invitee.email === value.email\n );\n if (index > -1) state.membersDropdownInvitees.splice(index, 1);\n },\n\n setEditorForCardLink(state, value) {\n state.editorForCardLink = value;\n },\n\n setMyWorkSelectedTabId(state, { userId, tabId }: { userId: string; tabId: any }) {\n if (Object.values(MyWorkTabId).indexOf(tabId) === -1) {\n tabId = MyWorkTabId.Assigned;\n }\n state.myWorkSelectedTabId[userId] = tabId;\n },\n\n setMyWorkUserId(state, userId) {\n state.myWorkUserId = userId;\n },\n\n addCardToCurrentViewResults(state, card) {\n state.viewPreview.unshift(card);\n },\n\n setPressedEscCancelDrag(state, value) {\n state.pressedEscCancelDragging = value;\n },\n\n setSidebarHover(state, value) {\n state.sidebarHovered = value;\n },\n\n setSidebarDragging(state, value) {\n state.sidebarDragging = value;\n },\n\n setTeamFeatures(state, features) {\n state.teamFeatures = features;\n },\n\n updateTeamFeature(state, { featureId, feature }) {\n const index = state.teamFeatures.findIndex((f: any) => f.id === featureId);\n if (index !== -1) {\n state.teamFeatures.splice(index, 1, feature);\n }\n },\n\n setShowUpdateEmailPopup(state, type) {\n state.showUpdateEmailPopup = type;\n },\n\n setPageIconPickerDisplayed(state, value) {\n state.pageIconPickerDisplayed = value;\n },\n\n setHideEmptyGroups(state, { value, boardId, teamId }) {\n const index = state.hideEmptyGroups.indexOf(boardId);\n if (value) {\n if (index === -1) {\n state.hideEmptyGroups.push(boardId);\n }\n } else if (index !== -1) {\n state.hideEmptyGroups.splice(index, 1);\n }\n browserStorageSetItem(hideEmptyGroupByBoardKey(teamId), state.hideEmptyGroups);\n },\n\n setShowWeekends(state, { value, boardId, teamId }) {\n const index = state.showWeekends.indexOf(boardId);\n if (value) {\n if (index === -1) {\n state.showWeekends.push(boardId);\n }\n } else if (index !== -1) {\n state.showWeekends.splice(index, 1);\n }\n browserStorageSetItem(showWeekendsByBoardKey(teamId), state.showWeekends);\n },\n\n addReconnectionCallback(state, { callbackId, callback }) {\n state.reconnectionCallbacks[callbackId] = callback;\n },\n\n removeReconnectionCallback(state, callbackId) {\n delete state.reconnectionCallbacks[callbackId];\n },\n\n previousNextButtonClicked(state, value) {\n state.previousNextButtonClicked = value;\n },\n\n // add page to team projects\n addProjectPage(state, { page, projectId }) {\n const projectIndex = state.teamProjects.findIndex((p: any) => p.id === projectId);\n if (projectIndex > -1) {\n const project = state.teamProjects[projectIndex];\n if (project.pages) {\n const pages = [...project.pages];\n pages.push(page);\n project.pages = pages.slice().sort((a: any, b: any) => parseInt(a.id) - parseInt(b.id));\n } else {\n project.pages = [page];\n }\n }\n },\n\n // remove page from team projects\n removeProjectPage(state, { pageId, projectId }) {\n const projectIndex = state.teamProjects.findIndex((p: any) => p.id === projectId);\n if (projectIndex > -1) {\n const project = state.teamProjects[projectIndex];\n if (project.pages) {\n const pageIndex = project.pages.findIndex((p: any) => p.id === pageId);\n if (pageIndex > -1) {\n project.pages.splice(pageIndex, 1);\n }\n }\n }\n },\n\n updatePageInTeamProject(state, { projectId, pageId, field, value }) {\n const projectIndex = state.teamProjects.findIndex((p: any) => p.id === projectId);\n if (projectIndex > -1) {\n const project = state.teamProjects[projectIndex];\n if (project.pages) {\n const pageIndex = project.pages.findIndex((p: any) => p.id === pageId);\n if (pageIndex > -1) {\n project.pages[pageIndex][field] = value;\n }\n }\n }\n },\n\n setUserTimezoneId(state, timezone_id) {\n state.user.timezone_id = timezone_id;\n },\n\n updateNotificationDigest(state, payload) {\n state.notificationDigest = {\n ...state.notificationDigest,\n ...payload,\n };\n },\n\n updateNotificationDigestSettings(state, payload) {\n state.notificationDigestSettings = {\n ...state.notificationDigestSettings,\n ...payload,\n };\n },\n\n setBoardEmbedPopup(state, payload) {\n state.boardEmbedPopup = payload;\n },\n\n setIsSettingsOpen(state, value) {\n state.isSettingsOpen = value;\n },\n\n setShowUpgradePlanPopup(state, value) {\n state.showUpgradePlanPopup = value;\n },\n\n setMyWorkSortBy(state, { teamId, userId, value }) {\n state.myWorkSortBy[userId] = value;\n browserStorageGetAndSetItem(myWorkSortByKey(teamId), userId, value);\n },\n\n setMyWorkSortByForAllUsers(state, value) {\n state.myWorkSortBy = value;\n },\n\n localRemoveTeamMember(state, userId) {\n delete state.teamMembers[userId];\n },\n\n localUpdateTeamMember(state, { userId, updatedFields }) {\n state.teamMembers[userId] = {\n ...state.teamMembers[userId],\n ...updatedFields,\n };\n },\n\n setModal(state, payload) {\n state.modal = payload;\n },\n\n setRecentWorkspaces(state, workspace) {\n const workspaceIndex = state.recentWorkspaces.findIndex((ws: any) => ws.id === workspace.id);\n\n if (workspaceIndex !== -1) state.recentWorkspaces.splice(workspaceIndex, 1);\n state.recentWorkspaces.push(workspace);\n\n browserStorageSetItem('recentWorkspaces', state.recentWorkspaces);\n },\n\n updateRecentWorkspace(state, { workspaceId, updatedFields }) {\n const workspaceIndex = state.recentWorkspaces.findIndex((ws: any) => ws.id === workspaceId);\n if (workspaceIndex === -1) return;\n\n state.recentWorkspaces[workspaceIndex] = {\n ...state.recentWorkspaces[workspaceIndex],\n ...updatedFields,\n };\n },\n\n setOpenWorkspaceThroughQuickSwitcher(state, value) {\n state.openWorkspaceThroughQuickSwitcher = value;\n },\n\n setSidebarSprintsExpanded(state, { teamSlug, projectId, value }) {\n state.sidebarSprintsExpanded[projectId] = value;\n let existing = localStorage.getItem(`sidebarSprintsExpanded-${teamSlug}`);\n existing = existing ? JSON.parse(existing) : {};\n // @ts-ignore: Object is possibly 'null'.\n existing[projectId] = value;\n localStorage.setItem(`sidebarSprintsExpanded-${teamSlug}`, JSON.stringify(existing));\n },\n\n localAddSprintToProject(state, { projectId, sprint }) {\n const projectIndex = state.teamProjects.findIndex((i) => i.id === projectId);\n\n if (projectIndex > -1) {\n const sprints = state.teamProjects[projectIndex].sprints;\n if (!sprints) {\n state.teamProjects[projectIndex].sprints = [sprint];\n } else if (!sprints.some((s: any) => s.id === sprint.id)) {\n sprints.push(sprint);\n }\n }\n },\n\n setNote(state, { noteIdToUpdate, note }) {\n if (noteIdToUpdate) {\n delete state.notes[noteIdToUpdate];\n }\n\n state.notes[note.id] = note;\n },\n\n localUpdateNoteProp(state, { noteId, aiNoteId, propertyName, value }) {\n if (!state.notes[noteId]) return;\n\n if (aiNoteId) {\n const aiNoteIndex = (state.notes[noteId]?.[NoteContentType.AiNotes] || []).findIndex(\n (aiNote: any) => aiNote.id === aiNoteId\n );\n\n if (aiNoteIndex !== -1) {\n const aiNote = state.notes[noteId][NoteContentType.AiNotes][aiNoteIndex];\n state.notes[noteId][NoteContentType.AiNotes][aiNoteIndex] = {\n ...aiNote,\n [propertyName]: value,\n };\n }\n\n return;\n }\n\n const updatedNote = {\n [noteId]: {\n ...state.notes[noteId],\n [propertyName]: value,\n },\n };\n\n const notes = {\n ...state.notes,\n ...updatedNote,\n };\n\n state.notes = notes;\n },\n\n deleteNote(state, noteId) {\n const notes = { ...state.notes };\n\n delete notes[noteId];\n state.notes = notes;\n },\n\n setNotes(state, notes) {\n state.notes = notes;\n },\n\n setAiNoteGenerating(state, noteId) {\n state.aiNoteGenerating = noteId;\n },\n\n setAiNoteGeneratingTitle(state, noteId) {\n state.aiNoteGeneratingTitle = noteId;\n },\n\n setAiNote(state, { noteId, templateId, aiNote }) {\n if (!state.notes[noteId]) return;\n\n const aiNoteIndex = (state.notes[noteId]?.[NoteContentType.AiNotes] || [])?.findIndex(\n (n: any) => n.note_template_id === templateId\n );\n\n if (aiNoteIndex !== -1) {\n state.notes[noteId][NoteContentType.AiNotes][aiNoteIndex] = aiNote;\n return;\n }\n\n const aiNotes = state.notes[noteId][NoteContentType.AiNotes] || [];\n\n aiNotes.push(aiNote);\n\n state.notes[noteId] = {\n ...state.notes[noteId],\n [NoteContentType.AiNotes]: aiNotes,\n };\n },\n\n setAiActions(state, { noteId, aiNoteId, actions }) {\n const note = state.notes[noteId];\n if (!note) return;\n\n const aiNoteIndex = note[NoteContentType.AiNotes]?.findIndex((n: any) => n.id === aiNoteId);\n if (aiNoteIndex === -1) return;\n\n const aiNote = note[NoteContentType.AiNotes][aiNoteIndex];\n state.notes[noteId][NoteContentType.AiNotes][aiNoteIndex] = {\n ...aiNote,\n actions,\n };\n },\n\n updateAiAction(state, { noteId, aiNoteId, actionId, action }) {\n const note = state.notes[noteId];\n if (!note) return;\n\n const aiNoteIndex = aiNoteId\n ? note[NoteContentType.AiNotes]?.findIndex((n: any) => n.id === aiNoteId)\n : note[NoteContentType.AiNotes]?.findIndex((n: any) =>\n n.actions?.find((a: any) => a.id === actionId)\n );\n if (aiNoteIndex === -1) return;\n\n const aiNote = note[NoteContentType.AiNotes][aiNoteIndex] || {};\n if (!aiNote.actions) return;\n\n const actionIndex = aiNote.actions.findIndex((a: any) => a.id === actionId);\n if (actionIndex === -1) return;\n\n state.notes[noteId][NoteContentType.AiNotes][aiNoteIndex].actions.splice(\n actionIndex,\n 1,\n action\n );\n },\n\n localCreateTranscript(state, { noteId, transcript }) {\n if (!state.notes[noteId]) return;\n\n if (!state.notes[noteId].transcripts) {\n state.notes[noteId].transcripts = [];\n }\n\n state.notes[noteId].transcripts.push(transcript);\n },\n\n localUpdateTranscript(state, { noteId, transcript }) {\n if (!state.notes[noteId]) return;\n\n const transcriptIndex = state.notes[noteId].transcripts.findIndex(\n (t: any) => t.local_id === transcript.local_id\n );\n if (transcriptIndex !== -1) {\n const updatedTranscript = {\n ...state.notes[noteId].transcripts[transcriptIndex],\n ...transcript,\n };\n state.notes[noteId].transcripts.splice(transcriptIndex, 1, updatedTranscript);\n }\n },\n\n localSetNoteTranscripts(state, { noteId, transcripts }) {\n if (!state.notes[noteId]) return;\n\n state.notes[noteId].transcripts = transcripts;\n },\n\n setTranscriptionState(state, value) {\n state.transcriptionState = { ...state.transcriptionState, ...value };\n },\n\n setResourceLoaded(state, { resource, value }: { resource: ResourceLoadedKey; value: boolean }) {\n state.resourceLoaded[resource] = value;\n },\n\n setNoteTemplates(state, templatesArray) {\n const flatTemplates: { [key: string]: any } = {};\n templatesArray.forEach((template: any) => {\n flatTemplates[template.id] = template;\n });\n const newTemplates = { ...flatTemplates };\n state.noteTemplates = newTemplates;\n },\n\n setNoteTemplate(state, template) {\n state.noteTemplates[template.id] = template;\n },\n\n replaceNoteTemplateId(state, { localId, template }) {\n const newTemplates = { ...state.noteTemplates };\n delete newTemplates[localId];\n newTemplates[template.id] = template;\n state.noteTemplates = newTemplates;\n },\n\n deleteNoteTemplate(state, templateId) {\n const newTemplates = { ...state.noteTemplates };\n delete newTemplates[templateId];\n state.noteTemplates = newTemplates;\n },\n\n setNoteTemplateDraft(state, template) {\n const newTemplate = {\n title: template.title,\n icon: template.icon,\n is_shared: template.is_shared,\n context: template.context,\n sections: template.sections,\n };\n state.noteTemplateDraft = newTemplate;\n },\n\n updateNoteTemplateDraftField(state, { fieldName, value }) {\n state.noteTemplateDraft[fieldName] = value;\n },\n\n clearNoteTemplateDraft(state) {\n state.noteTemplateDraft = {\n title: '',\n icon: {},\n is_shared: true,\n context: '',\n sections: [],\n };\n },\n\n setNoteTemplateSections(state, sections) {\n state.noteTemplateSections = sections;\n },\n\n setAgents(state, agents) {\n state.agents = agents;\n },\n\n setCurrentAgentId(state, agentId) {\n state.currentAgentId = agentId;\n },\n\n setPromptIterationsForAgent(state, { agentId, iterations }) {\n state.agentPromptIterations[agentId] = iterations;\n },\n\n setAgentRuns(state, agentRuns) {\n state.agentRuns = agentRuns;\n },\n\n setTeamSubscription(state, subscription: Subscription) {\n state.teamSubscription = subscription;\n },\n setAvailablePlans(state, availablePlans: GetAvailablePlansResponse) {\n state.availablePlans = availablePlans.plans || [];\n },\n\n setSubGroupByEnabled(state, { value, boardId }) {\n state.subGroupByEnabled[boardId] = value;\n },\n\n setWorkspaceSectionExpanded(state, value) {\n state.workspaceSectionExpanded = value;\n browserStorageSetItem('workspaceSectionExpanded', value);\n },\n};\n\nexport default mutations;\n","/**\n * Main vuex getters\n * @packageDocumentation\n * @category Store\n */\nimport { GetterTree } from 'vuex';\nimport { RootState as State, User, Team, Project } from '@/types';\nimport sortProjects from '@/utilities/sortProjects';\nimport constants from '@/utilities/constants';\nimport { ResourceType } from '@/types/resources';\nimport { MyWorkTabId } from '@/types/tabs';\nimport { TeamMember, Subscription, Plan } from '@superthread-com/api';\n\nconst getters: GetterTree = {\n /** Returns the team sub domain of the currently logged in user. */\n getTeamSubDomain: (state): string => state.loginDetails.teamSubDomain,\n /** Returns the username of the currently logged in user. */\n getUserName: (state): string => state.loginDetails.userName,\n /** Returns the email of the currently logged in user. */\n getEmail: (state): string => state.loginDetails.email,\n /** Returns settings for user */\n getUserSettings: (state) => state.userSettings,\n /** Returns the currently logged in user object. */\n getUser: (state): User => state.user,\n /** Returns the user id. */\n getUserId: (state): string => state.user.id,\n /** Returns the user email. */\n getUserEmail: (state): string => state.user.email,\n /** Returns the team of the user. */\n getTeam: (state, _getters, rootState, rootGetters): Team => {\n const teamId = rootGetters.getTeamID;\n return (state.user.teams || []).find((t: Team) => t.id === teamId);\n },\n getUserTeams: (state): Team[] => {\n return state.user.teams;\n },\n /** Returns the password of the currently logged in user. */\n getPassword: (state): string => state.loginDetails.password,\n /** Returns flag determing if user is logged in or not. */\n getLoggedIn: (state): boolean => state.loggedIn,\n /** Returns project where user is member. */\n getProjects: (state): Project[] => state.teamProjects.filter((p: any) => p.is_member) || [],\n /** Returns my projects sorted by project_order array. */\n getMySortedProjects: (state, _getters): any[] => {\n return sortProjects(_getters.getProjects, _getters.getProjectOrder);\n },\n /** Returns my project for given id */\n getMyProjectById: (state, _getters) => (id: string) =>\n _getters.getProjects.find((p: any) => p.id === id),\n /** Returns team project for given id */\n getTeamProjectById: (state) => (id: string) => state.teamProjects.find((p: any) => p.id === id),\n /** Returns all project from user's team. */\n getTeamProjects: (state): Project[] => state.teamProjects || [],\n getTeamSortedProjects: (state, _getters): any[] => {\n return sortProjects(_getters.getTeamProjects, _getters.getProjectOrder);\n },\n socketDeletedProjects: (state): string[] => state.socketDeletedProjects,\n /** Returns order of projects. */\n getProjectOrder: (state): string[] => state.projectOrder ?? [],\n /** Returns project based on passed project id */\n getProjectById: (state, _getters) => (id: string) => _getters.getTeamProjectById(id) || {},\n /** Returns current comments. */\n getComments: (state): any[] => state.comments,\n /** Returns cards comments and activities */\n getCardCommentsAndActivities: (state, globalGetters) => (id: string) => {\n const activities = state.cardsCommentsAndActivities[id];\n if (activities) {\n return globalGetters.getCommentActivityOrderOfDisplayedCard(id) === 'newest'\n ? [...activities].sort((a: any, b: any) => b.time_created - a.time_created)\n : [...activities].sort((a: any, b: any) => a.time_created - b.time_created);\n }\n return [];\n },\n /** Returns comments for page. */\n getPageComments: (state) => state.comments.sort((a, b) => a.time_created - b.time_created),\n /**\n * Returns comment object for passed comment id.\n * @param {string} id comment id to look for.\n */\n getCommentById: (state) => (id: string, cardId: string) => {\n if (cardId)\n return state.cardsCommentsAndActivities[cardId]?.find((c: any) => c.id === id) || {};\n else return state.comments.find((c: any) => c.id === id) || {};\n },\n /** Returns the id of the comment which is currently edited. */\n getCurrentEditCommentId: (state): string => state.currentEditCommentID,\n /** Returns the previous route object. */\n getPreviousRoute: (state): object => state.previousRoute,\n /** Returns the previous route name */\n getPreviousRouteName: (state): string => state.previousRoute.name || '',\n /** Returns the prevoious route path */\n getPreviousRoutePath: (state): string => state.previousRoute.path || '',\n /** Returns the flag which indicates if the previous route was root. */\n isPreviousRouteRoot: (state): boolean => {\n const path = state.previousRoute.path || '';\n return path === '' || path === '/';\n },\n /** Returns notification message for popup. */\n getPopUpMessage: (state): string => state.popUpMessage,\n /** Returns the flag which controls the display of popup for help section. */\n getHelpPopupIsOn: (state): boolean => state.helpPopupIsOn,\n /** NOT IN USE */\n getCommentListOrderBy: (state): string => state.commentListOrderBy,\n /** Returns the id of the adjecent project (prioritizes previous one) of the project passed as param */\n getAdjacentProjectId:\n (state, getters) =>\n (projectId: string = state.currentProjectId) => {\n const order = getters.getProjectOrder;\n\n // last project in the list -> navigate to a fallback route (e.g. manage spaces)\n if (order.length === 1) return '';\n\n const index = order.indexOf(projectId);\n // does not exist in project order\n if (index === -1) return '';\n\n const previousProjectIndex = index === 0 ? index + 1 : index - 1;\n return order[previousProjectIndex];\n },\n /** Returns the id of the currently selected project. */\n getCurrentProjectId: (state): string => state.currentProjectId,\n /** Returns current project object */\n getCurrentProject: (state, _getters) => _getters.getProject(state.currentProjectId) ?? {},\n /** Returns the project object for given project id from teamProject or trashProjects. */\n getProject:\n (state, _getters) =>\n (projectId: string = state.currentProjectId) => {\n return _getters.getTeamProjectById(projectId) ?? _getters.getTrashProjectById(projectId);\n },\n /** Returns a title of the current project */\n getCurrentProjectTitle: (state, _getters): string => _getters.getCurrentProject.title || '',\n /** Returns the description of the current project. */\n getCurrentProjectDescription: (state, _getters): string =>\n _getters.getCurrentProject.description || '',\n /** Returns the project name on the form for adding project. */\n getProjectFormName: (state): string => state.projectFormName,\n /** Returns the project description on the form for adding new project. */\n getProjectFormDescription: (state): string => state.projectFormDescription,\n /** Returns a flag controling the display of page comments list. */\n getCommentsAreActive: (state): boolean => state.commentsAreActive,\n /** Returns a flag to determin where does a comment belong page or card. */\n getCommentsSection: (state) => state.commentsSection,\n /** Returns environment specific endpoints */\n getRoutes: (state) => {\n if (process.env.VUE_APP_ENV) {\n return state.routes[process.env.VUE_APP_ENV];\n }\n return state.routes.dev;\n },\n /** Returns current tab name (Pages or Boards) */\n getCurrentTabName: (state) => state.currentTabName,\n /** Returns members which are in the project. */\n getCurrentMembers: (state) => state.members,\n /** Get member by id */\n getMemberById: (state) => (id: any) => state.teamMembers[id] || state.inactiveMembers[id] || {},\n /** Returns a flag to show or hide search popup. */\n showSearchModal: (state): boolean => state.showSearchModal,\n /** Returns a flag to show or hide Ask AI Notes popup. */\n showAskAiNotesModal: (state): boolean => state.showAskAiNotesModal,\n /** Returns value to show search result on search popup. */\n searchResults: (state) => state.searchResults,\n /** Returns value to show search result in child search dropdown. */\n childSearchResults: (state) => state.childSearchResults,\n /** Returns value of last search */\n getLastSearchQuery: (state) => state.lastSearchQuery,\n /** Returns value of last search for Ask AI Notes */\n getLastAskAiNotesSearchQuery: (state) => state.lastAskAiNotesSearchQuery,\n /** Returns team slug for logged user's team */\n getTeamSlug: (state, globalGetters) => {\n const currentTeam = (state.user.teams || []).find((t: any) => t.id === globalGetters.getTeamID);\n return currentTeam?.sub_domain || localStorage.getItem('teamSubDomain') || '';\n },\n /** Returns notification message to be displayed */\n getNotificationMessage: (state) => state.notificationMessage,\n /** Returns notification type to be displayed */\n getNotificationType: (state) => state.notificationType,\n /** Returns array of team sub domains */\n getTeamSubDomains: (state) => state.loginDetails.teamSubDomains,\n /** Returns dark mode flag */\n darkMode: (state) => state.darkMode,\n /** Returns name of setted background for boardView */\n getBoardsBackground: (state) => state.boardsBackground,\n /** Returns the flag that indicates is sidebar expanded. */\n sidebarExpanded: (state): boolean => state.sidebarExpanded,\n /** Returns value that indicates is popup for adding new member opened */\n getAddMemberPopupIsOn: (state): boolean => state.addMemberPopupIsOn,\n /** Returns id that indicates which dropdown for adding members is active */\n getDisplayMembersDropdownId: (state) => state.displayMembersDropdownId,\n /** Returns object that indicates in which item to add members(board, page, card, project) */\n getAddMembersTarget: (state): object => state.addMembersTarget,\n\n getDisplayEditLinkPopup: (state) => state.displayEditLinkPopup,\n getDisplayEditorTooltip: (state) => state.displayEditorTooltip,\n /** Returns value to show or hide popup for edit user profile. */\n displayInfoSidebar: (state) => state.displayInfoSidebar,\n\n getTeamMembers: (state) => state.teamMembers,\n\n getInactiveTeamMembers: (state) => state.inactiveMembers,\n\n getDefaultTabName: (state) => {\n const currentProjecId = state.currentProjectId;\n const currentProjectPath = `${constants.projectSlug}-${currentProjecId}`;\n const currentTabName = state.currentTabName || 'boards';\n const { teamSubDomain } = state.loginDetails;\n if (!currentProjecId) {\n return `/${teamSubDomain}/${constants.manageSpacesRouteName}`;\n }\n return `/${teamSubDomain}/${currentProjectPath}/${currentTabName}`;\n },\n getRedirectRouteAfterLogin: (state) => state.redirectRouteAfterLogin,\n /** Returns notification count. */\n notificationCount: (state) => state.notificationCount,\n getNotificationAlerts: (state) => state.notificationAlerts,\n /** Returns team member notifications. */\n getTeamMemberNotifications: (state) => state.teamMemberNotifications,\n getPublicViews: (state) => state.publicViews,\n getPrivateViews: (state) => state.privateViews,\n getSelectedViewType: (state) => state.selectedViewType,\n getViewResults: (state) => state.viewPreview,\n getViewResultsFromList: (state) => (viewId: string | number) =>\n state.viewResultsList[viewId] || {},\n getListOfViewResults: (state) => state.viewResultsList,\n getSelectedView: (state) => state.selectedView,\n getViewFilters: (state) => state.viewFilters,\n getViewPills: (state) => state.viewPills,\n getViewEditMode: (state) => state.viewEditMode,\n getBoardsFilters: (state) => state.boardsFilters,\n getEmojiPickerDisplayed: (state) => state.emojiPickerDisplayed,\n /** Returns ui toast notifications array */\n getUiNotifications: (state) => state.uiNotifications,\n getFavouritesOpened: (state) => state.favouritesOpened,\n getOpenedFavouriteItem: (state) => state.openedFavouriteItem,\n isFavourite: (state) => (id: string, type: string) => {\n return state.favourites.some(\n (fav) =>\n (fav?.resource_id === id && fav?.resource_type === type) ||\n fav?.children?.some(\n (child: any) => child?.resource_id === id && child?.resource_type === type\n )\n );\n },\n getMembersSearchInput: (state) => state.membersSearchInput,\n getHeaderMemberDropdownPosition: (state): any => state.headerMemberDropdownPosition,\n activeComment: (state) => state.activeComment,\n getCurrentRoute: (state) => state.currentRoute,\n getSocketConnected: (state) => state.socketConnected,\n getDisplayVideoLinkPopup: (state) => state.displayVideoLinkPopup,\n getIntegrationInstallations: (state) => (integration: string) =>\n state.installations[integration] || [],\n getImportProgressSteps: (state) => state.importProgressSteps,\n getRouteBeforeSettings: (state) => state.routeBeforeSettings,\n getImportProgressCurrentStep: (state) => state.importProgressCurrentStep,\n getSettingsCurrentProjectId: (state): string => state.settingsCurrentProjectId,\n getSettingsCurrentBoardId: (state): string => state.settingsCurrentBoardId,\n getIntegrationSettings: (state) => (integration: string) =>\n state.integrationSettings[integration] || [],\n getProjectExpanded: (state) => (id: number) => state.projectSidebarExpanded[id] || false,\n getProjectsExpanded: (state) => state.projectsExpanded,\n getFavouritesExpanded: (state) => state.favouritesExpanded,\n draggingEntityProjectFromId: (state) => state.draggingEntityProjectFromId,\n draggingSidebarItem: (state) => state.draggingSidebarItem,\n getSelectedProject: (state, _getters) =>\n _getters.getTeamProjectById(state.selectedProjectId) || {},\n getSelectedProjectTitle: (state, _getters): string => _getters.getSelectedProject.title || '',\n getSelectedProjectDescription: (state, _getters): string =>\n _getters.getSelectedProject.description || '',\n getSelectedProjectId: (state): string => state.selectedProjectId,\n\n getPendingInvites: (state) => state.pendingInvites,\n getCurrentRole: (state, globalGetters) => {\n const currentTeam = state.teams[globalGetters.getTeamID];\n return currentTeam?.role || constants.roles.member;\n },\n getDoubleCheckPopup: (state) => state.doubleCheckPopup,\n getConfirmationModal: (state) => state.confirmationModal,\n getColorsPopup: (state) => state.colorsPopup,\n getCommentsOrder: (state) => state.commentsOrder,\n getQuickCardIsOn: (state) => state.quickCard,\n quickCardBoardId: (state) => state.quickCardBoardId,\n getQuickPage: (state) => state.quickPage,\n getNoteInQuickPage: (state) => state.noteInQuickPage,\n getQuickNote: (state) => state.quickNote,\n getCardCommentActivityFilter: (state) => state.cardCommentActivityFilter,\n getCommentsInProgressPatch: (state) => state.commentsInProgressPatch,\n getCommentsInProgressDelete: (state) => state.commentsInProgressDelete,\n getOnline: (state) => state.online,\n getLoadedFiles: (state) => state.loadedFiles,\n getProjectPreviewLastScrollPos: (state) => (projectId: string) =>\n state.projectPreviewLastScrollPos[projectId] || 0,\n getFavouriteResource: (state) => (index: number) => state.favourites[index] || {},\n getFavourites: (state) => state.favourites || [],\n getFavouritesFolderExpanded: (state) => (id: string) =>\n state.favouritesFolderExpanded[id] || false,\n newFolderInput: (state) => state.newFolderInput,\n getImportHistory: (state) => state.importHistory,\n favouriteFolderForRename: (state) => state.favouriteFolderForRename,\n favouriteFolderTitle: (state) => state.favouriteFolderTitle,\n showPeekSidebar: (state) => state.showPeekSidebar,\n getTheme: (state) => state.theme,\n getElectronBrowseHistory: (state) => state.electronBrowseHistory,\n getElectronBrowseHistoryIndex: (state) => state.electronBrowseHistoryIndex,\n getElectronRecentlyViewed: (state, getters) => {\n return state.electronRecentlyViewed.map((item: any) => ({\n ...item,\n label: getters.resourceTitle(item.type, item.id) || item.label,\n }));\n },\n getThemePreference: (state) => state.themePreference || 'matchSystem',\n getInviteeRole: (state) => state.inviteeRole,\n getInviteesProjectIds: (state) => state.inviteesProjectIds,\n getRedirectProjectId: (state) => state.redirectProjectId,\n getCurrentInboxResource: (state) => state.currentInboxResource,\n inboxFilters: (state) => state.inboxFilter,\n getInboxListWidth: (state) => state.inboxListWidth,\n inboxListExpanded: (state) => state.inboxListExpanded,\n getShowOnboarding: (state) => state.showOnboarding,\n getOpenInDesktopApp: (state) => state.openInDesktopApp,\n getCardIdForLocalCardId: (state) => (localId: string) => state.localCardIds[localId] ?? '',\n getLocalCardIdForId: (state) => (id: string) => {\n const localId = Object.keys(state.localCardIds || []).find(\n (key) => state.localCardIds[key] === id\n );\n return localId ?? '';\n },\n getShowRedirectedToAppOverlay: (state) => state.showRedirectedToAppOverlay,\n getMembersDropdownInvitees: (state) => state.membersDropdownInvitees,\n editorForCardLink: (state) => state.editorForCardLink,\n getMyWorkSelectedTabId: (state) => (userId: string) =>\n state.myWorkSelectedTabId[userId] || MyWorkTabId.Assigned,\n getMyWorkUserId: (state) => state.myWorkUserId,\n getDeletePopupId: (state) => state.deletePopupId,\n getItemNotFound: (state) => state.itemNotFound,\n getTrashProjects: (state) => state.trashProjects || [],\n getTrashProjectById: (state) => (id: string) => state.trashProjects.find((p: any) => p.id === id),\n getBoardsColumnLayout: (state, _getters) => (key: string) =>\n state.boardsColumnLayout[`${_getters.getTeamSlug}-${key}`] || 'list',\n getPagesColumnLayout: (state, _getters) => (key: string) =>\n state.pagesColumnLayout[`${_getters.getTeamSlug}-${key}`] || 'list',\n getCurrentProjectBoardColumnLayout: (state, _getters) =>\n state.boardsColumnLayout[`${_getters.getTeamSlug}-${state.currentProjectId}`] || 'list',\n getCurrentProjectPageColumnLayout: (state, _getters) =>\n state.pagesColumnLayout[`${_getters.getTeamSlug}-${state.currentProjectId}`] || 'grid',\n getPressedEscCancelDragging: (state) => state.pressedEscCancelDragging,\n getEstimateSystemForProject: (state, _getters) => (projectId: string) =>\n _getters.getProjectById(projectId)?.estimate_system || '',\n getCurrentViewTotalCount: (state) => state.currentViewTotalCount,\n sidebarHover: (state) => state.sidebarHovered,\n getSidebarDragging: (state) => state.sidebarDragging,\n getTeamFeatureEnabled: (state) => (featureId: string) => {\n return !!state.teamFeatures.find((feature: any) => feature.id === featureId)?.enabled;\n },\n getTeamFeatureAvailable: (state) => (featureId: string) => {\n return state.teamFeatures.some((feature: any) => {\n return feature.id === featureId;\n });\n },\n getTeamFeature: (state) => (featureId: string) => {\n return state.teamFeatures.find((feature: any) => feature.id === featureId) || {};\n },\n getTeamLimit: (state) => (limitId: string) => {\n return state.teamLimits.find((limit: any) => limit.id === limitId) || {};\n },\n getUserFeatureEnabled: (state, _getters, _rootState, rootGetters) => (featureId: string) => {\n return state.teams[rootGetters.getTeamID]?.flags?.includes?.(featureId);\n },\n getSubscriptionPlan: (state, rootGetters) => {\n return state.teams[rootGetters.getTeamID]?.subscription_plan_id;\n },\n getShowUpdateEmailPopup: (state) => state.showUpdateEmailPopup,\n showHideReplies: (state) => state.showHideReplies,\n editorOpen: (state) => state.editorOpen,\n getPageIconPickerDisplayed: (state) => state.pageIconPickerDisplayed,\n getHideEmptyGroups:\n (state, getters) =>\n (boardId = getters.currentBoardId) =>\n state.hideEmptyGroups.indexOf(boardId) !== -1 || false,\n getShowWeekends: (state, getters) =>\n state.showWeekends.indexOf(getters.currentBoardId) !== -1 || false,\n getReconnectionCallbacks: (state) => state.reconnectionCallbacks,\n getPreviousNextButtonClicked: (state) => state.previousNextButtonClicked,\n resolveInlineComment: (state) => state.resolveInlineComment,\n getUserTimezoneId: (state) => state.user.timezone_id,\n getUserLocale: (state) => state.user.locale,\n getIsAutomaticTimezone: (state) => state.user.autodetect_timezone_id,\n getNotificationDigest: (state) => state.notificationDigest || {},\n getNotificationDigestSettings: (state) => state.notificationDigestSettings || {},\n getCachedComponents: (state) => state.cachedComponents,\n getBoardEmbedPopup: (state) => state.boardEmbedPopup,\n getIsSettingsOpen: (state) => state.isSettingsOpen,\n getShowUpgradePlanPopup: (state) => state.showUpgradePlanPopup,\n getMyWorkSortBy: (state) => state.myWorkSortBy,\n getModal: (state) => state.modal || {},\n getIsModalDisplayed: (state) => Object.keys(state.modal || {}).length > 0,\n resourceTitle:\n (state, globalGetters) => (resourceType: ResourceType | string, resourceId: string) => {\n // based on resource type, get the title of the resource\n switch (resourceType) {\n case ResourceType.Page:\n return globalGetters.getPages[resourceId]?.title || '';\n case ResourceType.Card:\n case constants.routeNames.boardCard:\n return globalGetters.getCardById(resourceId).title || '';\n case ResourceType.Board:\n return globalGetters.getBoardById(resourceId).title || '';\n case ResourceType.Project:\n case ResourceType.Space:\n case constants.routeNames.space:\n return globalGetters.getProjectById(resourceId).title || '';\n case ResourceType.View:\n return globalGetters.getViewById(resourceId).title || '';\n default:\n return '';\n }\n },\n getWorkspaceOwner: (state) => {\n const members = state.teamMembers;\n const teamOwner = Object.values(members as Record).find(\n (member) => member.role === constants.roles.owner\n );\n\n return teamOwner ?? {};\n },\n getRecentWorkspaces: (state) => state.recentWorkspaces,\n getOpenWorkspaceThroughQuickSwitcher: (state) => state.openWorkspaceThroughQuickSwitcher,\n getSidebarSprintsExpanded: (state) => state.sidebarSprintsExpanded,\n getAgents: (state) => state.agents,\n getCurrentAgentId: (state) => state.currentAgentId,\n getAgentPromptIterations: (state) => (agentId: string) => {\n return state.agentPromptIterations[agentId] || [];\n },\n getNotes: (state) => state.notes || {},\n getNoteCreating: (state) => state.noteCreating,\n getAiNoteGenerating: (state) => state.aiNoteGenerating || '',\n getAiNoteGeneratingTitle: (state) => state.aiNoteGeneratingTitle || '',\n getNoteTemplates: (state) => state.noteTemplates || [],\n getTranscriptionState: (state) => state.transcriptionState,\n getResourceLoaded: (state) => state.resourceLoaded,\n getNoteTemplateSections: (state) => state.noteTemplateSections || [],\n getNoteTemplateDraft: (state) => state.noteTemplateDraft,\n getUpcomingGoogleCalendarEvents: (state) => state.upcomingGoogleCalendarEvents || [],\n getTeamSubscription: (state): Subscription => state.teamSubscription,\n getAvailablePlans: (state): Plan[] => state.availablePlans,\n getSubGroupByEnabled:\n (state, getters) =>\n (boardId = getters.currentBoardId) =>\n state.subGroupByEnabled[boardId] || false,\n getWorkspaceSectionExpanded: (state): boolean => state.workspaceSectionExpanded,\n};\n\nexport default getters;\n","import { BoardState } from '@/types';\nimport { nanoid } from 'nanoid';\nimport { browserStorageGetItem } from '@/utilities/browser-storage.util';\nimport {\n localBoardLayoutKey,\n cardsSubGroupByOrderKey,\n boardSubGroupByKey,\n} from '@/utilities/localDrafts';\nimport { BoardLayout } from '@superthread-com/api';\nimport constants from '@/utilities/constants';\nimport isMobile from '@/utilities/isMobile';\n\nconst getDefaultBoardState = (): BoardState => ({\n lists: {},\n boardsListsIds: {},\n projectBoards: {},\n flatBoards: {},\n currentBoardId: '',\n newBoardProjectId: '',\n draftCard: {},\n listDraftCardCreateView: null,\n listsDraftCard: {},\n draggedEntity: {},\n dropTargetId: '',\n expandedBoardIds: {},\n loadingBoards: false,\n boardViewNoDestroy: false,\n draftListInputVisibleOnOpen: false,\n boardListView: 'list',\n currentTagForEdit: {},\n cardSidebarExpanded: {},\n showImageUploadPopup: false,\n currentCardIdActionEdit: '',\n currentListIdActionEdit: '',\n cardsLayout:\n browserStorageGetItem(localBoardLayoutKey(browserStorageGetItem('currentTeamId') || '')) || {},\n cardsLayoutOptions: [\n {\n value: BoardLayout.Board,\n label: 'cardsLayoutBoard',\n icon: 'board',\n default: true,\n },\n {\n value: BoardLayout.List,\n label: 'cardsLayoutList',\n icon: 'list',\n },\n {\n value: BoardLayout.Timeline,\n label: 'cardsLayoutTimeline',\n icon: 'timeline',\n },\n {\n value: BoardLayout.Calendar,\n label: 'cardsLayoutCalendar',\n icon: 'calendar',\n },\n ],\n removedListMeta: { position: '', boardId: '', listId: '' },\n removedCardMeta: {\n position: '',\n boardId: '',\n cardId: '',\n listId: '',\n },\n attachments: {},\n cardFailedAttachments: [],\n cardAutoFocus: false,\n previewPopoverKey: false,\n attachmentTargetCardId: -1,\n cardAttachmentsLoaded: false,\n archivedBoards: [],\n archivedLists: [],\n archivedCards: [],\n newBoardTitle: '',\n currentCardIdMemberDropdown: '',\n currentCardMembersDropdown: {},\n currentCardIdForPopup: '',\n projectPreviewBoards: {},\n displayProjectPreviewBoards: false,\n previewProject: {},\n cardAttachmentUploadingId: -1,\n showDuplicateCardPopup: '',\n showSetParentCardPopup: '',\n checklistTitle: '',\n draggingEnd: false,\n cards: {},\n listCards: {},\n currentCardId: '',\n displayedCards: [],\n currentCardLayout: isMobile()\n ? constants.modal\n : (localStorage.getItem('cardLayout') ?? constants.modal),\n linkedCardType: '',\n collapsedChecklistIds: [],\n hiddenItemsChecklistIds: [],\n boardsFilters: localStorage.getItem(`boardsFilters-${localStorage.getItem('currentTeamId')}`)\n ? JSON.parse(\n localStorage.getItem(`boardsFilters-${localStorage.getItem('currentTeamId')}`) ?? ''\n )\n : {},\n boardsPills: {},\n tags: {},\n projectTags: {},\n boardViewMouseSuspended: false,\n workspaceTags: {},\n cardCommentAttachmentUploadPopup: {},\n cardDescriptionAttachmentUploadPopup: {},\n lastOpenedBoardId: '',\n lastHoveredListId: '',\n lastHoveredCardId: '',\n lastHoveredDisplayedCardId: '',\n selectedCardId: '',\n checklistInputActive: {},\n checklistItemInputActive: {},\n reportInfoData: {},\n timelineZoom: 'quarter',\n timelineSidebarWidth: 350,\n cardTemplates: {},\n cardTemplateDraft: {\n title: '',\n icon: {},\n project_ids: [],\n card_title: '',\n card_content: '',\n card_board_id: '',\n card_list_id: '',\n card_members: [],\n card_tags: [],\n card_priority: 0,\n card_child_cards: [],\n },\n cardsSchema: 0,\n quickCardFilesToUpdate: [],\n cardIdForMove: '',\n quickCardObject: {\n localId: nanoid(6),\n title: '',\n content: '',\n tags: [],\n attachments: [],\n members: [],\n parentCard: {},\n projectId: '',\n priority: 0,\n board: {},\n listId: '',\n hints: [],\n childCards: [],\n },\n quickChildCardFilesToUpdate: [],\n quickChildCardObject: {\n localId: nanoid(6),\n title: '',\n content: '',\n tags: [],\n attachments: [],\n members: [],\n parentCard: {},\n projectId: '',\n priority: 0,\n board: {},\n listId: '',\n hints: [],\n childCards: [],\n },\n childCardCreation: false,\n cardInEpicCreation: '',\n cardInNoteCreation: '',\n boardSortByOptions: [\n {\n value: 'manual',\n label: 'manualOrder',\n icon: 'cursor',\n default: true,\n },\n {\n value: 'time_created',\n label: 'lastCreated',\n icon: 'calendar-created',\n viewDefault: true,\n inEpicBoardDefault: true,\n },\n {\n value: 'due_date',\n label: 'earliestDueDate',\n icon: 'calendar',\n },\n {\n value: 'time_updated',\n label: 'lastUpdated',\n icon: 'edit-outline',\n },\n {\n value: 'priority',\n label: 'highestPriority',\n icon: 'chevrons-up',\n },\n {\n value: 'estimate',\n label: 'largestEstimate',\n icon: 'clock',\n },\n {\n value: 'status',\n label: 'status',\n icon: 'play-circle',\n },\n ],\n boardSortBy: localStorage.getItem(`boardSortBy-${localStorage.getItem('currentTeamId')}`)\n ? JSON.parse(localStorage.getItem(`boardSortBy-${localStorage.getItem('currentTeamId')}`) ?? '')\n : {},\n priorityDropdown: false,\n showCardPriorityPopup: false,\n\n boardGroupByOptions: [\n {\n value: 'status',\n label: 'status',\n icon: 'play-circle',\n default: true,\n },\n {\n value: 'statusType',\n label: 'statusType',\n icon: 'play-circle',\n inEpicBoardDefault: true,\n },\n {\n value: 'assignee',\n label: 'assignee',\n icon: 'user',\n },\n {\n value: 'tag',\n label: 'tag',\n icon: 'tag',\n },\n {\n value: 'priority',\n label: 'priority',\n icon: 'chevrons-up',\n },\n {\n value: 'space',\n label: 'space',\n icon: 'folder',\n },\n {\n value: 'none',\n label: 'none',\n icon: 'x',\n },\n {\n value: 'epic',\n label: 'epic',\n icon: 'map',\n },\n ],\n boardGroupBy: localStorage.getItem(`boardGroupBy-${localStorage.getItem('currentTeamId')}`)\n ? JSON.parse(\n localStorage.getItem(`boardGroupBy-${localStorage.getItem('currentTeamId')}`) ?? ''\n )\n : {},\n boardListGroupByOrder: localStorage.getItem(\n `groupByOrder-${localStorage.getItem('currentTeamId')}`\n )\n ? JSON.parse(\n localStorage.getItem(`groupByOrder-${localStorage.getItem('currentTeamId')}`) ?? ''\n )\n : {},\n listCardsGroupByOrder: localStorage.getItem(\n `listCardsGroupByOrder-${localStorage.getItem('currentTeamId')}`\n )\n ? JSON.parse(\n localStorage.getItem(`listCardsGroupByOrder-${localStorage.getItem('currentTeamId')}`) ?? ''\n )\n : {},\n cardWidth: 600,\n showSuggestionsPlaceholder: false,\n qcShowSuggestionsPlaceholder: false,\n currentGroupByListIdCardActionEdit: '',\n currentCardUniqueRowId: '',\n newBoardObject: {},\n sprintSettings: {},\n spaceSprints: {},\n sprintLists: {},\n sprintForEditId: {},\n epicSelectedTabId: {},\n cardsFuse: {},\n cardsSubGroupByOrder:\n browserStorageGetItem(cardsSubGroupByOrderKey(browserStorageGetItem('currentTeamId') || '')) ||\n {},\n boardSubGroupBy:\n browserStorageGetItem(boardSubGroupByKey(browserStorageGetItem('currentTeamId') || '')) || {},\n listsExpanded: {},\n});\n\nexport default getDefaultBoardState;\n","/**\n * Boards module getters\n * @packageDocumentation\n * @category Store\n */\nimport { GetterTree } from 'vuex';\nimport { BoardState as State, Board, CardsLayoutOption } from '@/types';\nimport { SuggestionType } from '@/types/suggestions';\nimport { CardHint, Card } from '@superthread-com/api';\nimport { IEpic } from '@/types/epics';\nimport { ResourceType } from '@/types/resources';\nimport { DisplayedCard } from '@/types/displayedCard';\nimport constants from '@/utilities/constants';\nimport { EpicTabId } from '@/types/tabs';\n\nexport default {\n /** Returns currently opened board. */\n currentBoard: (state, getters): Board | {} => state.flatBoards[getters.currentBoardId] || {},\n /** Returns currently opened board id */\n currentBoardId: (state): string => state.currentBoardId,\n /** Returns the list of added boards. */\n lists: (state) => state.lists,\n /** Returns the list of board ids for specific projectId. */\n getProjectBoards: (state) => (projectId: string | number) => state.projectBoards[projectId] || [],\n\n getFlatBoards: (state) => state.flatBoards,\n\n boardsListsIds: (state) => state.boardsListsIds,\n\n /** Returns the id of project in which board is being added. */\n getNewBoardProjectId: (state): string | undefined => state.newBoardProjectId,\n getCardById:\n (state): any =>\n (cardId: string) =>\n state.cards[cardId] ?? {},\n getBoardById:\n (state): any =>\n (boardId: string = state.currentBoardId) =>\n state.flatBoards[boardId] ?? {},\n getViewById:\n (state): any =>\n (viewId: string = state.selectedView) =>\n [...(state.privateViews || []), ...(state.publicviews || [])].find((v) => v.id == viewId) ??\n {},\n\n /** Returns id of the list in which card is creating. */\n getListDraftCardCreateView: (state): string | null | undefined => state.listDraftCardCreateView,\n /** Returns a data of dragged entity. */\n draggedEntity: (state): any => state.draggedEntity,\n /** Returns id of element in in which dragging was finished. */\n dropTargetId: (state): string | undefined => state.dropTargetId,\n /** Returns the board that is expanded in the list of boards. */\n boardExpanded:\n (state): any =>\n (boardId: string) =>\n state.expandedBoardIds[boardId],\n /** Returns the flag that indicates whether boards are loading. */\n loadingBoards: (state): boolean => state.loadingBoards,\n /** Returns the flag that indicates when the board's data is needed to be removed. */\n boardViewNoDestroy: (state): boolean => state.boardViewNoDestroy,\n /** Returns the flag for opening list's input when there aren't any list on the board. */\n draftListInputVisibleOnOpen: (state): boolean => state.draftListInputVisibleOnOpen,\n /** Returns current board list view type (list or grid) */\n getBoardListView: (state): string | undefined => state.boardListView,\n /** Returns object of the tag that needs to be edited */\n getCurrentTagForEdit: (state): any => state.currentTagForEdit,\n /** Returns the flag that indicates is popup for uplading image opened */\n getShowImageUploadPopup: (state): boolean => state.showImageUploadPopup,\n /** Returns id of card which have opened dropdown for edit card. */\n getCurrentCardIdActionEdit: (state): string => state.currentCardIdActionEdit,\n /** Returns id of list which have opened dropdown for edit list. */\n getCurrentListIdActionEdit: (state): string | null => state.currentListIdActionEdit,\n /** Returns current board view type (list or grid) */\n cardsLayout:\n (state, getters) =>\n (boardId: string = getters.currentBoardId) => {\n let layout = state.cardsLayout[boardId] || state.flatBoards[boardId]?.layout || '';\n if (!layout) {\n const { value } = getters.cardsLayoutOptions.find(\n (option: CardsLayoutOption) => option.default\n );\n layout = value;\n }\n return layout;\n },\n getCardsLayoutForBoard:\n (state): any =>\n (boardId: string) =>\n state.cardsLayout[boardId] || state.flatBoards[boardId]?.layout || 'board',\n getLocalBoardLayoutForBoard: (state) => (boardId: string) => state.cardsLayout[boardId],\n cardsLayoutOptions: (state): CardsLayoutOption[] => state.cardsLayoutOptions,\n getCurrentCardActionEdit: (state): any => state.cards[state.currentCardIdActionEdit] || {},\n currentCardForPopup: (state): any => state.cards[state.currentCardIdForPopup] || {},\n /** Returns object conaining the meta of removed board list */\n removedListMeta: (state) => state.removedListMeta,\n /** Returns object conaining the meta of removed card */\n removedCardMeta: (state) => state.removedCardMeta,\n getAttachments: (state) => (id: number, prefix: string) =>\n state.attachments[`${prefix}-${id}`] || [],\n /** Returns whether any of attachments is still uploading */\n getAreAttachmentsUploading: (state) => {\n const { attachments } = state;\n return Object.keys(attachments).some((key) =>\n attachments[key].some((a: any) => a.uploadProgress)\n );\n },\n getCardAutoFocus: (state): boolean => state.cardAutoFocus,\n getPreviewPopoverKey: (state): boolean => state.previewPopoverKey,\n getAttachmentTargetCardId: (state) => state.attachmentTargetCardId,\n getCardAttachmentsLoaded: (state): boolean => state.cardAttachmentsLoaded,\n archivedBoards: (state) => state.archivedBoards,\n archivedLists: (state) => state.archivedLists,\n archivedCards: (state) => state.archivedCards,\n getNewBoardTitle: (state) => state.newBoardTitle,\n getCurrentCardIdMemberDropdown: (state): string => state.currentCardIdMemberDropdown,\n currentCardIdForPopup: (state): string => state.currentCardIdForPopup,\n getCurrentCardMembersDropdown: (state): any => state.currentCardMembersDropdown,\n previewProject: (state) => state.previewProject,\n getLinkedCardType: (state): string => state.linkedCardType,\n getReportInfoData: (state) => state.reportInfoData,\n projectPreviewBoards: (state) => state.projectPreviewBoards,\n displayProjectPreviewBoards: (state) => state.displayProjectPreviewBoards,\n getCardAttachmentUploadingId: (state) => state.cardAttachmentUploadingId,\n getTimeperoidOptions: (state) => state.timeperiodOptions,\n getShowDuplicateCardPopup: (state): string => state.showDuplicateCardPopup,\n getShowSetParentCardPopup: (state): string => state.showSetParentCardPopup,\n /** Returns the flag that indicates is card dragging just finished */\n getDraggingEnd: (state): boolean => state.draggingEnd,\n getListCards: (state) => state.listCards,\n getCards: (state) => state.cards,\n cardsFuse: (state) => state.cardsFuse,\n /** Filters epics out of cards on state. */\n getEpics: (state) => {\n const epics: { [key: string]: IEpic } = {};\n for (const c of Object.values(state.cards as Card[] | IEpic[])) {\n if (c.type === ResourceType.Epic) {\n epics[c.id] = c;\n }\n }\n return epics;\n },\n getDisplayedCards: (state) => state.displayedCards,\n getIsCardDisplayed: (state) => (cardId: string) =>\n state.displayedCards.some((c) => c.id === cardId),\n getIsAnyCardDisplayed: (state) => state.displayedCards.length > 0,\n getLayoutOfDisplayedCard: (state) => (cardId: string) =>\n state.displayedCards.find((card: DisplayedCard) => card.id === cardId)?.layout ||\n state.currentCardLayout,\n getIsAnyCardDisplayedInLayout: (state) => (layout: string) =>\n state.displayedCards.some((card: DisplayedCard) => card.layout === layout),\n getCommentActivityFilterOfDisplayedCard: (state, globalGetters) => (cardId: string) =>\n state.displayedCards.find((card: DisplayedCard) => card.id === cardId)\n ?.comment_activity_filter || globalGetters.getCardCommentActivityFilter,\n getCommentActivityOrderOfDisplayedCard: (state, globalGetters) => (cardId: string) =>\n state.displayedCards.find((card: DisplayedCard) => card.id === cardId)\n ?.comment_activity_order || globalGetters.getCommentsOrder,\n getDisplayedCardListCards: (state) => (cardId: string) =>\n state.displayedCards.find((card: DisplayedCard) => card.id === cardId)?.list_cards || [],\n /** Returns the list of checklist ids that have collapsed state active */\n getCollapsedChecklistIds: (state) => state.collapsedChecklistIds,\n /** Returns the list of checklist ids that have checklist items hidden */\n getHiddenItemsChecklistIds: (state) => state.hiddenItemsChecklistIds,\n boardsFilters: (state) => state.boardsFilters,\n boardFilters: (state) => (boardId: number) => state.boardsFilters[boardId],\n boardsPills: (state) => (boardId: number) => state.boardsPills[boardId] || [],\n getTags: (state) => state.tags,\n /** Returns the list of tag ids for specific projectId. */\n getProjectTags: (state) => (projectId: string | number) => state.projectTags[projectId] || [],\n /** Returns the list of tag ids for specific teamId. */\n getWorkspaceTags: (state) => (teamId: string | number) => state.workspaceTags[teamId] || [],\n /** Returns the object of project tags. */\n projectTags: (state) => state.projectTags || [],\n getCardCommentAttachmentUploadPopup: (state): object => state.cardCommentAttachmentUploadPopup,\n getCardDescriptionAttachmentUploadPopup: (state): object =>\n state.cardDescriptionAttachmentUploadPopup,\n lastHoveredListId: (state) => state.lastHoveredListId,\n lastHoveredCardId: (state) => state.lastHoveredCardId,\n lastHoveredDisplayedCardId: (state) => state.lastHoveredDisplayedCardId,\n boardViewMouseSuspended: (state) => state.boardViewMouseSuspended,\n selectedCardId: (state) => state.selectedCardId,\n lastOpenedBoardId: (state): string => state.lastOpenedBoardId,\n /** Returns the flag for checking if checklist or checklist item input is active. */\n getChecklistInputActive: (state) => (checklistId: string) =>\n state.checklistInputActive[checklistId] || false,\n getChecklistsInputActive: (state) => state.checklistInputActive,\n getChecklistItemInputActive: (state) => (checklistItemId: string) =>\n state.checklistItemInputActive[checklistItemId] || false,\n getChecklistItemsInputActive: (state) => state.checklistItemInputActive,\n getTimelineZoom: (state) => state.timelineZoom,\n getTimelineSidebarWidth: (state) => state.timelineSidebarWidth,\n getCardWidth: (state) => state.cardWidth,\n cardsSchema: (state) => state.cardsSchema,\n getCardIdForMove: (state) => state.cardIdForMove,\n // Quick card\n getQuickCardFilesToUpdate: (state) => state.quickCardFilesToUpdate,\n getMembersToAddQuickCard: (state) => state.quickCardObject.members,\n getQuickCardProjectId: (state) => state.quickCardObject.projectId,\n getQuickCard: (state) => state.quickCardObject,\n // Quick child card embed\n getQuickChildCardFilesToUpdate: (state) => state.quickChildCardFilesToUpdate,\n getMembersToAddQuickChildCard: (state) => state.quickChildCardObject.members,\n getQuickChildCardProjectId: (state) => state.quickChildCardObject.projectId,\n getQuickChildCard: (state) => state.quickChildCardObject,\n getChildCardCreation: (state) => state.childCardCreation,\n getCardInEpicCreation: (state) => state.cardInEpicCreation,\n getCardInNoteCreation: (state) => state.cardInNoteCreation,\n getCardSliderActive: (state) => state.cardSliderActive,\n getBoardSortBy:\n (state, getters) =>\n (boardId = getters.currentBoardId): string => {\n let sortBy = `${state.boardSortBy[boardId] || ''}`;\n const isInEpicBoard = boardId.startsWith(constants.inEpicBoardIdPrefix);\n\n if (!sortBy) {\n const { value } = getters.boardSortByOptions.find((option: CardsLayoutOption) =>\n isInEpicBoard ? option.inEpicBoardDefault : option.default\n );\n sortBy = value;\n }\n\n return sortBy;\n },\n boardSortByOptions: (state): CardsLayoutOption[] => state.boardSortByOptions,\n getShowPriorityDropdown: (state): boolean => state.priorityDropdown,\n getShowCardPriorityPopup: (state): boolean => state.showCardPriorityPopup,\n getBoardGroupBy:\n (state, getters) =>\n (boardId = getters.currentBoardId): string => {\n let groupBy = `${state.boardGroupBy[boardId] || ''}`;\n const isInEpicBoard = boardId.startsWith(constants.inEpicBoardIdPrefix);\n\n if (!groupBy) {\n const { value } = getters.boardGroupByOptions.find((option: CardsLayoutOption) =>\n isInEpicBoard ? option.inEpicBoardDefault : option.default\n );\n groupBy = value;\n }\n\n return groupBy;\n },\n boardGroupByOptions: (state): CardsLayoutOption[] => state.boardGroupByOptions,\n getCardsByCurrentBoardId:\n (state, getters) =>\n (boardId = getters.currentBoardId) =>\n Object.values(state.cards).filter((c: any) => c.board_id === boardId) || [],\n /** Gets all the cards that are added to epic. */\n getCardsByEpicId: (state) => (epicId: string) => {\n const cards: Record = {};\n for (const key in state.cards) {\n if (state.cards[key].epic?.id === epicId) {\n cards[key] = state.cards[key];\n }\n }\n return cards;\n },\n getCardsByCurrentSprintId:\n (state, getters) =>\n (boardId = getters.currentBoardId) =>\n Object.values(state.cards).filter((c: any) => c.sprint_id === boardId) || [],\n boardsCardsIds: (state) => {\n const boardsCardsIds: Record = {};\n for (const [boardId, listIds] of Object.entries(state.boardsListsIds)) {\n const cards: string[] = [];\n for (const listId of listIds) {\n const listCards = state.listCards[listId];\n if (listCards) {\n cards.push(...listCards);\n }\n }\n boardsCardsIds[boardId] = cards;\n }\n return boardsCardsIds;\n },\n getBoardsCardsIdsByBoardId:\n (state, getters) =>\n (boardId: string = getters.currentBoardId): string[] => {\n return getters.boardsCardsIds[boardId] || [];\n },\n getBoardListGroupByOrder: (state) => (boardId: string) => state.boardListGroupByOrder[boardId],\n getListCardsGroupByOrder: (state) => (listId: string) => state.listCardsGroupByOrder[listId],\n getCurrentGroupByListIdCardActionEdit: (state): string =>\n state.currentGroupByListIdCardActionEdit,\n getCurrentCardUniqueRowId: (state): string => state.currentCardUniqueRowId,\n getCardTemplates: (state) => state.cardTemplates,\n getCardTemplateDraft: (state) => state.cardTemplateDraft,\n getCardTemplateChildCards: (state) => state.cardTemplateDraft.card_child_cards,\n getQCChildCards: (state) => state.quickCardObject.childCards,\n getSuggestions: (state) => (cardId: string) => state.cards[cardId]?.hints || [],\n getQCSuggestions: (state) => state.quickCardObject?.hints || [],\n getTagSuggestions: (state) => (cardId: string) =>\n state.cards[cardId]?.hints?.filter(({ type }: CardHint) => type === SuggestionType.tag) || [],\n getQCTagSuggestions: (state) =>\n state.quickCardObject?.hints?.filter(({ type }: CardHint) => type === SuggestionType.tag) || [],\n getDuplicateSuggestions: (state) => (cardId: string) =>\n state.cards[cardId]?.hints?.filter(({ type }: CardHint) => type === SuggestionType.relation) ||\n [],\n getQCDuplicateSuggestions: (state) =>\n state.quickCardObject?.hints?.filter(\n ({ type }: CardHint) => type === SuggestionType.relation\n ) || [],\n getShowSuggestionsPlaceholder: (state) => state.showSuggestionsPlaceholder,\n getQCShowSuggestionsPlaceholder: (state) => state.qcShowSuggestionsPlaceholder,\n getNewBoardObject: (state) => state.newBoardObject,\n getSprintSettings: (state) => (projectId: string) => state.sprintSettings[projectId] || {},\n getSpaceSprints: (state) => (projectId: string | number) => state.spaceSprints[projectId] || {},\n getSprints: (state) => state.spaceSprints,\n getSprintLists: (state) => (listId: string | number) => state.sprintLists[listId] || [],\n getSprintForEditId: (state) => state.sprintForEditId,\n getEpicSelectedTabId: (state) => (cardId: string) =>\n state.epicSelectedTabId[cardId] || EpicTabId.Details,\n\n getBoardSubGroupBy:\n (state, getters) =>\n (boardId = getters.currentBoardId): string => {\n let subGroupBy = `${state.boardSubGroupBy[boardId] || ''}`;\n const isInEpicBoard = boardId.startsWith(constants.inEpicBoardIdPrefix);\n\n if (!subGroupBy) {\n const option = getters.boardGroupByOptions.find((option: CardsLayoutOption) =>\n isInEpicBoard ? option.inEpicBoardDefault : option.default\n );\n const value = option ? option.value : 'status';\n subGroupBy = value;\n }\n\n return subGroupBy;\n },\n\n getSubGroupByListOrder: (state) => (key: string, subGroup: string) => {\n return Object.keys(state.cardsSubGroupByOrder[key]?.[subGroup] || {});\n },\n\n getSubGroupByListCards: (state) => (key: string, subGroup: string, listId: string) => {\n return state.cardsSubGroupByOrder[key]?.[subGroup]?.[listId]?.cardIds || [];\n },\n\n getSubGroupByBoardId: (state) => (boardId: string, groupBy: string, subGroupBy: string) => {\n return state.cardsSubGroupByOrder[boardId]?.[groupBy]?.[subGroupBy] || {};\n },\n\n getListExpanded: (state) => (boardId: string, listId: string) => {\n return state.listsExpanded[boardId]?.[listId] ?? true;\n },\n} as GetterTree;\n","import { decodeJwt } from 'jose';\n\nexport const decodeToken = (token) => {\n try {\n const decodedToken = decodeJwt(token);\n return decodedToken;\n } catch (error) {\n return null;\n }\n};\n\nexport const isExpired = (exp) => {\n const expirationDate = new Date(exp * 1000);\n const currentDate = new Date();\n return expirationDate < currentDate;\n};\n\nexport const isTokenExpired = (token) => {\n const decodedToken = decodeToken(token);\n if (!decodedToken) return true;\n return isExpired(decodedToken.exp);\n};\n","export const getQuickCardObjectName = (isModal: boolean) =>\n isModal ? 'quickCardObject' : 'quickChildCardObject';\n\nexport const getQuickCardFilesToUpdateName = (isModal: boolean) =>\n isModal ? 'quickCardFilesToUpdate' : 'quickChildCardFilesToUpdate';\n","export const getDefaultChildCardDraftObject = (isModal) => ({\n title: '',\n content: '',\n board_id: '',\n list_id: '',\n members: [],\n tags: [],\n priority: 0,\n});\n\nexport const convertChildCardDraftToChildCard = (childCardDraft) => {\n const { title, content, boardId, board_id, board, listId, list_id, members, tags, priority } =\n childCardDraft || {};\n const boardIdValue = board?.id || boardId || board_id;\n const listIdValue = listId || list_id;\n\n const childCard = {\n ...getDefaultChildCardDraftObject(),\n ...(title && { title }),\n ...(content && { content }),\n ...(boardIdValue && { board_id: boardIdValue }),\n ...(listIdValue && { list_id: listIdValue }),\n ...(members && { members: members.map((member) => ({ user_id: member.user_id })) }),\n ...(tags && { tags: [{ ids: tags.map((tag) => tag.id) }] }),\n ...(priority && { priority }),\n };\n\n return childCard;\n};\n","/**\n * Board module mutations\n * @packageDocumentation\n * @category Store\n */\nimport { MutationTree } from 'vuex';\nimport { BoardState as State } from '@/types';\nimport getDefaultBoardState from './getDefaultBoardState';\nimport { isTokenExpired } from '@/utilities/jwtUtilities';\nimport {\n getQuickCardObjectName,\n getQuickCardFilesToUpdateName,\n} from '@/utilities/getQuickCardObjectName';\nimport { convertChildCardDraftToChildCard } from '@/utilities/childCardDraft';\nimport { nanoid } from 'nanoid';\nimport { DisplayedCard } from '@/types/displayedCard';\nimport constants from '@/utilities/constants';\nimport { EpicTabId } from '@/types/tabs';\nimport { ResourceType } from '@/types/resources';\nimport { getSprintKey } from '@/utilities/sprintKeys';\nimport { groupByOption } from '@/types/groupByOption';\nimport { toRaw } from 'vue';\nimport Fuse from 'fuse.js';\nimport { browserStorageSetItem, browserStorageGetItem } from '@/utilities/browser-storage.util';\nimport {\n listsExpandedKey,\n cardsSubGroupByOrderKey,\n boardSubGroupByKey,\n} from '@/utilities/localDrafts';\n\nconst setCardsFuse = (state: State) => {\n state.cardsFuse = new Fuse(Object.values(state.cards), {\n keys: ['title', 'board_id'],\n threshold: 0.1,\n ignoreLocation: true,\n });\n};\n\nconst mutations: MutationTree = {\n setCurrentBoardId(state, boardId = '') {\n state.currentBoardId = boardId;\n if (boardId !== '') state.lastOpenedBoardId = boardId;\n },\n\n setBoardListsFlat(state, lists = []) {\n lists?.forEach((l: any) => {\n if (l) state.lists[l.id] = l;\n });\n },\n\n addBoardListId(state, { boardId, listId, position }) {\n if (!state.boardsListsIds[boardId]) {\n state.boardsListsIds[boardId] = [listId];\n return;\n }\n if (position != null) {\n state.boardsListsIds[boardId].splice(position, 0, listId);\n return;\n }\n state.boardsListsIds[boardId].push(listId);\n },\n\n replaceBoardListId(state, { boardId, localId, listId }) {\n const index = state.boardsListsIds[boardId].indexOf(localId);\n state.boardsListsIds[boardId].splice(index, 1, listId);\n },\n\n moveBoardListId(state, { boardId, listId, newIndex, oldIndex }) {\n if (state.boardsListsIds[boardId]) {\n state.boardsListsIds[boardId].splice(oldIndex, 1);\n state.boardsListsIds[boardId].splice(newIndex, 0, listId);\n }\n },\n\n removeBoardListId(state, { boardId, id }) {\n const index = state.boardsListsIds[boardId].indexOf(id);\n state.boardsListsIds[boardId].splice(index, 1);\n },\n\n removeBoardList(state, listId) {\n delete state.lists[listId];\n },\n\n removeMultipleBoardLists(state, listIds) {\n listIds.forEach((listId: any) => {\n delete state.lists[listId];\n });\n },\n\n addBoardInBoards(state, board) {\n if (state.projectBoards[board.project_id]) {\n state.projectBoards[board.project_id].push(board.id);\n }\n state.flatBoards[board.id] = board;\n },\n\n removeBoardFromProjectBoards(state, board) {\n const projectBoards = state.projectBoards || {};\n const boardArray = projectBoards[board.project_id] || [];\n const boardIndex = boardArray.indexOf(board.id);\n if (boardIndex > -1) {\n projectBoards[board.project_id].splice(boardIndex, 1);\n }\n state.projectBoards = projectBoards;\n },\n\n setBoardsListsIds(state, boards) {\n boards.forEach((b: any) => {\n state.boardsListsIds[b.id] = b.list_order || [];\n });\n },\n\n setSprintsListsIds(state, { sprintId, list, projectId }) {\n // set sprint lists ids with board list ids together\n state.boardsListsIds[getSprintKey(projectId, sprintId)] = list;\n },\n\n setReportInfoData(state, { boardId, report }) {\n state.reportInfoData[boardId] = report;\n },\n\n setNewBoardProjectId(state, name) {\n state.newBoardProjectId = name;\n },\n\n setListDraftCardCreateView(state, listId) {\n state.listDraftCardCreateView = listId;\n },\n\n setRemovedBoardListPosition(state, { position, boardId, listId }) {\n state.removedListMeta = { position, boardId, listId };\n },\n\n setRemovedCardPosition(state, { position, cardId, boardId, listId }) {\n state.removedCardMeta = {\n position,\n cardId,\n boardId,\n listId,\n };\n },\n\n setTimeperoidOptions(state, value) {\n state.timeperiodOptions = value;\n },\n\n setDraggedEntity(state, payload) {\n state.draggedEntity = payload;\n },\n setDropTargetId(state, payload) {\n state.dropTargetId = payload;\n },\n\n toggleBoardQuickView(state, { boardId, value }) {\n state.expandedBoardIds[boardId] = value;\n },\n\n toggleProjectBoards(state, { value, projectId }) {\n const { projectBoards, expandedBoardIds } = state;\n const boards = projectBoards[projectId] || [];\n if (boards.length === 0) return;\n const newExpandedBoardIds = { ...expandedBoardIds };\n boards.forEach((boardId: any) => {\n if (!expandedBoardIds[boardId]) return;\n newExpandedBoardIds[boardId] = value;\n });\n state.expandedBoardIds = newExpandedBoardIds;\n },\n toggleBoardsInRow(state, { boardId, value, projectId }) {\n const { projectBoards, expandedBoardIds } = state;\n const boards = projectBoards[projectId] || [];\n if (boards.length === 0) return;\n\n const boardIndex = boards.findIndex((board: any) => board === boardId);\n if (boardIndex === -1) return;\n\n const otherBoardIndex = boardIndex % 2 === 0 ? boardIndex + 1 : boardIndex - 1;\n if (otherBoardIndex >= boards.length) return;\n\n const newExpandedBoardIds = { ...expandedBoardIds };\n const otherBoardId = boards[otherBoardIndex];\n\n newExpandedBoardIds[boardId] = value;\n newExpandedBoardIds[otherBoardId] = value;\n state.expandedBoardIds = newExpandedBoardIds;\n },\n\n loadingBoards(state, payload = false) {\n state.loadingBoards = payload;\n },\n\n setBoardListProp(state, { listId, propertyName, value }) {\n if (!state.lists[listId]) return;\n state.lists[listId][propertyName] = value;\n },\n\n setBoardViewNoDestroy(state, payload = false) {\n state.boardViewNoDestroy = payload;\n },\n\n setDraftListInputVisibleOnOpen(state, payload = false) {\n state.draftListInputVisibleOnOpen = payload;\n },\n\n localAddMemberToBoard(state, { memberToAdd, boardId }) {\n const board = state.flatBoards[boardId];\n\n if (board) {\n const members = [...board.members, memberToAdd];\n state.flatBoards[boardId].members = members;\n }\n },\n\n localRemoveMemberFromBoard(state, { memberToRemove, boardId }) {\n const board = state.flatBoards[boardId];\n\n if (board) {\n const members = [...board.members.filter((m: any) => m.user_id !== memberToRemove.user_id)];\n state.flatBoards[boardId].members = members;\n }\n },\n\n localAddMemberToCard(state, { cardId, memberToAdd }) {\n // add memeber to card if listCards object is not empty(if board view is opened)\n if (state.cards[cardId]) {\n const { members } = state.cards[cardId];\n const newMembers = [...(members || [])];\n if (members) {\n const alradyMember = members.find((m: any) => m.user_id === memberToAdd.user_id);\n if (alradyMember) return;\n newMembers.push(memberToAdd);\n state.cards[cardId].members = newMembers;\n }\n }\n },\n\n localRemoveMemberFromCardBoardView(state, { cardId, memberId }) {\n if (state.cards[cardId]) {\n const { members } = state.cards[cardId];\n const memberIndex = members.findIndex((m: any) => m.user_id === memberId);\n const newMembers = [...members];\n if (memberIndex > -1) {\n newMembers.splice(memberIndex, 1);\n state.cards[cardId].members = newMembers;\n }\n }\n },\n\n setBoardListView(state, value) {\n state.boardListView = value;\n },\n\n setCurrentTagForEdit(state, tagForEdit) {\n state.currentTagForEdit = tagForEdit;\n },\n\n localAddTagToCard(state, { cardId, tag }) {\n if (state.cards[cardId]) {\n if (!state.cards[cardId].tags) state.cards[cardId].tags = [];\n const alradyTag = state.cards[cardId].tags.find((t: any) => t.id === tag.id);\n if (alradyTag) return;\n state.cards[cardId].tags.push(tag);\n }\n },\n updateLocalCardTag(state, { cardId, tagId, tag }) {\n if (state.cards[cardId]) {\n const newCardTags = [...state.cards[cardId].tags];\n const listCardTagIndex = newCardTags.findIndex((t: any) => t.id === tagId);\n if (listCardTagIndex !== -1) {\n newCardTags.splice(listCardTagIndex, 1, tag);\n state.cards[cardId].tags = newCardTags;\n }\n }\n },\n localAddTagToBoard(state, { boardId, tag }) {\n if (state.flatBoards[boardId]) {\n const board = state.flatBoards[boardId];\n\n if (!board.tags) {\n state.flatBoards[boardId].tags = [];\n }\n\n board.tags.push(tag);\n }\n },\n localDeleteTagFromCard(state, { cardId, tagId }) {\n if (state.cards[cardId]) {\n if (state.cards[cardId].tags) {\n const tags = [...state.cards[cardId].tags];\n const tagIndex = tags.findIndex((t: any) => t.id === tagId);\n if (tagIndex > -1) {\n tags.splice(tagIndex, 1);\n state.cards[cardId].tags = tags;\n }\n }\n }\n },\n localDeleteTagFromCards(state, { tagId }) {\n Object.keys(state.cards).forEach((cardId: any) => {\n if (state.cards[cardId].tags) {\n const tags = [...state.cards[cardId].tags];\n const tagIndex = tags.findIndex((t: any) => t.id === tagId);\n if (tagIndex > -1) {\n tags.splice(tagIndex, 1);\n state.cards[cardId].tags = tags;\n }\n }\n });\n },\n setLinkedCardType(state, value) {\n state.linkedCardType = value;\n },\n setShowImageUploadPopup(state, value) {\n state.showImageUploadPopup = value;\n },\n setCurrentCardIdForActionEdit(state, cardId) {\n state.currentCardIdActionEdit = cardId;\n },\n setCurrentListIdForActionEdit(state, listId) {\n state.currentListIdActionEdit = listId;\n },\n setCardsLayout(state, { boardId, value }) {\n state.cardsLayout[boardId] = value;\n },\n replaceLocalChildCardIdInParentCard(state, { parentCardId, localId, newId }) {\n const parentCard = state.cards[parentCardId];\n if (!parentCard) return;\n\n // update card in parents child card order\n const childCardOrder = [...(parentCard.child_card_order || [])];\n const childCardOrderIndex = childCardOrder.findIndex((i: any) => i === localId);\n\n if (childCardOrderIndex > -1) {\n childCardOrder.splice(childCardOrderIndex, 1, newId);\n parentCard.child_card_order = childCardOrder;\n }\n\n // update card in parents child cards\n const childCards = [...(parentCard.child_cards || [])];\n const childCardIndex = childCards.findIndex((c: any) => c.local_id || c.card_id === localId);\n\n if (childCardIndex > -1) {\n const updatedChildCard = {\n ...childCards[childCardIndex],\n card_id: newId,\n };\n delete updatedChildCard.local_id;\n delete updatedChildCard.localCard;\n\n childCards.splice(childCardIndex, 1, updatedChildCard);\n parentCard.child_cards = childCards;\n }\n },\n\n localUpdateCardFields(\n state,\n { cardId, card, overwrite = false, timeUpdated = null, userIdUpdated = null }\n ) {\n if (state.cards[cardId]) {\n const newCard = overwrite ? card : { ...state.cards[cardId], ...card };\n if (timeUpdated) {\n newCard.time_updated = timeUpdated;\n }\n if (userIdUpdated) {\n newCard.user_id_updated = userIdUpdated;\n }\n state.cards[cardId] = newCard;\n }\n\n // Update Fuse index if title or board_id has changed\n if ('title' in card || 'board_id' in card) {\n setCardsFuse(state);\n }\n },\n\n localUpdateCardField(\n state,\n { cardId, fieldName, fieldValue, timeUpdated = null, userIdUpdated = null }\n ) {\n if (!state.cards?.[cardId]) return;\n state.cards[cardId][fieldName] = fieldValue;\n if (timeUpdated && userIdUpdated) {\n state.cards[cardId].time_updated = timeUpdated;\n state.cards[cardId].user_id_updated = userIdUpdated;\n }\n\n // Update Fuse index when title or other searchable fields change\n if (fieldName === 'title' || fieldName === 'board_id') {\n setCardsFuse(state);\n }\n },\n\n localUpdateCardFieldInMultipleCards(state, { cardIds, fieldName, fieldValue }) {\n cardIds.forEach((cardId: string | number) => {\n if (!state.cards[cardId]) return;\n state.cards[cardId][fieldName] = fieldValue;\n });\n },\n\n setAttachments(state, { files, id, prefix }) {\n const resourceId = `${prefix}-${id}`;\n state.attachments[resourceId] = files;\n },\n\n localAddAttachment(state, { attachment, id, prefix }) {\n const resourceId = `${prefix}-${id}`;\n if (!state.attachments[resourceId]) {\n state.attachments[resourceId] = [];\n }\n state.attachments[resourceId].splice(0, 0, attachment);\n },\n\n localRemoveAttachment(state, { attachmentId, id, prefix }) {\n const resourceId = `${prefix}-${id}`;\n const newAttachments = [...(state.attachments[resourceId] || [])];\n const index = newAttachments.findIndex((a: any) => a.local_id === attachmentId);\n\n if (index > -1) {\n newAttachments.splice(index, 1);\n state.attachments[resourceId] = newAttachments;\n }\n },\n\n addAttachmentUploadDetails(state, { id, localId, uploadDetails }) {\n const resourceId = `c-${id}`;\n const newAttachments = [...(state.attachments[resourceId] || [])];\n const attachmentIndex = newAttachments.findIndex(\n (attachment: any) => attachment.local_id === localId\n );\n\n if (attachmentIndex > -1) {\n newAttachments.splice(attachmentIndex, 1, {\n ...newAttachments[attachmentIndex],\n ...uploadDetails,\n });\n state.attachments[resourceId] = newAttachments;\n }\n },\n\n localRemoveFileFromCard(state, { fileId, cardId }: { fileId: string; cardId: string }) {\n const cId = `c-${cardId}`;\n const newCardAttachments = [...state.attachments[cId]];\n\n const fileIndex = newCardAttachments.findIndex((f: any) => f.id === fileId);\n if (fileIndex !== -1) {\n newCardAttachments.splice(fileIndex, 1);\n state.attachments[cId] = newCardAttachments;\n }\n },\n\n updateCardAttachmentId(state, { attachment, localId, cardId }) {\n const [file] = attachment;\n\n const resourceId = `c-${cardId}`;\n const newAttachemnts = [...state.attachments[resourceId]];\n const index = newAttachemnts.findIndex((a) => a.local_id === localId);\n if (index !== -1) {\n newAttachemnts.splice(index, 1, file);\n state.attachments[resourceId] = newAttachemnts;\n }\n },\n\n setUploadFailedFlag(state, { localId, file, cardId, value = true }) {\n const attachmentsKey = `c-${cardId}`;\n\n const newAttachemnts = [...state.attachments[attachmentsKey]];\n const index = newAttachemnts.findIndex((a) => a.local_id === localId);\n if (index !== -1) {\n const newFile = {\n ...newAttachemnts[index],\n failed: value,\n file,\n };\n newAttachemnts.splice(index, 1, newFile);\n state.attachments[attachmentsKey] = newAttachemnts;\n }\n },\n\n addCardFailedAttachment(state, attachment) {\n state.cardFailedAttachments.push(attachment);\n },\n\n resetBoardState(state) {\n Object.assign(state, getDefaultBoardState());\n },\n\n setCardAutoFocus(state, payload) {\n state.cardAutoFocus = payload;\n },\n\n setPreviewPopoverKey(state, payload) {\n state.previewPopoverKey = payload;\n },\n\n setAttachmentTargetCardId(state, id) {\n state.attachmentTargetCardId = id;\n },\n\n setCardAttachmentsLoaded(state, value) {\n state.cardAttachmentsLoaded = value;\n },\n setArchivedBoards(state, data = []) {\n state.archivedBoards = data;\n },\n\n setArchivedLists(state, data = []) {\n state.archivedLists = data;\n },\n\n setProjectPreviewBoards(state, { projectBoards = [], projectId }) {\n state.projectPreviewBoards[projectId] = projectBoards;\n },\n\n setArchivedCards(state, data = []) {\n state.archivedCards = data;\n },\n\n addArchivedListToIndex(state, { list, index }) {\n state.archivedLists.splice(index, 0, list);\n },\n\n setNewBoardTitle(state, title) {\n state.newBoardTitle = title;\n },\n\n clearProjectPreviewBoards(state) {\n state.projectPreviewBoards = {};\n },\n\n setProjectPreview(state, project = {}) {\n state.previewProject = project;\n },\n\n displayProjectPreviewBoards(state, payload = false) {\n state.displayProjectPreviewBoards = payload;\n },\n\n setCurrentCardIdMemberDropdown(state, cardId) {\n state.currentCardIdMemberDropdown = cardId;\n },\n\n setCurrentCardMembersDropdown(state, members) {\n state.currentCardMembersDropdown = members;\n },\n\n setCurrentCardIdForPopup(state, cardId) {\n state.currentCardIdForPopup = cardId;\n },\n\n setCardAttachmentUploadingId(state, cardId) {\n state.cardAttachmentUploadingId = cardId;\n },\n\n setShowDuplicateCardPopup(state, payload) {\n state.showDuplicateCardPopup = payload;\n },\n\n setShowSetParentCardPopup(state, payload) {\n state.showSetParentCardPopup = payload;\n },\n\n updateBoardPropertyInBoards(state, { boardId, propertyName, value }) {\n if (state.flatBoards[boardId]) {\n state.flatBoards[boardId][propertyName] = value;\n }\n if (state.currentBoardId === boardId) {\n state.currentBoard = value;\n }\n },\n\n setDraggingEnd(state, value) {\n state.draggingEnd = value;\n },\n\n setProjectBoards(state, { projectId, projectBoards }) {\n state.projectBoards[projectId] = projectBoards;\n },\n\n removeProjectBoard(state, { projectId, boardId }) {\n if (state.projectBoards[projectId]) {\n const index = state.projectBoards[projectId].indexOf(boardId);\n state.projectBoards[projectId].splice(index, 1);\n }\n },\n\n addProjectBoard(state, { projectId, boardId, position = -1 }) {\n if (position > -1) {\n state.projectBoards[projectId].splice(position, 0, boardId);\n return;\n }\n state.projectBoards[projectId].push(boardId);\n },\n\n setFlatBoards(state, boardsArray) {\n boardsArray.forEach((board: any) => {\n const fullyLoaded =\n state.flatBoards[board.id] &&\n (state.flatBoards[board.id].lists || []).length &&\n (state.flatBoards[board.id].lists || [])[0].cards != null;\n if (fullyLoaded) return;\n state.flatBoards[board.id] = board;\n });\n },\n\n setCards(state, cards) {\n Object.keys(cards).forEach((cardId) => {\n state.cards[cardId] = {\n ...(state.cards[cardId] || {}),\n ...cards[cardId],\n };\n });\n\n setCardsFuse(state);\n },\n\n setListCards(state, listCards) {\n for (const listId in listCards) {\n if (Object.prototype.hasOwnProperty.call(listCards, listId)) {\n state.listCards[listId] = listCards[listId];\n }\n }\n },\n\n setSingleListInListCards(state, { listId, value }) {\n state.listCards[listId] = value;\n },\n\n addCardToListCards(state, { listId, cardId }) {\n const newListCards = [...(state.listCards[listId] || [])];\n newListCards.push(cardId);\n state.listCards[listId] = newListCards;\n },\n\n removeCardFromListCards(state, { listId, cardId }) {\n if (state.listCards[listId]) {\n const index = state.listCards[listId].findIndex((id: any) => id === cardId);\n if (index > -1) {\n const newListCards = [...state.listCards[listId]];\n newListCards.splice(index, 1);\n state.listCards[listId] = newListCards;\n }\n }\n },\n\n addCardToCards(state, { card }) {\n const oldCard = state.cards[card.id] ?? {};\n let expired = true;\n if (oldCard?.collaboration?.token) {\n expired = isTokenExpired(oldCard.collaboration.token);\n }\n\n const newCard = {\n ...card,\n collaboration: expired ? toRaw(card.collaboration) : toRaw(oldCard.collaboration),\n };\n state.cards[card.id || card.localCardId] = newCard;\n },\n\n removeCardFromCards(state, cardId) {\n delete state.cards[cardId];\n },\n cardWsEventsUpdate(state, { change, cardId }) {\n const [cardProp, cardPropId, secondResource, thirdResource, fourthResource] = change.path;\n const card = state.cards[cardId];\n let cardIndex = -1;\n let cardTagIndex = -1;\n let checklistIndex = -1;\n if (Array.isArray(card[cardProp])) {\n cardIndex = card[cardProp].findIndex((c: any) => c.card_id === cardPropId);\n }\n\n switch (cardProp) {\n case 'hints':\n card.hints = change.to;\n break;\n case 'child_card_order':\n card.child_card_order = change.to || [];\n break;\n case 'tags':\n cardTagIndex = card.tags.findIndex((tag: any) => tag.id === cardPropId);\n if (card.tags[cardTagIndex]) {\n card.tags[cardTagIndex][secondResource] = change.to;\n }\n if (state.tags[cardPropId]) {\n state.tags[cardPropId][secondResource] = change.to;\n const newTags = { ...state.tags };\n state.tags = newTags;\n }\n break;\n case 'checklists':\n checklistIndex = card.checklists.findIndex((c: { id: any }) => c.id === cardPropId);\n if (change.path.includes('items')) {\n const itemId = thirdResource;\n const itemIndex = card.checklists[checklistIndex].items.findIndex(\n (item: any) => item.id === itemId\n );\n card.checklists[checklistIndex].items[itemIndex][fourthResource] = change.to;\n break;\n }\n card.checklists[checklistIndex][secondResource] = change.to;\n break;\n case 'checklist_item_order':\n card.checklist_item_order[cardPropId] = change.to;\n break;\n case 'icon':\n case 'epic':\n case 'parent_card':\n // title has been updated\n if (cardProp && cardPropId) {\n state.cards[cardId][cardProp][cardPropId] = change.to;\n break;\n }\n\n // parent/card removed\n if (change.from && !change.to) {\n delete state.cards[cardId][cardProp];\n break;\n }\n\n // parent/epic added\n if (change.to) {\n state.cards[cardId][cardProp] = change.to;\n break;\n }\n\n break;\n case 'linked_cards':\n if (card[cardProp][cardIndex]?.[secondResource]) {\n card[cardProp][cardIndex][secondResource] = change.to;\n }\n if (state.cards[cardPropId]?.[secondResource]) {\n state.cards[cardPropId][secondResource] = change.to;\n }\n break;\n case 'child_cards':\n if (card[cardProp][cardIndex]?.[secondResource]) {\n card[cardProp][cardIndex][secondResource] = change.to;\n }\n if (state.cards[cardPropId]?.[secondResource]) {\n state.cards[cardPropId][secondResource] = change.to;\n }\n if (secondResource === 'archived') {\n if (change.to) {\n state.cards[cardPropId].archived = change.to;\n } else {\n delete state.cards[cardPropId].archived;\n }\n }\n break;\n case 'external_links':\n break;\n default:\n // check if the property is a card property\n if (card[cardProp] !== undefined) {\n card[cardProp] = change.to;\n } else {\n const newCard = { ...state.cards[cardId], [cardProp]: change.to };\n state.cards[cardId] = newCard;\n }\n break;\n }\n // Update Fuse index if title was updated via websocket\n if (cardProp === 'title' || cardProp === 'board_id') {\n setCardsFuse(state);\n }\n },\n\n cardWsEventsCreate(state, { change, cardId, projectId, teamId }) {\n const [cardProp, cardPropId] = change.path;\n const card = state.cards[cardId];\n switch (cardProp) {\n case 'hints':\n card.hints = change.to;\n break;\n case 'checklists':\n if (change.path.includes('items')) {\n const checklistIndex = card.checklists.findIndex((c: { id: any }) => c.id === cardPropId);\n card.checklists[checklistIndex]?.items.push(change.to);\n } else if (change.to.id) {\n card.checklists.push(change.to);\n }\n break;\n case 'checklist_item_order':\n card.checklist_item_order[cardPropId] = change.to;\n break;\n case 'start_date':\n case 'due_date':\n case 'child_card_order':\n card[cardProp] = change.to;\n break;\n case 'tags':\n if (card[cardProp].findIndex((tag: any) => tag.id === change.to.id) === -1) {\n card[cardProp].push(change.to);\n }\n state.tags[change.to.id] = change.to;\n if (\n !state.projectTags[projectId]?.includes(change.to.id) &&\n !state.workspaceTags[teamId]?.includes(change.to.id)\n ) {\n state.projectTags[projectId]?.push(change.to.id);\n }\n break;\n case 'external_links':\n break;\n default:\n if (Array.isArray(card[cardProp])) {\n card[cardProp].push(change.to);\n }\n break;\n }\n },\n\n cardWsEventsDelete(state, { change, cardId }) {\n const [cardProp, cardPropId, , thirdResource] = change.path;\n const card = state.cards[cardId];\n switch (cardProp) {\n case 'hints':\n if (card.hints[cardPropId]) {\n card.hints.splice(cardPropId, 1);\n }\n break;\n case 'child_card_order':\n card.child_card_order = change.to || [];\n break;\n case 'tags':\n const tagId = change.from.id;\n const index = card.tags.findIndex((tag: any) => tag.id === tagId);\n card.tags.splice(index, 1);\n break;\n case 'checklists':\n if (change.path.includes('items')) {\n const itemId = thirdResource;\n if (card.checklists) {\n const checklistIndex = card.checklists.findIndex(\n (c: { id: any }) => c.id === cardPropId\n );\n const itemIndex = card.checklists[checklistIndex].items?.findIndex(\n (item: any) => item.id === itemId\n );\n card.checklists[checklistIndex].items?.splice(itemIndex, 1);\n }\n break;\n }\n const checklistId = change.from.id;\n const checklistIndex = card.checklists.findIndex(\n (checklist: any) => checklist.id === checklistId\n );\n card.checklists.splice(checklistIndex, 1);\n break;\n case 'members':\n const memberIndex = card.members.findIndex((member: any) => member.user_id === cardPropId);\n card.members.splice(memberIndex, 1);\n break;\n case 'start_date':\n card.start_date = 0;\n break;\n case 'due_date':\n card.due_date = 0;\n break;\n case 'child_cards':\n case 'linked_cards':\n const cardIndex = card[cardProp].findIndex((c: any) => c.card_id === cardPropId);\n card[cardProp].splice(cardIndex, 1);\n break;\n case 'external_links':\n break;\n }\n },\n\n /**\n * Intended behavior:\n * 1. By passing an empty array, we will clear the displayed cards.\n * 2. Cards passed in the payload will be displayed, overriding the currently displayed cards.\n * 3. If the payload contains an epic:\n * - The epic will be displayed, overriding the currently displayed epic.\n * - In case when there are multiple epics in the payload, the first one will be displayed.\n * - If there are no cards in the payload, only cards currently displayed in docked layout will be retained.\n * 4. If the payload does not contain an epic:\n * - Currently displayed epic will be retained.\n */\n setDisplayedCards(state, payload: DisplayedCard[]) {\n if (!payload.length) {\n state.displayedCards = [];\n return;\n }\n\n let epicToBeDisplayed = payload.find(\n (dc: DisplayedCard) => dc.resource_type === ResourceType.Epic\n );\n\n if (!epicToBeDisplayed) {\n epicToBeDisplayed = state.displayedCards.find(\n (dc: DisplayedCard) => dc.resource_type === ResourceType.Epic\n );\n }\n\n const cardsToBeDisplayed: DisplayedCard[] = [];\n\n payload.forEach((dc: DisplayedCard) => {\n if (dc.resource_type !== ResourceType.Epic) {\n cardsToBeDisplayed.push(dc);\n }\n });\n\n if (!cardsToBeDisplayed.length) {\n state.displayedCards.forEach((dc: DisplayedCard) => {\n if (\n dc.resource_type !== ResourceType.Epic &&\n (epicToBeDisplayed ? dc.layout === constants.docked : true)\n ) {\n cardsToBeDisplayed.push(dc);\n }\n });\n }\n\n state.displayedCards = [\n ...(epicToBeDisplayed ? [epicToBeDisplayed] : []),\n ...cardsToBeDisplayed,\n ];\n },\n\n addDisplayedCards(state, payload: DisplayedCard[]) {\n state.displayedCards.push(...payload);\n },\n\n removeDisplayedCards(state, payload: string[] | string) {\n state.displayedCards = state.displayedCards.filter((c) => !payload.includes(c.id));\n },\n\n removeDisplayedCardsByField(\n state,\n payload: { field: keyof DisplayedCard; value: string; shouldMatch: boolean }\n ) {\n state.displayedCards = state.displayedCards.filter(\n (c: DisplayedCard) => (payload.shouldMatch ?? true) !== (c[payload.field] === payload.value)\n );\n },\n\n setFieldOfDisplayedCard(state, payload: { id: string; value: any; field: keyof DisplayedCard }) {\n if (!payload.field) return;\n\n const idx = state.displayedCards.findIndex((c: DisplayedCard) => c.id === payload.id);\n if (idx === -1) return;\n\n const { field, value } = payload;\n state.displayedCards[idx][field] = value;\n },\n\n setFieldsOfDisplayedCard(\n state,\n { id, payload }: { id: string; payload: Array<{ field: keyof DisplayedCard; value: any }> }\n ) {\n const idx = state.displayedCards.findIndex((c: DisplayedCard) => c.id === id);\n if (idx === -1) return;\n\n payload.forEach(({ field, value }) => {\n state.displayedCards[idx][field] = value;\n });\n },\n\n setCurrentCardLayout(state, layout) {\n localStorage.setItem('cardLayout', layout);\n state.currentCardLayout = layout;\n },\n\n removeCardFromArchived(state, cardId) {\n const index = state.archivedCards.findIndex((c: any) => c.id === cardId);\n\n if (index > -1) {\n const newArchivedCards = [...state.archivedCards];\n\n newArchivedCards.splice(index, 1);\n state.archivedCards = newArchivedCards;\n }\n },\n\n setChecklistCollapsedIds(state, checklistIds) {\n state.collapsedChecklistIds = checklistIds;\n },\n\n setHiddenItemChecklistIds(state, checklistIds) {\n state.hiddenItemsChecklistIds = checklistIds;\n },\n\n setBoardFilters(state, { boardId, filters, teamId }) {\n state.boardsFilters[boardId] = filters;\n localStorage.setItem(`boardsFilters-${teamId}`, JSON.stringify(state.boardsFilters));\n },\n\n setBoardPills(state, { boardId, pills }) {\n state.boardsPills[boardId] = pills;\n },\n\n setTags(state, { tagsArray, teamId, projectId = null }) {\n const tags: { [key: string]: any } = {};\n let projectTags: any = [];\n let workspaceTags: any = [];\n\n tagsArray.forEach((tag: any) => {\n tags[tag.id] = tag;\n if (tag.project_id) {\n projectTags = [...(projectTags || []), tag.id];\n } else {\n workspaceTags = [...(workspaceTags || []), tag.id];\n }\n });\n\n const newTags = { ...state.tags, ...tags };\n state.tags = newTags;\n if (projectId) {\n state.projectTags[projectId] = projectTags;\n }\n state.workspaceTags[teamId] = workspaceTags;\n },\n\n deleteLocalTag(state, { tagId }) {\n const tag = state.tags[tagId];\n if (tag.project_id) {\n const projectTags = [...(state.projectTags[tag.project_id] || [])];\n const index = projectTags.indexOf(tagId);\n if (index > -1) {\n projectTags.splice(index, 1);\n state.projectTags[tag.project_id] = projectTags;\n }\n } else {\n const workspaceTags = [...(state.workspaceTags[tag.team_id] || [])];\n const index = workspaceTags.indexOf(tagId);\n if (index > -1) {\n workspaceTags.splice(index, 1);\n state.workspaceTags[tag.team_id] = workspaceTags;\n }\n }\n const newTags = { ...state.tags };\n delete newTags[tagId];\n state.tags = newTags;\n },\n\n addLocalTag(state, { tag }) {\n state.tags[tag.id] = tag;\n if (tag.project_id) {\n const projectTags = [...(state.projectTags[tag.project_id] || []), tag.id];\n state.projectTags[tag.project_id] = projectTags;\n } else {\n const workspaceTags = [...(state.workspaceTags[tag.team_id] || []), tag.id];\n state.workspaceTags[tag.team_id] = workspaceTags;\n }\n },\n\n updateLocalTag(state, { tagId, tag, cardId }) {\n if (state.tags[tagId]) {\n const updatedTag = { ...state.tags[tagId], ...tag };\n state.tags[tagId] = updatedTag;\n if (cardId) {\n const tagIndex = state.cards[cardId].tags.findIndex((tag: { id: any }) => tag.id === tagId);\n if (tagIndex !== -1) {\n state.cards[cardId].tags[tagIndex] = updatedTag;\n }\n } else {\n const cards = Object.values(state.cards);\n cards.forEach((card: any) => {\n const tagIndex = card?.tags?.findIndex?.((tag: { id: any }) => tag.id === tagId);\n if (tagIndex !== -1 && card?.tags) {\n card.tags[tagIndex] = updatedTag;\n }\n });\n }\n }\n },\n\n removeLocalPropFromTag(state, { tagId, prop }) {\n if (state.tags[tagId]) {\n const newTag = { ...state.tags[tagId] };\n delete newTag[prop];\n state.tags[tagId] = newTag;\n }\n },\n\n updateLocalTagId(state, { localTagId, tag }) {\n if (tag.project_id) {\n const projectTags = [...(state.projectTags[tag.project_id] || [])];\n const index = projectTags.indexOf(localTagId);\n if (index > -1) {\n projectTags.splice(index, 1, tag.id);\n state.projectTags[tag.project_id] = projectTags;\n }\n } else {\n const workspaceTags = [...(state.workspaceTags[tag.team_id] || [])];\n const index = workspaceTags.indexOf(localTagId);\n if (index > -1) {\n workspaceTags.splice(index, 1, tag.id);\n state.workspaceTags[tag.team_id] = workspaceTags;\n }\n }\n },\n\n setCardCommentAttachmentUploadPopup(state, value) {\n state.cardCommentAttachmentUploadPopup = value;\n },\n\n setCardDescriptionAttachmentUploadPopup(state, value) {\n state.cardDescriptionAttachmentUploadPopup = value;\n },\n\n setLastOpenedBoardId(state, boardId = '') {\n state.lastOpenedBoardId = boardId;\n },\n\n setBoardList(state, { listId, list }) {\n state.lists[listId] = list;\n },\n\n removeBoardFromBoards(state, boardId) {\n delete state.flatBoards[boardId];\n },\n\n removeBoardsListsIds(state, boardId) {\n delete state.boardsListsIds[boardId];\n },\n\n lastHoveredListId(state, listId) {\n state.lastHoveredListId = listId;\n },\n\n lastHoveredCardId(state, cardId) {\n state.lastHoveredCardId = cardId;\n },\n\n lastHoveredDisplayedCardId(state, cardId) {\n state.lastHoveredDisplayedCardId = cardId;\n },\n\n setSelectedCardId(state, cardId) {\n state.selectedCardId = cardId;\n },\n\n setBoardViewMouseSuspended(state, value) {\n state.boardViewMouseSuspended = value;\n },\n\n setChecklistInputActive(state, { checklistId, isActive }) {\n const tempActiveChecklists = { ...state.checklistInputActive };\n if (!isActive) {\n delete tempActiveChecklists[checklistId];\n state.checklistInputActive = tempActiveChecklists;\n } else {\n state.checklistInputActive[checklistId] = isActive;\n }\n },\n setChecklistItemInputActive(state, { checklistItemId, isActive }) {\n const tempActiveChecklistItems = { ...state.checklistItemInputActive };\n if (!isActive) {\n delete tempActiveChecklistItems[checklistItemId];\n state.checklistItemInputActive = tempActiveChecklistItems;\n } else {\n state.checklistItemInputActive[checklistItemId] = isActive;\n }\n },\n setCardOwnerId(state, { ownerId, cardId }: { ownerId: string; cardId: string }) {\n state.cards[cardId].owner_id = ownerId;\n },\n\n setCardTemplates(state, templatesArray) {\n const flatTemplates: { [key: string]: any } = {};\n templatesArray.forEach((template: any) => {\n flatTemplates[template.id] = template;\n });\n const newTemplates = { ...flatTemplates };\n state.cardTemplates = newTemplates;\n },\n\n setCardTemplate(state, template) {\n state.cardTemplates[template.id] = template;\n },\n\n replaceCardTemplateId(state, { localId, template }) {\n const newTemplates = { ...state.cardTemplates };\n delete newTemplates[localId];\n newTemplates[template.id] = template;\n state.cardTemplates = newTemplates;\n },\n\n deleteCardTemplate(state, templateId) {\n const newTemplates = { ...state.cardTemplates };\n delete newTemplates[templateId];\n state.cardTemplates = newTemplates;\n },\n\n setCardTemplateDraft(state, template) {\n const newTemplate = {\n card_board_id: template.card_board_id,\n card_content: template.card_content,\n card_list_id: template.card_list_id,\n card_members: template.card_members,\n card_priority: template.card_priority,\n card_tags: template.card_tags,\n card_title: template.card_title,\n card_child_cards: template.card_child_cards,\n icon: template.icon,\n project_ids: template.project_ids,\n title: template.title,\n };\n state.cardTemplateDraft = newTemplate;\n },\n\n setMembersToCardTemplate(state, value) {\n const { card_members } = state.cardTemplateDraft;\n let member = value;\n card_members.forEach((addedMember: any) => {\n if (value.user_id === addedMember.user_id) {\n card_members.splice(card_members.indexOf(addedMember), 1);\n member = {};\n }\n });\n if (member === value) card_members.push(value);\n },\n\n updateCardTemplateDraftField(state, { fieldName, value }) {\n state.cardTemplateDraft[fieldName] = value;\n },\n\n clearCardTemplateDraft(state) {\n state.cardTemplateDraft = {\n title: '',\n icon: {},\n project_ids: [],\n card_title: '',\n card_content: '',\n card_board_id: '',\n card_list_id: '',\n card_members: [],\n card_tags: [],\n card_priority: 0,\n card_child_cards: [],\n };\n },\n\n addTagToTemplate(state, tagId) {\n if (!state.cardTemplateDraft.card_tags.length) {\n state.cardTemplateDraft.card_tags?.push?.({ ids: [tagId] });\n return;\n }\n state.cardTemplateDraft.card_tags[0]?.ids?.push?.(tagId);\n },\n\n manageCardTemplateSelectedSpaces(state, spaceId) {\n const { project_ids } = state.cardTemplateDraft;\n const index = project_ids.indexOf(spaceId);\n if (index > -1) {\n project_ids.splice(index, 1);\n } else {\n project_ids.push(spaceId);\n }\n },\n\n toggleMemberTemplateChildCard(state, { index, member }) {\n const { card_child_cards } = state.cardTemplateDraft;\n if (!card_child_cards) return;\n const card = card_child_cards[index];\n if (!card) return;\n const memberIndex = card.members.findIndex((m: any) => m.user_id === member.user_id);\n if (memberIndex > -1) {\n card.members.splice(memberIndex, 1);\n } else {\n card.members.push(member);\n }\n },\n\n addChildCardToTemplate(state) {\n const { card_child_cards } = state.cardTemplateDraft;\n if (!card_child_cards) {\n state.cardTemplateDraft.card_child_cards = [];\n }\n const card = convertChildCardDraftToChildCard(state.quickChildCardObject);\n state.cardTemplateDraft.card_child_cards.push(card);\n },\n\n updateChildCardInTemplate(state, index) {\n const { card_child_cards } = state.cardTemplateDraft;\n if (!card_child_cards) return;\n const card = card_child_cards[index];\n if (!card) return;\n const newCard = convertChildCardDraftToChildCard(state.quickChildCardObject);\n card_child_cards[index] = newCard;\n },\n\n removeChildCardFromTemplate(state, index) {\n const { card_child_cards } = state.cardTemplateDraft;\n if (!card_child_cards) return;\n card_child_cards.splice(index, 1);\n },\n\n updateTemplateChildCardProperty(state, { fieldName, value, index }) {\n const { card_child_cards } = state.cardTemplateDraft;\n if (!card_child_cards) return;\n const card = card_child_cards[index];\n if (!card) return;\n card[fieldName] = value;\n },\n\n setTimelineZoom(state, zoom) {\n state.timelineZoom = zoom;\n },\n\n setTimelineSidebarWidth(state, width) {\n state.timelineSidebarWidth = width;\n },\n\n setCardWidth(state, width) {\n state.cardWidth = width;\n },\n\n closeCardUploadPopup(state) {\n state.cardCommentAttachmentUploadPopup = {};\n state.cardDescriptionAttachmentUploadPopup = {};\n },\n\n addQuickCardFileToUpdate(state, { file, isModal }) {\n const propertyName = getQuickCardFilesToUpdateName(isModal);\n state[propertyName].push(file);\n },\n\n removeQuickCardFilesToUpdate(state, isModal) {\n const propertyName = getQuickCardFilesToUpdateName(isModal);\n state[propertyName] = [];\n },\n\n setQuickCardTitle(state, { title, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n state[propertyName].title = title;\n },\n\n setMembersToAddQuickCard(state, { value, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n let member = value;\n state[propertyName].members.forEach((addedMember: any) => {\n if (value.user_id === addedMember.user_id) {\n state[propertyName].members.splice(state[propertyName].members.indexOf(addedMember), 1);\n member = {};\n }\n });\n if (member === value) state[propertyName].members.push(value);\n },\n\n setQuickCardField(state, { fieldName, value, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n state[propertyName][fieldName] = value;\n },\n\n clearQuickCardObject(state, isModal) {\n const propertyName = getQuickCardObjectName(isModal);\n state[propertyName] = {\n localId: nanoid(6),\n title: '',\n content: '',\n tags: [],\n attachments: [],\n members: [],\n parentCard: {},\n projectId: '',\n priority: 0,\n board: {},\n hints: [],\n childCards: [],\n };\n },\n\n updateQuickCardChildCardProperty(state, { fieldName, value, index, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n const { childCards } = state[propertyName];\n if (!childCards) return;\n const card = childCards[index];\n if (!card) return;\n card[fieldName] = value;\n },\n\n toggleMemberQuickCardChildCard(state, { index, member, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n const { childCards } = state[propertyName];\n if (!childCards) return;\n const card = childCards[index];\n if (!card) return;\n const memberIndex = card.members.findIndex((m: any) => m.user_id === member.user_id);\n if (memberIndex > -1) {\n card.members.splice(memberIndex, 1);\n } else {\n card.members.push(member);\n }\n },\n\n setQuickCardProjectId(state, { projectId, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n state[propertyName].projectId = projectId;\n },\n\n addTagToQuickCard(state, { tag, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n state[propertyName].tags.push(tag);\n },\n\n removeTagFromQuickCard(state, { tagId, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n const index = state[propertyName].tags.findIndex((t: any) => t.id === tagId);\n\n if (index >= 0) {\n state[propertyName].tags.splice(index, 1);\n }\n },\n\n addChildCardToQuickCard(state, isModal) {\n const propertyName = getQuickCardObjectName(isModal);\n const { childCards } = state[propertyName];\n if (!childCards) {\n state[propertyName].childCards = [];\n }\n const card = convertChildCardDraftToChildCard(state.quickChildCardObject);\n state[propertyName].childCards.push(card);\n },\n\n updateChildCardInQuickCard(state, { index, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n const { childCards } = state[propertyName];\n if (!childCards) return;\n const card = childCards[index];\n if (!card) return;\n const newCard = convertChildCardDraftToChildCard(state.quickChildCardObject);\n childCards[index] = newCard;\n },\n\n removeChildCardFromQuickCard(state, { index, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n const { childCards } = state[propertyName];\n if (!childCards) return;\n childCards.splice(index, 1);\n },\n\n setParentCardForQuickCard(state, parentCard) {\n state.quickCardObject.parentCard = parentCard;\n },\n\n setCardIdForMove(state, cardId) {\n state.cardIdForMove = cardId;\n },\n\n setBoardSortBy(state, { boardId, value, teamId }) {\n const boardSortBy = { ...state.boardSortBy };\n boardSortBy[boardId] = value;\n state.boardSortBy = boardSortBy;\n localStorage.setItem(`boardSortBy-${teamId}`, JSON.stringify(boardSortBy));\n },\n\n setBoardGroupBy(state, { boardId, value, teamId }) {\n const boardGroupBy = { ...state.boardGroupBy };\n boardGroupBy[boardId] = value;\n state.boardGroupBy = boardGroupBy;\n localStorage.setItem(`boardGroupBy-${teamId}`, JSON.stringify(boardGroupBy));\n },\n\n setChildCardCreation(state, value) {\n state.childCardCreation = value;\n },\n\n setCardInEpicCreation(state, value) {\n state.cardInEpicCreation = value;\n },\n\n setCardInNoteCreation(state, value) {\n state.cardInNoteCreation = value;\n },\n\n setQuickCardObject(state, { quickCardObject, isModal }) {\n const propertyName = getQuickCardObjectName(isModal);\n const quickCard = {\n ...quickCardObject,\n // add localId if it does not exist\n ...(!quickCardObject.localId && { localId: nanoid(6) }),\n };\n state[propertyName] = quickCard;\n },\n\n setQCSuggestions(state, suggestions) {\n state.quickCardObject.hints = suggestions;\n },\n\n setShowSuggestionsPlaceholder(state, showPlaceholder) {\n state.showSuggestionsPlaceholder = showPlaceholder;\n },\n setQCShowSuggestionsPlaceholder(state, showPlaceholder) {\n state.qcShowSuggestionsPlaceholder = showPlaceholder;\n },\n\n addGroupByList(state, { boardId, epicId, listId, groupBy, teamId }) {\n const isSpecialCaseListId =\n (listId === 'notags' && groupBy === 'tag') ||\n (listId === 'unassigned' && groupBy === 'assignee');\n const boardIds = [];\n\n if (boardId) {\n boardIds.push(boardId);\n }\n if (epicId) {\n boardIds.push(`${constants.inEpicBoardIdPrefix}-${epicId}`);\n }\n\n for (const bId of boardIds) {\n const lId = isSpecialCaseListId ? `${bId}-${listId}` : listId;\n\n const boardListGroupByOrder = { ...state.boardListGroupByOrder };\n if (!boardListGroupByOrder?.[bId]?.[groupBy]) continue;\n\n const existingList = boardListGroupByOrder[bId][groupBy].order.find((id: any) => id === lId);\n\n if (!existingList) {\n boardListGroupByOrder[bId][groupBy].order.push(lId);\n boardListGroupByOrder[bId][groupBy] = {\n ...boardListGroupByOrder[bId][groupBy],\n [lId]: { cardIds: [] },\n };\n state.boardListGroupByOrder = boardListGroupByOrder;\n localStorage.setItem(`groupByOrder-${teamId}`, JSON.stringify(boardListGroupByOrder));\n }\n }\n },\n\n removeCardFromGroupByList(state, { boardId, epicId, cardId, listId, groupBy, teamId }) {\n const isSpecialCaseListId =\n (listId === 'notags' && groupBy === 'tag') ||\n (listId === 'unassigned' && groupBy === 'assignee') ||\n (listId === 'noproject' && groupBy === 'epic');\n const boardIds = [];\n\n if (boardId) {\n boardIds.push(boardId);\n }\n\n if (epicId) {\n boardIds.push(`${constants.inEpicBoardIdPrefix}-${epicId}`);\n }\n\n for (const bId of boardIds) {\n const lId = isSpecialCaseListId ? `${bId}-${listId}` : listId;\n\n const boardListGroupByOrder = { ...state.boardListGroupByOrder };\n if (!boardListGroupByOrder[bId]?.[groupBy]?.[lId]) continue;\n\n const index = boardListGroupByOrder[bId][groupBy][lId].cardIds.findIndex(\n (id: any) => id === cardId\n );\n\n if (index > -1) {\n boardListGroupByOrder[bId][groupBy][lId]?.cardIds.splice(index, 1);\n }\n\n if (\n groupBy === groupByOption.space &&\n boardListGroupByOrder[bId][groupBy][lId].cardIds.length === 0\n ) {\n boardListGroupByOrder[bId][groupBy].order = boardListGroupByOrder[bId][\n groupBy\n ].order.filter((id: any) => id !== lId);\n delete boardListGroupByOrder[bId][groupBy][lId];\n }\n\n state.boardListGroupByOrder = boardListGroupByOrder;\n localStorage.setItem(`groupByOrder-${teamId}`, JSON.stringify(boardListGroupByOrder));\n }\n },\n\n updateGroupByListOrder(state, { boardId, listId, newIndex, oldIndex, groupBy, teamId }) {\n const boardListGroupByOrder = { ...state.boardListGroupByOrder };\n if (!boardListGroupByOrder[boardId]?.[groupBy]?.order) return;\n\n if (\n oldIndex < 0 ||\n oldIndex >= boardListGroupByOrder[boardId][groupBy].order.length ||\n newIndex < 0 ||\n newIndex >= boardListGroupByOrder[boardId][groupBy].order.length\n ) {\n return; // Return early if indexes are out of bounds\n }\n\n boardListGroupByOrder[boardId][groupBy].order.splice(oldIndex, 1);\n boardListGroupByOrder[boardId][groupBy].order.splice(newIndex, 0, listId);\n\n state.boardListGroupByOrder = boardListGroupByOrder;\n localStorage.setItem(`groupByOrder-${teamId}`, JSON.stringify(boardListGroupByOrder));\n },\n\n setListCardsGroupByOrder(state, { groupByOrder, teamId }) {\n state.boardListGroupByOrder = { ...state.boardListGroupByOrder, ...groupByOrder };\n localStorage.setItem(`groupByOrder-${teamId}`, JSON.stringify(state.boardListGroupByOrder));\n },\n\n reorderCardsGroupByList(state, { boardId, listId, cardId, newIndex, oldIndex, groupBy, teamId }) {\n if (!state.boardListGroupByOrder[boardId]?.[groupBy]?.[listId]) return;\n\n state.boardListGroupByOrder[boardId][groupBy][listId].cardIds.splice(oldIndex, 1);\n state.boardListGroupByOrder[boardId][groupBy][listId].cardIds.splice(newIndex, 0, cardId);\n\n localStorage.setItem(`groupByOrder-${teamId}`, JSON.stringify(state.boardListGroupByOrder));\n },\n\n updateCardsGroupByOrder(\n state,\n { boardId, originalListId, destinationListId, cardId, newIndex, groupBy, teamId }\n ) {\n if (!state.boardListGroupByOrder[boardId]?.[groupBy]) return;\n\n if (state.boardListGroupByOrder[boardId][groupBy][originalListId]) {\n const index =\n state.boardListGroupByOrder[boardId][groupBy][originalListId].cardIds.indexOf(cardId);\n if (index > -1) {\n state.boardListGroupByOrder[boardId][groupBy][originalListId].cardIds.splice(index, 1);\n }\n }\n\n if (state.boardListGroupByOrder[boardId][groupBy][destinationListId]) {\n const index =\n state.boardListGroupByOrder[boardId][groupBy][destinationListId].cardIds.indexOf(cardId);\n if (index > -1) {\n state.boardListGroupByOrder[boardId][groupBy][destinationListId].cardIds.splice(index, 1);\n }\n state.boardListGroupByOrder[boardId][groupBy][destinationListId].cardIds.splice(\n newIndex,\n 0,\n cardId\n );\n }\n\n localStorage.setItem(`groupByOrder-${teamId}`, JSON.stringify(state.boardListGroupByOrder));\n },\n\n setCurrentGroupByListIdCardActionEdit(state, listId) {\n state.currentGroupByListIdCardActionEdit = listId;\n },\n\n setCurrentCardUniqueRowId(state, uniqueRowId) {\n state.currentCardUniqueRowId = uniqueRowId;\n },\n\n setNewBoardObjectField(state, { fieldName, value }) {\n state.newBoardObject[fieldName] = value;\n },\n\n resetNewBoardObject(state) {\n state.newBoardObject = {};\n },\n\n setProjectSprintSettings(state, { projectId, settings }) {\n state.sprintSettings[projectId] = settings;\n },\n\n setSpaceSprints(state, { projectId, sprints }) {\n const oldSprints = state.spaceSprints[projectId] || {};\n const newSprints = { ...oldSprints, ...sprints };\n state.spaceSprints[projectId] = newSprints;\n },\n\n addSprintToSpaceSprints(state, { projectId, sprint }) {\n if (!state.spaceSprints[projectId]) {\n state.spaceSprints[projectId] = {};\n }\n state.spaceSprints[projectId][sprint.id] = sprint;\n },\n\n setSprintListsFlat(state, lists) {\n const newSprintLists = { ...state.sprintLists, ...lists };\n state.sprintLists = newSprintLists;\n },\n\n setSprintForEdit(state, item) {\n state.sprintForEditId = item;\n },\n\n localUpdateSprint(state, { projectId, sprintId, prop, value }) {\n const sprint = state.spaceSprints[projectId][sprintId];\n if (sprint) {\n sprint[prop] = value;\n }\n state.spaceSprints[projectId][sprintId] = sprint;\n\n state.flatBoards[sprint.id] = { ...sprint };\n },\n\n setEpicSelectedTabId(state, { cardId, tabId }: { cardId: string; tabId: any }) {\n if (Object.values(EpicTabId).indexOf(tabId) === -1) {\n tabId = EpicTabId.Details;\n }\n state.epicSelectedTabId[cardId] = tabId;\n },\n\n setBoardSubGroupBy(state, { boardId, value, teamId }) {\n state.boardSubGroupBy[boardId] = value;\n browserStorageSetItem(boardSubGroupByKey(teamId), state.boardSubGroupBy);\n },\n\n setCardsSubGroupByOrder(state, { subGroupByBoardObject, teamId }) {\n const cardsSubGroupByOrder = { ...state.cardsSubGroupByOrder, ...subGroupByBoardObject };\n\n state.cardsSubGroupByOrder = cardsSubGroupByOrder;\n browserStorageSetItem(cardsSubGroupByOrderKey(teamId), state.cardsSubGroupByOrder);\n },\n\n setListsExpanded(state, { teamSlug, boardId, listId, value }) {\n if (!state.listsExpanded) {\n state.listsExpanded = {};\n }\n if (!state.listsExpanded[boardId]) {\n state.listsExpanded[boardId] = {};\n }\n state.listsExpanded[boardId][listId] = value;\n\n const existingValues =\n (browserStorageGetItem(listsExpandedKey(teamSlug, boardId)) as Record) ?? {};\n\n const newValues = { ...existingValues, [listId]: value };\n\n browserStorageSetItem(listsExpandedKey(teamSlug, boardId), newValues);\n },\n\n addCardToGroup(state, payload) {\n const { boardId, epicId, cardId, listId, groupBy, teamId, parentListId, subGroupBy } = payload;\n const isSubGroupCase = subGroupBy !== undefined && parentListId !== undefined;\n\n const getBoardIds = () => {\n const ids = [];\n if (boardId) ids.push(boardId);\n if (epicId) ids.push(`${constants.inEpicBoardIdPrefix}-${epicId}`);\n return ids;\n };\n\n const shouldSkipBoard = () =>\n epicId && Object.keys(state.cards[cardId]?.parent_card || {}).length;\n\n const resolveListId = (bId: string) => {\n const specialCases = [\n listId === 'notags' && groupBy === 'tag',\n listId === 'unassigned' && groupBy === 'assignee',\n !isSubGroupCase && listId === 'noproject' && groupBy === 'epic',\n ];\n return specialCases.some(Boolean) ? `${bId}-${listId}` : listId;\n };\n\n const handleSubGroup = (bId: string, lId: string | number) => {\n const ensurePathExists = (obj: any, keys: string[], finalValue: any) => {\n let current = obj;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!current[key]) {\n current[key] = i === keys.length - 1 ? finalValue : {};\n }\n current = current[key];\n }\n };\n\n const path = [bId, groupBy, subGroupBy, parentListId, lId];\n ensurePathExists(state.cardsSubGroupByOrder, path, { cardIds: [] });\n\n const target = path.reduce((acc, key) => acc[key], state.cardsSubGroupByOrder);\n if (!target.cardIds.includes(cardId)) {\n target.cardIds.push(cardId);\n localStorage.setItem(\n `subGroupByOrder-${teamId}`,\n JSON.stringify(state.cardsSubGroupByOrder)\n );\n }\n };\n\n const handleRegularGroup = (bId: string, lId: string | number) => {\n if (!state.boardListGroupByOrder[bId]?.[groupBy]) return;\n\n const group = state.boardListGroupByOrder[bId][groupBy];\n if (!group[lId]) {\n group.order.push(lId);\n group[lId] = { cardIds: [] };\n }\n\n if (!group[lId].cardIds.includes(cardId)) {\n group[lId].cardIds.push(cardId);\n localStorage.setItem(`groupByOrder-${teamId}`, JSON.stringify(state.boardListGroupByOrder));\n }\n };\n\n getBoardIds().forEach((bId: string) => {\n if (shouldSkipBoard()) return;\n const lId = resolveListId(bId);\n\n isSubGroupCase ? handleSubGroup(bId, lId) : handleRegularGroup(bId, lId);\n });\n },\n\n removeCardFromSubGroupByList(\n state,\n { boardId, epicId, cardId, parentListId, listId, groupBy, subGroupBy, teamId }\n ) {\n const isSpecialCaseListId =\n (listId === 'notags' && groupBy === 'tag') ||\n (listId === 'unassigned' && groupBy === 'assignee');\n\n const boardIds = [boardId, epicId ? `${constants.inEpicBoardIdPrefix}-${epicId}` : null].filter(\n Boolean\n );\n\n for (const bId of boardIds) {\n if (epicId && Object.keys(state.cards[cardId]?.parent_card || {}).length) {\n continue;\n }\n\n const lId = isSpecialCaseListId ? `${bId}-${listId}` : listId;\n const subGroupByObject = state.cardsSubGroupByOrder?.[bId]?.[groupBy]?.[subGroupBy];\n\n if (!subGroupByObject?.[parentListId]?.[lId]) continue;\n\n const cardIds = subGroupByObject[parentListId][lId].cardIds;\n const index = cardIds.indexOf(cardId);\n if (index !== -1) cardIds.splice(index, 1);\n\n localStorage.setItem(`subGroupByOrder-${teamId}`, JSON.stringify(state.cardsSubGroupByOrder));\n }\n },\n};\n\nexport default mutations;\n","const getItemAndIndex = (itemsArray: any[], itemId: number, compareKey: string = 'id') => {\n let itemIndex: number = -1;\n const item = itemsArray.find((i: any, index: number) => {\n if (i[compareKey] && i[compareKey] === itemId) {\n itemIndex = index;\n return i;\n }\n return false;\n });\n\n return { item, itemIndex };\n};\n\nexport default getItemAndIndex;\n","import { CardHint } from '@superthread-com/api';\nimport { RemoveSuggestionPayload, SuggestionType } from '@/types/suggestions';\n\nexport default (payload: RemoveSuggestionPayload, suggestions: CardHint[]) => {\n const { type, card_id, tagName } = payload;\n let index = -1;\n switch (type) {\n case SuggestionType.relation:\n index = suggestions.findIndex(\n ({ relation }: CardHint) => relation?.card?.card_id === card_id\n );\n break;\n case SuggestionType.tag:\n index = suggestions.findIndex(\n ({ tag }: CardHint) => tagName?.toLowerCase() === tag?.name?.toLowerCase()\n );\n break;\n }\n\n if (index > -1) {\n suggestions.splice(index, 1);\n }\n\n return suggestions;\n};\n","import { ResourceType } from '@/types/resources';\nimport { DisplayedCard, DisplayedCardPayload } from '@/types/displayedCard';\nimport constants from '@/utilities/constants';\n\n// This utility function is used to normalize the payload\n// used for display card, it allows passing payload in different formats\nconst getNormalizedDisplayedCardPayload = (\n rs: any, // rootState\n payload: DisplayedCardPayload = []\n): DisplayedCard[] => {\n if (!payload.length) {\n return [];\n }\n\n if (typeof payload === 'string') {\n payload = [payload];\n }\n\n const getCardType = (cardId: string) => rs.boards.cards[cardId]?.type || ResourceType.Card;\n\n const getCardLayout = (cardId: string): string => {\n const isEpic = rs.boards.cards[cardId]?.type === ResourceType.Epic;\n return isEpic ? constants.fullScreen : rs.boards.currentCardLayout;\n };\n\n const normalizePayload = (cardId: string): DisplayedCard => {\n return {\n id: cardId,\n layout: getCardLayout(cardId),\n resource_type: getCardType(cardId),\n comment_activity_order: rs.commentsOrder || 'newest',\n comment_activity_filter: rs.cardCommentActivityFilter || 'all',\n };\n };\n\n const arrDisplayedCards: DisplayedCard[] = [];\n for (const c of payload) {\n if (typeof c === 'string') {\n arrDisplayedCards.push(normalizePayload(c));\n } else {\n // allow passing in custom values for displayed cards prop\n arrDisplayedCards.push({ ...normalizePayload(c.id), ...c });\n }\n }\n\n return arrDisplayedCards;\n};\n\nexport { getNormalizedDisplayedCardPayload };\n","/**\n * Boards module actions\n * @packageDocumentation\n * @category Store\n */\nimport { ActionTree } from 'vuex';\nimport { BoardState as State, CardsLayoutOption } from '@/types';\nimport { RemoveSuggestionPayload, SuggestionType } from '@/types/suggestions';\nimport { authGet, authPut, authPost, authDelete, authPatch, api } from '@/utilities/api';\nimport getItemAndIndex from '@/utilities/getItemAndIndex';\nimport { addCard } from '@/utilities/moveCard';\nimport constants from '@/utilities/constants';\nimport styleVariables from '@/assets/scss/variables.module.scss';\nimport {\n Board,\n ListBehavior,\n CardHint,\n GetCardResponse,\n GetEpicResponse,\n GetBoardResponse,\n GetEpicsResponse,\n CreateCardRequest,\n CreateEpicRequest,\n UpdateCardResponse,\n UpdateEpicResponse,\n CreateCardResponse,\n CreateEpicResponse,\n Card,\n List,\n Epic,\n EpicBrief,\n} from '@superthread-com/api';\nimport { nanoid } from 'nanoid';\nimport { groupByOption } from '@/types/groupByOption';\nimport { OnboardingActionType } from '@/types/onboardingActions';\nimport fnRemoveSuggestion from '@/utilities/removeSuggestion';\nimport { ResourceType } from '@/types/resources';\nimport { EpicsBoard, IEpic } from '@/types/epics';\nimport { defaultSprintStatuses, getCardStatus } from '@/utilities/defaultCardStatuses';\nimport { translate } from '@/utilities';\nimport { DisplayedCardPayload, DisplayedCard } from '@/types/displayedCard';\nimport { getNormalizedDisplayedCardPayload } from '@/utilities/displayCardUtil';\nimport { getSprintKey, getSprintListKey } from '@/utilities/sprintKeys';\nimport cardStatusType from '@/types/cardStatusType';\nimport { toRaw } from 'vue';\nimport cloneDeep from 'lodash/cloneDeep';\n\n// activePromisess is object with key type of structure and value of\n// object with key of id and value of promise:\n// This is used to reduce the number of requests to the server\nconst activePromises: { [key: string]: { [key: string]: Promise } } = {\n boards: {},\n lists: {},\n cards: {},\n tags: {},\n sprints: {},\n projectBoards: {},\n};\n\nconst actions: ActionTree = {\n setBoardsListsIds({ commit }, boards) {\n commit('setBoardsListsIds', boards);\n },\n /**\n * Action for loading a boards in current project.\n * https://api.superthread.com/v1/boards\n */\n loadBoards({ commit, getters }, projectIdParam) {\n let projectId = projectIdParam;\n if (activePromises.projectBoards[projectId] !== undefined) {\n return activePromises.projectBoards[projectId];\n }\n if (!projectIdParam) {\n projectId = getters.getCurrentProjectId;\n commit('loadingBoards', true);\n }\n\n activePromises.projectBoards[projectId] = api.boards\n .getBoards(getters.getTeamID, { project_id: projectId })\n .then(({ data }) => {\n const { boards, board_order: projectBoards } = data;\n commit('setProjectBoards', {\n projectId,\n projectBoards,\n });\n commit('setFlatBoards', boards);\n commit('setBoardsListsIds', boards);\n const boardLists: string | any[] = [];\n boards?.forEach((b: Board) => {\n boardLists.push(...(b.lists || []));\n });\n commit('setBoardListsFlat', boardLists);\n const listCards: any = {};\n boardLists.forEach((l: any) => {\n listCards[l.id] = [...(l.card_order || [])];\n });\n commit('setListCards', listCards);\n return data;\n })\n .catch(() => {})\n .finally(() => {\n if (getters.loadingBoards) {\n commit('loadingBoards', false);\n }\n delete activePromises.projectBoards[projectId];\n });\n return activePromises.projectBoards[projectId];\n },\n\n setProjectBoards({ commit }, payload) {\n commit('setProjectBoards', payload);\n },\n\n localUpdateProjectBoardsOrder({ commit }, { projectId, payload }) {\n commit('localUpdateProjectBoardsOrder', { projectId, payload });\n },\n\n removeProjectBoard({ commit }, payload) {\n commit('removeProjectBoard', payload);\n },\n\n /**\n * Action for getting a single board.\n * https://api.superthread.com/v1/boards/{board_id}\n */\n\n handleBoardCreated({ commit }, { board }) {\n commit('addBoardInBoards', board);\n commit('setFlatBoards', [board]);\n commit('setBoardsListsIds', [board]);\n if (board.lists) {\n commit('setBoardListsFlat', board.lists);\n }\n },\n\n /**\n * Fetch full board or epics board (roadmap).\n * https://api.superthread.com/v1/{team_id}/boards/{board_id}\n * https://api.superthread.com/v1/{team_id}/epics\n * @param {string} boardId - id of the board to fetch, in case of epic its hardcoded to 'epics'\n * @param {string} teamId - id of the team\n */\n fetchBoard({ getters, dispatch }, { boardId, teamId = getters.getTeamID }) {\n // prevent multiple same requests if request is already in progress\n const existingPromise = activePromises.boards[boardId];\n if (existingPromise !== undefined) return existingPromise;\n\n const isEpicsBoard = boardId === constants.epicsBoardId;\n const req = isEpicsBoard\n ? api.boards.getEpics(getters.getTeamID)\n : api.boards.getBoard(getters.getTeamID, boardId);\n\n const promise = req\n .then(({ data }: { data: GetBoardResponse | GetEpicsResponse }) => {\n const board = isEpicsBoard ? (data as EpicsBoard) : (data as GetBoardResponse).board;\n if (!board) throw new Error('Invalid response');\n\n if (isEpicsBoard) board.id = constants.epicsBoardId;\n if (teamId === getters.getTeamID) {\n dispatch('postFetchBoard', { board });\n }\n\n return { board };\n })\n .catch((error) => {\n const currentRouteName = getters.getCurrentRoute.name;\n if (\n error.response?.status === 403 &&\n (currentRouteName === constants.routeNames.board ||\n currentRouteName === constants.routeNames.boardCard) &&\n boardId === getters.currentBoardId\n ) {\n dispatch('itemNotFound', true);\n }\n if (!boardId?.includes('s')) {\n // if boardId is not a sprint board\n dispatch('addBoardInBoards', { id: `${boardId}_notFound`, notFound: true });\n }\n throw error;\n })\n .finally(() => {\n // remove promise from activePromises.boards\n delete activePromises.boards[boardId];\n });\n // add promise to activePromises.boards\n activePromises.boards[boardId] = promise;\n return promise;\n },\n\n postFetchBoard({ commit, getters }, { board }: { board: any }) {\n const isEpicsBoard = board.id === constants.epicsBoardId;\n\n if (isEpicsBoard) {\n board.lists?.forEach((l: List) => {\n l.board_id = constants.epicsBoardId;\n });\n }\n\n commit('setFlatBoards', [board]);\n commit('setBoardsListsIds', [board]);\n commit('setBoardListsFlat', board.lists);\n\n const listCards: any = {};\n const cards: any = {};\n board.lists?.forEach((l: any) => {\n listCards[l.id] = [...(l.card_order || [])];\n (isEpicsBoard ? l.epics : l.cards)?.forEach((c: any) => {\n if (c) {\n const stateCard = getters.getCards[c.id] || {};\n\n cards[c.id] = {\n ...toRaw(stateCard),\n ...toRaw(c),\n ...(c.type === ResourceType.Epic && { board_id: constants.epicsBoardId }),\n };\n }\n if (c?.child_cards?.length) {\n c.child_cards.forEach((child: any) => {\n if (!getters.getCards[child.card_id]) {\n child.partially_loaded = true;\n child.id = child.card_id;\n commit('addCardToCards', { card: child });\n }\n });\n }\n });\n });\n commit('setCards', cards);\n commit('setListCards', listCards);\n },\n\n /**\n * Archives the board with passed id.\n * https://api.superthread.com/v1/{team_id}/boards/{board_id}\n * @param {string} id\n */\n archiveBoard({ getters, dispatch }, { id, archived }) {\n return authPatch(`${getters.getRoutes.boards}/v1/${getters.getTeamID}/boards/${id}`, {\n archived,\n })\n .then(() => {\n const timeNow = Math.floor(Date.now() / 1000);\n dispatch('updateBoardPropertyInBoards', {\n boardId: id,\n propertyName: 'archived',\n value: {\n time_archived: timeNow,\n user_id: getters.getUserId,\n },\n });\n })\n .catch(() => {\n dispatch('updateBoardPropertyInBoards', {\n boardId: id,\n propertyName: 'archived',\n value: false,\n });\n });\n },\n /**\n * Load archived boards or lists or cards.\n * https://api.superthread.com/v1/{team_id}/boards?archived=true\n * https://api.superthread.com/v1/{team_id}/lists?archived=true\n * https://api.superthread.com/v1/{team_id}/cards?archived=true\n * @param {string} section\n */\n loadArchived({ commit, getters }, section) {\n return authGet(`${getters.getRoutes.boards}/v1/${getters.getTeamID}/${section}`, {\n params: {\n archived: true,\n },\n })\n .then((r) => r.data)\n .then(({ boards, lists, cards }) => {\n switch (section) {\n case 'boards':\n commit('setArchivedBoards', boards);\n commit('setFlatBoards', boards);\n commit('setBoardsListsIds', boards);\n // eslint-disable-next-line no-case-declarations\n const boardLists: string | any[] = [];\n boards.forEach((b: { lists: any }) => {\n boardLists.push(...(b.lists || []));\n });\n commit('setBoardListsFlat', boardLists);\n\n // eslint-disable-next-line no-case-declarations\n const listCards: any = {};\n boardLists.forEach((l: any) => {\n listCards[l.id] = [...(l.card_order || [])];\n });\n commit('setListCards', listCards);\n\n return boards;\n case 'lists':\n commit('setBoardListsFlat', lists);\n commit('setArchivedLists', lists);\n return lists;\n case 'cards':\n // eslint-disable-next-line no-case-declarations\n const newCards: any = {};\n cards.forEach((c: any) => {\n newCards[c.id] = c;\n });\n commit('setCards', newCards);\n\n commit('setArchivedCards', cards);\n return cards;\n default:\n return [];\n }\n });\n },\n /**\n * Archives a list with passed id.\n * https://api.superthread.com/v1/{team_id}/lists/{list_id}\n * @param {string} id\n */\n archiveList({ getters, dispatch, state, commit }, id) {\n const list = state.lists[id];\n const currentListOrder = [...state.boardsListsIds[list.board_id]];\n const newListOrder = [...currentListOrder];\n\n const index = newListOrder.indexOf(id);\n if (index > -1) {\n commit('removeBoardListId', {\n boardId: list.board_id,\n id,\n });\n }\n return authPatch(\n `${getters.getRoutes.lists}/v1/${getters.getTeamID}/boards/${list.board_id}/lists/${id}`,\n { archived: true }\n )\n .then((data) => {\n dispatch('addUiNotification', {\n message: translate('archiveSuccess', {\n name: list.title,\n type: translate(ResourceType.List).toLowerCase(),\n }),\n status: constants.uiNotificationStatuses.warning,\n icon: 'archive',\n duration: 4000,\n labels: [\n {\n text: translate('undo'),\n type: constants.uiNotificationElements.button,\n action: 'unarchiveList',\n buttonStyle: 'important',\n params: {\n id,\n passedList: list,\n },\n },\n ],\n });\n return data;\n })\n .catch(() => {\n if (index > -1) {\n commit('addBoardListId', {\n boardId: list.board_id,\n listId: id,\n });\n }\n });\n },\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getList({ getters }, { teamId, listId, isEpicsList = false }) {\n const existingPromise = activePromises.lists[listId];\n if (existingPromise !== undefined) return existingPromise;\n\n const promise = api.boards\n .getList(teamId, listId)\n .then(({ data }) => {\n // epics list dont have board_id in resp\n if (isEpicsList && data.list) {\n data.list.board_id = constants.epicsBoardId;\n }\n\n return data;\n })\n .catch((error) => {\n throw error;\n })\n .finally(() => {\n delete activePromises.lists[listId];\n });\n\n activePromises.lists[listId] = promise;\n return promise;\n },\n\n unarchiveList({ getters, commit }, { id, passedList }) {\n const newArchivedBoardLists = getters.archivedLists;\n\n const { item: list, itemIndex: index } = getItemAndIndex(newArchivedBoardLists, id);\n\n newArchivedBoardLists.splice(index, 1);\n commit('setArchivedLists', newArchivedBoardLists);\n return authPatch(`${getters.getRoutes.lists}/v1/${getters.getTeamID}/lists/${id}`, {\n archived: false,\n })\n .then((data) => {\n commit('addBoardListId', {\n boardId: passedList.board_id,\n listId: id,\n });\n return data;\n })\n .catch((error) => {\n commit('addArchivedListToIndex', { list, index });\n throw error;\n });\n },\n /**\n * Sets lists to the state.\n * @param {any} data\n */\n setBoardListsFlat({ commit }, data) {\n commit('setBoardListsFlat', data);\n },\n\n addBoardListId({ commit }, payload) {\n commit('addBoardListId', payload);\n },\n\n replaceBoardListId({ commit }, payload) {\n commit('replaceBoardListId', payload);\n },\n\n removeBoardListId({ commit }, payload) {\n commit('removeBoardListId', payload);\n },\n\n moveBoardListId({ commit }, payload) {\n commit('moveBoardListId', payload);\n },\n\n removeBoardList({ commit }, listId) {\n commit('removeBoardList', listId);\n },\n\n /**\n * Sets passed board object as current on the state.\n * @param {Board} board\n */\n setCurrentBoardId({ commit }, board) {\n commit('setCurrentBoardId', board);\n },\n\n /**\n * Action for updating list.\n * @param {String} listId\n * @param {Object} list\n * https://api.superthread.com/v1/lists/{list_id}\n */\n updateList({ getters }, { boardId, listId, list }) {\n const isEpicsList = boardId === constants.epicsBoardId;\n const req = isEpicsList\n ? api.boards.updateEpicsList(getters.getTeamID, listId, list)\n : api.boards.updateList(getters.getTeamID, listId, list);\n return req;\n },\n /**\n * Publish list using passed board id.\n * @param {string} boardId\n * @param {string} list\n * https://api.superthread.com/v1/lists\n */\n createBoardList({ getters }, { boardId, list }) {\n const isEpicsList = boardId === constants.epicsBoardId;\n const req = isEpicsList\n ? api.boards.createEpicsList(getters.getTeamID, list)\n : api.boards.createList(getters.getTeamID, { ...list, board_id: boardId });\n return req\n .then(({ data }) => {\n if (isEpicsList && data.list) {\n data.list.board_id = constants.epicsBoardId;\n }\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Sets list's cards to the state.\n * @param {any} data\n */\n /**\n * Creates a card/epic with passed title in specific list by using passed listId.\n * https://api.superthread.com/v1/{team_id}/cards\n * https://api.superthread.com/v1/{team_id}/epics\n * @param {object} card - object containning card/epic fields\n * @param {ResourceType} type - 'card' or 'epic'\n */\n createCard(\n { getters, dispatch },\n {\n card,\n type = ResourceType.Card,\n }: {\n card: CreateCardRequest | CreateEpicRequest;\n type?: ResourceType;\n }\n ): Promise {\n const isEpic = type === ResourceType.Epic;\n\n if (!card.list_id || !card.title)\n return Promise.reject(new Error(constants.missingCardTitleOrListIdErr));\n\n const params: CreateCardRequest | CreateEpicRequest = {\n ...card,\n schema: card.schema ?? getters.cardsSchema,\n };\n\n const req = isEpic\n ? api.boards.createEpic(getters.getTeamID, params as CreateEpicRequest)\n : api.boards.createCard(getters.getTeamID, params as CreateCardRequest);\n\n return req\n .then(({ data }: { data: CreateCardResponse | CreateEpicResponse }) => {\n const card = isEpic ? (data as CreateEpicResponse).epic : (data as CreateCardResponse).card;\n\n if (!card) throw new Error('Invalid response');\n dispatch('completeOnboardingActions', [OnboardingActionType.CreateCard]);\n\n //@ts-ignore\n if (isEpic) card.board_id = constants.epicsBoardId;\n\n return { card };\n })\n .catch((err) => err);\n },\n /**\n * Updates card/epic to the passed object.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id} - EP for card\n * https://api.superthread.com/v1/{team_id}/epics/{epic_id} - EP for epic\n * @param {ResourceType} type - 'card' or 'epic'\n * @param {string} cardId - id of a card/epic to update\n * @param {object} card - object containning card/epic fields to update\n */\n updateCard(\n { getters, commit, dispatch },\n {\n cardId,\n card,\n type = ResourceType.Card,\n oldListId,\n }: {\n cardId: string;\n card: any;\n type?: ResourceType;\n oldListId: string;\n }\n ) {\n const isEpic = type === ResourceType.Epic;\n const movingCard = Boolean(card.list_id);\n const { getTeamID: teamId } = getters;\n const updateRequest = isEpic ? api.boards.updateEpic : api.boards.updateCard;\n\n const stateCard = getters.getCardById(cardId);\n const epicId = stateCard?.epic?.id;\n if (movingCard && !isEpic && epicId) {\n const { project_id, sprint_id, list_id } = card;\n const listId =\n sprint_id && project_id ? getSprintListKey(project_id, sprint_id, list_id) : list_id;\n\n const oldList = getters.lists[oldListId || ''];\n if (oldList) {\n commit('removeCardFromGroupByList', {\n epicId,\n cardId,\n listId: oldList.behavior || 'backlog',\n groupBy: 'statusType',\n teamId,\n });\n }\n\n const newList = getters.lists[listId];\n if (newList) {\n commit('addCardToGroup', {\n epicId,\n cardId,\n listId: newList.behavior || 'backlog',\n groupBy: 'statusType',\n teamId,\n });\n }\n }\n\n const positionUpdate = 'position' in card;\n\n if (isEpic) {\n card.board_id = constants.epicsBoardId;\n if (positionUpdate) {\n card.list_id = card.list_id ?? stateCard.list_id;\n }\n }\n\n return updateRequest(teamId, cardId, card)\n .then((resp: { data: UpdateCardResponse | UpdateEpicResponse }) => {\n if (movingCard || card.title) {\n dispatch('localUpdateChildParent', { card, cardId });\n }\n if (isEpic && positionUpdate) {\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'list_id',\n fieldValue: card.list_id,\n });\n }\n return resp;\n })\n .catch((resp) => {\n if (typeof resp === 'string') return resp;\n\n const { response } = resp;\n const error = response.data;\n\n if (error.message === 'oldSchema') {\n // add ui notification\n commit('addUiNotification', {\n message: translate('updateAppToEditCard'),\n duration: 4000,\n id: nanoid(4),\n });\n }\n\n throw error;\n });\n },\n\n localUpdateChildParent({ getters, dispatch }, { card, cardId }) {\n const cardData = getters.getCards[cardId] || {};\n if (!cardData.child_cards?.length) return;\n\n const list = card.sprint_id\n ? getters.lists[getSprintListKey(card.project_id, card.sprint_id, card.list_id)]\n : getters.lists[card.list_id];\n\n cardData.child_cards?.forEach((childCard: any) => {\n const childCardData = getters.getCards[childCard.card_id] || {};\n if (!childCardData.parent_card) return;\n\n const parentCardData = {\n card_id: childCardData.parent_card.card_id,\n title: card.title || childCardData.parent_card.title,\n list_color: card.title ? childCardData.parent_card.list_color : list?.color,\n status: card.title ? childCardData.parent_card.status : list?.behavior,\n };\n\n dispatch('localUpdateCardField', {\n cardId: childCardData.id,\n fieldName: 'parent_card',\n fieldValue: parentCardData,\n });\n });\n },\n\n /**\n * Local update card on state\n * Update specific card with new values.\n * @param {string} cardId required\n * @param {object} card required (provide card fields to update)\n * @param {boolean} overwrite optional (default: false)\n * @param {string} timeUpdated optional (default: null)\n * @param {string} userIdUpdated optional (default: null)\n */\n localUpdateCardFields({ commit }, payload) {\n commit('localUpdateCardFields', { ...payload });\n },\n /**\n * Local update card on state\n * Update specific card's field with new value.\n * @param {string} cardId\n * @param {string} fieldName\n * @param {string} fieldValue\n */\n localUpdateCardField({ commit }, payload) {\n commit('localUpdateCardField', { ...payload });\n },\n\n /**\n * Update local card with patch request\n * @param {string} cardId\n * @param {object} card\n * @param {boolean} updateTime\n * @param {boolean} updateUserId\n * @returns {Promise}\n * @throws {Error}\n * @example\n * updateCardWithPatchRequest({ cardId: '1', card: { title: 'new title' } });\n * updateCardWithPatchRequest({ cardId: '2', card: { due_date: 1691160300, start_date: 1684161900 }, updateTime: false });\n **/\n updateCardWithPatchRequest(\n { getters, dispatch },\n { cardId, card, updateTime = true, updateUserId = true }\n ) {\n const { getCards, getUserId } = getters;\n const cards = getCards || {};\n const oldCard = cards[cardId];\n dispatch('localUpdateCardFields', {\n cardId,\n card,\n overwrite: false,\n ...(updateTime && { timeUpdated: Math.floor(Date.now() / 1000) }),\n ...(updateUserId && { userIdUpdated: getUserId }),\n });\n return dispatch('updateCard', { cardId, card }).catch((error) => {\n dispatch('localUpdateCardFields', {\n cardId,\n card: oldCard,\n overwrite: true,\n });\n throw error;\n });\n },\n\n localUpdateCardFieldInMultipleCards({ commit }, payload) {\n commit('localUpdateCardFieldInMultipleCards', payload);\n },\n\n /**\n * Creates published board.\n * https://api.superthread.com/v1/boards\n */\n createPublishedBoard({ getters }, { title = '', icon, color, project_id, layout }) {\n if (!getters.getNewBoardProjectId && !project_id) {\n const msg = 'No project selected';\n return Promise.reject(new Error(msg));\n }\n\n return api.boards\n .createBoard(getters.getTeamID, {\n project_id: project_id || getters.getNewBoardProjectId,\n title,\n icon,\n color,\n // @ts-ignore\n layout,\n lists: [\n {\n title: 'Backlog',\n behavior: ListBehavior.Backlog,\n icon: 'circle-dotted',\n color: styleVariables.gray400,\n },\n {\n title: 'To do',\n behavior: ListBehavior.Committed,\n icon: 'disc',\n color: styleVariables.gray700,\n },\n {\n title: 'Doing',\n behavior: ListBehavior.Started,\n icon: 'play-circle',\n color: styleVariables.stBlue,\n },\n {\n title: 'Done',\n behavior: ListBehavior.Completed,\n icon: 'check-circle',\n color: styleVariables.success400,\n },\n {\n title: 'Cancelled',\n behavior: ListBehavior.Cancelled,\n icon: 'x-circle',\n color: styleVariables.warning500,\n },\n ],\n })\n .then(({ data }) => {\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n async createBoardCopy({ getters, dispatch }, { boardId, projectId, title }) {\n const resp = await api.boards.copyBoard(getters.getTeamID, boardId, {\n project_id: projectId,\n title,\n });\n\n if (resp.status < 200 || resp.status >= 300 || !resp.data.board) {\n throw new Error('failed to copy board');\n }\n\n const board = resp.data.board;\n dispatch('addBoardInBoards', board);\n dispatch('localAddProjectBoardOrder', {\n projectId: board.project_id,\n boardId: board.id,\n });\n\n return board;\n },\n\n /**\n * Update board\n * https://api.superthread.com/v1/boards/{board_id}\n */\n updateBoard({ getters }, { id, board }) {\n return api.boards.updateBoard(getters.getTeamID, id, board).catch((error) => {\n throw error;\n });\n },\n\n /**\n * Sets the id of a project to the state.\n * @param {string} name\n */\n setNewBoardProjectId({ commit }, name) {\n commit('setNewBoardProjectId', name);\n },\n /**\n * Loads details of the specific card by using passed cardId.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}\n * @param {string} cardId\n */\n\n /**\n * Creates a checklist in a certain card by using passed cardId.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}/checklists\n * @param {string} cardId\n * @param {string} checklistTitle\n */\n createChecklist({ getters }, { cardId, checklistTitle }) {\n if (!cardId || !checklistTitle) {\n return Promise.reject(new Error('Missing checklist title or card id'));\n }\n const { getRoutes, getTeamID } = getters;\n return authPost(`${getRoutes.checklists}/v1/${getTeamID}/cards/${cardId}/checklists`, {\n title: checklistTitle,\n })\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n /**\n * Updates checklist.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}/checklists/{checklist_id}\n * @param {object} payload { id: string, field_name: string, field_value: any }\n */\n updateChecklist({ getters }, { cardId, checklistId, payload }) {\n const { getRoutes, getTeamID } = getters;\n return authPatch(\n `${getRoutes.checklists}/v1/${getTeamID}/cards/${cardId}/checklists/${checklistId}`,\n { ...payload }\n ).catch((error) => {\n throw error;\n });\n },\n /**\n * Deletes a certain checklist by using passed id.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}/checklists/{checklist_id}\n * @param {string} id\n */\n deleteChecklist({ getters, commit, state, dispatch }, { id, cardId }) {\n const { getRoutes, getTeamID, getCardById } = getters;\n const card = getCardById(cardId);\n const oldCardChecklists = [...state.cards[cardId].checklists];\n const oldChecklistOrder = [...state.cards[cardId].checklist_order];\n const oldChecklistItemOrder = { ...state.cards[cardId].checklist_item_order };\n\n const cardChecklistIndex = oldCardChecklists.findIndex((c) => c.id === id);\n const cardChecklists = [...oldCardChecklists];\n cardChecklists.splice(cardChecklistIndex, 1);\n\n const checklistOrderIndex = card.checklist_order.findIndex((co: any) => co === id);\n const checklistOrder = [...card.checklist_order];\n checklistOrder.splice(checklistOrderIndex, 1);\n\n // remove checklist from current card checklists\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklists',\n fieldValue: cardChecklists,\n });\n\n // remove checklist from current card checklist_order\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklist_order',\n fieldValue: checklistOrder,\n });\n // remove checklist_item_order from current card\n dispatch('removeOrReplaceLocalCurrentCardChecklistItemOrder', {\n cardId,\n localId: id,\n });\n return authDelete(\n `${getRoutes.checklists}/v1/${getTeamID}/cards/${cardId}/checklists/${id}`\n ).catch((error) => {\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklists',\n fieldValue: oldCardChecklists,\n });\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklist_order',\n fieldValue: oldChecklistOrder,\n });\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklist_item_order',\n fieldValue: oldChecklistItemOrder,\n });\n throw error;\n });\n },\n\n /**\n * Creates checklist item in a certain checklist by using passed checklistId.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}/checklists/{checklist_id}/items\n * @param {string} checklistId\n * @param {string} title\n */\n createPublishedChecklistItem({ getters }, { cardId, checklistId, title }) {\n const { getRoutes, getTeamID } = getters;\n const itemsBase = getRoutes.checklistitems;\n return authPost(\n `${itemsBase}/v1/${getTeamID}/cards/${cardId}/checklists/${checklistId}/items`,\n {\n title,\n checklist_id: checklistId,\n }\n )\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n /**\n * Deletes a certain checklist item by using passed checklistId and checklistItemId.\n * https://api.superthread.com/v1/{team_id}/checklists/{checklist_id}/items/{item_id}\n * @param {string} checklistId\n * @param {string} checklistItemId\n */\n deleteChecklistItem({ getters }, { checklistItem, cardId, checklistId }) {\n const { getRoutes, getTeamID } = getters;\n const { id } = checklistItem;\n const itemsUrl = getRoutes.checklistitems;\n\n return authDelete(\n `${itemsUrl}/v1/${getTeamID}/cards/${cardId}/checklists/${checklistId}/items/${id}`\n );\n },\n\n localDeleteChecklistItem({ commit, getters }, { cardId, checklistItem }) {\n const card = JSON.parse(JSON.stringify(getters.getCards[cardId]));\n\n if (card) {\n const { checklists } = card;\n const clIndex = checklists.findIndex((cl: any) => cl.id === checklistItem.checklist_id);\n if (clIndex > -1) {\n const itemIndex = checklists[clIndex].items.findIndex(\n (cli: any) => cli.id === checklistItem.id\n );\n\n if (itemIndex > -1) {\n checklists[clIndex].items.splice(itemIndex, 1);\n }\n }\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklists',\n fieldValue: checklists,\n });\n }\n },\n /**\n * Archives a certain card by using passed cardId.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}\n * @param {string} cardId - id of the card to be archived/restored\n * @param {boolean} archived - true if card should be archived, false if card should be restored\n */\n archiveCard({ getters, dispatch }, { cardId, archived }) {\n const { getTeamID, getCards, getUserId } = getters;\n const card = getCards[cardId];\n const cardArchived = card.archived;\n const type = card.type || ResourceType.Card;\n\n // check if card is archived before trying to restore it\n if (!archived && !cardArchived) return;\n\n if (card.sprint_id) {\n dispatch('addUiNotification', {\n message: translate('cannotArchiveCardFromSprint'),\n status: constants.uiNotificationStatuses.warning,\n duration: 5000,\n });\n return;\n }\n\n if (archived) {\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'archived',\n fieldValue: {\n time_archived: Math.round(new Date().getTime() / 1000),\n user_id: getUserId,\n },\n });\n dispatch('removeCardFromListCards', {\n listId: card.list_id,\n cardId,\n });\n dispatch('removeCardFromGroupByBoard', { boardId: card.board_id, card });\n } else {\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'archived',\n fieldValue: false,\n });\n dispatch('addCardToListCards', {\n listId: card.list_id,\n cardId,\n });\n dispatch('removeCardFromArchived', cardId);\n }\n\n const interpolationData = {\n name: card.title,\n type: translate(type).toLowerCase(),\n };\n const successMsg = translate(archived ? 'archiveSuccess' : 'restoreSuccess', interpolationData);\n const errorMsg = translate(archived ? 'archiveError' : 'restoreError', interpolationData);\n\n const req =\n type == ResourceType.Epic\n ? api.boards.updateEpic(getTeamID, cardId, { archived })\n : api.boards.updateCard(getTeamID, cardId, { archived });\n\n return req\n .then(({ data }: { data: UpdateCardResponse | UpdateEpicResponse }) => {\n const isEpic = type == ResourceType.Epic;\n const card = isEpic\n ? ((data as UpdateEpicResponse).epic as IEpic)\n : (data as UpdateCardResponse).card;\n\n if (!card) throw new Error('Invalid response');\n if (isEpic) card.board_id = constants.epicsBoardId;\n\n dispatch('addUiNotification', {\n message: successMsg,\n status: constants.uiNotificationStatuses.warning,\n icon: 'archive',\n duration: 4000,\n // display undo button in toast notification only if card is being archived\n ...(archived && {\n labels: [\n {\n text: translate('undo'),\n type: constants.uiNotificationElements.button,\n action: 'archiveCard',\n buttonStyle: 'important',\n params: {\n cardId,\n archived: false,\n },\n },\n ],\n }),\n });\n\n if (!archived) {\n dispatch('addCardToGroupByBoard', { boardId: card.board_id, card });\n }\n\n dispatch('addCardToCards', { card });\n return { card };\n })\n .catch(() => {\n if (archived) {\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'archived',\n fieldValue: false,\n });\n dispatch('addCardToListCards', {\n listId: card.list_id,\n cardId,\n });\n dispatch('removeCardFromArchived', cardId);\n } else {\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'archived',\n fieldValue: cardArchived,\n });\n dispatch('removeCardFromListCards', {\n listId: card.list_id,\n cardId,\n });\n dispatch('removeCardFromGroupByBoard', { boardId: card.board_id, card });\n }\n dispatch('addUiNotification', {\n message: errorMsg,\n status: constants.uiNotificationStatuses.error,\n labels: [\n {\n text: translate('retry'),\n type: constants.uiNotificationElements.button,\n action: 'archiveCard',\n buttonStyle: 'important',\n params: {\n cardId,\n archived,\n },\n },\n ],\n });\n });\n },\n /**\n * Changes a parent card for a new one\n * * Triggering two requests be removed after adding a new endpoint\n * @param {Card} newParentCard - new parent card to add\n * @param {Card} childCard - card we add a parent to\n */\n changeParentCard({ getters, dispatch }, { newParentCard, childCard }) {\n if (!Object.keys(newParentCard || {}).length) {\n throw new Error('Missing new parent card when changing parent card');\n }\n\n if (!Object.keys(childCard || {}).length) {\n throw new Error('Missing child card when changing parent card');\n }\n\n const rawNewParent = toRaw(newParentCard);\n const newParent = cloneDeep(rawNewParent || {});\n const rawChild = toRaw(childCard);\n const child = cloneDeep(rawChild);\n const oldParent = JSON.parse(\n JSON.stringify(getters.getCards[child.parent_card?.card_id || ''] || {})\n );\n\n // locally add parent card to child\n dispatch('localUpdateCardField', {\n cardId: child.id,\n fieldName: 'parent_card',\n fieldValue: {\n card_id: newParent.id,\n title: newParent.title,\n list_color: newParent.list_color,\n status: newParent.status,\n },\n });\n // locally remove child card from old parent\n if (Object.keys(oldParent).length) {\n dispatch('localRemoveCardFromParent', {\n childCardId: child.id,\n card: oldParent,\n cardId: oldParent.id,\n });\n }\n // locally add child card to new parents child_card_order\n if (Object.keys(newParent).length) {\n dispatch('localAddCardToParent', {\n parentCard: newParent,\n childCard: child,\n });\n }\n // locally remove card from old epic and add it to new one\n if (Object.keys(child.epic || {}).length) {\n dispatch('localRemoveCardFromEpic', child.id);\n }\n if (Object.keys(newParent.epic || {}).length) {\n dispatch('localAddCardToEpic', { cardId: child.id, epicBrief: newParentCard.epic });\n }\n\n // remove child card from old parent card\n return (\n api.boards\n // make sure to use child.parent_card.card_id as we update child card locally before sending request\n .removeChildCard(getters.getTeamID, child.parent_card?.card_id, childCard.id)\n .then(() =>\n api.boards.addChildCard(getters.getTeamID, newParent.id, {\n card_id: childCard.id,\n })\n )\n .catch(() => {\n // rollback changes\n dispatch('localUpdateCardField', {\n cardId: child.id,\n fieldName: 'parent_card',\n fieldValue: {\n card_id: oldParent.id,\n title: oldParent.title,\n list_color: oldParent.list_color,\n status: oldParent.status,\n },\n });\n if (Object.keys(oldParent).length) {\n dispatch('localAddCardToParent', {\n parentCard: oldParent,\n childCard: child,\n });\n }\n if (Object.keys(newParent).length) {\n dispatch('localRemoveCardFromParent', {\n childCardId: child.id,\n card: newParent,\n cardId: newParent.id,\n });\n }\n // revert old epic changes\n if (Object.keys(newParent.epic || {}).length) {\n dispatch('localRemoveCardFromEpic', child.id);\n }\n if (Object.keys(child.epic || {}).length) {\n dispatch('localAddCardToEpic', { cardId: child.id, epicId: child.epic.id });\n }\n })\n );\n },\n /**\n * Removes a certain card from its parent by using passed cardId.\n * @param {string} childCardId\n * @param {string} cardId\n */\n removeCardFromParent({ getters, commit, dispatch }, { childCardId, card, cardId = card.id }) {\n // remove card locally\n const { getTeamID, getCards } = getters;\n const oldParentCard = JSON.parse(JSON.stringify(getCards[cardId]?.parent_card || {}));\n const childCard = JSON.parse(JSON.stringify(getCards[childCardId]));\n dispatch('localRemoveCardFromParent', { childCardId, cardId });\n\n if (Object.keys(childCard.epic || {}).length) {\n dispatch('localRemoveCardFromEpic', childCardId);\n }\n\n return api.boards\n .removeChildCard(getTeamID, cardId, childCardId)\n .then(({ data }) => data)\n .catch((error) => {\n if (Object.keys(card || {}).length > 0) {\n const oldChildCardOrder = [...card.child_card_order];\n commit('localUpdateCardField', {\n cardId: cardId,\n fieldName: 'child_card_order',\n fieldValue: oldChildCardOrder,\n });\n }\n commit('localUpdateCardField', {\n cardId: childCardId,\n fieldName: 'parent_card',\n fieldValue: oldParentCard,\n });\n if (Object.keys(childCard.epic || {}).length) {\n dispatch('localAddCardToEpic', { cardId: childCardId, epicId: childCard.epic.id });\n }\n dispatch('addUiNotification', {\n message: translate('removeChildCardFail'),\n status: constants.uiNotificationStatuses.error,\n labels: [\n {\n text: translate('retry'),\n type: constants.uiNotificationElements.button,\n action: 'removeCardFromParent',\n buttonStyle: 'important',\n params: { childCardId, card },\n },\n ],\n });\n throw error;\n });\n },\n /**\n * Removes a local child card from parent.\n * @param {string} childCardId\n * @param {string} cardId\n */\n localRemoveCardFromParent({ commit, getters }, { childCardId, cardId }) {\n const { getCards } = getters;\n const parentCard = getCards[cardId];\n const childCard = getCards[childCardId];\n\n if (parentCard) {\n const childCardOrder = parentCard?.child_card_order ?? [];\n const childCardIndex = childCardOrder.findIndex((id: string) => id === childCardId);\n\n if (childCardIndex > -1) {\n childCardOrder.splice(childCardIndex, 1);\n }\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'child_card_order',\n fieldValue: childCardOrder,\n });\n }\n\n if (childCard?.parent_card?.card_id == cardId) {\n commit('localUpdateCardField', {\n cardId: childCardId,\n fieldName: 'parent_card',\n fieldValue: {},\n });\n }\n },\n\n /**\n * Delete a card/epic.\n * https://api.superthread.com/v1/{team_id}/epics/{epic_id}\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}\n * @param {string} card - card/epic that is being deleted\n */\n async deleteCard(\n { getters, dispatch, commit },\n { cardId, cardType }: { cardId: string; cardType: string }\n ) {\n const card = getters.getCards[cardId] || {};\n const cardsByEpicId: (Card | IEpic)[] = Object.values(getters.getCardsByEpicId(cardId));\n\n if (Object.keys(card).length === 0) return Promise.reject(new Error('Card not found'));\n\n const { list_id: listId, board_id: boardId, sprint_id: sprintId } = card;\n const isEpic = card.type === ResourceType.Epic;\n const cardListId = sprintId ? getSprintListKey(card.project_id, sprintId, listId) : listId;\n const cardBoardId = sprintId ? getSprintKey(card.project_id, sprintId) : boardId;\n\n if (card.parent_card) {\n dispatch('localRemoveCardFromParent', {\n childCardId: cardId,\n cardId: card.parent_card.card_id,\n });\n }\n\n if (card.child_cards?.length > 0) {\n card.child_cards.forEach((childCard: any) => {\n dispatch('localUpdateCardField', {\n cardId: childCard.id,\n fieldName: 'parent_card',\n fieldValue: {},\n });\n });\n }\n\n // removing relation from all linked cards\n if (card.linked_cards?.length > 0) {\n card.linked_cards.forEach((linkedCard: any) => {\n const card = getters.getCards[linkedCard.card_id];\n if (!card) return;\n const linkedCards = card.linked_cards || [];\n const removeLinkedCardIndex = linkedCards.findIndex((c: any) => c.card_id === cardId);\n if (removeLinkedCardIndex > -1) {\n linkedCards.splice(removeLinkedCardIndex, 1);\n dispatch('localUpdateCardField', {\n cardId: linkedCard.card_id,\n fieldName: 'linked_cards',\n fieldValue: linkedCards,\n });\n }\n });\n }\n\n // remove epic field from all cards that have this epic\n for (const c of cardsByEpicId) {\n commit('localUpdateCardField', {\n cardId: c.id,\n fieldName: 'epic',\n fieldValue: {},\n });\n }\n\n if (card.epic) {\n dispatch('localRemoveCardFromEpic', cardId);\n }\n\n const oldListCards = cloneDeep(toRaw(getters.getListCards[cardListId]) || []);\n dispatch('removeCardFromCards', card.id);\n dispatch('removeCardFromListCards', { listId: cardListId, cardId });\n dispatch('removeCardFromGroupByBoard', { boardId: cardBoardId, card });\n\n const isFavourite = getters.isFavourite(cardId, card.type);\n const viewResult = getters.getViewResults;\n\n try {\n let response;\n if (isEpic) {\n response = await api.boards.deleteEpic(getters.getTeamID, cardId);\n } else {\n response = await api.boards.deleteCard(getters.getTeamID, cardId);\n const viewCardIndex = viewResult.findIndex((c: any) => c.id === cardId);\n if (viewCardIndex > -1) {\n viewResult.splice(viewCardIndex, 1);\n dispatch('setViewResults', viewResult);\n dispatch('currentViewTotalCount', viewResult.length);\n }\n }\n dispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: {\n id: cardId,\n type:\n cardType === constants.epicRoute.name\n ? constants.epicRoute.name\n : constants.routeNames.boardCard,\n },\n teamId: getters.getTeamID,\n });\n if (isFavourite) {\n dispatch('deleteUserFavourite', {\n resource_id: cardId,\n resource_type: card.type,\n title: card.title,\n });\n }\n return response;\n } catch (error) {\n dispatch('addCardToCards', { card });\n dispatch('setListCards', { [listId]: oldListCards });\n dispatch('addCardToGroupByBoard', { boardId: cardBoardId, card });\n dispatch('localAddCardToParent', {\n parentCard: card.parent_card.card_id,\n childCard: cardId,\n });\n if (card.child_cards.length > 0) {\n card.child_cards.forEach((childCard: any) => {\n dispatch('localUpdateCardField', {\n cardId: childCard.id,\n fieldName: 'parent_card',\n fieldValue: cardId,\n });\n });\n }\n for (const c of cardsByEpicId) {\n commit('localUpdateCardField', {\n cardId: c.id,\n fieldName: 'epic',\n fieldValue: {\n id: cardId,\n title: card.title,\n icon: card.icon || {},\n },\n });\n }\n if (card.epic) {\n dispatch('localAddCardToEpic', { cardId: card.id, epicId: card.epic.id });\n }\n throw error;\n }\n },\n\n /**\n * Toggles checklist item to passed checklist item.\n * @param {object} checklistItem\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}/checklists/{checklist_id}/items/{item_id}\n */\n checklistItemToggle({ getters }, { checklistItem, checklistId, cardId }) {\n const { id, checked } = checklistItem;\n const { getTeamID, getRoutes } = getters;\n const itemsUrl = getRoutes.checklistitems;\n return authPatch(\n `${itemsUrl}/v1/${getTeamID}/cards/${cardId}/checklists/${checklistId}/items/${id}`,\n { checked: !checked }\n ).then(({ data }) => data);\n },\n\n /**\n * Update checklist item\n * https://api.superthread.com/v1/{team_id}/checklists/{checklist_id}/items/{item_id}\n */\n updateChecklistItem({ getters }, { checklistId, checklistItemId: id, item, cardId }) {\n const { getTeamID, getRoutes } = getters;\n const itemsUrl = getRoutes.checklistitems;\n return authPatch(\n `${itemsUrl}/v1/${getTeamID}/cards/${cardId}/checklists/${checklistId}/items/${id}`,\n { ...item }\n )\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Sets card's creating view to display on a certain list by using passed listId.\n * @param {string} listId\n */\n setListDraftCardCreateView({ commit }, listId = '') {\n commit('setListDraftCardCreateView', listId);\n },\n /**\n * Moves the board to a certain project.\n * @param {string} boardId\n * @param {string} projectId\n */\n moveBoardToProject({ getters, dispatch, commit }, { boardId, projectId, position = -1 }) {\n const board = getters.getFlatBoards[boardId];\n const projectBoardsPosition = getters.getProjectBoards(board.project_id).indexOf(boardId);\n const originalProjectId = getters.draggingEntityProjectFromId.replace('pr-', '');\n const newProjectBoardsLength = getters.getProjectBoards(projectId).length;\n\n dispatch('removeProjectBoard', { boardId, projectId: originalProjectId });\n dispatch('addProjectBoard', {\n boardId,\n projectId,\n ...(position > -1 && newProjectBoardsLength && { position }),\n });\n\n dispatch('updateBoardPropertyInBoards', {\n boardId,\n propertyName: 'project_id',\n value: projectId,\n });\n\n commit('localUpdateProjectBoardOrder', {\n projectToId: projectId,\n projectFromId: originalProjectId,\n boardId,\n ...(position > -1 && newProjectBoardsLength && { position }),\n });\n\n return dispatch('updateBoard', {\n id: boardId,\n board: {\n project_id: projectId,\n ...(position > -1 && newProjectBoardsLength && { position }),\n },\n })\n .then(() => {\n if (projectId !== originalProjectId) {\n // update project ids in cards belonging to moved board\n const boardCardIds: any[] = [];\n (board.lists || []).forEach((l: any) => boardCardIds.push(l.card_order));\n dispatch('localUpdateCardFieldInMultipleCards', {\n cardIds: boardCardIds,\n fieldName: 'project_id',\n fieldValue: projectId,\n });\n }\n })\n .catch(() => {\n dispatch('removeProjectBoard', { boardId, projectId });\n dispatch('addProjectBoard', {\n boardId,\n projectId: originalProjectId,\n position: projectBoardsPosition,\n });\n dispatch('updateBoardPropertyInBoards', {\n boardId,\n propertyName: 'project_id',\n value: originalProjectId,\n });\n throw new Error('Could not move board.');\n });\n },\n\n localUpdateProjectBoardOrder({ commit }, { projectToId, projectFromId, boardId, position }) {\n commit('localUpdateProjectBoardOrder', {\n projectToId,\n projectFromId,\n boardId,\n position,\n });\n },\n\n addProjectBoard({ commit }, payload) {\n commit('addProjectBoard', payload);\n },\n\n /**\n * Stores position of recently removed list with list and board ids.\n */\n setRemovedBoardListPosition({ commit }, { position, boardId, listId }) {\n commit('setRemovedBoardListPosition', { position, boardId, listId });\n },\n /**\n * Stores position of recently removed card with list, card and board ids.\n */\n setRemovedCardPosition({ commit }, { position, cardId, boardId, listId }) {\n commit('setRemovedCardPosition', {\n position,\n cardId,\n boardId,\n listId,\n });\n },\n /**\n * Sets draggend entity object to the state.\n * @param {object} payload\n */\n setDraggedEntity({ commit }, payload) {\n commit('setDraggedEntity', payload);\n },\n /**\n * Sets dropTargetId to id of element in which dragging was finished.\n * @param {object} payload\n */\n setDropTargetId({ commit }, payload) {\n commit('setDropTargetId', payload);\n },\n /**\n * Moves the card to its parent card at passed position.\n * @param {object} childCard\n */\n moveCardToParent({ dispatch }, { childCard, parentCard }) {\n const alreadyAdded = parentCard.child_card_order.some((i: any) => i === childCard.card_id);\n\n if (alreadyAdded) return Promise.resolve();\n dispatch('localAddCardToParent', { parentCard, childCard });\n return dispatch('addChildCardToParent', { parentCard, childCard });\n },\n /**\n * Adds parent card to a card.\n * @param {object} parentCard\n * @param {object} childCard\n */\n addParentToCard({ dispatch, getters }, { parentCard, childCard }) {\n // check if already added\n if (getters.getCards[childCard.id].parent_card?.card_id === parentCard.id) {\n return Promise.resolve();\n }\n\n dispatch('localAddCardToParent', { parentCard, childCard });\n return dispatch('addChildCardToParent', { parentCard, childCard, initiatedByAddParent: true });\n },\n /**\n * Adds local child card to parent card.\n * @param {object} parentCard\n * @param {object} childCard\n */\n localAddCardToParent({ commit, getters }, { parentCard, childCard }) {\n const stateParentCard = getters.getCards[parentCard.id];\n if (!stateParentCard) return;\n\n const newChildCards = [...(stateParentCard.child_cards || [])];\n const newChildCardsOrder = [...(stateParentCard.child_card_order || [])];\n newChildCards.push(childCard);\n newChildCardsOrder.push(childCard.id);\n\n commit('localUpdateCardField', {\n cardId: parentCard.id,\n fieldName: 'child_card_order',\n fieldValue: newChildCardsOrder,\n });\n commit('localUpdateCardField', {\n cardId: parentCard.id,\n fieldName: 'child_cards',\n fieldValue: newChildCards,\n });\n },\n /**\n * Adds child card to parent card.\n * @param {object} parentCard\n * @param {object} childCard\n * @param {string} localCardId\n * @param {boolean} initiatedByAddParent - indicates whether action was initiated by adding parent to card\n */\n addChildCardToParent(\n { getters, dispatch },\n { parentCard, childCard, localCardId, initiatedByAddParent = false }\n ) {\n const { getRoutes, getTeamID, getCards } = getters;\n const baseUrl = getRoutes.cards;\n const path = `v1/${getTeamID}/cards/${parentCard.id}/child_cards`;\n return authPost(`${baseUrl}/${path}`, { card_id: childCard.id })\n .then(({ data }) => {\n if (localCardId) {\n dispatch('replaceLocalChildCardIdInParentCard', {\n parentCardId: parentCard.id,\n localId: localCardId,\n newId: data.child_card.card_id,\n });\n }\n if (getCards[childCard.id] && childCard.parent_card?.card_id !== parentCard.id) {\n dispatch('localUpdateCardField', {\n cardId: childCard.id,\n fieldName: 'parent_card',\n fieldValue: {\n card_id: parentCard.id,\n title: parentCard.title,\n list_color: parentCard.list_color,\n status: parentCard.status,\n },\n });\n }\n if (childCard.epic?.id) {\n dispatch('localRemoveCardFromEpic', childCard.id);\n }\n if (parentCard.epic) {\n dispatch('localAddCardToEpic', { cardId: childCard.id, epicBrief: parentCard.epic });\n }\n if (!initiatedByAddParent) {\n dispatch('completeOnboardingActions', [OnboardingActionType.AddChildCard]);\n }\n })\n .catch(() => {\n dispatch('localRemoveCardFromParent', {\n childCardId: localCardId || childCard.id,\n cardId: parentCard.id,\n });\n dispatch('addUiNotification', {\n message: translate('addChildCardFail'),\n status: constants.uiNotificationStatuses.error,\n labels: [\n {\n text: translate('retry'),\n type: constants.uiNotificationElements.button,\n action: 'addChildCardToParent',\n buttonStyle: 'important',\n params: { parentCard, childCard },\n },\n ],\n });\n });\n },\n\n /**\n * Replace local child card id in parent card.\n * @param {string} parentCardId\n * @param {string} localId\n * @param {string} newId\n * @example replaceLocalChildCardIdInParentCard({ parentCardId: '1', localId: 'RMnuPy', newId: '3' });\n */\n replaceLocalChildCardIdInParentCard({ commit }, { parentCardId, localId, newId }) {\n commit('replaceLocalChildCardIdInParentCard', { parentCardId, localId, newId });\n },\n\n /**\n * Update child card in parent card after response. ()\n * @param {object} childCard\n */\n updateChildCardAfterResponse({ commit }, { childCard }) {\n commit('localupdateChildCardInCard', { childCard });\n },\n /**\n * Toggles flag for displaying board in quick view.\n * @param {string} boardId\n */\n toggleBoardQuickView({ getters, commit }, { boardId, value = !getters.boardExpanded(boardId) }) {\n commit('toggleBoardQuickView', { boardId, value });\n },\n\n /**\n * Toggle all boards from specific project in quick view.\n * @param {string} projectId\n * @param {boolean} value\n */\n toggleProjectBoards({ commit, getters }, { value, projectId = getters.getCurrentProjectId }) {\n commit('toggleProjectBoards', { value, projectId });\n },\n /**\n * Toggle boards in the same row as board with passed id.\n * In one row can be only two boards.\n * @param {string} boardId\n * @param {boolean} value\n * @param {string} projectId\n */\n toggleBoardsInRow({ commit, getters }, { boardId, value, projectId }) {\n const boards = getters.getProjectBoards(projectId);\n const boardLength = boards.length;\n const lastBoardId = boards[boardLength - 1];\n const isOdd = boardLength % 2 !== 0;\n if (boardLength === 1 || (isOdd && boardId === lastBoardId)) {\n commit('toggleBoardQuickView', { boardId, value });\n return;\n }\n commit('toggleBoardsInRow', { boardId, value, projectId });\n },\n /**\n * Sets the property of a certain list on board by using passed listId.\n * @param {string} listId\n * @param {string} propertyName\n * @param {string} value\n */\n setBoardListProp({ commit }, { listId, propertyName, value }) {\n commit('setBoardListProp', { listId, propertyName, value });\n },\n /**\n * Adds a new member to the board with passed id.\n * @param {string} memberId\n * @param {string} boardId\n */\n addMemberToBoard({ getters, commit, dispatch }, { memberToAdd, boardId }) {\n const { getRoutes, getTeamID, getFlatBoards } = getters;\n const board = getFlatBoards[boardId];\n\n // check if member is allready added to board,\n // or board is just created and user wants to join it\n if (board?.members) {\n const membersLength = board.members.length;\n for (let i = 0; i < membersLength; i += 1) {\n if (board.members[i].user_id === memberToAdd.user_id) {\n return Promise.resolve();\n }\n }\n commit('localAddMemberToBoard', { memberToAdd, boardId });\n } else {\n return Promise.resolve();\n }\n\n return authPost(`${getRoutes.boards}/v1/${getTeamID}/boards/${boardId}/members`, {\n user_id: memberToAdd.user_id,\n })\n .then(({ data }) => {\n dispatch('addMemberToProject', {\n membersToAdd: [memberToAdd],\n projectId: board.project_id,\n });\n return data;\n })\n .catch((err) => {\n commit('localRemoveMemberFromBoard', { memberToRemove: memberToAdd, boardId });\n return err;\n });\n },\n /**\n * Removes a member from the board with passed id\n * @param {string} memberId\n * @param {string} boardId\n */\n removeMemberFromBoard({ commit, getters }, { memberToRemove, boardId }) {\n const { getRoutes, getTeamID } = getters;\n const userId = memberToRemove.user_id;\n\n commit('localRemoveMemberFromBoard', { memberToRemove, boardId });\n return authDelete(\n `${getRoutes.boards}/v1/${getTeamID}/boards/${boardId}/members/${userId}`\n ).catch(() => {\n commit('localAddMemberToBoard', { memberToAdd: memberToRemove, boardId });\n });\n },\n\n localAddMemberToCard({ getters, dispatch, commit }, { cardId, memberToAdd }) {\n const { getTeamID } = getters;\n const cards = getters.getCards;\n const card = cards[cardId];\n const boardId = card.sprint_id ? getSprintKey(card.project_id, card.sprint_id) : card.board_id;\n\n if (card) {\n const alreadyMember = card.members?.find((m: any) => m.user_id === memberToAdd.user_id);\n if (alreadyMember) {\n return Promise.resolve();\n }\n } else {\n return Promise.resolve(`Card not found: ${cardId}`);\n }\n\n const currentMembers = [...(card.members || [])];\n const newMembers = [...currentMembers, memberToAdd];\n\n // add member to board\n dispatch('addMemberToBoard', { memberToAdd, boardId });\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'members',\n fieldValue: newMembers,\n });\n\n commit('addGroupByList', {\n boardId,\n epicId: card.epic?.id,\n listId: memberToAdd.user_id,\n groupBy: groupByOption.assignee,\n teamId: getTeamID,\n });\n commit('removeCardFromGroupByList', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'unassigned',\n groupBy: groupByOption.assignee,\n teamId: getTeamID,\n });\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: memberToAdd.user_id,\n groupBy: groupByOption.assignee,\n teamId: getTeamID,\n });\n },\n /**\n * Adds a new member to the card with passed id.\n * @param {string} memberId\n * @param {string} cardId\n */\n addMemberToCard({ getters }, { memberToAdd, cardId }) {\n const { getRoutes, getTeamID } = getters;\n\n return authPost(`${getRoutes.cards}/v1/${getTeamID}/cards/${cardId}/members`, {\n user_id: memberToAdd.user_id,\n role: 'member',\n })\n .then(({ data }) => data)\n .catch((err: Error) => {\n return Promise.reject(err);\n });\n },\n localRemoveMemberFromCardBoardView({ commit }, { cardId, memberId }) {\n commit('localRemoveMemberFromCardBoardView', { cardId, memberId });\n },\n\n localRemoveMemberFromCard({ getters, commit }, { cardId, memberToRemove }) {\n const { getTeamID, getCards } = getters;\n const card = getCards[cardId];\n\n const memberId = memberToRemove?.user_id;\n\n if (!memberId) return;\n\n commit('localRemoveMemberFromCardBoardView', { cardId, memberId });\n\n commit('removeCardFromGroupByList', {\n boardId: card.board_id,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: memberId,\n groupBy: groupByOption.assignee,\n teamId: getTeamID,\n });\n if (card.members.length === 0) {\n commit('addCardToGroup', {\n boardId: card.board_id,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'unassigned',\n groupBy: groupByOption.assignee,\n teamId: getTeamID,\n });\n }\n },\n /**\n * Removes the member from a card.\n * @param {string} memberId\n * @param {string} cardId\n */\n removeMemberFromCard({ getters }, { memberToRemove, cardId }) {\n const { getTeamID, getRoutes } = getters;\n const memberId = memberToRemove?.user_id;\n if (!memberId) return;\n\n return authDelete(`${getRoutes.cards}/v1/${getTeamID}/cards/${cardId}/members/${memberId}`)\n .then(({ data }) => data)\n .catch((err: Error) => {\n return Promise.reject(err);\n });\n },\n /**\n * Sets flag for removing board's data.\n * @param {boolean} payload\n */\n setBoardViewNoDestroy({ commit }, payload) {\n commit('setBoardViewNoDestroy', payload);\n },\n /**\n * Sets flag for displaying draft list input when there aren't any lists on the board.\n * @param {boolean} payload\n */\n setDraftListInputVisibleOnOpen({ commit }, payload) {\n commit('setDraftListInputVisibleOnOpen', payload);\n },\n /**\n * Sets type of board list view(list or grid view)\n * @param {string} value\n */\n setBoardListView({ commit }, value) {\n commit('setBoardListView', value);\n },\n /**\n * Sets object of tag that needs to be edited\n * @param {object} tagForEdit\n */\n setCurrentTagForEdit({ commit }, tagForEdit) {\n commit('setCurrentTagForEdit', tagForEdit);\n },\n\n localAddChecklistItemToCard({ commit, getters }, { cardId, checklistItem, index }) {\n const card = JSON.parse(JSON.stringify(getters.getCards[cardId]));\n\n if (card) {\n const { checklists } = card;\n const clIndex = checklists.findIndex((cl: any) => cl.id === checklistItem.checklist_id);\n if (clIndex > -1) {\n checklists[clIndex].items.splice(index, 0, checklistItem);\n }\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklists',\n fieldValue: checklists,\n });\n }\n },\n\n localUpdateChecklistItemIdInCard(\n { commit, getters },\n { localItem = false, cardId, checklistId, checklistItemId, ...rest }\n ) {\n const { checklists } = JSON.parse(JSON.stringify(getters.getCards[cardId]));\n const checklistIndex = checklists.findIndex((cl: any) => cl.id === checklistId);\n if (checklistIndex > -1) {\n const checklistItems = checklists[checklistIndex].items;\n if (!checklistItems) return;\n const key = localItem ? 'locaId' : 'id';\n const { item, itemIndex: index } = getItemAndIndex(checklistItems, checklistItemId, key);\n\n const newItem = { ...item, ...rest };\n checklistItems.splice(index, 1, newItem);\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklists',\n fieldValue: checklists,\n });\n }\n },\n\n addTagToCard({ getters }, { cardId, tagId }) {\n const { getTeamID } = getters;\n\n return api.boards.addCardTags(getTeamID, cardId, { id: tagId }).catch((error) => {\n return error;\n });\n },\n\n removeCardTag({ getters }, { cardId, tagId }) {\n const { getTeamID } = getters;\n\n return api.boards.removeCardTag(getTeamID, cardId, tagId).catch((error) => {\n return error;\n });\n },\n localAddTagToCard({ commit, getters }, { cardId, tag }) {\n const { getCards, getTeamID } = getters;\n const card = getCards[cardId];\n const boardId = card.sprint_id ? getSprintKey(card.project_id, card.sprint_id) : card.board_id;\n\n commit('addGroupByList', {\n boardId,\n epicId: card.epic?.id,\n listId: tag.id,\n groupBy: groupByOption.tag,\n teamId: getTeamID,\n });\n commit('removeCardFromGroupByList', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'notags',\n groupBy: groupByOption.tag,\n teamId: getTeamID,\n });\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: tag.id,\n groupBy: groupByOption.tag,\n teamId: getTeamID,\n });\n commit('localAddTagToCard', { cardId, tag });\n },\n localAddTagToBoard({ commit }, { boardId, tag }) {\n commit('localAddTagToBoard', { boardId, tag });\n },\n\n setShowImageUploadPopup({ commit }, value) {\n commit('setShowImageUploadPopup', value);\n },\n /** Sets the card id for action edit.\n * @param {string} cardId\n */\n setCurrentCardIdForActionEdit({ commit }, cardId) {\n commit('setCurrentCardIdForActionEdit', cardId);\n },\n /**\n * Sets the list id for action edit.\n * @param {string} listId\n */\n setCurrentListIdForActionEdit({ commit }, listId) {\n commit('setCurrentListIdForActionEdit', listId);\n },\n /**\n * Sets type of board view\n * @param {string} value\n */\n setCardsLayout({ commit, getters }, { value, boardId = getters.currentBoardId }) {\n if (!boardId) return;\n\n if (!value) {\n const { value } = getters.cardsLayoutOptions.find(\n (option: CardsLayoutOption) => option.default\n );\n commit('setCardsLayout', { boardId, value });\n } else if (\n getters.cardsLayoutOptions.map((option: CardsLayoutOption) => option.value).includes(value)\n ) {\n commit('setCardsLayout', { boardId, value });\n }\n },\n\n addChecklistToListCards({ commit, getters }, { checklistId, checklistTitle, cardId }) {\n let cardChecklists = [...getters.getCards[cardId].checklists];\n let checklistOrder = [...(getters.getCards[cardId].checklist_order || [])];\n let checklistItemOrder = { ...(getters.getCards[cardId].checklist_item_order || {}) };\n const newChecklist = {\n id: checklistId,\n title: checklistTitle,\n items: [],\n };\n\n if (cardChecklists == null) {\n cardChecklists = [newChecklist];\n checklistOrder = [checklistId];\n checklistItemOrder = { [checklistId]: [] };\n } else {\n cardChecklists.push(newChecklist);\n checklistOrder.push(checklistId);\n checklistItemOrder[checklistId] = [];\n }\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklists',\n fieldValue: cardChecklists,\n });\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklist_order',\n fieldValue: checklistOrder,\n });\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklist_item_order',\n fieldValue: checklistItemOrder,\n });\n },\n\n addBoardInBoards({ commit }, board) {\n commit('addBoardInBoards', board);\n },\n\n removeBoardFromProjectBoards({ commit }, board) {\n commit('removeBoardFromProjectBoards', board);\n },\n\n updateCardOrderInPreviewBoards({ commit }, { boardId, listId, order }) {\n commit('updateCardOrderInPreviewBoards', { boardId, listId, order });\n },\n\n setCurrentCardChecklistsOrder({ commit }, { checklistsOrder, cardId }) {\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklist_order',\n fieldValue: checklistsOrder,\n });\n },\n\n setAttachments({ commit }, payload) {\n commit('setAttachments', { files: payload.files, id: payload.id, prefix: payload.prefix });\n },\n\n localAddAttachment({ commit }, { attachment, id, prefix = '' }) {\n commit('localAddAttachment', { attachment, id, prefix });\n },\n\n localRemoveAttachment({ commit }, { id, attachmentId, prefix = '' }) {\n commit('localRemoveAttachment', { id, attachmentId, prefix });\n },\n\n updateCardAttachmentId({ commit }, { attachment, localId, cardId }) {\n commit('updateCardAttachmentId', { attachment, localId, cardId });\n },\n\n setUploadFailedFlag({ commit }, { localId, file, cardId, value }) {\n commit('setUploadFailedFlag', { localId, file, cardId, value });\n },\n\n addCardFailedAttachment({ commit }, attachment) {\n commit('addCardFailedAttachment', attachment);\n },\n\n removeOrReplaceLocalCurrentCardChecklistItemOrder(\n { commit, getters },\n { cardId, localId, newId = null }\n ) {\n const checklistItemOrder = { ...(getters.getCards[cardId].checklist_item_order || []) };\n if (newId !== null) {\n checklistItemOrder[newId] = checklistItemOrder[localId];\n }\n delete checklistItemOrder[localId];\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'checklist_item_order',\n fieldValue: checklistItemOrder,\n });\n },\n\n resetBoardState({ commit }) {\n commit('resetBoardState');\n },\n\n setCardAutoFocus({ commit }, payload) {\n commit('setCardAutoFocus', payload);\n },\n\n setPreviewPopoverKey({ commit }, payload) {\n commit('setPreviewPopoverKey', payload);\n },\n\n setAttachmentTargetCardId({ commit }, id) {\n commit('setAttachmentTargetCardId', id);\n },\n\n setCardAttachmentsLoaded({ commit }, value) {\n commit('setCardAttachmentsLoaded', value);\n },\n\n setProjectPreviewBoards({ commit }, { projectId, projectBoards }) {\n commit('setProjectPreviewBoards', { projectBoards, projectId });\n },\n\n clearProjectPreviewBoards({ commit }) {\n commit('clearProjectPreviewBoards');\n },\n\n setProjectPreview({ commit }, project) {\n commit('setProjectPreview', project);\n },\n\n displayProjectPreviewBoards({ commit }, payload) {\n commit('displayProjectPreviewBoards', payload);\n },\n\n setNewBoardTitle({ commit }, title) {\n commit('setNewBoardTitle', title);\n },\n\n setCurrentCardIdMemberDropdown({ commit }, cardId) {\n commit('setCurrentCardIdMemberDropdown', cardId);\n },\n\n setCurrentCardMembersDropdown({ commit }, members) {\n commit('setCurrentCardMembersDropdown', members);\n },\n\n setCurrentCardIdForPopup({ commit }, cardId) {\n commit('setCurrentCardIdForPopup', cardId);\n },\n\n updateCardTotalCommentsCount({ dispatch }, { cardId, currentCommentsCount, decrease = false }) {\n const value = decrease ? -1 : 1;\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'total_comments',\n fieldValue: currentCommentsCount + value,\n });\n },\n\n setCardAttachmentUploadingId({ commit }, cardId) {\n commit('setCardAttachmentUploadingId', cardId);\n },\n\n /**\n * Update child cards\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}/child_cards/{child_card_id}\n */\n updateChildCards({ getters, dispatch }, { childCardOrder, childCardId, item, cardId }) {\n const { getTeamID, getRoutes } = getters;\n const card = getters.getCardById(cardId);\n const oldChildCardOrder = [...card.child_card_order];\n const cardsUrl = getRoutes.cards;\n\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'child_card_order',\n fieldValue: childCardOrder,\n });\n\n return authPatch(`${cardsUrl}/v1/${getTeamID}/cards/${cardId}/child_cards/${childCardId}`, {\n ...item,\n })\n .then(({ data }) => data)\n .catch((error) => {\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'child_card_order',\n fieldValue: oldChildCardOrder,\n });\n\n dispatch('addUiNotification', {\n message: translate('moveChildCardFail'),\n status: constants.uiNotificationStatuses.error,\n labels: [\n {\n text: translate('retry'),\n type: constants.uiNotificationElements.button,\n action: 'updateChildCards',\n buttonStyle: 'important',\n params: { childCardOrder, childCardId, item },\n },\n ],\n });\n throw error;\n });\n },\n\n moveCardHandler(\n { getters, dispatch },\n {\n cardModel,\n cardId,\n destinationProjectId,\n destinationBoardId,\n destinationListId,\n destinationPosition,\n originalProjectId,\n originalBoardId,\n originalListId,\n originalPosition,\n route,\n }\n ) {\n addCard({\n cardModel,\n cardId,\n destinationProjectId,\n destinationBoardId,\n destinationListId,\n destinationPosition,\n originalProjectId,\n originalBoardId,\n originalListId,\n originalPosition,\n storeGetters: getters,\n storeDispatch: dispatch,\n route,\n });\n },\n /*\n * Sets flag that indicates is duplicate card popup opened\n * @param {boolean} payload\n */\n setShowDuplicateCardPopup({ commit }, payload) {\n commit('setShowDuplicateCardPopup', payload);\n },\n\n setShowDuplicateBoardPopup({ commit }, payload) {\n commit('setShowDuplicateBoardPopup', payload);\n },\n\n setShowSetParentCardPopup({ commit }, payload) {\n commit('setShowSetParentCardPopup', payload);\n },\n\n /**\n * Creates a duplicated card from passed cardId.\n * https://api.superthread.com/v1/{team_id}/cards/{card_id}\n * @param {object} { cardId: string, newCard: object }\n */\n duplicateCard({ getters, dispatch }, { cardId, newCard }) {\n const { getTeamID, cardsSchema } = getters;\n\n const copyCard = {\n ...(newCard.title && { title: newCard.title }),\n project_id: newCard.project_id,\n ...(newCard.board_id && { board_id: newCard.board_id }),\n ...(newCard.sprint_id && { sprint_id: newCard.sprint_id }),\n list_id: newCard.list_id,\n schema: newCard.schema ?? cardsSchema,\n };\n if (!copyCard.project_id) return Promise.reject(new Error('Missing card property project id'));\n if (!copyCard.board_id && !copyCard.sprint_id)\n return Promise.reject(new Error('Missing card property board_id and sprint_id'));\n if (!copyCard.list_id) return Promise.reject(new Error('Missing card property list id'));\n\n return api.boards\n .createCardCopy(getTeamID, cardId, copyCard)\n .then(({ data }) => {\n dispatch('completeOnboardingActions', [OnboardingActionType.CreateCard]);\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n cardRelationships({ getters }, { body, cardId }) {\n return api.boards\n .addLinkedCard(getters.getTeamID, cardId, body)\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n removeCardRelationships(\n { getters },\n { linkedCardId, cardId }: { linkedCardId: string; cardId: string }\n ) {\n return api.boards\n .removeLinkedCard(getters.getTeamID, cardId, linkedCardId)\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n setLinkedCardType({ commit }, payload) {\n commit('setLinkedCardType', payload);\n },\n\n updateBoardPropertyInBoards({ commit }, { boardId, propertyName, value }) {\n commit('updateBoardPropertyInBoards', { boardId, propertyName, value });\n },\n\n handleCardCreated({ commit }, { card, listId }) {\n commit('addCardToCards', { card });\n const listIdToSet = card.sprint_id\n ? getSprintListKey(card.project_id, card.sprint_id, listId)\n : listId;\n commit('addCardToListCards', { listId: listIdToSet, cardId: card.id });\n },\n\n localUpdateCard({ commit, getters, dispatch }, { cardId, projectId, changes }) {\n const { displayProjectPreviewBoards } = getters;\n if (displayProjectPreviewBoards) return;\n\n const card = getters.getCards[cardId];\n const teamId = getters.getTeamID;\n if (!card) return;\n changes.forEach((change: any) => {\n if (change.path.includes('total_files')) {\n dispatch('getFiles', { card_id: cardId });\n }\n switch (change.type) {\n case 'create':\n commit('cardWsEventsCreate', { change, cardId, projectId, teamId });\n if (change.path[0] === 'child_cards') {\n const cardId = change.to?.card_id;\n const card = { ...change.to, id: cardId };\n const board = getters.getFlatBoards[card.board_id] || {};\n if (!board?.lists) {\n dispatch('fetchBoard', { boardId: card.board_id });\n }\n }\n break;\n case 'update':\n if (change.path[2] === 'archived') {\n const cardId = change.path[1];\n dispatch('archiveHandler', { cardId, change });\n }\n commit('cardWsEventsUpdate', { change, cardId });\n break;\n case 'delete':\n commit('cardWsEventsDelete', { change, cardId });\n break;\n }\n });\n },\n\n // todo: use getCardCollaboration instead on new API version\n refreshCardCollaboration({ commit, getters }, { id }) {\n const { getTeamID } = getters;\n return api.boards\n .getCard(getTeamID, id)\n .then(({ data }) => {\n commit('localUpdateCardField', {\n cardId: id,\n fieldName: 'collaboration',\n // @ts-ignore\n fieldValue: toRaw(data.card?.collaboration),\n });\n })\n .catch(() => {});\n },\n\n archiveHandler({ getters, dispatch }, { cardId, change }) {\n if (change.from) {\n //restoring card\n dispatch('fetchCard', { cardId }).then((card) => {\n if (!getters.getListCards[card.list_id]?.includes(cardId)) {\n dispatch('addCardToListCards', {\n listId: card.list_id,\n cardId: cardId,\n });\n if (card.board_id) {\n dispatch('fetchBoard', { boardId: card.board_id });\n }\n }\n });\n } else {\n //archiving card\n const card = getters.getCards[cardId];\n dispatch('removeCardFromListCards', {\n listId: card.list_id,\n cardId: cardId,\n });\n }\n },\n fetchReport({ getters, commit }, query) {\n const boardId = query.board_id;\n return api.reports\n .reportsDetail(getters.getTeamID, query)\n .then(({ data }) => {\n const { report } = data;\n commit('setReportInfoData', { boardId, report });\n })\n .catch((error) => {\n throw error;\n });\n },\n\n setTimeperoidOptions({ commit }, value) {\n commit('setTimeperoidOptions', value);\n },\n\n setCardDraggingEnd({ commit }, value) {\n commit('setCardDraggingEnd', value);\n },\n\n setSingleListInListCards({ commit }, { listId, value }) {\n commit('setSingleListInListCards', { listId, value });\n },\n\n addCardToListCards({ commit }, { listId, cardId }) {\n commit('addCardToListCards', { listId, cardId });\n },\n\n removeCardFromListCards({ commit }, { listId, cardId }) {\n commit('removeCardFromListCards', { listId, cardId });\n },\n\n addCardToCards({ commit }, { card }) {\n commit('addCardToCards', { card });\n },\n\n removeCardFromCards({ commit }, cardId) {\n commit('removeCardFromCards', cardId);\n },\n\n /**\n * Fetches card/epic depending on type passed by id\n * @param {string} cardId - id of card/epic\n * @param {string} teamId - id of team\n * @param {ResourceType} type - type of resource\n */\n fetchCard(\n { commit, getters, dispatch },\n {\n cardId,\n teamId = getters.getTeamID,\n type = ResourceType.Card,\n }: {\n cardId: string;\n teamId?: string;\n type?: ResourceType;\n }\n ): Promise {\n const existingPromise = activePromises.cards[cardId];\n if (existingPromise !== undefined) return existingPromise;\n\n const isEpic = type == ResourceType.Epic;\n const req = isEpic\n ? api.boards.getEpicCard(teamId, cardId)\n : api.boards.getCard(teamId, cardId);\n\n const promise = req\n .then(({ data }: { data: GetCardResponse | GetEpicResponse }) => {\n const card = isEpic\n ? ((data as GetEpicResponse).epic as IEpic)\n : (data as GetCardResponse).card;\n if (!card) throw new Error('Invalid response');\n\n if (isEpic) card.board_id = constants.epicsBoardId;\n if (card && !card.owner_id) card.owner_id = '';\n\n if (teamId === getters.getTeamID) {\n commit('addCardToCards', { card });\n }\n\n return card;\n })\n .catch((error) => {\n const currentRouteName = getters.getCurrentRoute.name;\n if (error.response?.status === 403 && currentRouteName === constants.routeNames.boardCard) {\n const isCardDisplayed = getters.getIsCardDisplayed(cardId);\n if (isCardDisplayed) {\n dispatch('removeDisplayedCardsByField', {\n field: 'id',\n value: cardId,\n });\n\n const isOnlyCardDisplayed = getters.getDisplayedCards.length === 1;\n if (isOnlyCardDisplayed) {\n dispatch('itemNotFound', true);\n }\n }\n }\n throw error;\n })\n .finally(() => {\n delete activePromises.cards[cardId];\n });\n\n activePromises.cards[cardId] = promise;\n return promise;\n },\n\n setDraggingEnd({ commit }, value) {\n commit('setDraggingEnd', value);\n },\n\n /**\n * Sets card(s) to be displayed, this will replace all currently displayed cards.\n * Passing an empty array or undefined will clear displayed cards.\n */\n setDisplayedCards({ commit, rootState }, payload: DisplayedCardPayload = []) {\n commit('setDisplayedCards', getNormalizedDisplayedCardPayload(rootState, payload));\n },\n\n /**\n * Adds card(s) to displayed cards, without replacing current ones.\n */\n addDisplayedCards({ commit, rootState }, payload: DisplayedCardPayload = []) {\n commit('addDisplayedCards', getNormalizedDisplayedCardPayload(rootState, payload));\n },\n\n /**\n * Removes card(s) from displayed cards.\n */\n removeDisplayedCards({ commit }, payload: string[] | string) {\n commit('removeDisplayedCards', payload);\n },\n\n /**\n * Removes card(s) from displayed cards by field\n * shouldMatch - if true, will remove cards that match the value, if false, will remove cards that do not match the value\n * E.g. removeDisplayedCardsByField({ field: 'layout', value: 'fullscreen' }) will remove all cards with layout 'fullscreen'\n * E.g. removeDisplayedCardsByField({ field: 'layout', value: 'fullscreen', shouldMatch: false}) will remove all cards with layout other than 'fullscreen'\n */\n removeDisplayedCardsByField({ commit }, { field, value, shouldMatch = true }) {\n commit('removeDisplayedCardsByField', { field, value, shouldMatch });\n },\n\n /**\n * Changes value of field of displayed card.\n */\n setFieldOfDisplayedCard(\n { commit },\n { id, value, field }: { id: string; value: any; field: keyof DisplayedCard }\n ) {\n commit('setFieldOfDisplayedCard', { id, value, field });\n },\n\n /**\n * Changes value of fields of displayed card.\n */\n setFieldsOfDisplayedCard(\n { commit },\n { id, payload }: { id: string; payload: Array<{ field: keyof DisplayedCard; value: any }> }\n ) {\n commit('setFieldsOfDisplayedCard', { id, payload });\n },\n\n /**\n * Sets the layout in which cards should be displayed by default to state and local storage.\n * @param layout - new layout ot be set\n */\n setCurrentCardLayout({ commit }, layout: string) {\n commit('setCurrentCardLayout', layout);\n },\n\n removeCardFromArchived({ commit }, cardId) {\n commit('removeCardFromArchived', cardId);\n },\n\n setChecklistCollapsedIds({ commit }, cheklistIds) {\n commit('setChecklistCollapsedIds', cheklistIds);\n },\n\n setHiddenItemChecklistIds({ commit }, cheklistIds) {\n commit('setHiddenItemChecklistIds', cheklistIds);\n },\n\n setBoardFilters({ commit, getters }, payload) {\n commit('setBoardFilters', { ...payload, teamId: getters.getTeamID });\n },\n\n setBoardPills({ commit }, payload) {\n commit('setBoardPills', payload);\n },\n\n fetchTags({ commit, getters }, { projectId }) {\n const existingPromise = activePromises.tags[projectId];\n if (existingPromise !== undefined) return existingPromise;\n\n const { getTeamID } = getters;\n const promise = api.boards\n .getTags(getTeamID, {\n project_id: projectId,\n })\n .then(({ data }) => {\n commit('setTags', {\n tagsArray: data.tags || [],\n projectId,\n teamId: getTeamID,\n });\n })\n .finally(() => {\n delete activePromises.tags[projectId];\n });\n\n activePromises.tags[projectId] = promise;\n return promise;\n },\n\n mergeTags({ getters }, tag) {\n return authPost(`${getters.getRoutes.cards}/v1/${getters.getTeamID}/tags/merge`, {\n name: tag.name,\n color: tag.color,\n }).then(({ data }) => data);\n },\n\n createTag({ getters }, { tag, projectId }) {\n return authPost(`${getters.getRoutes.cards}/v1/${getters.getTeamID}/tags`, {\n ...tag,\n ...(projectId && { project_id: projectId }),\n }).catch((error) => {\n throw error;\n });\n },\n\n updateTag({ getters }, { tagId, tag }) {\n return authPatch(`${getters.getRoutes.cards}/v1/${getters.getTeamID}/tags/${tagId}`, {\n ...tag,\n })\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n updateLocalCardTag({ commit }, { cardId, tagId, tag }) {\n commit('updateLocalCardTag', { cardId, tagId, tag });\n },\n\n updateLocalTag({ commit }, { tagId, tag, cardId }) {\n commit('updateLocalTag', { tagId, tag, cardId });\n },\n\n removeLocalPropFromTag({ commit }, { tagId, prop }) {\n commit('removeLocalPropFromTag', { tagId, prop });\n },\n\n deleteLocalTag({ commit }, { tagId }) {\n commit('deleteLocalTag', { tagId });\n },\n\n deleteTag({ getters }, { tagId }) {\n return authDelete(`${getters.getRoutes.cards}/v1/${getters.getTeamID}/tags/${tagId}`).catch(\n (error) => {\n throw error;\n }\n );\n },\n\n localDeleteTagFromCard({ commit, getters }, { cardId, tagId }) {\n const { getCards, getTeamID } = getters;\n const card = getCards[cardId];\n\n commit('removeCardFromGroupByList', {\n boardId: card.board_id,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: tagId,\n groupBy: groupByOption.tag,\n teamId: getTeamID,\n });\n if (card.tags.length === 1) {\n commit('addCardToGroup', {\n boardId: card.board_id,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'notags',\n groupBy: groupByOption.tag,\n teamId: getTeamID,\n });\n }\n\n commit('localDeleteTagFromCard', { cardId, tagId });\n },\n\n bulkDeleteTagFromCards({ commit }, { tagId }) {\n commit('localDeleteTagFromCards', { tagId });\n },\n\n addLocalTag({ commit }, { tag }) {\n commit('addLocalTag', { tag });\n },\n\n updateLocalTagId({ commit }, { localTagId, tag }) {\n commit('updateLocalTagId', { localTagId, tag });\n },\n\n setCardCommentAttachmentUploadPopup({ commit }, value) {\n commit('setCardCommentAttachmentUploadPopup', value);\n },\n\n /**\n * Sets a flag that indicates that the upload popup\n * has been triggered from a card description.\n */\n setCardDescriptionAttachmentUploadPopup({ commit }, value) {\n commit('setCardDescriptionAttachmentUploadPopup', value);\n },\n\n setLastOpenedBoardId({ commit }, boardId) {\n commit('setLastOpenedBoardId', boardId);\n },\n\n setBoardList({ commit }, { listId, list }) {\n commit('setBoardList', { listId, list });\n },\n\n removeBoardFromBoards({ commit }, boardId) {\n commit('removeBoardFromBoards', boardId);\n },\n\n removeBoardsListsIds({ commit }, boardId) {\n commit('removeBoardsListsIds', boardId);\n },\n\n removeMultipleBoardLists({ commit }, listIds) {\n commit('removeMultipleBoardLists', listIds);\n },\n setFlatBoards({ commit }, boards) {\n commit('setFlatBoards', boards);\n },\n\n lastHoveredListId({ commit }, listId) {\n commit('lastHoveredListId', listId);\n },\n\n lastHoveredDisplayedCardId({ commit }, cardId: string) {\n commit('lastHoveredDisplayedCardId', cardId);\n },\n\n lastHoveredCardId({ commit }, cardId) {\n commit('lastHoveredCardId', cardId);\n },\n\n setSelectedCardId({ commit }, cardId) {\n commit('setSelectedCardId', cardId);\n },\n\n setBoardViewMouseSuspended({ commit }, value) {\n commit('setBoardViewMouseSuspended', value);\n },\n\n setChecklistInputActive({ commit }, { checklistId, isActive }) {\n commit('setChecklistInputActive', { checklistId, isActive });\n },\n setChecklistItemInputActive({ commit }, { checklistItemId, isActive }) {\n commit('setChecklistItemInputActive', { checklistItemId, isActive });\n },\n\n setCardOwnerId({ commit }, { ownerId, cardId }: { ownerId: string; cardId: string }) {\n commit('setCardOwnerId', { ownerId, cardId });\n },\n\n addBoardToBookmarked({ commit }, board) {\n commit('addBoardToBookmarked', { ...board, is_bookmarked: true });\n },\n setListCards({ commit }, listCards) {\n commit('setListCards', listCards);\n },\n\n fetchCardTemplates({ commit, getters }, projectId) {\n return api.boards\n .getCardTemplates(getters.getTeamID, {\n ...(projectId && { project_id: projectId }),\n })\n .then(({ data }) => {\n commit('setCardTemplates', data.card_templates || []);\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n fetchCardTemplate({ commit, getters }, templateId) {\n if (!templateId) return Promise.resolve({});\n\n return api.boards\n .getCardTemplate(getters.getTeamID, templateId)\n .then(({ data: { card_template: cardTemplate } }) => {\n commit('setCardTemplate', cardTemplate || {});\n return cardTemplate;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n createCardTemplate({ commit, getters }, cardTemplate = getters.getCardTemplateDraft) {\n const tempId = nanoid(4);\n commit('setCardTemplate', {\n ...cardTemplate,\n id: tempId,\n user: { user_id: getters.getUserId },\n });\n\n return api.boards\n .createCardTemplate(getters.getTeamID, {\n ...cardTemplate,\n })\n .then(({ data }) => {\n commit('replaceCardTemplateId', { localId: tempId, template: data.card_template ?? {} });\n return data;\n })\n .catch((error) => {\n commit('deleteCardTemplate', tempId);\n throw error;\n });\n },\n\n updateCardTemplate(\n { commit, getters },\n {\n templateId,\n cardTemplate = getters.getCardTemplateDraft,\n user = { user_id: getters.getUserId },\n }\n ) {\n if (!templateId) return Promise.resolve({});\n\n const oldTemplate = getters.getCardTemplates[templateId];\n commit('setCardTemplate', {\n id: templateId,\n ...cardTemplate,\n user,\n user_updated: { user_id: getters.getUserId },\n });\n return api.boards\n .updateCardTemplate(getters.getTeamID, templateId, {\n ...cardTemplate,\n })\n .then(({ data }) => {\n commit('setCardTemplate', { id: templateId, ...data.card_template });\n return data;\n })\n .catch((error) => {\n commit('setCardTemplate', { id: templateId, ...oldTemplate });\n throw error;\n });\n },\n\n deleteCardTemplate({ commit, getters }, templateId) {\n if (!templateId) return Promise.resolve({});\n\n const oldTemplate = getters.getCardTemplates[templateId];\n commit('deleteCardTemplate', templateId);\n return api.boards.deleteCardTemplate(getters.getTeamID, templateId).catch((error) => {\n commit('setCardTemplate', { id: templateId, ...oldTemplate });\n throw error;\n });\n },\n\n setCardTemplateDraft({ commit }, template) {\n commit('setCardTemplateDraft', template);\n },\n\n setMembersToCardTemplate({ commit }, payload) {\n commit('setMembersToCardTemplate', payload);\n },\n\n updateCardTemplateDraftField({ commit }, { fieldName, value }) {\n commit('updateCardTemplateDraftField', { fieldName, value });\n },\n\n clearCardTemplateDraft({ commit }) {\n commit('clearCardTemplateDraft');\n },\n\n addTagToTemplate({ commit }, tagId) {\n commit('addTagToTemplate', tagId);\n },\n\n manageCardTemplateSelectedSpaces({ commit }, spaceId) {\n commit('manageCardTemplateSelectedSpaces', spaceId);\n },\n\n toggleMemberTemplateChildCard({ commit }, { index, member }) {\n commit('toggleMemberTemplateChildCard', { index, member });\n },\n\n addChildCardToTemplate({ commit }) {\n commit('addChildCardToTemplate');\n },\n\n updateChildCardInTemplate({ commit }, index) {\n commit('updateChildCardInTemplate', index);\n },\n\n removeChildCardFromTemplate({ commit }, index) {\n commit('removeChildCardFromTemplate', index);\n },\n\n updateTemplateChildCardProperty({ commit }, { fieldName, value, index }) {\n commit('updateTemplateChildCardProperty', { fieldName, value, index });\n },\n\n setTimelineZoom({ commit }, zoom) {\n commit('setTimelineZoom', zoom);\n },\n\n setTimelineSidebarWidth({ commit }, width) {\n commit('setTimelineSidebarWidth', width);\n },\n\n setCardWidth({ commit }, width) {\n commit('setCardWidth', width);\n },\n\n closeCardUploadPopup({ commit }) {\n commit('closeCardUploadPopup');\n },\n\n addQuickCardFileToUpdate({ commit }, { file, isModal = true }) {\n commit('addQuickCardFileToUpdate', { file, isModal });\n },\n\n removeQuickCardFilesToUpdate({ commit }, isModal = true) {\n commit('removeQuickCardFilesToUpdate', isModal);\n },\n\n setQuickCardTitle({ commit }, { title, isModal = true }) {\n commit('setQuickCardTitle', { title, isModal });\n },\n\n setCardIdForMove({ commit }, value) {\n commit('setCardIdForMove', value);\n },\n setMembersToAddQuickCard({ commit }, { value, isModal = true }) {\n commit('setMembersToAddQuickCard', { value, isModal });\n },\n\n setQuickCardField({ commit }, { fieldName, value, isModal = true }) {\n commit('setQuickCardField', { fieldName, value, isModal });\n },\n\n clearQuickCardObject({ commit }, isModal = true) {\n commit('clearQuickCardObject', isModal);\n },\n\n updateQuickCardChildCardProperty({ commit }, { fieldName, value, index, isModal = true }) {\n commit('updateQuickCardChildCardProperty', { fieldName, value, index, isModal });\n },\n\n toggleMemberQuickCardChildCard({ commit }, { index, member, isModal = true }) {\n commit('toggleMemberQuickCardChildCard', { index, member, isModal });\n },\n\n setQuickCardProjectId({ commit }, { projectId, isModal = true }) {\n commit('setQuickCardProjectId', { projectId, isModal });\n },\n\n addTagToQuickCard({ commit }, { tag, isModal = true }) {\n commit('addTagToQuickCard', { tag, isModal });\n },\n\n removeTagFromQuickCard({ commit }, { tagId, isModal = true }) {\n commit('removeTagFromQuickCard', { tagId, isModal });\n },\n\n addChildCardToQuickCard({ commit }, { isModal = true }) {\n commit('addChildCardToQuickCard', isModal);\n },\n\n updateChildCardInQuickCard({ commit }, { index, isModal = true }) {\n commit('updateChildCardInQuickCard', { index, isModal });\n },\n\n removeChildCardFromQuickCard({ commit }, { index, isModal = true }) {\n commit('removeChildCardFromQuickCard', { index, isModal });\n },\n\n setParentCardForQuickCard({ commit }, parentCard) {\n commit('setParentCardForQuickCard', parentCard);\n },\n\n addTagsToCard({ getters }, { cardId, ids }) {\n return api.boards.addCardTags(getters.getTeamID, cardId, {\n ids,\n });\n },\n\n setChildCardCreation({ commit }, value) {\n commit('setChildCardCreation', value);\n },\n\n setCardInEpicCreation({ commit }, value) {\n commit('setCardInEpicCreation', value);\n },\n\n setCardInNoteCreation({ commit }, value) {\n commit('setCardInNoteCreation', value);\n },\n\n setCardSliderActive({ commit }, value) {\n commit('setCardSliderActive', value);\n },\n\n setBoardSortBy({ commit, getters }, { value, boardId = getters.currentBoardId }) {\n const teamId = getters.getTeamID;\n\n if (!boardId) return;\n\n if (!value) {\n const { value } = getters.boardSortByOptions.find(\n (option: CardsLayoutOption) => option.default\n );\n commit('setBoardSortBy', { boardId, value, teamId });\n } else if (\n getters.boardSortByOptions.map((option: CardsLayoutOption) => option.value).includes(value)\n ) {\n commit('setBoardSortBy', { boardId, value, teamId });\n }\n },\n\n setBoardGroupBy(\n { commit, getters },\n { value, boardId = getters.currentBoardId, teamId = getters.getTeamID, mainGrpupBy = true }\n ) {\n if (!boardId) return;\n const mutationName = mainGrpupBy ? 'setBoardGroupBy' : 'setBoardSubGroupBy';\n\n if (!value) {\n const { value } = getters\n .boardGroupByOptions(boardId)\n .find((option: CardsLayoutOption) => option.default);\n commit(mutationName, { boardId, value, teamId });\n } else if (\n getters.boardGroupByOptions.map((option: CardsLayoutOption) => option.value).includes(value)\n ) {\n commit(mutationName, { boardId, value, teamId });\n }\n },\n\n setQuickCardObject({ commit }, { quickCardObject, isModal = true }) {\n commit('setQuickCardObject', { quickCardObject, isModal });\n },\n\n /**\n * Sets tag and duplicate card suggestions for card\n */\n setSuggestions({ commit }, { suggestions, cardId }: { suggestions: CardHint[]; cardId: string }) {\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'hints',\n fieldValue: suggestions,\n });\n },\n\n /**\n * Sets tag and duplicate card suggestions for quickCard card\n */\n setQCSuggestions({ commit }, suggestions: CardHint[]) {\n commit('setQCSuggestions', suggestions);\n },\n\n /**\n * Removes a specifc suggestion from the list of suggestions for card and sends an API request to ignore it on the backend\n * Ignored suggestions will not be shown again for the same card\n */\n removeSuggestion(\n { getters, dispatch },\n { payload, cardId }: { payload: RemoveSuggestionPayload; cardId: string }\n ) {\n const oldSuggestions = getters.getSuggestions(cardId);\n const newSuggestions = fnRemoveSuggestion(payload, [...oldSuggestions]);\n\n if (oldSuggestions.length !== newSuggestions.length) {\n dispatch('setSuggestions', { suggestions: newSuggestions, cardId });\n const { card_id, tagName, type, ignoreSuggestion } = payload;\n\n if (!ignoreSuggestion) return;\n api.boards.updateTagHints(getters.getTeamID, cardId, {\n actions: [\n {\n type: 'ignore',\n ...(type === SuggestionType.tag && tagName && { tag_slug: tagName.toLowerCase() }),\n ...(type === SuggestionType.relation && card_id && { related_card_id: card_id }),\n },\n ],\n });\n }\n },\n\n /**\n * Removes a specifc suggestion from the list of suggestions for quick card\n */\n removeQCSuggestion({ getters, commit }, payload: RemoveSuggestionPayload) {\n const oldHints = getters.getQCSuggestions;\n const newHints = fnRemoveSuggestion(payload, oldHints);\n if (newHints.length !== oldHints.length) {\n commit('setQCSuggestions', newHints);\n }\n },\n\n /**\n * Sets flag that indicates is suggestions placeholder shown for card\n */\n setShowSuggestionsPlaceholder({ commit }, showPlaceholder: boolean) {\n commit('setShowSuggestionsPlaceholder', showPlaceholder);\n },\n\n /**\n * Sets flag that indicates is suggestions placeholder shown for quick card\n */\n setQCShowSuggestionsPlaceholder({ commit }, showPlaceholder: boolean) {\n commit('setQCShowSuggestionsPlaceholder', showPlaceholder);\n },\n\n addGroupByList({ commit, getters }, { boardId, epicId, listId, groupBy }) {\n const teamId = getters.getTeamID;\n commit('addGroupByList', { boardId, epicId, listId, groupBy, teamId });\n },\n\n updateGroupByListOrder({ commit, getters }, payload) {\n const teamId = getters.getTeamID;\n const groupBy = getters.getBoardGroupBy(payload.boardId);\n commit('updateGroupByListOrder', { ...payload, groupBy, teamId });\n },\n\n setListCardsGroupByOrder({ commit, getters }, groupByOrder) {\n const teamId = getters.getTeamID;\n commit('setListCardsGroupByOrder', { groupByOrder, teamId });\n },\n\n setCardsSubGroupByOrder({ commit, getters }, subGroupByBoardObject) {\n const teamId = getters.getTeamID;\n commit('setCardsSubGroupByOrder', { subGroupByBoardObject, teamId });\n },\n\n reorderCardsGroupByList({ commit, getters }, payload) {\n const teamId = getters.getTeamID;\n commit('reorderCardsGroupByList', { ...payload, teamId });\n },\n\n updateCardsGroupByOrder(\n { commit, getters },\n { boardId, originalListId, destinationListId, cardId, newIndex, groupBy }\n ) {\n const teamId = getters.getTeamID;\n commit('updateCardsGroupByOrder', {\n boardId,\n originalListId,\n destinationListId,\n cardId,\n newIndex,\n groupBy,\n teamId,\n });\n },\n\n addCardToGroupByList({ commit, getters }, { boardId, epicId, cardId, listId, groupBy }) {\n const teamId = getters.getTeamID;\n commit('addCardToGroup', {\n boardId,\n epicId,\n cardId,\n listId,\n groupBy,\n teamId,\n });\n },\n\n removeCardFromGroupByList(\n { commit, getters },\n { boardId, epicId, cardId, listId, groupBy = getters.getBoardGroupBy(boardId) }\n ) {\n const teamId = getters.getTeamID;\n commit('removeCardFromGroupByList', { boardId, epicId, cardId, listId, groupBy, teamId });\n },\n\n removeCardFromGroupByBoard({ commit, getters }, { boardId, card }) {\n const teamId = getters.getTeamID;\n\n // remove from tag list\n if (card.tags && card.tags.length > 0) {\n card.tags.forEach((tag: any) => {\n commit('removeCardFromGroupByList', {\n boardId,\n cardId: card.id,\n epicId: card.epic?.id,\n listId: tag.id,\n groupBy: 'tag',\n teamId,\n });\n });\n } else {\n commit('removeCardFromGroupByList', {\n boardId,\n cardId: card.id,\n epicId: card.epic?.id,\n listId: 'notags',\n groupBy: 'tag',\n teamId,\n });\n }\n\n // remove from member list\n if (card.members && card.members.length > 0) {\n card.members.forEach((member: any) => {\n commit('removeCardFromGroupByList', {\n boardId,\n cardId: card.id,\n epicId: card.epic?.id,\n listId: member.user_id,\n groupBy: 'assignee',\n teamId,\n });\n });\n } else {\n commit('removeCardFromGroupByList', {\n boardId,\n cardId: card.id,\n epicId: card.epic?.id,\n listId: 'unassigned',\n groupBy: 'assignee',\n teamId,\n });\n }\n\n // remove from priority\n commit('removeCardFromGroupByList', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: card?.priority || 0,\n groupBy: 'priority',\n teamId,\n });\n\n // remove from none\n commit('removeCardFromGroupByList', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'none',\n groupBy: 'none',\n teamId,\n });\n\n commit('removeCardFromGroupByList', {\n epicId: card.epic?.id,\n cardId: card.id,\n listId: card.status || 'backlog',\n groupBy: 'statusType',\n teamId,\n });\n },\n\n addCardToGroupByBoard({ commit, getters }, { boardId, card }) {\n const teamId = getters.getTeamID;\n\n // add to tag list\n if (card.tags && card.tags.length > 0) {\n card.tags.forEach((tag: any) => {\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: tag.id,\n groupBy: 'tag',\n teamId,\n });\n });\n } else {\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'notags',\n groupBy: 'tag',\n teamId,\n });\n }\n\n // add to member list\n if (card.members && card.members.length > 0) {\n card.members.forEach((member: any) => {\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: member.user_id,\n groupBy: 'assignee',\n teamId,\n });\n });\n } else {\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'unassigned',\n groupBy: 'assignee',\n teamId,\n });\n }\n\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: card?.priority || 0,\n groupBy: 'priority',\n teamId,\n });\n\n commit('addCardToGroup', {\n boardId,\n epicId: card.epic?.id,\n cardId: card.id,\n listId: 'none',\n groupBy: 'none',\n teamId,\n });\n\n // add card to status type group by list for in epic board\n commit('addCardToGroup', {\n epicId: card.epic?.id,\n cardId: card.id,\n listId: card.status || 'backlog',\n groupBy: 'statusType',\n teamId,\n });\n },\n\n setCurrentGroupByListIdCardActionEdit({ commit }, listId) {\n commit('setCurrentGroupByListIdCardActionEdit', listId);\n },\n\n setCurrentCardUniqueRowId({ commit }, uniqueRowId) {\n commit('setCurrentCardUniqueRowId', uniqueRowId);\n },\n\n setNewBoardObjectField({ commit }, { fieldName, value }) {\n commit('setNewBoardObjectField', { fieldName, value });\n },\n\n updateBoardProperty(\n { getters, dispatch },\n {\n boardId,\n propertyName,\n value,\n message = {\n success: translate('boardUpdated'),\n error: translate('actionFailed'),\n },\n }\n ) {\n return api.boards\n .updateBoard(getters.getTeamID, boardId, {\n [propertyName]: value,\n })\n .then(({ data }) => {\n dispatch('addUiNotification', {\n message: message.success,\n status: constants.uiNotificationStatuses.success,\n });\n return data;\n })\n .catch((error) => {\n dispatch('addUiNotification', {\n message: message.error,\n status: constants.uiNotificationStatuses.error,\n });\n throw error;\n });\n },\n\n resetNewBoardObject({ commit }) {\n commit('resetNewBoardObject');\n },\n\n setSprintSettings({ getters }, { projectId, settings }) {\n return authPut(\n `${getters.getRoutes.cards}/v1/${getters.getTeamID}/sprints/settings?project_id=${projectId}`,\n settings\n )\n .then(({ data }) => data)\n .catch((err) => {\n throw err;\n });\n },\n\n localSetSprintSettings({ commit }, { projectId, settings }) {\n commit('setProjectSprintSettings', { projectId, settings });\n },\n\n getSprintSettings({ getters, commit }, projectId) {\n return authGet(\n `${getters.getRoutes.cards}/v1/${getters.getTeamID}/sprints/settings?project_id=${projectId}`\n )\n .then(({ data }) => {\n const settings = data.sprint_settings.enabled\n ? data.sprint_settings\n : {\n enabled: false,\n start_day: 0,\n length: 7,\n cooldown: 0,\n statuses: defaultSprintStatuses,\n };\n commit('setProjectSprintSettings', { projectId, settings });\n return data.sprint_settings;\n })\n .catch((err) => {\n return err;\n });\n },\n\n createNewSprint({ getters, commit, dispatch }, payload) {\n return authPost(`${getters.getRoutes.cards}/v1/${getters.getTeamID}/sprints`, payload)\n .then(({ data }) => {\n const { sprint } = data;\n commit('localAddSprintToProject', {\n projectId: sprint.project_id,\n sprint: {\n id: sprint.id,\n title: sprint.title,\n start_date: sprint.start_date,\n end_date: sprint.end_date,\n },\n });\n dispatch('postFetchSprint', sprint);\n return data;\n })\n .catch((err) => {\n return err;\n });\n },\n\n getSprintsForProject({ getters, commit }, { projectId, untilDate }) {\n const existingPromise = activePromises.sprints[projectId];\n if (existingPromise !== undefined) return existingPromise;\n\n const until = untilDate ? `&until=${untilDate}` : '';\n return authGet(\n `${getters.getRoutes.cards}/v1/${getters.getTeamID}/sprints?project_id=${projectId}${until}`\n )\n .then(({ data }) => {\n const sprints: { [key: string]: any } = {};\n data.sprints.forEach((sprint: any) => {\n const rolledoverList = {\n id: 'rolledover',\n title: 'Rolled over',\n board_id: `${sprint.id}`,\n team_id: sprint.team_id,\n card_order: (sprint.unfinished_cards || []).map((c: any) => c.id),\n cards: sprint.unfinished_cards,\n behavior: 'rolledover',\n };\n if (sprint?.unfinished_cards?.length) {\n sprint.lists.push(rolledoverList);\n }\n if (sprint.lists && sprint.lists.length > 0) {\n const listCards: any = {};\n const sprintLists: any = {};\n const sprintListIds: string[] = [];\n sprint.lists.forEach((l: any) => {\n const sprintListKey = getSprintListKey(projectId, sprint.id, l.id);\n sprintListIds.push(sprintListKey);\n l.orginalId = l.id;\n l.id = sprintListKey;\n listCards[sprintListKey] = [...(l.card_order || [])];\n sprintLists[sprintListKey] = l;\n });\n commit('setSprintListsFlat', sprintLists);\n commit('setListCards', listCards);\n commit('setSprintsListsIds', { sprintId: sprint.id, list: sprintListIds, projectId });\n }\n commit('setBoardListsFlat', sprint.lists || []);\n const sprintKey = getSprintKey(projectId, sprint.id);\n sprints[sprintKey] = sprint;\n sprints[sprintKey].orginalId = sprint.id;\n sprints[sprintKey].id = sprintKey;\n });\n commit('setSpaceSprints', { projectId, sprints });\n commit('setFlatBoards', Object.values(sprints));\n return data;\n })\n .catch((err) => {\n return err;\n })\n .finally(() => {\n delete activePromises.sprints[projectId];\n });\n },\n\n setSprintsListsIds({ commit }, { sprintId, list, projectId }) {\n commit('setSprintsListsIds', { sprintId, list, projectId });\n },\n\n getSprint({ getters, dispatch }, { projectId, sprintId }) {\n const generatedSprintId = getSprintKey(projectId, sprintId);\n const existingPromise = activePromises.sprints[generatedSprintId];\n\n if (existingPromise !== undefined) return existingPromise;\n const promise = authGet(\n `${getters.getRoutes.cards}/v1/${getters.getTeamID}/sprints/${sprintId}?project_id=${projectId}`\n )\n .then(({ data }) => {\n const sprint = data.sprint;\n dispatch('postFetchSprint', sprint);\n return data;\n })\n .catch((err) => {\n return err;\n })\n .finally(() => {\n delete activePromises.sprints[generatedSprintId];\n });\n activePromises.sprints[generatedSprintId] = promise;\n return promise;\n },\n\n postFetchSprint({ getters, commit }, sprint) {\n const projectId = sprint.project_id;\n const sprintForSet = sprint;\n sprintForSet.orginalId = sprint.id;\n sprintForSet.id = getSprintKey(projectId, sprint.id);\n const listCards: any = {};\n const cards: any = {};\n const rolledoverList = {\n id: 'rolledover',\n title: 'Rolled over',\n board_id: `${sprintForSet.id}`,\n team_id: sprintForSet.team_id,\n card_order: (sprintForSet.unfinished_cards || []).map((c: any) => c.id),\n cards: sprintForSet.unfinished_cards,\n behavior: 'rolledover',\n };\n if (sprint?.unfinished_cards?.length) {\n sprintForSet.lists.push(rolledoverList);\n }\n\n const sprintLists: any[] = [];\n const sprintListIds: string[] = [];\n\n (sprintForSet?.lists || []).forEach((l: any) => {\n const sprintListId = getSprintListKey(projectId, sprintForSet.orginalId, l.id);\n sprintListIds.push(sprintListId);\n sprintLists.push({\n ...l,\n orginalId: l.id,\n id: sprintListId,\n board_id: `${sprintForSet.id}`,\n });\n\n listCards[sprintListId] = [...(l.card_order || [])];\n l.cards?.forEach((c: any) => {\n const cards = getters.getCards || {};\n const isRolledOverList = l.behavior === 'rolledover';\n const shouldAddRolledOverCard = !cards[c.id] || cards[c.id].partially_loaded;\n const shouldAddCardToState = !isRolledOverList || shouldAddRolledOverCard;\n\n if (!c || !shouldAddCardToState) return;\n\n const stateCard = cards[c.id] || {};\n // sometimes the card is already in the state, but not fully loaded\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { partially_loaded, ...restStateCard } = toRaw(stateCard);\n cards[c.id] = {\n ...toRaw(restStateCard),\n ...toRaw(c),\n };\n\n if (c?.child_cards?.length) {\n c.child_cards.forEach((child: any) => {\n if (!cards[child.card_id]) {\n child.partially_loaded = true;\n child.id = child.card_id;\n commit('addCardToCards', { card: child });\n }\n });\n }\n });\n });\n sprintForSet.lists = sprintLists;\n commit('addSprintToSpaceSprints', { projectId, sprint: sprintForSet });\n commit('setFlatBoards', [sprintForSet]);\n commit('setCards', cards);\n commit('setListCards', listCards);\n commit('setBoardListsFlat', sprintLists || []);\n commit('setSprintsListsIds', {\n sprintId: sprintForSet.orginalId,\n list: sprintListIds,\n projectId,\n });\n },\n\n setSprintForEdit({ commit }, item) {\n commit('setSprintForEdit', item);\n },\n\n localUpdateSprint({ commit }, { projectId, sprintId, prop, value }) {\n commit('localUpdateSprint', { projectId, sprintId, prop, value });\n },\n\n updateSprint({ getters }, { projectId, sprintId, payload }) {\n return authPatch(\n `${getters.getRoutes.cards}/v1/${getters.getTeamID}/sprints/${sprintId}?project_id=${projectId}`,\n payload\n )\n .then(({ data }) => data)\n .catch((err) => {\n throw err;\n });\n },\n\n localUpdateEpicInChildCards(\n { getters, commit, dispatch },\n { cardId = '', epicBrief = {} }: { cardId: string; epicBrief: EpicBrief }\n ) {\n if (!cardId) return;\n\n const card: Card = JSON.parse(JSON.stringify(getters.getCardById(cardId)));\n\n if (Object.keys(card || {}).length === 0) return;\n\n const childCards = card.child_cards || [];\n\n childCards.forEach((child: any) => {\n commit('localUpdateCardField', {\n cardId: child.card_id || child.id,\n fieldName: 'epic',\n fieldValue: epicBrief,\n });\n dispatch('localUpdateEpicInChildCards', {\n cardId: child.card_id || child.id,\n epicBrief,\n });\n });\n },\n\n localRemoveCardFromEpic({ getters, commit, dispatch }, cardId: string) {\n if (!cardId) return;\n\n const stateCard: Card = JSON.parse(JSON.stringify(getters.getCardById(cardId)));\n\n if (Object.keys(stateCard || {}).length === 0) return;\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'epic',\n fieldValue: {},\n });\n\n dispatch('localUpdateEpicInChildCards', {\n cardId,\n epicBrief: {},\n });\n\n const stateEpic: IEpic = getters.getCardById(stateCard.epic?.id);\n if (Object.keys(stateEpic || {}).length > 0) {\n dispatch('localRemoveCardFromParent', {\n childCardId: stateCard.id,\n cardId: stateEpic.id,\n });\n dispatch('removeCardFromGroupByBoard', {\n card: stateCard,\n });\n }\n },\n\n localAddCardToEpic(\n { getters, commit, dispatch },\n { cardId, epicId, epicBrief = {} }: { cardId: string; epicId: string; epicBrief: any }\n ) {\n if (!epicBrief.id && !epicId) return;\n\n const rawCard = toRaw(getters.getCardById(cardId));\n const card: Card = cloneDeep(rawCard);\n\n if (Object.keys(card || {}).length === 0) return;\n\n const stateEpic = toRaw(getters.getCardById(epicId || epicBrief.id));\n card.epic = {\n id: epicId || epicBrief.id,\n title: stateEpic?.title || epicBrief.title,\n icon: stateEpic?.icon || epicBrief.icon,\n };\n\n commit('localUpdateCardField', {\n cardId,\n fieldName: 'epic',\n fieldValue: card.epic,\n });\n\n // add epic to all child cards\n if (card.child_cards && card.child_cards.length > 0) {\n dispatch('localUpdateEpicInChildCards', {\n cardId,\n epicBrief: card.epic,\n });\n }\n\n if (Object.keys(stateEpic || {}).length > 0) {\n dispatch('localAddCardToParent', {\n parentCard: stateEpic,\n childCard: card,\n });\n dispatch('addCardToGroupByBoard', {\n card,\n });\n }\n },\n\n removeCardFromEpic({ getters, dispatch, commit }, cardId: string) {\n const rawCard = toRaw(getters.getCardById(cardId));\n const card: Card = cloneDeep(rawCard);\n const epic: EpicBrief = card.epic ?? {};\n\n if (!epic?.id) {\n throw new Error('card is not added to an epic');\n }\n\n dispatch('localRemoveCardFromEpic', cardId);\n\n commit('removeCardFromGroupByList', {\n boardId: card.board_id,\n cardId,\n listId: epic.id,\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n commit('addCardToGroup', {\n boardId: card.board_id,\n cardId,\n listId: 'noproject',\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n\n return api.boards.removeCardFromEpic(getters.getTeamID, epic.id, cardId).catch(() => {\n dispatch('localAddCardToEpic', { cardId, epicId: epic.id });\n commit('addCardToGroup', {\n boardId: card.board_id,\n cardId,\n listId: 'noproject',\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n commit('addCardToGroup', {\n boardId: card.board_id,\n cardId,\n listId: epic.id,\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n });\n },\n\n addCardToEpic(\n { getters, dispatch, commit },\n { cardId, epicId }: { cardId: string; epicId: string }\n ) {\n const card: Card = cloneDeep(toRaw(getters.getCardById(cardId)));\n\n if (card.epic?.id) {\n throw new Error('card is already added to an epic');\n }\n\n dispatch('localAddCardToEpic', { cardId, epicId });\n commit('addCardToGroup', {\n boardId: card.board_id,\n cardId,\n listId: epicId,\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n commit('removeCardFromGroupByList', {\n boardId: card.board_id,\n cardId,\n listId: 'noproject',\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n return api.boards.addCardToEpic(getters.getTeamID, epicId, cardId).catch(() => {\n dispatch('localRemoveCardFromEpic', cardId);\n commit('removeCardFromGroupByList', {\n boardId: card.board_id,\n cardId,\n listId: epicId,\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n commit('addCardToGroup', {\n boardId: card.board_id,\n cardId,\n listId: 'noproject',\n groupBy: groupByOption.epic,\n teamId: getters.getTeamID,\n });\n });\n },\n\n async deleteBoard({ getters, dispatch, commit }, { boardId, projectId }) {\n const board = getters.getBoardById(boardId) || {};\n\n if (Object.keys(board).length === 0) return Promise.reject(new Error('Board not found'));\n\n const projectIndex = getters.getTeamProjects.findIndex(\n (project: any) => project.id === projectId\n );\n if (projectIndex === -1) {\n return Promise.reject(new Error('Project not found'));\n }\n const oldBoardOrder = getters.getTeamProjects[projectIndex].board_order;\n const newBoardOrder = oldBoardOrder.filter((id: string) => id !== boardId);\n const flatBoard = getters.getFlatBoards[boardId];\n const allCards: any = [];\n\n if (flatBoard.lists?.length > 0) {\n flatBoard.lists.forEach((list: any) => {\n list.card_order.forEach((cardId: any) => {\n allCards.push(cardId);\n });\n });\n }\n\n dispatch('localUpdateProjectBoardsOrder', {\n projectId: projectId,\n payload: newBoardOrder,\n });\n\n const isFavourite = getters.isFavourite(boardId, ResourceType.Board);\n\n return await api.boards\n .deleteBoard(getters.getTeamID, boardId)\n .then(() => {\n // remove board from flat boards\n const flatBoards = getters.getFlatBoards;\n if (flatBoards?.hasOwnProperty(boardId)) {\n delete flatBoards[boardId];\n }\n const boardsArray = Object.values(flatBoards);\n commit('setFlatBoards', boardsArray);\n dispatch('addBoardInBoards', { id: `${boardId}_notFound`, notFound: true });\n\n dispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: {\n id: boardId,\n type: constants.routeNames.board,\n },\n teamId: getters.getTeamID,\n });\n\n dispatch('setProjectBoards', {\n projectId: projectId,\n projectBoards: newBoardOrder,\n });\n\n if (isFavourite) {\n dispatch('deleteUserFavourite', {\n resource_id: boardId,\n resource_type: ResourceType.Board,\n title: board.title,\n });\n }\n if (allCards.length) {\n // delete all cards of the deleted board from favourites and recently viewed\n allCards.forEach((cardId: any) => {\n if (getters.isFavourite(cardId, ResourceType.Card)) {\n dispatch('deleteUserFavourite', {\n resource_id: cardId,\n resource_type: ResourceType.Card,\n });\n }\n dispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: {\n id: cardId,\n type: constants.routeNames.boardCard,\n },\n teamId: getters.getTeamID,\n });\n });\n }\n })\n .catch(() => {\n dispatch('localUpdateProjectBoardsOrder', {\n projectId: projectId,\n payload: oldBoardOrder,\n });\n });\n },\n\n // /**\n // * Deletes a list from the board\n // * https://api.superthread.com/v1/{team_id}/lists/{list_id}\n // * @param {string} listId\n // */\n deleteList({ commit, getters, dispatch }, { listId }) {\n const list = getters.lists[listId];\n const listCards = getters.getListCards[listId];\n\n if (Object.keys(list).length === 0) return Promise.reject(new Error('List not found'));\n\n const currentListOrder = [...getters.boardsListsIds[list.board_id]];\n const newListOrder = [...currentListOrder];\n const index = newListOrder.indexOf(listId);\n\n return api.boards.deleteList(getters.getTeamID, listId).then(() => {\n // delete all cards of the deleted list from favourites and recently viewed\n listCards?.forEach((cardId: any) => {\n if (getters.isFavourite(cardId, ResourceType.Card)) {\n dispatch('deleteUserFavourite', {\n resource_id: cardId,\n resource_type: ResourceType.Card,\n });\n }\n dispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: {\n id: cardId,\n type: constants.routeNames.boardCard,\n },\n teamId: getters.getTeamID,\n });\n });\n if (index > -1) {\n commit('removeBoardListId', {\n boardId: list.board_id,\n id: listId,\n });\n }\n });\n },\n\n async createBranchAutomation({ getters }, { boardId, projectId, automation }) {\n try {\n if (boardId) {\n return await api.boards.createNewVcsBranchAutomation(getters.getTeamID, boardId, {\n name: automation.name,\n });\n }\n\n return await api.boards.createNewSprintVcsBranchAutomation(\n getters.getTeamID,\n { project_id: projectId },\n { name: automation.name }\n );\n } catch (error) {\n return Promise.reject(new Error('Failed to create branch specific automation'));\n }\n },\n\n async updateBranchAutomation({ getters }, { boardId, projectId, oldName, newName }) {\n try {\n if (boardId) {\n return await api.boards.updateBranchNameVcsBranchAutomation(\n getters.getTeamID,\n boardId,\n oldName,\n {\n branch: newName,\n }\n );\n }\n\n return await api.boards.updateBranchNameSprintVcsBranchAutomation(\n getters.getTeamID,\n oldName,\n { project_id: projectId },\n { branch: newName }\n );\n } catch (error) {\n return Promise.reject(new Error('Failed to update branch specific automation'));\n }\n },\n\n async deleteBranchAutomation({ getters }, { boardId, projectId, branch }) {\n try {\n if (boardId) {\n return await api.boards.deleteBoardVcsBranchAutomation(getters.getTeamID, boardId, branch);\n }\n\n return await api.boards.deleteSprintVcsBranchAutomation(getters.getTeamID, branch, {\n project_id: projectId,\n });\n } catch (error) {\n return Promise.reject(new Error('Failed to delete branch specific automation'));\n }\n },\n\n updateBoardEmail({ getters, dispatch }, { boardId, payload }) {\n return api.boards\n .updateBoardEmail(getters.getTeamID, boardId, payload)\n .then(({ data }) => {\n dispatch('updateBoardPropertyInBoards', {\n boardId,\n propertyName: 'email',\n value: payload.active ? { email: data?.email?.email, active: true } : null,\n });\n })\n .catch((error) => error);\n },\n\n constructInEpicBoard({ getters, dispatch }, epicId: string) {\n return api.boards.getAllCardsForEpic(getters.getTeamID, epicId).then(({ data }) => {\n const inEpicBoardId = `${constants.inEpicBoardIdPrefix}-${epicId}`;\n const inEpicBoardListId = `${inEpicBoardId}-list`;\n\n const inEpicBoard: any = {\n id: inEpicBoardId,\n lists: [\n {\n id: inEpicBoardListId,\n cards: [],\n card_order: [],\n },\n ],\n list_order: [inEpicBoardListId],\n };\n\n for (const c of data?.cards || []) {\n if (c.archived) continue;\n inEpicBoard.lists[0].cards.push(c);\n inEpicBoard.lists[0].card_order.push(c.id);\n }\n\n dispatch('postFetchBoard', { board: inEpicBoard });\n\n return inEpicBoard;\n });\n },\n\n setEpicSelectedTabId({ commit }, { cardId, tabId }) {\n commit('setEpicSelectedTabId', { cardId, tabId });\n },\n\n async convertCardToEpic({ getters, dispatch }, cardId) {\n if (!cardId) {\n throw new Error('No card id provided');\n }\n\n // make sure epics board is loaded\n if (!getters.getFlatBoards[constants.epicsBoardId]) {\n await dispatch('fetchBoard', { boardId: constants.epicsBoardId });\n }\n\n // get first epics board list\n const epicsBoard = getters.getFlatBoards[constants.epicsBoardId];\n const firstListId = epicsBoard?.list_order?.[0] || -1;\n\n if (firstListId < 0) {\n throw new Error(constants.noListsInEpicsBoardErr);\n }\n\n const oldCard = cloneDeep(getters.getCardById(cardId)); // we will use this to revert changes if needed\n const firstList = getters.lists[firstListId];\n const backlog = getCardStatus(cardStatusType.Backlog);\n const newEpic = {\n ...oldCard,\n type: ResourceType.Epic,\n board_id: constants.epicsBoardId,\n board_title: '',\n project_id: '',\n estimate: null,\n linked_cards: [],\n epic: {},\n parent_card: {},\n tags: oldCard.tags?.filter((tag: any) => !tag.project_id) || [],\n list_id: firstListId,\n status: firstList.behavior || backlog.id,\n list_color: firstList.color || backlog.color,\n list_title: firstList.title || '',\n sprint_id: null,\n sprint_title: '',\n };\n\n // update start date based on new lists status, if not already set\n // ? setting date might be off as the one from BE will differ\n // ? and it will be set after card is opened again\n\n // remove this card from all linked cards\n const oldLinkedCards: any = {};\n if (oldCard.linked_cards?.length > 0) {\n oldCard.linked_cards.forEach((linkedCard: any) => {\n const linkedCardState = getters.getCardById(linkedCard.card_id);\n if (linkedCardState.linked_cards) {\n oldLinkedCards[linkedCard.card_id] = linkedCardState.linked_cards;\n linkedCardState.linked_cards = linkedCardState.linked_cards.filter(\n (c: any) => c.card_id !== cardId\n );\n dispatch('localUpdateCardField', {\n cardId: linkedCard.card_id,\n fieldName: 'linked_cards',\n fieldValue: linkedCardState.linked_cards,\n });\n }\n });\n }\n\n const oldEpicLinkedCards = getters.getCardById(oldCard.epic?.id || '')?.linked_cards;\n // remove card from parent card\n if (oldCard.parent_card?.card_id) {\n dispatch('localRemoveCardFromParent', {\n childCardId: cardId,\n cardId: oldCard.parent_card.card_id,\n });\n } else if (oldCard.epic?.id) {\n // add current epic as related card\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'linked_cards',\n fieldValue: [\n {\n card_id: oldCard.epic.id,\n linked_card_type: 'related',\n },\n ],\n });\n dispatch('localUpdateCardField', {\n cardId: oldCard.epic.id,\n fieldName: 'linked_cards',\n fieldValue: [\n {\n card_id: cardId,\n linked_card_type: 'related',\n },\n ],\n });\n }\n\n // update prop in child cards from parent_card to epic\n if (oldCard.child_cards?.length > 0) {\n dispatch('localUpdateEpicInChildCards', {\n cardId,\n epicBrief: {\n id: cardId,\n title: oldCard.title,\n },\n });\n\n oldCard.child_cards.forEach((child: any) => {\n dispatch('localUpdateCardField', {\n cardId: child.card_id || child.id,\n fieldName: 'parent_card',\n fieldValue: {},\n });\n });\n }\n\n // remove from old list\n const oldListId = oldCard.sprint_id\n ? getSprintListKey(oldCard.project_id, oldCard.sprint_id, oldCard.list_id)\n : oldCard.list_id;\n const oldListCards = cloneDeep(getters.getListCards[oldListId]);\n dispatch('removeCardFromListCards', { listId: oldListId, cardId });\n dispatch('removeCardFromGroupByBoard', { boardId: oldCard.board_id, card: oldCard });\n\n // overwrite card in state\n dispatch('addCardToCards', { card: newEpic });\n\n // add to new list, board and board groupby\n dispatch('addCardToListCards', { listId: firstListId, cardId });\n dispatch('addCardToGroupByBoard', { boardId: constants.epicsBoardId, card: newEpic });\n\n return api.boards\n .convertCardToEpic(getters.getTeamID, cardId)\n .then((/* { epic } */) => {\n // remove card from currently displayed view results\n const viewResults = getters.getViewResults;\n const viewCardIndex = viewResults.findIndex((c: any) => c.id === cardId);\n if (viewCardIndex > -1) {\n viewResults.splice(viewCardIndex, 1);\n dispatch('setViewResults', viewResults);\n dispatch('currentViewTotalCount', viewResults.length);\n }\n\n // update existing card in recently viewed\n dispatch('updateItemInElectronRecentlyViewed', {\n id: cardId,\n type: constants.routeNames.boardCard,\n toUpdate: {\n type: constants.epicRoute.name,\n additionalIcon: { src: constants.epicDefaultIcon },\n },\n });\n\n // remove from favourites\n //! will be changed after we implement it on BE (card in favourites will be updated instead)\n if (getters.isFavourite(cardId, ResourceType.Card)) {\n dispatch('deleteUserFavourite', {\n resource_id: cardId,\n resource_type: ResourceType.Card,\n title: oldCard.title,\n });\n }\n\n // we return locally adjusted epic instead of one from response\n // as certain fields are updated asynchrounously on BE\n return newEpic;\n })\n .catch((e: Error) => {\n dispatch('addCardToCards', { card: oldCard });\n dispatch('removeCardFromListCards', { listId: firstListId, cardId });\n dispatch('removeCardFromGroupByBoard', {\n boardId: constants.epicsBoardId,\n card: newEpic,\n });\n dispatch('setListCards', { [oldListId]: oldListCards });\n dispatch('addCardToGroupByBoard', { boardId: oldCard.board_id, card: oldCard });\n\n if (oldCard.linked_cards?.length > 0) {\n // revert old linked cards\n oldCard.linked_cards.forEach((linkedCard: any) => {\n const linkedCardState = getters.getCardById(linkedCard.card_id);\n if (linkedCardState.linked_cards) {\n dispatch('localUpdateCardField', {\n cardId: linkedCard.card_id,\n fieldName: 'linked_cards',\n fieldValue: oldLinkedCards[linkedCard.card_id] || [],\n });\n }\n });\n\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'linked_cards',\n fieldValue: oldCard.linked_cards,\n });\n }\n\n if (oldCard.parent_card?.card_id) {\n dispatch('localAddCardToParent', {\n childCardId: cardId,\n cardId: oldCard.parent_card.card_id,\n });\n } else if (oldCard.epic?.id) {\n if ((oldCard.linked_cards ?? []).length === 0) {\n dispatch('localUpdateCardField', {\n cardId,\n fieldName: 'linked_cards',\n fieldValue: [],\n });\n }\n\n // revert old epics linked cards\n if (oldEpicLinkedCards) {\n dispatch('localUpdateCardField', {\n cardId: oldCard.epic.id,\n fieldName: 'linked_cards',\n fieldValue: oldEpicLinkedCards,\n });\n }\n }\n\n if (oldCard.child_cards?.length > 0) {\n oldCard.child_cards.forEach((child: any) => {\n dispatch('localUpdateCardField', {\n cardId: child.card_id || child.id,\n fieldName: 'parent_card',\n fieldValue: { id: cardId, title: oldCard.title },\n });\n });\n\n dispatch('localUpdateEpicInChildCards', {\n cardId,\n epicBrief: {},\n });\n }\n\n throw e; // re-throw to propagate it further\n });\n },\n\n setListsExpanded({ commit, getters }, { boardId, listId, value }) {\n const teamSlug = getters.getTeamSlug;\n commit('setListsExpanded', { teamSlug, boardId, listId, value });\n },\n\n addCardToSubGroupByList(\n { commit, getters },\n { boardId, epicId, cardId, parentListId, listId, groupBy, subGroupBy }\n ) {\n const teamId = getters.getTeamID;\n commit('addCardToGroup', {\n boardId,\n epicId,\n cardId,\n listId,\n groupBy,\n teamId,\n parentListId,\n subGroupBy,\n });\n },\n\n removeCardFromSubGroupByList(\n { commit, getters },\n { boardId, epicId, cardId, parentListId, listId, groupBy, subGroupBy }\n ) {\n const teamId = getters.getTeamID;\n commit('removeCardFromSubGroupByList', {\n boardId,\n epicId,\n cardId,\n parentListId,\n listId,\n groupBy,\n subGroupBy,\n teamId,\n });\n },\n};\n\nexport default actions;\n","import getDefaultBoardState from './getDefaultBoardState';\nimport getters from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nexport default {\n state: getDefaultBoardState(),\n getters,\n actions,\n mutations,\n};\n","import { PageState } from '@/types';\nimport { browserStorageGetItem } from '@/utilities/browser-storage.util';\nimport { getParentPageForAddKey } from '@/utilities/localDrafts';\n\nconst getDefaultPageState = (): PageState => ({\n pageVersions: [],\n currentPageID: '',\n currentPageMode: 'view',\n\n archivedPages: [],\n page: {},\n projectPages: {},\n pages: {},\n newPageCreating: false,\n\n pagesEntity: 'pages',\n loadingPages: true,\n pageCreating: false,\n imageUploadPopup: false,\n coverImageUploadPopup: false,\n pageIconUploadPopup: false,\n insertLinkPopup: false,\n inlineCommentPopup: false,\n lastSidebarItemAdded: '',\n parentPageIdForAdd: 'root',\n projectPagesTree: {},\n sidebarDraftPage:\n browserStorageGetItem(getParentPageForAddKey(browserStorageGetItem('currentTeamId') || '')) ??\n {},\n archivePages: {},\n archivePagesTree: {},\n parentPageExpanded: {},\n pageUploadPopup: {},\n pageRenamingId: '',\n commentsSchema: 1,\n pagesSchema: 1,\n quickPageFilesToUpdate: [],\n pageTemplates: {},\n highlightedPageLevelComments: [],\n pageLevelCommentInputActive: false,\n pageTemplateDraft: {\n title: '',\n icon: {},\n project_ids: [],\n page_title: '',\n page_content: '',\n },\n pageEditorDisplay: {},\n pageIdForMove: '',\n});\n\nexport default getDefaultPageState;\n","/* eslint-disable no-shadow */\n/**\n * Page module vuex getters\n * @packageDocumentation\n * @category Store\n */\nimport { GetterTree } from 'vuex';\nimport { PageState as State } from '@/types';\n\nconst getters: GetterTree = {\n archivedPages: (state) => state.archivedPages,\n\n getCurrentPageID: (state) => state.currentPageID || state.page.id,\n\n getCurrentPageMode: (state) => state.currentPageMode,\n\n getPageTitle: (state) => state.page.title,\n\n getPage: (state) => state.page,\n\n getCurentPage: (state) => state.pages[state.currentPageID || ''] || {},\n\n getPageContent: (state) => state.page.content,\n\n loadingPages: (state) => state.loadingPages,\n\n getPagesEntity: (state) => state.pagesEntity,\n\n pageCreating: (state) => state.pageCreating,\n\n showImageUploadPopup: (state) => state.imageUploadPopup,\n\n showCoverImageUploadPopup: (state) => state.coverImageUploadPopup,\n\n showPageIconUploadPopup: (state) => state.pageIconUploadPopup,\n\n showInsertLinkPopup: (state) => state.insertLinkPopup,\n\n pageVersions: (state) => state.pageVersions,\n\n getCurrentProjectPages: (state, _getters, rootState, rootGetters) =>\n state.projectPages[rootGetters.getCurrentProjectId] || [],\n\n getPageById: (state) => (pageId: string) => state.pages[pageId],\n\n getPages: (state) => state.pages,\n\n getNewPageCreating: (state) => state.newPageCreating,\n\n commentPopupVisible: (state) => state.inlineCommentPopup,\n\n getProjectPages: (state) => (projectId: string) => state.projectPages[projectId] || [],\n\n lastSidebarItemAdded: (state) => state.lastSidebarItemAdded || '',\n\n getParentPageIdForAdd: (state) => state.parentPageIdForAdd,\n\n /** Returns the pages tree for specific projectId. */\n getProjectPagesTree: (state) => (projectId: string | number) =>\n state.projectPagesTree[projectId] || {},\n\n getProjectPagesArchiveTree: (state) => (projectId: string | number) =>\n state.archivePagesTree[projectId] || {},\n\n sidebarDraftPage: (state) => state.sidebarDraftPage || {},\n\n getParentPageExpanded: (state) => (id: string) => state.parentPageExpanded[id] || false,\n\n getPageUploadPopup: (state) => state.pageUploadPopup,\n pageRenamingId: (state) => state.pageRenamingId,\n commentsSchema: (state) => state.commentsSchema,\n pagesSchema: (state) => state.pagesSchema,\n\n getQuickPageFilesToUpdate: (state) => state.quickPageFilesToUpdate,\n\n archivePages: (state) => state.archivePages,\n\n highlightedPageLevelComments: (state) => state.highlightedPageLevelComments,\n\n getPageLevelCommentInputActive: (state) => state.pageLevelCommentInputActive,\n\n getPageTemplates: (state) => state.pageTemplates,\n getPageTemplateDraft: (state) => state.pageTemplateDraft,\n\n getPageEditorDisplay: (state) => state.pageEditorDisplay,\n\n getPageIdForMove: (state) => state.pageIdForMove,\n};\n\nexport default getters;\n","/**\n * Page module vuex mutations\n * @packageDocumentation\n * @category Store\n */\nimport { MutationTree } from 'vuex';\nimport { PageState as State } from '@/types';\nimport getDefaultPageState from './getDefaultPageState';\nimport { browserStorageSetItem, browserStorageGetItem } from '@/utilities/browser-storage.util';\nimport { getParentPageForAddKey } from '@/utilities/localDrafts';\nimport { isTokenExpired } from '@/utilities/jwtUtilities';\nimport { toRaw } from 'vue';\n\nconst mutations: MutationTree = {\n setArchivedPages(state, data = []) {\n state.archivedPages = data;\n },\n\n addPageToArchivedPages(state, pageId) {\n state.archivedPages.push(pageId);\n },\n\n removePageFromArchivedPages(state, pageId) {\n const index = state.archivedPages.findIndex((id) => id === pageId);\n\n if (index > -1) {\n state.archivedPages.splice(index, 1);\n }\n },\n\n setPage(state, page = {}) {\n const existingPage = state.pages[page.id];\n let expired = true;\n if (existingPage?.collaboration?.token) {\n expired = isTokenExpired(existingPage.collaboration.token);\n }\n\n state.page = {\n ...existingPage,\n ...page,\n collaboration: expired ? toRaw(page.collaboration) : toRaw(existingPage.collaboration),\n };\n },\n\n updatePageMeta(state, page = {}) {\n state.page = {\n ...state.page,\n ...(page.bookmarked && { bookmarked: page.bookmarked }),\n ...(page.id && { id: page.id }),\n ...(page.is_public && { is_public: page.is_public }),\n ...(page.members && { members: page.members }),\n ...(page.project_id && { project_id: page.project_id }),\n ...(page.public_settings && { public_settings: page.public_settings }),\n ...(page.team_id && { team_id: page.team_id }),\n ...(page.time_created && { time_created: page.time_created }),\n ...(page.time_updated && { time_updated: page.time_updated }),\n ...(page.user_id && { user_id: page.user_id }),\n ...(page.icon && { icon: page.icon }),\n ...(page.cover_image && { cover_image: page.cover_image }),\n ...(page.collaboration && { collaboration: page.collaboration }),\n };\n\n const currentPageId = state.currentPageID;\n if (!state.pages[currentPageId]) {\n state.pages[currentPageId] = state.page;\n }\n state.pages[currentPageId] = {\n ...state.page,\n ...{\n bookmarked: page.bookmarked,\n id: page.id,\n is_public: page.is_public,\n members: page.members,\n project_id: page.project_id,\n public_settings: page.public_settings,\n team_id: page.team_id,\n time_created: page.time_created,\n time_updated: page.time_updated,\n user_id: page.user_id,\n cover_image: page.cover_image,\n icon: page.icon,\n },\n };\n },\n\n setCurrentPageID(state, id) {\n state.currentPageID = id;\n },\n\n setCurrentPageMode(state, mode) {\n state.currentPageMode = mode;\n },\n\n setPagesEntity(state, entity) {\n state.pagesEntity = entity;\n },\n\n loadingPages(state, payload) {\n state.loadingPages = payload;\n },\n\n removePageFromListByIndex(state, pageIndex) {\n if (state.pages[pageIndex]) {\n state.pages.splice(pageIndex, 1);\n }\n },\n\n pageCreating(state, payload) {\n state.pageCreating = payload;\n },\n\n setImageUploadPopup(state, payload) {\n state.imageUploadPopup = payload;\n },\n\n setCoverImageUploadPopup(state, payload) {\n state.coverImageUploadPopup = payload;\n },\n\n setPageIconUploadPopup(state, payload) {\n state.pageIconUploadPopup = payload;\n },\n\n setInsertLinkPopup(state, payload) {\n state.insertLinkPopup = payload;\n },\n\n resetPageState(state) {\n Object.assign(state, getDefaultPageState());\n },\n\n setPageVersions(state, payload) {\n state.pageVersions = payload;\n },\n\n setProjectPages(state, { projectId, pagesIds }) {\n state.projectPages[projectId] = pagesIds;\n },\n\n setPages(state, pages) {\n const updatedPages: any = {};\n Object.keys(pages).forEach((pageId) => {\n const page = pages[pageId];\n const existingPage = state.pages[pageId];\n if (!existingPage || page.time_updated > existingPage.time_updated) {\n updatedPages[pageId] = page;\n } else {\n updatedPages[pageId] = {\n ...existingPage,\n ...page,\n content: existingPage.content ?? page.content,\n time_updated: existingPage.time_updated ?? page.time_updated,\n };\n }\n });\n const newPages = { ...state.pages, ...updatedPages };\n\n state.pages = newPages;\n },\n\n addPageToProjectPages(state, { pageId, projectId }) {\n if (!state.projectPages[projectId]) {\n state.projectPages[projectId] = [];\n }\n state.projectPages[projectId].push(pageId);\n },\n\n setNewPageCreating(state, value) {\n state.newPageCreating = value;\n },\n\n localUpdatePageProp(state, { pageId, propertyName, value }) {\n if (state.page.id === pageId) {\n state.page[propertyName] = value;\n }\n if (state.pages[pageId]) {\n state.pages[pageId][propertyName] = value;\n }\n },\n\n removePageFormProjectPages(state, { pageId, projectId }) {\n if (state.projectPages[projectId]) {\n const index = state.projectPages[projectId].findIndex((id: any) => id === pageId);\n\n if (index > -1) {\n state.projectPages[projectId].splice(index, 1);\n }\n }\n },\n\n localRemovePageProp(state, { pageId, propertyName }) {\n if (state.page.id === pageId) {\n delete state.page[propertyName];\n }\n\n delete state.pages[pageId][propertyName];\n },\n\n addPageToPagesList(state, { page }) {\n const existingPage = state.pages[page.id];\n if (!existingPage || page.time_updated > existingPage.time_updated) {\n state.pages[page.id] = page;\n } else {\n state.pages[page.id] = {\n ...existingPage,\n ...page,\n content: existingPage.content ?? page.content,\n time_updated: existingPage.time_updated ?? page.time_updated,\n };\n }\n },\n\n deleteFromPages(state, { id }) {\n delete state.pages[id];\n },\n\n commentPopupVisible(state, payload) {\n state.inlineCommentPopup = payload;\n },\n\n addPageToFlatPages(state, page) {\n if (!state.pages[page.id]) {\n state.pages[page.id] = {};\n }\n const newPage = {\n ...page,\n ...{\n bookmarked: page.bookmarked,\n id: page.id,\n is_public: page.is_public,\n members: page.members,\n project_id: page.project_id,\n team_id: page.team_id,\n time_created: page.time_created,\n time_updated: page.time_updated,\n user_id: page.user_id,\n cover_image: page.cover_image,\n icon: page.icon,\n },\n };\n state.pages[page.id] = newPage;\n },\n\n setLastSidebarItemAdded(state, id) {\n state.lastSidebarItemAdded = id;\n },\n\n setParentPageIdForAdd(state, id) {\n state.parentPageIdForAdd = id;\n },\n\n setProjectPagesTree(state, { projectId, pagesTree }) {\n const draftPageProjectId = state.sidebarDraftPage?.projectId;\n const draftPageParentId = state.sidebarDraftPage?.parent;\n // Check if the project ID matches the ID of the currently selected draft page in the sidebar.\n if (projectId === draftPageProjectId) {\n // Get draft page if it exists in the local storage.\n const draftPage: any =\n browserStorageGetItem(\n getParentPageForAddKey(browserStorageGetItem('currentTeamId') || '')\n ) ?? {};\n // Update the project pages tree with the provided pages tree for the specified project ID.\n state.projectPagesTree[projectId] = {\n ...(state.projectPagesTree[projectId] ?? {}),\n ...(pagesTree ?? {}),\n };\n // Check if there are children in the draft page's parent in the current project pages tree.\n if (Object.keys(draftPage).length > 0) {\n const projecPagesTree = state.projectPagesTree?.[draftPageProjectId] ?? {};\n // Retrieve the current children of the draft page's parent.\n if (projecPagesTree) {\n const currentChildren =\n state.projectPagesTree?.[draftPageProjectId]?.[draftPageParentId]?.children ?? [];\n // Add the children of the draft page's parent to the current children and update the tree.\n state.projectPagesTree[draftPageProjectId][draftPageParentId] = {\n ...(state.projectPagesTree[draftPageProjectId][draftPageParentId] ?? {}),\n children: [...currentChildren, draftPage.id],\n };\n }\n }\n return;\n }\n state.projectPagesTree[projectId] = pagesTree;\n },\n\n setProjectPageOrderTree(state, { projectId, pagesTree }) {\n state.projectPagesTree[projectId] = pagesTree;\n },\n\n setProjectArchivedTree(state, { projectId, archiveTree }) {\n state.archivePagesTree[projectId] = archiveTree;\n },\n\n setProjectArchivePages(state, archivePages) {\n const newPages = { ...state.archivePages, ...archivePages };\n state.archivePages = newPages;\n },\n\n setProjectArchivePagesTree(state, { projectId, archivedPagesTree }) {\n state.archivePagesTree[projectId] = archivedPagesTree;\n },\n\n localUpdatePageOrderPosition(state, { projectId, parentId, newOrder }) {\n state.projectPagesTree[projectId][parentId].children = newOrder;\n },\n\n localAddPageInPageTree(state, { projectId, page, order, position = -1 }) {\n const newPageTree = {\n ...state.projectPagesTree[projectId],\n ...{ [page.id]: page },\n };\n state.projectPagesTree[projectId] = newPageTree;\n\n if (!order) return; // parent root order\n\n if (state.projectPagesTree[projectId][page.parent]) {\n if (state.projectPagesTree[projectId][page.parent]?.children?.includes(page.id)) return;\n if (state.projectPagesTree[projectId][page.parent].children) {\n if (position > -1) {\n state.projectPagesTree[projectId][page.parent].children.splice(position, 0, page.id);\n return;\n }\n state.projectPagesTree[projectId][page.parent].children.push(page.id);\n } else {\n state.projectPagesTree[projectId][page.parent].children = [page.id];\n }\n } else {\n // Check if the parent of the given page is not 'root'.\n if (page.parent !== 'root') {\n // Update the project pages tree for the specified project ID, adding the parent and its children.\n state.projectPagesTree[projectId] = {\n ...(state.projectPagesTree[projectId] ?? {}),\n [page.parent]: {\n ...(state.projectPagesTree[projectId][page.parent] ?? {}),\n children: [page.id],\n },\n };\n return;\n }\n const rootChildren = state.projectPagesTree[projectId]?.root?.children || [];\n if (rootChildren?.includes(page.id)) return;\n state.projectPagesTree[projectId] = {\n ...newPageTree,\n root: {\n id: 'root',\n children: [...rootChildren, page.id],\n },\n };\n }\n },\n\n localAddPageInArchivePageTree(state, { projectId, page }) {\n const newPageTree = {\n ...state.archivePagesTree[projectId],\n ...{ [page.id]: page },\n };\n\n const newPages = { ...state.archivePages, ...{ [page.id]: state.pages[page.id] } };\n state.archivePages = newPages;\n\n state.archivePagesTree[projectId] = newPageTree;\n\n if (state.archivePagesTree[projectId][page.parent]) {\n if (state.archivePagesTree[projectId][page.parent].children) {\n state.archivePagesTree[projectId][page.parent].children.push(page.id);\n } else {\n state.archivePagesTree[projectId][page.parent].children = [page.id];\n }\n } else {\n state.archivePagesTree[projectId] = {\n ...newPageTree,\n root: { id: 'root', children: [page.id] },\n };\n }\n },\n\n localRemovePagesFromTree(state, { projectId, pages }) {\n const pagesForDelete = pages;\n\n pagesForDelete.forEach((page: any) => {\n delete state.projectPagesTree[projectId][page.id];\n });\n },\n\n localRemovePagesFromArchiveTree(state, { projectId, pages }) {\n const pagesForDelete = pages;\n\n pagesForDelete.forEach((page: any) => {\n if (state.archivePagesTree[projectId] && page?.id) {\n delete state.archivePagesTree[projectId][page.id];\n }\n });\n },\n\n localRemovePageFromPageOrder(state, { projectId, pageId }) {\n if (!state.projectPagesTree[projectId]) return;\n const page = state.projectPagesTree[projectId][pageId];\n const pageParentId = page?.parent;\n const parentsPageChildren = state.projectPagesTree[projectId][pageParentId]?.children;\n if (!parentsPageChildren) return;\n if (!page) return;\n\n delete state.projectPagesTree[projectId][pageId];\n\n const pageForRemoveIndex = parentsPageChildren.findIndex((i: any) => i === pageId);\n if (pageForRemoveIndex > -1) {\n parentsPageChildren.splice(pageForRemoveIndex, 1);\n }\n if (parentsPageChildren.length === 0) {\n const newPageTree = {\n ...state.projectPagesTree[projectId],\n ...{\n [page.id]: {\n id: page.id,\n parent: pageParentId,\n },\n },\n };\n state.projectPagesTree[projectId] = newPageTree;\n }\n },\n\n removePageFromArchivedParentOrder(state, { projectId, pageParentId, pageId }) {\n const pageForRemoveIndex = state.archivePagesTree[projectId][pageParentId].children.findIndex(\n (i: any) => i === pageId\n );\n if (pageForRemoveIndex > -1) {\n state.archivePagesTree[projectId][pageParentId].children.splice(pageForRemoveIndex, 1);\n }\n },\n\n localRemovePageFromArchivedTree(state, { projectId, pageId }) {\n const page = state.archivePagesTree[projectId][pageId];\n if (!page) return;\n const pageParentId = page.parent;\n\n delete state.archivePagesTree[projectId][pageId];\n delete state.archivePages[pageId];\n\n const pageForRemoveIndex = state.archivePagesTree[projectId][pageParentId].children.findIndex(\n (i: any) => i === pageId\n );\n if (pageForRemoveIndex > -1) {\n state.archivePagesTree[projectId][pageParentId].children.splice(pageForRemoveIndex, 1);\n }\n if (state.archivePagesTree[projectId][pageParentId].children.length === 0) {\n const newPageTree = {\n ...state.archivePagesTree[projectId],\n ...{\n [page.id]: {\n id: page.id,\n parent: pageParentId,\n },\n },\n };\n state.archivePagesTree[projectId] = newPageTree;\n }\n },\n\n localAddPageToPageOrder(state, { projectId, pageId }) {\n const page = state.projectPagesTree[projectId][pageId];\n const pageParentId = page.parent;\n if (state.projectPagesTree[projectId][pageParentId].children.includes(pageId)) return;\n state.projectPagesTree[projectId][pageParentId].children.push(pageId);\n },\n\n localMovePageInPageTree(\n state,\n { projectIdTo, projectIdFrom, page, parentIdTo, parentIdFrom, position }\n ) {\n if (!state.projectPagesTree[projectIdTo]) return;\n if (\n !state.projectPagesTree[projectIdTo][parentIdTo] ||\n !state.projectPagesTree[projectIdFrom][parentIdFrom]\n )\n return;\n const pageForChange = page;\n const pagesObject = { ...state.projectPagesTree };\n delete pagesObject[projectIdFrom][page.id];\n state.projectPagesTree = pagesObject;\n const pageForRemoveIndex = state.projectPagesTree[projectIdFrom][\n parentIdFrom\n ].children.findIndex((i: any) => i === page.id);\n state.projectPagesTree[projectIdFrom][parentIdFrom].children.splice(pageForRemoveIndex, 1);\n\n pageForChange.parent = parentIdTo;\n state.projectPagesTree[projectIdTo] = {\n ...state.projectPagesTree[projectIdTo],\n [page.id]: pageForChange,\n };\n if (state.projectPagesTree[projectIdTo][parentIdTo]?.children) {\n state.projectPagesTree[projectIdTo][parentIdTo].children.splice(position, 0, page.id);\n } else {\n state.projectPagesTree[projectIdTo][parentIdTo].children = [page.id];\n }\n },\n\n localAddProjectInPageTree(state, projectId) {\n const newPageObje = {\n ...state.projectPagesTree[projectId],\n root: { id: 'root', children: [] },\n };\n state.projectPagesTree[projectId] = newPageObje;\n },\n\n setSidebarPageDraft(state, { draftPageItem, teamId }) {\n state.sidebarDraftPage = draftPageItem;\n browserStorageSetItem(getParentPageForAddKey(teamId), draftPageItem);\n },\n\n setSetParentPageExpand(state, { id, value }) {\n state.parentPageExpanded[id] = value;\n let existing = localStorage.getItem('parentPageExpanded');\n existing = existing ? JSON.parse(existing) : {};\n // @ts-ignore: Object is possibly 'null'.\n existing[id] = value;\n localStorage.setItem('parentPageExpanded', JSON.stringify(existing));\n },\n\n setPageUploadPopup(state, value) {\n state.pageUploadPopup = value;\n },\n\n removePageUploadPopup(state) {\n state.pageUploadPopup = {};\n },\n\n setPageRenamingId(state, value) {\n state.pageRenamingId = value;\n },\n\n addQuickPageFileToUpdate(state, file) {\n state.quickPageFilesToUpdate.push(file);\n },\n\n removeQuickPageFilesToUpdate(state) {\n state.quickPageFilesToUpdate = [];\n },\n\n setPageTemplates(state, templatesArray) {\n const flatTemplates: { [key: string]: any } = {};\n templatesArray.forEach((template: any) => {\n flatTemplates[template.id] = template;\n });\n const newTemplates = { ...flatTemplates };\n state.pageTemplates = newTemplates;\n },\n\n setPageTemplate(state, template) {\n state.pageTemplates[template.id] = template;\n },\n\n replacePageTemplateId(state, { localId, template }) {\n const newTemplates = { ...state.pageTemplates };\n delete newTemplates[localId];\n newTemplates[template.id] = template;\n state.pageTemplates = newTemplates;\n },\n\n deletePageTemplate(state, templateId) {\n const newTemplates = { ...state.pageTemplates };\n delete newTemplates[templateId];\n state.pageTemplates = newTemplates;\n },\n\n setPageTemplateDraft(state, template) {\n const newTemplate = {\n page_content: template.page_content,\n page_title: template.page_title,\n icon: template.icon,\n project_ids: template.project_ids,\n title: template.title,\n };\n state.pageTemplateDraft = newTemplate;\n },\n\n updatePageTemplateDraftField(state, { fieldName, value }) {\n state.pageTemplateDraft[fieldName] = value;\n },\n\n clearPageTemplateDraft(state) {\n state.pageTemplateDraft = {\n title: '',\n icon: {},\n project_ids: [],\n page_title: '',\n page_content: '',\n };\n },\n\n setHighlightedPageLevelComments(state, commentsIds) {\n state.highlightedPageLevelComments = commentsIds;\n },\n\n setPageLevelCommentInputActive(state, value) {\n state.pageLevelCommentInputActive = value;\n },\n\n managePageTemplateSelectedSpaces(state, spaceId) {\n const { project_ids } = state.pageTemplateDraft;\n const index = project_ids.indexOf(spaceId);\n if (index > -1) {\n project_ids.splice(index, 1);\n } else {\n project_ids.push(spaceId);\n }\n },\n\n setPageEditorDisplay(state, payload) {\n state.pageEditorDisplay = payload;\n },\n\n removePage(state, pageId) {\n delete state.pages[pageId];\n },\n\n setPageIdForMove(state, pageId) {\n state.pageIdForMove = pageId;\n },\n};\n\nexport default mutations;\n","/**\n * Pages module actions\n * @packageDocumentation\n * @category Store\n */\nimport { nanoid } from 'nanoid';\nimport { ActionTree } from 'vuex';\nimport { PageState as State } from '@/types';\nimport { authGet, authPut, authDelete, authPatch, api } from '@/utilities/api';\nimport { translate } from '@/utilities';\n\nconst activePromises: { [key: string]: { [key: string]: Promise } } = {\n pages: {},\n projectPages: {},\n};\nimport { OnboardingActionType } from '@/types/onboardingActions';\nimport { ResourceType } from '@/types/resources';\n\nconst actions: ActionTree = {\n loadArchivedPages({ commit, getters }) {\n return api.pages\n .getPages(getters.getTeamID, {\n archived: true,\n })\n .then((r) => r.data)\n .then(({ pages }) => {\n const pagesObject: any = {};\n const pagesIds: any = [];\n\n pages?.forEach((p: any) => {\n pagesIds.push(p.id);\n pagesObject[p.id] = p;\n });\n\n commit('setPages', pagesObject);\n commit('setArchivedPages', pagesIds);\n });\n },\n\n /**\n * Archive page\n * https://api.superthread.com/v1/{team_id}/pages/{page_id}\n */\n archivePage({ commit, getters }, { pageId, projectId }) {\n const { getRoutes, getTeamID } = getters;\n\n const timeNow = Math.floor(Date.now() / 1000);\n const page = getters.getPageById(pageId);\n const pageFromTree = getters.getProjectPagesTree(projectId)[page.id];\n\n commit('addPageToArchivedPages', pageId);\n\n commit('localUpdatePageProp', {\n pageId,\n propertyName: 'archived',\n value: {\n time_archived: timeNow,\n user_id: getters.getUserId,\n parent_page_id: pageFromTree.parent,\n },\n });\n\n commit('removePageFormProjectPages', {\n pageId,\n projectId,\n });\n\n commit('localAddPageInArchivePageTree', { projectId, page: pageFromTree });\n\n commit('localRemovePageFromPageOrder', { projectId, pageId });\n\n commit('localRemovePagesFromTree', { projectId, pages: [pageFromTree] });\n\n // remove page from team project\n commit('removeProjectPage', { pageId, projectId });\n\n return authPut(`${getRoutes.pages}/v1/${getTeamID}/pages/${pageId}/archive`).catch((error) => {\n commit('removePageFromArchivedPages', pageId);\n commit('localUpdatePageProp', {\n pageId,\n propertyName: 'archived',\n value: {\n time_archived: null,\n user_id: '',\n },\n });\n commit('addPageToProjectPages', {\n pageId,\n projectId,\n });\n // add page to team project\n commit('addProjectPage', { page: { id: pageId, title: page.title }, projectId });\n throw error;\n });\n },\n\n unarchivePage({ commit, getters }, { pageId, projectId }) {\n const { getRoutes, getTeamID } = getters;\n const page = getters.getPageById(pageId);\n const archivedTime = page.archived.time_archived;\n const parentPageId = page.archived.parent_page_id;\n\n commit('removePageFromArchivedPages', pageId);\n commit('localUpdatePageProp', {\n pageId,\n propertyName: 'archived',\n value: {\n time_archived: null,\n user_id: '',\n parent_page_id: parentPageId,\n },\n });\n commit('addPageToProjectPages', {\n pageId,\n projectId,\n });\n\n // add page to team project\n commit('addProjectPage', { page: { id: pageId, title: page.title }, projectId });\n\n return authDelete(`${getRoutes.pages}/v1/${getTeamID}/pages/${pageId}/archive`).catch(\n (error) => {\n commit('addPageToArchivedPages', pageId);\n commit('removePageFormProjectPages', {\n pageId,\n projectId,\n });\n commit('localUpdatePageProp', {\n pageId,\n propertyName: 'archived',\n value: {\n time_archived: archivedTime,\n user_id: getters.getUserId,\n parent_page_id: parentPageId,\n },\n });\n\n // remove page from team project\n commit('removeProjectPage', { pageId, projectId });\n throw error;\n }\n );\n },\n\n loadPages({ commit, getters }, projectIdParam) {\n let projectId = projectIdParam;\n if (!projectIdParam) {\n commit('loadingPages', true);\n projectId = getters.getCurrentProjectId;\n }\n if (activePromises.projectPages[projectId] !== undefined) {\n return activePromises.projectPages[projectId];\n }\n activePromises.projectPages[projectId] = api.pages\n .getPages(getters.getTeamID, {\n project_id: projectId,\n })\n .then((r) => r.data)\n .then(({ pages }) => {\n const pagesIds: any = [];\n const pagesObject: any = {};\n\n pages?.forEach((p: any) => {\n pagesIds.push(p.id);\n const newPage = {\n ...(getters.getPageById(p.id) || {}),\n ...p,\n };\n pagesObject[p.id] = newPage;\n });\n\n commit('setPages', pagesObject);\n commit('setProjectPages', { projectId, pagesIds });\n return pages;\n })\n .catch(() => {})\n .finally(() => {\n if (getters.loadingPages) {\n commit('loadingPages', false);\n }\n delete activePromises.projectPages[projectId];\n });\n return activePromises.projectPages[projectId];\n },\n\n fetchPage({ commit, getters }, pageId) {\n return api.pages.getPage(getters.getTeamID, pageId).then(({ data }) => {\n const { page } = data;\n\n if (!page?.id) return;\n\n commit('setPages', {\n [page.id]: page,\n });\n commit('setProjectPages', {\n projectId: page.project_id,\n pagesIds: [page.id],\n });\n\n return page;\n });\n },\n\n handlePageCreated({ commit, dispatch }, { page }) {\n commit('addPageToFlatPages', page);\n commit('addPageToProjectPages', {\n pageId: page.id,\n projectId: page.project_id,\n });\n dispatch('localAddPageInPageTree', {\n projectId: page.project_id,\n pageId: page.id,\n });\n dispatch('localAddPageInProject', {\n projectId: page.project_id,\n page,\n });\n },\n\n // https://api.superthread.com/v1/{team_id}/pages\n createNewPage({ getters, dispatch }, { page }) {\n const pageToCreate = {\n title: page.title || '',\n ...(page.content && { content: page.content }),\n ...(page.project_id && { project_id: page.project_id }),\n ...(getters.getParentPageIdForAdd !== '' && {\n parent_page_id: getters.sidebarDraftPage?.parent || getters.getParentPageIdForAdd,\n }),\n ...(page.cover_image && {\n ...(page.cover_image.src && { src: page.cover_image.src }),\n ...(page.cover_image.blurhash && { blurhash: page.cover_image.blurhash }),\n }),\n ...(page.icon && {\n ...(page.icon.src && { src: page.icon.src }),\n ...(page.icon.blurhash && { blurhash: page.icon.blurhash }),\n }),\n ...(page.user_id && { user_id: page.user_id }),\n ...(page.is_public && { is_public: page.is_public }),\n schema: page.schema ?? getters.pagesSchema,\n };\n\n return api.pages\n .createPage(getters.getTeamID, pageToCreate)\n .then(({ data }) => {\n dispatch('completeOnboardingActions', [OnboardingActionType.CreatePage]);\n return data;\n })\n .catch((error) => {\n dispatch('pageCreating', false);\n throw error;\n });\n },\n\n debounceUpdatePage({ getters, commit }, { pageId, payload }) {\n const { getTeamID } = getters;\n return api.pages\n .updatePage(getTeamID, pageId, payload)\n .then(({ data }) => {\n return data;\n })\n .catch(({ response }) => {\n const error = response.data;\n if (error.message === 'oldSchema') {\n // add ui notification\n commit('addUiNotification', {\n message: translate('updateAppToEditPage'),\n duration: 4000,\n id: nanoid(4),\n });\n }\n throw error;\n });\n },\n\n /**\n * Update existing page\n * https://api.superthread.com/v1/{team_id}/pages/{page_id}\n * @param page page object\n * @returns {Promise}\n */\n updatePageProps({ getters }, { pageId, page }) {\n const { getTeamID } = getters;\n return api.pages.updatePage(getTeamID, pageId, page).then((data) => {\n return data;\n });\n },\n\n // https://api.superthread.com/v1/{team_id}/pages/{page_id}\n loadPage({ state, getters, dispatch }, pageId = state.currentPageID) {\n return authGet(`${getters.getRoutes.pages}/v1/${getters.getTeamID}/pages/${pageId}`)\n .then(({ data }) => {\n dispatch('setCurrentPageMode', 'view');\n return data;\n })\n .catch((/* error */) => {\n dispatch('setCurrentPageMode', 'notfound');\n dispatch('setPage', {});\n });\n },\n fetchPageData({ getters, commit }, { teamId, resourceId }) {\n const existingPromise = activePromises.pages[resourceId];\n if (existingPromise !== undefined) return existingPromise;\n const promise = authGet(`${getters.getRoutes.pages}/v1/${teamId}/pages/${resourceId}`)\n .then(({ data }) => {\n if (teamId === getters.getTeamID) {\n commit('addPageToPagesList', { page: data.page });\n }\n return data.page;\n })\n .finally(() => {\n delete activePromises.pages[resourceId];\n });\n activePromises.pages[resourceId] = promise;\n return promise;\n },\n\n loadPageVersions({ state, getters, commit }) {\n return api.pages\n .getPageVersions(getters.getTeamID, state.currentPageID)\n .then(({ data }) => {\n commit('setPageVersions', data.pageVersions);\n })\n .catch((error) => {\n console.log('error ', error);\n });\n },\n\n setPageVersions({ commit }, payload) {\n commit('setPageVersions', payload);\n },\n\n setCurrentPageID({ commit }, pageId) {\n commit('setCurrentPageID', pageId);\n },\n\n setCurrentPageMode({ commit }, mode) {\n commit('setCurrentPageMode', mode);\n },\n\n setPage({ commit }, page) {\n commit('setPage', page);\n },\n\n updatePageMeta({ commit }, page) {\n commit('updatePageMeta', page);\n },\n\n setPagesEntity({ commit }, entity) {\n commit('setPagesEntity', entity);\n },\n\n localMovePageToProject({ commit }, { pageId, projectIdAdd, projectIdRemove }) {\n commit('removePageFormProjectPages', {\n pageId,\n projectId: projectIdRemove,\n });\n\n commit('addPageToProjectPages', {\n pageId,\n projectId: projectIdAdd,\n });\n\n commit('localUpdatePageProp', {\n pageId,\n propertyName: 'project_id',\n value: projectIdAdd,\n });\n\n commit('localRemoveBoardOrPageInProject', {\n projectId: projectIdRemove,\n itemId: pageId,\n section: 'pages',\n });\n },\n\n movePageToProject(\n { getters, dispatch },\n { pageId, projectId, currentProjectId, parentPageId = 'root', position = -1 }\n ) {\n const newProjectPagesLength = getters.getProjectPages(projectId).length;\n\n dispatch('localMovePageToProject', {\n pageId,\n projectIdAdd: projectId,\n projectIdRemove: currentProjectId,\n });\n\n return dispatch('updatePageProps', {\n pageId,\n page: {\n project_id: projectId,\n parent_page_id: parentPageId,\n ...(position > -1 && newProjectPagesLength && { position }),\n },\n }).catch(() => {\n dispatch('localMovePageToProject', {\n pageId,\n projectIdAdd: currentProjectId,\n projectIdRemove: projectId,\n });\n });\n },\n\n localMovePageInPageTree(\n { commit, dispatch },\n { projectIdTo, projectIdFrom, page, parentIdTo, parentIdFrom, position }\n ) {\n commit('localMovePageInPageTree', {\n projectIdTo,\n projectIdFrom,\n page,\n parentIdTo,\n parentIdFrom,\n position,\n });\n if (projectIdTo !== projectIdFrom) {\n dispatch('localMovePageToProject', {\n pageId: page.id,\n projectIdAdd: projectIdTo,\n projectIdRemove: projectIdFrom,\n });\n\n commit('localUpdatePageProp', {\n pageId: page.id,\n propertyName: 'project_id',\n value: projectIdTo,\n });\n }\n },\n\n /**\n * Set comments count in current page\n * @param {number} commentsCount\n */\n\n pageCreating({ commit }, payload) {\n commit('pageCreating', payload);\n },\n\n setImageUploadPopup({ commit }, payload) {\n commit('setImageUploadPopup', payload);\n },\n\n setCoverImageUploadPopup({ commit }, payload) {\n commit('setCoverImageUploadPopup', payload);\n },\n\n setPageIconUploadPopup({ commit }, payload) {\n commit('setPageIconUploadPopup', payload);\n },\n\n setInsertLinkPopup({ commit }, payload) {\n commit('setInsertLinkPopup', payload);\n },\n\n resetPageState({ commit }) {\n commit('resetPageState');\n },\n\n getPageTitleByTeamIdAndPageId({ getters }, { teamId, resourceId }) {\n return authGet(`${getters.getRoutes.pages}/v1/${teamId}/pages/${resourceId}`)\n .then(({ data }) => data.page)\n .catch((error) => {\n throw error;\n });\n },\n\n togglePagePublicFlag({ getters }, { isPublic, pageId }) {\n const { getTeamID } = getters;\n return authPatch(`${getters.getRoutes.pages}/v1/${getTeamID}/pages/${pageId}`, {\n is_public: isPublic,\n });\n },\n\n setPages({ commit }, pages) {\n commit('setPages', pages);\n },\n\n addPageToProjectPages({ commit }, { pageId, projectId }) {\n commit('addPageToProjectPages', { pageId, projectId });\n },\n\n setNewPageCreating({ commit }, value) {\n commit('setNewPageCreating', value);\n },\n\n localUpdatePageProp({ commit }, { pageId, propertyName, value }) {\n commit('localUpdatePageProp', {\n pageId,\n propertyName,\n value,\n });\n },\n\n duplicatePage({ getters }, { pageId, teamId, projectId, title, position = -1 }) {\n const { getParentPageIdForAdd } = getters;\n const page = {\n project_id: projectId,\n title,\n parent_page_id: getParentPageIdForAdd,\n ...(position > -1 && { position }),\n };\n return api.pages.copyPage(teamId, pageId, page).then(({ data }) => data);\n },\n addPageToPagesList({ commit }, { localId, page }) {\n commit('addPageToPagesList', {\n localId,\n page,\n });\n },\n deleteFromPages({ commit }, { id, page }) {\n commit('deleteFromPages', {\n id,\n page,\n });\n },\n\n commentPopupVisible({ commit }, payload) {\n commit('commentPopupVisible', payload);\n },\n\n addPageToFlatPages({ commit }, payload) {\n commit('addPageToFlatPages', payload);\n },\n setProjectPages({ commit }, { projectId, pagesIds }) {\n commit('setProjectPages', { projectId, pagesIds });\n },\n\n setLastSidebarItemAdded({ commit }, id) {\n commit('setLastSidebarItemAdded', id);\n },\n\n setParentPageIdForAdd({ commit }, id) {\n commit('setParentPageIdForAdd', id);\n },\n\n setProjectPagesTree({ commit }, payload) {\n commit('setProjectPagesTree', payload);\n },\n\n setProjectPageOrderTree({ commit }, { projectId, pagesTree }) {\n commit('setProjectPageOrderTree', { projectId, pagesTree });\n },\n\n setProjectArchivedTree({ commit }, payload) {\n commit('setProjectArchivedTree', payload);\n },\n\n setProjectArchivePages({ commit }, archivePages) {\n commit('setProjectArchivePages', archivePages);\n },\n\n setProjectArchivePagesTree({ commit }, { projectId, archivedPagesTree }) {\n commit('setProjectArchivePagesTree', { projectId, archivedPagesTree });\n },\n\n localAddPageInPageTree({ commit, getters }, { projectId, pageId, position = -1 }) {\n const parentPageId = getters.sidebarDraftPage?.id\n ? getters.sidebarDraftPage?.parent\n : getters.getParentPageIdForAdd;\n const page = {\n id: pageId,\n parent: parentPageId,\n };\n commit('localAddPageInPageTree', {\n projectId,\n page,\n order: true,\n position,\n });\n },\n\n localRemovePagesFromTree({ commit }, { projectId, pages, archiveTree = false }) {\n if (archiveTree) {\n commit('localRemovePagesFromArchiveTree', {\n projectId,\n pages,\n });\n return;\n }\n commit('localRemovePagesFromTree', {\n projectId,\n pages,\n });\n },\n\n removePageFromArchivedParentOrder({ commit }, { projectId, pageParentId, pageId }) {\n commit('removePageFromArchivedParentOrder', { projectId, pageParentId, pageId });\n },\n\n localRemovePageFromArchivedTree({ commit }, { projectId, pageId }) {\n commit('localRemovePageFromArchivedTree', {\n projectId,\n pageId,\n });\n },\n\n localAddPageInArchivePageTree({ commit }, { projectId, page }) {\n commit('localAddPageInArchivePageTree', {\n projectId,\n page,\n });\n },\n\n localAddPageInProjectPageTree({ commit }, { projectId, page, order = false }) {\n commit('localAddPageInPageTree', { projectId, page, order });\n },\n\n localUpdatePageOrderPosition({ commit }, { projectId, parentId, newOrder }) {\n commit('localUpdatePageOrderPosition', {\n projectId,\n parentId,\n newOrder,\n });\n },\n\n setSidebarPageDraft({ commit, getters }, draftPageItem) {\n const { getTeamID } = getters;\n commit('setSidebarPageDraft', { draftPageItem, teamId: getTeamID });\n },\n\n movePageHandler(\n { commit, getters, dispatch },\n {\n destinationProjectId,\n originalProjectId,\n destinationPages,\n originalPages,\n destinationPageOrder,\n originalPageOrder,\n }\n ) {\n const desinationPageTree: any = {};\n const orginalPageTree: any = {};\n const destinationPagesIds: any = [];\n\n [...(destinationPageOrder || [])].forEach((p) => {\n desinationPageTree[p.id] = p;\n });\n [...(originalPageOrder || [])].forEach((p) => {\n orginalPageTree[p.id] = p;\n });\n\n if (destinationPages?.length) {\n destinationPages.forEach((p: any) => {\n destinationPagesIds.push(p.id);\n commit('localUpdatePageProp', {\n pageId: p.id,\n propertyName: 'project_id',\n value: destinationProjectId,\n });\n });\n }\n if (destinationPageOrder?.length) {\n dispatch('localUpdateTeamProjectField', {\n projectId: destinationProjectId,\n fieldName: 'page_order',\n fieldValue: destinationPageOrder,\n });\n }\n\n if (originalPageOrder?.length) {\n dispatch('localUpdateTeamProjectField', {\n projectId: originalProjectId,\n fieldName: 'page_order',\n fieldValue: originalPageOrder,\n });\n }\n\n if (destinationPages != undefined) {\n dispatch('localUpdateTeamProjectField', {\n projectId: destinationProjectId,\n fieldName: 'pages',\n fieldValue: destinationPages,\n });\n }\n\n if (originalPages != undefined) {\n dispatch('localUpdateTeamProjectField', {\n projectId: originalProjectId,\n fieldName: 'pages',\n fieldValue: originalPages,\n });\n }\n\n commit('setProjectPagesTree', {\n projectId: destinationProjectId,\n pagesTree: { ...getters.getProjectPagesTree(destinationProjectId), ...desinationPageTree },\n });\n\n commit('setProjectPagesTree', {\n projectId: originalProjectId,\n pagesTree: { ...getters.getProjectPagesTree(originalProjectId), ...orginalPageTree },\n });\n },\n\n setSetParentPageExpand({ commit }, { id, value }) {\n commit('setSetParentPageExpand', { id, value });\n },\n\n removePageFromBookmarked({ commit }, pageId) {\n commit('removePageFromBookmarked', pageId);\n },\n\n setPageUploadPopup({ commit }, value) {\n commit('setPageUploadPopup', value);\n },\n\n removePageUploadPopup({ commit }) {\n commit('removePageUploadPopup');\n },\n\n setPageRenamingId({ commit }, value) {\n commit('setPageRenamingId', value);\n },\n\n refreshPageCollaboration({ commit, getters }, { id }) {\n if (id === 'newpage') return;\n const { getTeamID } = getters;\n return api.pages\n .getPageCollaboration(getTeamID, id)\n .then(({ data }) => {\n commit('localUpdatePageProp', {\n pageId: id,\n propertyName: 'collaboration',\n value: data.collaboration,\n });\n })\n .catch(() => {});\n },\n\n addQuickPageFileToUpdate({ commit }, file) {\n commit('addQuickPageFileToUpdate', file);\n },\n\n removeQuickPageFilesToUpdate({ commit }) {\n commit('removeQuickPageFilesToUpdate');\n },\n\n removePageIconOrCover({ getters, commit }, { page, propertyName }) {\n const value = page[propertyName];\n let query = propertyName;\n if (propertyName === 'cover_image') query = 'cover';\n commit('localUpdatePageProp', {\n pageId: page.id,\n propertyName,\n value: {\n src: '',\n blurhash: '',\n type: '',\n },\n });\n return authDelete(\n `${getters.getRoutes.pages}/v1/${getters.getTeamID}/pages/${page.id}/${query}`\n ).catch(() => {\n commit('localUpdatePageProp', {\n pageId: page.id,\n propertyName,\n value,\n });\n });\n },\n\n fetchPageTemplates({ commit, getters }, projectId) {\n return api.pages\n .getPageTemplates(getters.getTeamID, {\n ...(projectId && { project_id: projectId }),\n })\n .then(({ data }) => {\n commit('setPageTemplates', data.page_templates || []);\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n fetchPageTemplate({ commit, getters }, templateId) {\n if (!templateId) return Promise.resolve({});\n\n return api.pages\n .getPageTemplate(getters.getTeamID, templateId)\n .then(({ data: { page_template: pageTemplate } }) => {\n commit('setPageTemplate', pageTemplate || {});\n return pageTemplate;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n createPageTemplate({ commit, getters }, pageTemplate = getters.getPageTemplateDraft) {\n const tempId = nanoid(4);\n commit('setPageTemplate', {\n ...pageTemplate,\n id: tempId,\n user: { user_id: getters.getUserId },\n });\n\n return api.pages\n .createPageTemplate(getters.getTeamID, {\n ...pageTemplate,\n })\n .then(({ data }) => {\n commit('replacePageTemplateId', { localId: tempId, template: data.page_template ?? {} });\n return data;\n })\n .catch((error) => {\n commit('deletePageTemplate', tempId);\n throw error;\n });\n },\n\n updatePageTemplate(\n { commit, getters },\n {\n templateId,\n pageTemplate = getters.getPageTemplateDraft,\n user = { user_id: getters.getUserId },\n }\n ) {\n if (!templateId) return Promise.resolve({});\n\n const oldTemplate = getters.getPageTemplates[templateId];\n commit('setPageTemplate', {\n id: templateId,\n ...pageTemplate,\n user,\n user_updated: { user_id: getters.getUserId },\n });\n return api.pages\n .updatePageTemplate(getters.getTeamID, templateId, {\n ...pageTemplate,\n })\n .then(({ data }) => {\n commit('setPageTemplate', { id: templateId, ...data.page_template });\n return data;\n })\n .catch((error) => {\n commit('setPageTemplate', { id: templateId, ...oldTemplate });\n throw error;\n });\n },\n\n deletePageTemplate({ commit, getters }, templateId) {\n if (!templateId) return Promise.resolve({});\n\n const oldTemplate = getters.getPageTemplates[templateId];\n commit('deletePageTemplate', templateId);\n return api.pages.deletePageTemplate(getters.getTeamID, templateId).catch((error) => {\n commit('setPageTemplate', { id: templateId, ...oldTemplate });\n throw error;\n });\n },\n\n setPageTemplateDraft({ commit }, template) {\n commit('setPageTemplateDraft', template);\n },\n\n updatePageTemplateDraftField({ commit }, { fieldName, value }) {\n commit('updatePageTemplateDraftField', { fieldName, value });\n },\n\n clearPageTemplateDraft({ commit }) {\n commit('clearPageTemplateDraft');\n },\n\n setHighlightedPageLevelComments({ commit }, commentsIds) {\n commit('setHighlightedPageLevelComments', commentsIds);\n },\n\n setPageLevelCommentInputActive({ commit }, value) {\n commit('setPageLevelCommentInputActive', value);\n },\n\n managePageTemplateSelectedSpaces({ commit }, spaceId) {\n commit('managePageTemplateSelectedSpaces', spaceId);\n },\n\n setPageEditorDisplay({ commit }, payload) {\n commit('setPageEditorDisplay', payload);\n },\n\n async deletePage({ commit, getters, dispatch }, { pageId, projectId }) {\n const page = getters.getPageById(pageId);\n const pageFromTree = getters.getProjectPagesTree(projectId)[page.id];\n const pages = getters.getPages;\n\n if (Object.keys(page).length === 0) return Promise.reject(new Error('Page not found'));\n\n commit('removePageFormProjectPages', {\n pageId,\n projectId,\n });\n\n commit('localRemovePageFromPageOrder', { projectId, pageId });\n commit('localRemovePagesFromTree', { projectId, pages: [pageFromTree] });\n commit('removeProjectPage', { pageId, projectId });\n commit('removePage', pageId);\n\n const isFavourite = getters.isFavourite(pageId, ResourceType.Page);\n if (isFavourite) {\n dispatch('deleteUserFavourite', {\n resource_id: pageId,\n resource_type: ResourceType.Page,\n title: page.title,\n });\n }\n\n return await api.pages\n .deleteAPage(getters.getTeamID, pageId)\n .then(() => {\n // check if page has subpages and if they are favourite\n if (pageFromTree.children) {\n const subpages = Object.values(pageFromTree.children);\n subpages.forEach((subpage: any) => {\n if (getters.isFavourite(subpage, ResourceType.Page)) {\n dispatch('deleteUserFavourite', {\n resource_id: subpage,\n resource_type: ResourceType.Page,\n });\n }\n });\n pageFromTree.children.forEach((childId: any) => {\n if (pages.hasOwnProperty(childId)) {\n delete pages[childId];\n }\n });\n }\n dispatch('removeFromElectronRecentlyViewed', {\n currentlyViewed: { id: pageId, type: ResourceType.Page },\n teamId: getters.getTeamID,\n });\n if (pages?.hasOwnProperty(pageId)) {\n delete pages[pageId];\n }\n dispatch('setPages', pages);\n })\n .catch((error) => {\n commit('addPageToProjectPages', {\n pageId,\n projectId,\n });\n commit('addProjectPage', { page: { id: pageId, title: page.title }, projectId });\n dispatch('addFavourite', {\n resource_id: pageId,\n resource_type: ResourceType.Page,\n });\n throw error;\n });\n },\n\n removePage({ commit }, pageId) {\n commit('removePage', pageId);\n },\n\n setPageIdForMove({ commit }, pageId) {\n commit('setPageIdForMove', pageId);\n },\n};\n\nexport default actions;\n","import getDefaultPageState from './getDefaultPageState';\nimport getters from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nexport default {\n state: getDefaultPageState(),\n getters,\n actions,\n mutations,\n};\n","import { OnboardingState as IState } from '@/types';\n\nconst getDefaultOnboardingState = (): IState => ({\n userID: '',\n teamName: '',\n subdomain: '',\n invitationCode: '',\n errorMessage: '',\n projectName: '',\n currentTeamId: '',\n currentTeamName: '',\n workspaceErrorMessage: '',\n failedInvites: [],\n onboardingWorkspace: JSON.parse(localStorage['onboardingWorkspace'] || '{}'),\n signupAnswers: {},\n getStartedExpanded: true,\n getStartedShowAll: false,\n onboardingActions: [],\n});\n\nexport default getDefaultOnboardingState;\n","/**\n * Onboarding module getters\n * @packageDocumentation\n * @category Store\n */\nimport { GetterTree } from 'vuex';\nimport { OnboardingState as State } from '@/types';\n\nconst getters: GetterTree = {\n onboardingUserID: (state) => state.userID,\n onboardingTeamName: (state) => state.teamName,\n onboardingSubDomain: (state) => state.subdomain,\n onboardingWorkspace: (state) => state.onboardingWorkspace,\n onboardingErrorMessage: (state) => state.errorMessage,\n onboardingWorkspaceErrorMessage: (state) => state.workspaceErrorMessage,\n\n invitationCode: (state) => state.invitationCode,\n failedInvites: (state) => state.failedInvites,\n\n /** Returns the team id of the currently logged in user. */\n getTeamID: (state): string => state.currentTeamId,\n currentTeamName: (state) => state.currentTeamName,\n getSignupAnswers: (state) => state.signupAnswers,\n getGetStartedExpanded: (state) => state.getStartedExpanded,\n getGetStartedShowAll: (state) => state.getStartedShowAll,\n\n getOnboardingActions: (state) => state.onboardingActions || [],\n};\n\nexport default getters;\n","/**\n * Onboardig module mutations\n * @packageDocumentation\n * @category Store\n */\nimport { MutationTree } from 'vuex';\nimport { OnboardingState as State, Team } from '@/types';\nimport getDefaultOnboardingState from './state';\nimport { OnboardingAction, OnboardingActionStatus } from '@/types/onboardingActions';\n\nconst mutations: MutationTree = {\n setOnboardingUserID(state, userID: string) {\n state.userID = userID;\n },\n\n setOnboardingWorkspace(state, value?: Team) {\n if (value) {\n if (value.team_name && !value.sub_domain) {\n value.sub_domain = value.team_name.replace(/[\\W_]+/g, '').toLowerCase();\n }\n\n state.onboardingWorkspace = { ...state.onboardingWorkspace, ...value };\n localStorage.setItem('onboardingWorkspace', JSON.stringify(state.onboardingWorkspace));\n } else {\n state.onboardingWorkspace = {};\n localStorage.removeItem('onboardingWorkspace');\n }\n },\n\n setOnboardingErrorMessage(state, errorMessage: string) {\n state.errorMessage = errorMessage;\n },\n setWorkspaceErrorMessage(state, workspaceErrorMessage: string) {\n state.workspaceErrorMessage = workspaceErrorMessage;\n },\n\n setInvitationCode(state, invitationCode: string) {\n state.invitationCode = invitationCode;\n },\n\n setCurrentTeamId(state, teamId: string) {\n state.currentTeamId = teamId;\n localStorage.setItem('currentTeamId', teamId);\n },\n\n setCurrentTeamName(state, teamName: string) {\n state.currentTeamName = teamName;\n },\n\n setFailedInvites(state, failedInvites: string[]) {\n state.failedInvites = failedInvites;\n },\n\n resetOnboardingState(state) {\n Object.assign(state, getDefaultOnboardingState());\n },\n\n storeSignupAnswers(state, answers) {\n Object.assign(state.signupAnswers, answers);\n },\n\n setGetStartedExpanded(state, value) {\n localStorage.setItem('getStartedExpanded', value);\n state.getStartedExpanded = value;\n },\n\n setGetStartedShowAll(state, value) {\n localStorage.setItem('getStartedShowAll', value);\n state.getStartedShowAll = value;\n },\n\n setOnboardingActions(state, value) {\n state.onboardingActions = value;\n },\n\n completeOnboardingActions(state, actions) {\n actions.forEach((a: OnboardingAction) => {\n const index = state.onboardingActions.findIndex((sa: OnboardingAction) => sa.type === a.type);\n\n // set flag indicating that animation should be triggered\n state.onboardingActions[index] = {\n ...state.onboardingActions[index],\n animate_completion: true,\n };\n\n setTimeout(() => {\n // check if action has been dismissed during animation\n if (state.onboardingActions[index]?.status === OnboardingActionStatus.Dismissed) return;\n\n // update action with data from response and clear animation flag\n // action is now fully completed\n state.onboardingActions[index] = a;\n }, 2000);\n });\n },\n\n updateOnboardingActionsStatus(state, actions) {\n actions.forEach((a: OnboardingAction) => {\n const index = state.onboardingActions.findIndex((sa: OnboardingAction) => sa.type === a.type);\n state.onboardingActions[index] = a;\n });\n },\n};\n\nexport default mutations;\n","/**\n * Onboarding module actions\n * @packageDocumentation\n * @category Store\n */\nimport { ActionTree } from 'vuex';\nimport { basePost, api, authGet, authPost } from '@/utilities/api';\nimport { OnboardingState as State, Team } from '@/types';\nimport {\n OnboardingActionStatus,\n OnboardingActionType,\n OnboardingAction,\n} from '@/types/onboardingActions';\nimport constants from '@/utilities/constants';\n\nconst actions: ActionTree = {\n /**\n * Send a login code to a user's email. User is created if they don't already exist.\n * https://api.superthread.com/v1/auth/code/send\n */\n sendLoginCodeEmail({ getters }, { email } = {}) {\n return api.auth\n .sendLoginCodeEmail({\n email: getters.getEmail || email,\n })\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Log user in via email and email code\n * https://api.superthread.com/v1/auth/code\n */\n loginWithEmailCode({ getters }, { email, code } = {}) {\n const { getEmail } = getters;\n return api.auth\n .loginWithCode({\n email: getEmail || email,\n code,\n })\n .catch((error) => {\n throw error;\n });\n },\n\n createOnboardingWorkspace({ getters, commit }) {\n const { team_name, company_name, sub_domain } = getters.onboardingWorkspace;\n\n return api.auth\n .createTeam({\n team_name,\n company_name,\n sub_domain,\n })\n .then(({ data }) => {\n commit('setOnboardingWorkspace', data.team);\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n updateOnboardingWorkspaceDetails({ getters, commit }) {\n const { team_name, company_name, sub_domain } = getters.onboardingWorkspace;\n\n return api.auth\n .updateTeam(getters.onboardingWorkspace.id, {\n team_name,\n company_name,\n sub_domain,\n })\n .then(({ data }) => {\n commit('setOnboardingWorkspace', data.team);\n return data;\n })\n .catch((error) => {\n throw error;\n });\n },\n\n setOnboardingUserID({ commit }, userID: string) {\n commit('setOnboardingUserID', userID);\n },\n\n setOnboardingWorkspace({ commit }, value: Team) {\n commit('setOnboardingWorkspace', value);\n },\n\n setOnboardingErrorMessage({ commit }, errorMessage: string) {\n commit('setOnboardingErrorMessage', errorMessage);\n },\n\n setWorkspaceErrorMessage({ commit }, workspaceErrorMessage: string) {\n commit('setWorkspaceErrorMessage', workspaceErrorMessage);\n },\n\n setInvitationCode({ commit }, invitationCode: string) {\n commit('setInvitationCode', invitationCode);\n },\n\n setCurrentTeamId({ commit }, teamId) {\n commit('setCurrentTeamId', teamId);\n },\n\n setCurrentTeamName({ commit }, teamName) {\n commit('setCurrentTeamName', teamName);\n },\n\n /**\n * Get pending invites for a user\n * https://api.superthread.com/v1/users/{user_id}/pending_invites\n */\n getPendingInvities({ getters }) {\n return api.auth\n .getPendingInvites(getters.getUser.id)\n .then(({ data }) => data)\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Add user to a new team\n * https://api.superthread.com/v1/users/{user_id}/teams/{team_id}\n */\n joinTeam({ getters }, teamId) {\n return api.auth.addUserTeam(getters.getUser.id, teamId).then(({ data }) => data);\n },\n\n resetOnboardingState({ commit }) {\n commit('resetOnboardingState');\n },\n\n /**\n * Log user in via a team invite link.\n * https://api.superthread.com/v1/auth/invite\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n loginWithInviteLink({ getters }, { inviteId, code }) {\n return api.auth\n .loginWithInvite({\n invite_id: inviteId,\n link_code: code,\n })\n .then((res) => res)\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Resend the invite if it was expired/lost.\n * https://api.superthread.com/v1/auth/invite/send\n */\n resendInviteLink({ getters }, { inviteId }) {\n return basePost(`${getters.getRoutes.users}/v1/auth/invite/send`, {\n invite_id: inviteId,\n }).catch((error) => {\n throw error;\n });\n },\n\n /**\n * Passes the OAuth authorization code to the BE, code gets exchanged for the refresh token with google and BE sets auth cookies\n * @param {string} code\n * @param {string} redirect_uri - url that was used to obtain the OAuth authorization code\n */\n passAuthCode({ getters }, { code, redirect_uri }) {\n //! DONT USE REQUEST FROM GENERATED MODELS AS IT IS INCORRECT\n //! request should be POST (as configured in /auth service)\n //! while one in generated models is set as GET (by mistake I guess)\n //? swap to next line when model is fixed\n // return api.auth.loginOAuthCode('google', {\n return authPost(`${getters.getRoutes.users}/v1/auth/idp/google/code`, {\n code,\n redirect_uri,\n });\n },\n\n /**\n * Import onboarding resources\n * /v1/{team_id}/imports/onboard\n */\n importOnboardingResources({ getters }) {\n const { getTeamID, getRoutes } = getters;\n return authGet(`${getRoutes.users}/v1/${getTeamID}/imports/onboard`)\n .then((data) => data)\n .catch((error) => error);\n },\n\n sendSignupAnswers({ getters }) {\n return api.auth\n .submitSignupAnswers(getters.getUser.id, {\n signup_answers: getters.getSignupAnswers,\n })\n .catch((error) => {\n throw error;\n });\n },\n\n setFailedInvites({ commit }, failedInvites) {\n commit('setFailedInvites', failedInvites);\n },\n\n storeSignupAnswers({ commit }, answers) {\n commit('storeSignupAnswers', answers);\n },\n\n /**\n * Sets flag for expanding the 'Get started' section in sidebar\n */\n setGetStartedExpanded({ commit }, value: boolean) {\n commit('setGetStartedExpanded', value);\n },\n\n /**\n * Sets flag for showing all items in the 'Get started' section in sidebar\n */\n setGetStartedShowAll({ commit }, value: boolean) {\n commit('setGetStartedShowAll', value);\n },\n\n /**\n * Fetches onboarding actions for the user\n */\n fetchOnboardingActions() {\n return api.auth\n .getOnboardingActions('me')\n .then(({ data }) => data.onboarding_actions)\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Sets onboarding actions for the user\n */\n setOnboardingActions({ commit }, actions: OnboardingAction[]) {\n commit('setOnboardingActions', actions);\n },\n\n /**\n * Completes multiple onboarding actions for the user\n * @param {OnboardingActionType[]} types - array of onboarding action types to complete\n */\n completeOnboardingActions({ commit, getters }, types: OnboardingActionType[]) {\n // check if user is create after release of onboarding actions to avoid firing unnecessary requests\n const userCreatedAfterOnboardingActionsRelease =\n getters.getUser.time_created > constants.onboardingActionsReleaseDate;\n if (!userCreatedAfterOnboardingActionsRelease) return;\n\n const actionsToUpdate = types\n .filter((type) => {\n return (\n getters.getOnboardingActions.find((a: OnboardingAction) => a.type === type)?.status !==\n OnboardingActionStatus.Completed\n );\n })\n .map((type) => ({\n status: OnboardingActionStatus.Completed,\n type,\n }));\n\n if (!actionsToUpdate.length) return;\n\n return api.auth\n .updateOnboardingActions('me', { onboarding_actions: actionsToUpdate })\n .then(({ data }) => commit('completeOnboardingActions', data.onboarding_actions))\n .catch((error) => {\n throw error;\n });\n },\n\n /**\n * Dismisses a onboarding action for the user\n * @param {OnboardingActionType[]} types - array of onboarding action types to complete\n */\n dismissOnboardingAction({ commit }, type: OnboardingActionType) {\n return api.auth\n .updateOnboardingActions('me', {\n onboarding_actions: [\n {\n status: OnboardingActionStatus.Dismissed,\n type,\n },\n ],\n })\n .then(({ data }) => commit('updateOnboardingActionsStatus', data.onboarding_actions))\n .catch((error) => {\n throw error;\n });\n },\n\n setAsNotCompletedOnboardingAction({ commit }, actions: OnboardingAction[]) {\n return api.auth\n .updateOnboardingActions('me', {\n onboarding_actions: actions,\n })\n .then(({ data }) => commit('updateOnboardingActionsStatus', data.onboarding_actions))\n .catch((error) => {\n throw error;\n });\n },\n};\n\nexport default actions;\n","import getDefaultOnboardingState from './state';\nimport getters from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nexport default {\n state: getDefaultOnboardingState(),\n getters,\n actions,\n mutations,\n};\n","import EditorService from '@/components/editor/services/EditorService';\nimport { ResourceType } from '@/types/resources';\nimport { EditorUpload } from './types';\n\nexport type { EditorService };\nexport interface EditorState {\n editors: { [id: string]: EditorService };\n currentEditorId?: string;\n currentEditorResourceType?: ResourceType;\n persistedPageKeys?: Array;\n suggesterShown?: boolean;\n uploading: EditorUpload[];\n}\n\nexport default {\n editors: {},\n currentEditorId: undefined,\n currentEditorResourceType: undefined,\n persistedPageKeys: [],\n suggesterShown: false,\n uploading: [],\n} as EditorState;\n","import { GetterTree } from 'vuex';\nimport { EditorState, EditorService } from './state';\n\nexport default {\n editor:\n (state) =>\n (id: string): EditorService => {\n return state.editors[id];\n },\n\n currentEditor: (state): EditorService | void => {\n if (state.currentEditorId) {\n return state.editors[state.currentEditorId];\n }\n },\n\n getPersistedPagesKeys: (state) => state.persistedPageKeys || [],\n\n checkIfDbExists:\n (state) =>\n (dbName: string): boolean =>\n state.persistedPageKeys?.includes(dbName) || false,\n\n suggesterShown: (state) => state.suggesterShown,\n} as GetterTree;\n","import { MutationTree } from 'vuex';\nimport { EditorState, EditorService } from './state';\nimport { ResourceType } from '@/types/resources';\nimport { EditorUpload } from './types';\n\nexport default {\n setEditor(state, payload: EditorService) {\n state.editors[payload.id] = payload;\n },\n deleteEditor(state, id) {\n delete state.editors[id];\n },\n setCurrentEditorId(state, id) {\n state.currentEditorId = id;\n },\n setCurrentEditorResourceType(state, resourceType: ResourceType) {\n state.currentEditorResourceType = resourceType;\n },\n updateEditorId(state, { oldId = 'editor-page-newpage', newId, resourceId }) {\n let oldKey = oldId;\n if (oldId === 'editor-page-newpage') {\n oldKey = Object.keys(state.editors).find((key) => key.includes('-editor-page-newpage-'));\n }\n state.editors[oldKey]?.updateEditorId?.(newId);\n state.editors[oldKey]?.updateEditorResourceId?.(resourceId);\n state.editors[newId] = state.editors[oldKey];\n delete state.editors[oldKey];\n },\n\n setPersistedPagesKeys(state, keys) {\n state.persistedPageKeys = keys;\n },\n\n addPageKeyToPersistedKeys(state, key) {\n state.persistedPageKeys?.push(key);\n },\n setSuggesterShown(state, payload) {\n state.suggesterShown = payload;\n },\n insertOrUpdateEditorUpload(state, upload: EditorUpload) {\n const existingUpload = state.uploading.find((u) => u?.id === upload.id);\n if (!existingUpload) {\n state.uploading?.push(upload);\n } else {\n Object.assign(existingUpload, upload);\n }\n },\n removeEditorUpload(state, id: string) {\n const index = state.uploading?.findIndex((u) => u.id === id);\n if (index) {\n state.uploading?.splice(index, 1);\n }\n },\n} as MutationTree;\n","import { ActionTree } from 'vuex';\nimport { EditorState, EditorService } from './state';\nimport { EditorUpload } from './types';\n\nexport default {\n setEditor({ commit }, payload: EditorService): void {\n commit('setEditor', payload);\n },\n\n deleteEditor({ commit }, id: string): void {\n commit('deleteEditor', id);\n },\n\n setCurrentEditorId({ commit }, id) {\n commit('setCurrentEditorId', id);\n },\n\n setCurrentEditorResourceType({ commit }, resourceType) {\n commit('setCurrentEditorResourceType', resourceType);\n },\n\n updateEditorId(\n { commit },\n {\n oldId = 'editor-page-newpage',\n newId,\n resourceId,\n }: { oldId?: string; newId: string; resourceId: string }\n ) {\n commit('updateEditorId', { oldId, newId, resourceId });\n },\n\n setPersistedPagesKeys({ commit }, keys) {\n commit('setPersistedPagesKeys', keys);\n },\n\n addPageKeyToPersistedKeys({ commit, getters }, key) {\n if (!getters.checkIfDbExists(key)) {\n commit('addPageKeyToPersistedKeys', key);\n }\n },\n setSuggesterShown({ commit }, payload) {\n commit('setSuggesterShown', payload);\n },\n insertOrUpdateEditorUpload({ commit }, payload: EditorUpload) {\n commit('insertOrUpdateEditorUpload', payload);\n },\n removeEditorUpload({ commit }, payload: string) {\n commit('removeEditorUpload', payload);\n },\n} as ActionTree;\n","import state from './state';\nimport getters from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","export interface AttachmentPreviewState {\n previewAttachments: Array;\n previewAttachmentId: string;\n previewAttachmentResourceId: string;\n previewAttachmentIndex: number;\n attachmentPreviewFromInput: boolean;\n}\n\nexport default {\n previewAttachments: [],\n previewAttachmentId: '',\n previewAttachmentResourceId: '',\n previewAttachmentIndex: -1,\n attachmentPreviewFromInput: false,\n} as AttachmentPreviewState;\n","import { GetterTree } from 'vuex';\nimport { AttachmentPreviewState } from './attachmentPreviewState';\n\nexport default {\n getPreviewAttachmentIndex: (state) => state.previewAttachmentIndex,\n getPreviewAttachments: (state) => state.previewAttachments,\n getAttachmentPreviewFromInput: (state) => state.attachmentPreviewFromInput,\n getPreviewAttachmentId: (state) => state.previewAttachmentId,\n getPreviewAttachmentResourceId: (state) => state.previewAttachmentResourceId,\n} as GetterTree;\n","import { MutationTree } from 'vuex';\nimport { AttachmentPreviewState } from './attachmentPreviewState';\nimport attachmentPreviewable from '@/utilities/attachmentPreviewable';\n\nexport default {\n setPreviewAttachments(state, attachments) {\n state.previewAttachments = attachments.filter((attachment: any) =>\n attachmentPreviewable(attachment)\n );\n },\n\n setPreviewAttachmentId(state, { attachmentId, resourceId }) {\n const attachments = [...state.previewAttachments];\n\n const attachmentIndex = attachments.findIndex((a) => a.id === attachmentId);\n if (attachmentIndex !== -1) {\n state.previewAttachmentIndex = attachmentIndex;\n }\n state.previewAttachmentId = attachmentId;\n state.previewAttachmentResourceId = resourceId;\n },\n\n clearCardPreviewData(state) {\n state.previewAttachmentId = '';\n state.previewAttachmentIndex = -1;\n state.previewAttachments = [];\n },\n\n setNextAttachment(state) {\n const { length } = state.previewAttachments;\n const attachments = state.previewAttachments;\n\n if (state.previewAttachmentIndex === length - 1 || state.previewAttachmentIndex === length) {\n state.previewAttachmentIndex = 0;\n state.previewAttachmentId = attachments[0].id;\n return;\n }\n\n state.previewAttachmentIndex += 1;\n state.previewAttachmentId = attachments[state.previewAttachmentIndex].id;\n },\n\n setPreviousAttachment(state) {\n const { length } = state.previewAttachments;\n const attachments = state.previewAttachments;\n\n if (state.previewAttachmentIndex === 0) {\n state.previewAttachmentIndex = length - 1;\n state.previewAttachmentId = attachments[state.previewAttachmentIndex].id;\n return;\n }\n\n state.previewAttachmentIndex -= 1;\n state.previewAttachmentId = attachments[state.previewAttachmentIndex].id;\n },\n\n deleteAttachmentFromPreviewAttachments(state, fileId) {\n const index = state.previewAttachments.findIndex((att: any) => att.id === fileId);\n\n if (index > -1) {\n state.previewAttachments.splice(index, 1);\n }\n },\n\n setAttachmentPreviewFromInput(state, value) {\n state.attachmentPreviewFromInput = value;\n },\n} as MutationTree;\n","import { ActionTree } from 'vuex';\nimport { AttachmentPreviewState } from './attachmentPreviewState';\n\nexport default {\n setPreviewAttachmentId({ commit }, { attachmentId, resourceId }) {\n commit('setPreviewAttachmentId', { attachmentId, resourceId });\n },\n\n setPreviewAttachments({ commit }, attachements) {\n commit('setPreviewAttachments', attachements);\n },\n\n clearCardPreviewData({ commit }) {\n commit('clearCardPreviewData');\n },\n\n setNextAttachment({ commit }, id) {\n commit('setNextAttachment', id);\n },\n\n setPreviousAttachment({ commit }, id) {\n commit('setPreviousAttachment', id);\n },\n\n deleteAttachmentFromPreviewAttachments({ commit }, fileId) {\n commit('deleteAttachmentFromPreviewAttachments', fileId);\n },\n\n setAttachmentPreviewFromInput({ commit }, value) {\n commit('setAttachmentPreviewFromInput', value);\n },\n} as ActionTree;\n","import state from './attachmentPreviewState';\nimport getters from './attachmentPreviewGetters';\nimport mutations from './attachmentPreviewMutations';\nimport actions from './attachmentPreviewActions';\n\nexport default {\n state,\n getters,\n actions,\n mutations,\n};\n","import boards from './boards';\nimport pages from './pages';\nimport onboarding from './onboarding';\nimport editors from './editors';\nimport attachmentPreview from './attachmentPreview';\n\nexport default {\n boards,\n pages,\n onboarding,\n editors,\n attachmentPreview,\n};\n","import { createStore } from 'vuex';\n\nimport getDefaultState from './state';\nimport actions from './actions';\nimport mutations from './mutations';\nimport getters from './getters';\nimport modules from './modules';\n\nexport const store = createStore({\n strict: false,\n state: getDefaultState(),\n actions,\n mutations,\n getters,\n modules,\n});\n","export default {\n computed: {\n isAnyCardDisplayed() {\n return this.$store.getters.getIsAnyCardDisplayed;\n },\n isCardOpen() {\n return this.isAnyCardDisplayed;\n },\n },\n};\n","import styleVariables from '@/assets/scss/variables.module.scss';\nimport constants from './constants';\nimport { browserStorageGetItem } from './browser-storage.util';\n\nconst getRootElement = () => document.documentElement;\nconst getDarkElement = () => document.querySelector('.dark');\nconst getRootStyles = () => getComputedStyle(getRootElement());\nconst getRootStyle = (varName) => getRootStyles().getPropertyValue(varName);\nconst setRootStyle = (varName, value) => getRootElement().style.setProperty(varName, value);\nconst removeRootStyle = (varName) => getRootElement().style.removeProperty(varName);\n// varName is the css variable name. e.g. --iconDefault\nconst getThemeStyle = (varName) => {\n const darkModeElement = getDarkElement();\n\n if (darkModeElement) {\n return getComputedStyle(darkModeElement).getPropertyValue(varName);\n } else {\n return getRootStyle(varName);\n }\n};\n\nconst convertStyleToNumber = (value) => parseFloat(value) || 0;\nconst getSidebarWidthLocal = () =>\n convertStyleToNumber(browserStorageGetItem('sidebarWidth') || styleVariables.sidebarWidth);\nconst getDefaultSidebarWidth = () => convertStyleToNumber(styleVariables.sidebarWidth);\nconst getMaxSidebarWidth = () => convertStyleToNumber(styleVariables.sidebarMaxWidth);\nconst getMinSidebarWidth = () => convertStyleToNumber(styleVariables.sidebarMinWidth);\nconst getSidebarWidth = () => convertStyleToNumber(getRootStyle(constants.sidebarWidthRoot));\nconst getMaxChildPageItemInPageWidth = () =>\n convertStyleToNumber(styleVariables.childPageItemInPageMaxWidth);\nconst getPreviewChildPagesPaddingRight = () =>\n convertStyleToNumber(styleVariables.previewChildPagesPaddingRight);\nconst getBoardHeaderRightSideWidth = () =>\n convertStyleToNumber(styleVariables.boardHeaderRightSideWidth);\nconst getMobileBoardHeaderRightSideWidth = () =>\n convertStyleToNumber(styleVariables.mobileBoardHeaderRightSideWidth);\nconst getSpaceHeaderRightSideWidth = () =>\n convertStyleToNumber(styleVariables.spaceHeaderRightSideWidth);\nconst getMobileSpaceHeaderRightSideWidth = () =>\n convertStyleToNumber(styleVariables.mobileSpaceHeaderRightSideWidth);\nconst getPageBreadcrumbMaxWidth = () => convertStyleToNumber(styleVariables.pageBreadcrumbMaxWidth);\nconst getMobilePageBreadcrumbMaxWidth = () =>\n convertStyleToNumber(styleVariables.mobilePageBreadcrumbMaxWidth);\nconst getJoinProjectButtonWidth = () => convertStyleToNumber(styleVariables.joinProjectButtonWidth);\nconst getMobileSidebarWidth = () => convertStyleToNumber(styleVariables.mobileSidebarWidth);\nconst getTimelineSidebarWidthLocal = () =>\n convertStyleToNumber(\n browserStorageGetItem('timelineSidebarWidth') || styleVariables.timelineSidebarWidth\n );\nconst getDefaultTimelineSidebarWidth = () =>\n convertStyleToNumber(styleVariables.timelineSidebarWidth);\nconst getMinTimelineSidebarWidth = () =>\n convertStyleToNumber(styleVariables.timelineSidebarMinWidth);\nconst getMaxTimelineSidebarWidth = () =>\n convertStyleToNumber(styleVariables.timelineSidebarMaxWidth);\n\nconst getInboxListWidthLocal = () =>\n convertStyleToNumber(browserStorageGetItem('inboxListWidth') || styleVariables.inboxListWidth);\nconst getMinInboxListWidth = () => convertStyleToNumber(styleVariables.inboxListMinWidth);\nconst getMaxInboxListWidth = () => convertStyleToNumber(styleVariables.inboxListMaxWidth);\nconst getDefaultInboxListWidth = () => convertStyleToNumber(styleVariables.inboxListWidth);\nconst getDefaultLabelCutoffSidebarWidth = () =>\n convertStyleToNumber(styleVariables.defaultLabelCutoffSidebarWidth);\nconst getSearchLabelCutoffSidebarWidth = () =>\n convertStyleToNumber(styleVariables.searchLabelCutoffSidebarWidth);\nconst getStartedCountCutoffSidebarWidth = () =>\n convertStyleToNumber(styleVariables.getStartedCountCutoffSidebarWidth);\nconst getHeaderHeight = () => convertStyleToNumber(styleVariables.headerHeight);\n\nconst getCardWidthLocal = () =>\n convertStyleToNumber(browserStorageGetItem('cardWidthLocal') || styleVariables.cardWidthWidth);\nconst getMinCardWidthWidth = () => convertStyleToNumber(styleVariables.dockedCardMinWidth);\nconst getMaxCardWidthWidth = () => convertStyleToNumber(styleVariables.dockedCardMaxWidth);\nconst getDefaultCardWidthWidth = () => convertStyleToNumber(styleVariables.dockedCardWidth);\nconst getSmallCardTagMaxWidth = () => convertStyleToNumber(styleVariables.smallCardTagMaxWidth);\nconst getAiSourceItemMaxWidth = () => convertStyleToNumber(styleVariables.aiSourceItemMaxWidth);\n\nconst getSidebarHelpSectionHeight = () =>\n convertStyleToNumber(styleVariables.sidebarHelpSectionHeight);\nconst getSidebarHelpSectionPadding = () =>\n convertStyleToNumber(styleVariables.sidebarHelpSectionPadding);\n\nexport {\n getRootStyle,\n setRootStyle,\n removeRootStyle,\n getThemeStyle,\n convertStyleToNumber,\n getSidebarWidthLocal,\n getDefaultSidebarWidth,\n getMaxSidebarWidth,\n getMinSidebarWidth,\n getSidebarWidth,\n getMaxChildPageItemInPageWidth,\n getPreviewChildPagesPaddingRight,\n getPageBreadcrumbMaxWidth,\n getMobilePageBreadcrumbMaxWidth,\n getBoardHeaderRightSideWidth,\n getMobileBoardHeaderRightSideWidth,\n getJoinProjectButtonWidth,\n getSpaceHeaderRightSideWidth,\n getMobileSpaceHeaderRightSideWidth,\n getMobileSidebarWidth,\n getTimelineSidebarWidthLocal,\n getDefaultTimelineSidebarWidth,\n getMinTimelineSidebarWidth,\n getMaxTimelineSidebarWidth,\n getInboxListWidthLocal,\n getMinInboxListWidth,\n getMaxInboxListWidth,\n getDefaultInboxListWidth,\n getDefaultLabelCutoffSidebarWidth,\n getSearchLabelCutoffSidebarWidth,\n getStartedCountCutoffSidebarWidth,\n getHeaderHeight,\n getCardWidthLocal,\n getMinCardWidthWidth,\n getMaxCardWidthWidth,\n getDefaultCardWidthWidth,\n getSmallCardTagMaxWidth,\n getAiSourceItemMaxWidth,\n getSidebarHelpSectionHeight,\n getSidebarHelpSectionPadding,\n};\n","const capitalizeFirstLetter = (text: string = '') =>\n `${(text[0] || '').toUpperCase()}${text.slice(1)}`;\n\nexport default capitalizeFirstLetter;\n","import {\n browserStorageGetItem,\n browserStorageSetItem,\n browserStorageRemoveItem,\n} from './browser-storage.util';\n\nconst getDraftCardTitleKey = (\n teamID: string,\n projectId: string,\n boardId: string,\n listId: string,\n cardId: string\n) => `${teamID}-${projectId}-${boardId}-${listId}-${cardId}-title`;\n\nconst getDraftCardTitleKeyForList = (\n teamID: string,\n projectId: string,\n boardId: string,\n listId: string\n) => `${teamID}-${projectId}-${boardId}-${listId}-title`;\n\nconst getDraftCardDescriptionKey = (\n teamID: string,\n projectId: string,\n boardId: string,\n listId: string,\n cardId: string\n) => `${teamID}-${projectId}-${boardId}-${listId}-${cardId}-description`;\n\nconst getDraftCommentKey = (teamID: string, sectionId: string) =>\n `${teamID}-${sectionId}-create-comment`;\n\nconst getDraftEditCommentKey = (teamID: string, commentId: string, sectionId: string) =>\n `${teamID}-${sectionId}-${commentId}-edit-comment`;\n\nconst getDraftChecklistKey = (\n teamID: string,\n projectId: string,\n boardId: string,\n listId: string,\n cardId: string\n) => `${teamID}-p${projectId}-b${boardId}-l${listId}-c${cardId}-checklist`;\n\nconst getDraftEditChecklistKey = (\n teamID: string,\n projectId: string,\n boardId: string,\n listId: string,\n cardId: string,\n checklistId: string\n) => `${teamID}-p${projectId}-b${boardId}-l${listId}-c${cardId}-cl${checklistId}-edit-checklist`;\n\nconst getDraftChecklistItemKey = (\n teamID: string,\n projectId: string,\n boardId: string,\n listId: string,\n cardId: string,\n checklistId: string\n) => `${teamID}-p${projectId}-b${boardId}-l${listId}-c${cardId}-cl${checklistId}-new-checklistItem`;\n\nconst getDraftEditChecklistItemKey = (\n teamID: string,\n projectId: string,\n boardId: string,\n listId: string,\n cardId: string,\n checklistId: string,\n checklistItemId: string\n) =>\n `${teamID}-p${projectId}-b${boardId}-l${listId}-c${cardId}` +\n `-cl${checklistId}-cli${checklistItemId}-edit-checklistItem`;\n\nconst getChildCardCreationDraftKey = (teamID: string, parentCardId: string) =>\n `${teamID}-${parentCardId}-child-card-draft`;\n\n// used for child card creation inside template creation\nconst getTemplateChildCardCreationDraftKey = (\n teamID: string,\n templateID: string,\n isQuickCard: boolean = false\n) =>\n teamID +\n (templateID ? `-${templateID}` : '') +\n (isQuickCard ? '-quick-card' : '-template') +\n '-child-card-create-draft';\n\n// used for child card edit inside template creation\nconst getTemplateChildCardEditDraftKey = (\n teamID: string,\n templateID: string,\n index: string = '',\n isQuickCard: boolean = false\n) =>\n teamID +\n (templateID ? `-${templateID}` : '') +\n (isQuickCard ? '-quick-card' : '-template') +\n `-child-card-edit-draft-${index}`;\n\nconst getQuickCardCreationDraftKey = (teamID: string) => `${teamID}-quick-card-draft`;\nconst getCreateCardTemplateDraftKey = (teamID: string) => `${teamID}-create-card-template-draft`;\nconst getCreatePageTemplateDraftKey = (teamID: string) => `${teamID}-create-page-template-draft`;\nconst getCreateNoteTemplateDraftKey = (teamID: string) => `${teamID}-create-note-template-draft`;\n\nconst getParentPageForAddKey = (teamID: string) => `${teamID}-parent-page-for-add`;\n\nconst setDraft = (key: string, value: string) => {\n browserStorageSetItem(key, value);\n};\n\nconst getDraft = (key: string) => browserStorageGetItem(key);\n\nconst removeDraft = (key: string) => browserStorageRemoveItem(key);\n\nconst localBoardLayoutKey = (teamId: string) => `${teamId}-board-layout`;\n\nconst hideEmptyGroupByBoardKey = (teamId: string) => `${teamId}-hideEmptyGroupByBoard`;\nconst showWeekendsByBoardKey = (teamId: string) => `${teamId}-showWeekendsByBoard`;\n\nconst myWorkSortByKey = (teamId: string) => `${teamId}-myWorkSortBy`;\n\nconst subGroupByBoardKey = (teamId: string, boardId: string) =>\n `${teamId}-subGroupByBoard-${boardId}`;\n\nconst cardsSubGroupByOrderKey = (teamId: string) => `cardsSubGroupByOrder-${teamId}`;\nconst boardSubGroupByKey = (teamId: string) => `boardSubGroupBy-${teamId}`;\nconst listsExpandedKey = (teamId: string, boardId: string) => `${teamId}-listsExpanded-${boardId}`;\n\nexport {\n getDraftCardTitleKey,\n getDraftCardTitleKeyForList,\n getDraftCardDescriptionKey,\n getDraftCommentKey,\n getDraftEditCommentKey,\n getDraftChecklistKey,\n getDraftEditChecklistKey,\n getDraftChecklistItemKey,\n getDraftEditChecklistItemKey,\n setDraft,\n getDraft,\n removeDraft,\n getChildCardCreationDraftKey,\n getTemplateChildCardCreationDraftKey,\n getTemplateChildCardEditDraftKey,\n getQuickCardCreationDraftKey,\n getCreateCardTemplateDraftKey,\n getCreatePageTemplateDraftKey,\n getParentPageForAddKey,\n localBoardLayoutKey,\n hideEmptyGroupByBoardKey,\n showWeekendsByBoardKey,\n myWorkSortByKey,\n getCreateNoteTemplateDraftKey,\n subGroupByBoardKey,\n cardsSubGroupByOrderKey,\n boardSubGroupByKey,\n listsExpandedKey,\n};\n","/* eslint-disable no-console, no-undef */\n\nimport { register } from 'register-service-worker';\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n document.dispatchEvent(new CustomEvent('swReady'));\n },\n registered(reg) {\n setInterval(\n () => {\n reg.update();\n },\n 1000 * 60 * 60\n ); // e.g. hourly checks\n },\n cached() {},\n updatefound() {},\n updated(registration) {\n document.dispatchEvent(new CustomEvent('swUpdated', { detail: registration }));\n },\n offline() {},\n error() {},\n });\n}\n","import onPageLoad from '@/utilities/composables/useOnPageLoad';\n\nexport default {\n methods: {\n onPageLoad() {\n onPageLoad();\n },\n addLoader(loadingLabel = 'Loading') {\n const loader = document.createElement('div');\n loader.id = 'loading-wrapper';\n loader.innerHTML = `\n
\n
\n
\n ${loadingLabel}\n
\n
\n `;\n document.body.appendChild(loader);\n },\n },\n};\n","export default {\n computed: {\n isGuestRole() {\n return this.$store.getters.getCurrentRole === 'guest';\n },\n },\n};\n","import { render, createVNode } from 'vue';\nimport tippy from 'tippy.js';\nimport TooltipText from '@/components/tooltips/TooltipText.vue';\nimport isMobile from '@/utilities/isMobile';\nimport capitalizeFirstLetter from '@/utilities/capitalizeFirstLetter';\n\ntype DirectiveProps = {\n component: any;\n componentStyle: { [key: string]: any };\n componentClass: string[] | string;\n componentProps: { [key: string]: any };\n componentEvents: { [key: string]: Function };\n onShow: Function;\n onTrigger: Function;\n onUntrigger: Function;\n onHide: Function;\n tippyOptions: { [key: string]: any };\n disabled: boolean;\n tooltip: boolean;\n classOnShow: string;\n text: string;\n shouldStopPropagation: boolean;\n renderDelay: number;\n mobilePlacement: string; // this has to be one of the values from tippy.js https://atomiks.github.io/tippyjs/v6/all-props/#placement\n};\n\ntype DirectiveBinding = {\n value: DirectiveProps;\n oldValue: DirectiveProps;\n};\n\nfunction mountContent(el: any, vnode: any, value: DirectiveProps) {\n const {\n componentStyle = {},\n componentProps,\n componentEvents = {},\n text,\n component,\n componentClass = '',\n } = value;\n const tooltipContent = text ? TooltipText : component;\n\n // map listeners\n const listeners: any = {\n onEsc: () => {\n el._tippyInstance?.hide?.();\n },\n 'onClose-tippy': () => {\n el._tippyInstance?.hide?.();\n },\n };\n\n Object.keys(componentEvents).forEach((attr) => {\n // event listeners should be passed as onXxx\n if (attr.startsWith('on')) {\n listeners[attr] = componentEvents[attr];\n } else {\n // append on to the event name and camel case it\n listeners[`on${capitalizeFirstLetter(attr)}`] = componentEvents[attr];\n }\n });\n\n const vNode = createVNode(tooltipContent, {\n ref: 'tooltipContent',\n ...(text && { text }),\n ...componentProps,\n style: componentStyle,\n class: componentClass,\n ...listeners,\n });\n\n // @ts-ignore\n vNode.appContext = window.StVueApp?._context;\n\n if (el) {\n render(vNode, el);\n }\n el._tippyContentVm = vNode;\n\n return vNode;\n}\n\nconst createTippyInstance = (\n el: any,\n value: DirectiveProps,\n vnode: any,\n binding: DirectiveBinding\n) => {\n const {\n onShow,\n onHide,\n onTrigger,\n onUntrigger,\n tippyOptions = {},\n tooltip = true,\n classOnShow = '',\n renderDelay = 500,\n shouldStopPropagation = false,\n } = value;\n\n // try to preserve the horizontal placement on mobile (start, end)\n if (isMobile()) {\n // to override default behavior for mobile, use mobilePlacement\n if (value.mobilePlacement) {\n tippyOptions.placement = value.mobilePlacement;\n } else {\n const horizPlacement = tippyOptions.placement?.split('-')[1];\n tippyOptions.placement = horizPlacement ? `auto-${horizPlacement}` : 'auto';\n }\n }\n\n const createTippyCallback = () => {\n const tippyInstance: any = tippy(el, {\n ...tippyOptions,\n role: tooltip ? 'tooltip' : 'poper',\n // @ts-ignore\n content: mountContent(el, vnode, value).el,\n ...(!tippyOptions.placement && { placement: 'top' }),\n ...(!tippyOptions.duration && { duration: [300, 0] }),\n ...(!tippyOptions.interactive && { interactive: false }),\n ...(!tippyOptions.maxWidth && { maxWidth: 'none' }),\n onTrigger: (_, event: Event) => {\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n if (onTrigger) {\n onTrigger(event);\n }\n },\n onUntrigger: (_, event: Event) => {\n if (shouldStopPropagation) {\n event.stopPropagation();\n }\n if (onUntrigger) {\n onUntrigger(event);\n }\n },\n onShow: (instance) => {\n if (classOnShow) {\n el.classList.add(classOnShow);\n }\n\n // @ts-ignore\n binding.instance.activeTippyInstance = instance;\n\n if (onShow && typeof onShow === 'function') {\n return onShow(instance, el._tippyContentVm);\n }\n if (tooltip) {\n instance.popper.classList.add('tooltip', 'popover', 'black-tooltip');\n }\n\n // ass vnode.context can have multiple tippy instances\n // we need to attach flag to element to avoid it being overwrite in update hook\n //! this currently abuses fact that we can only bind a single tippy instance to HTML element\n el._forceUpdate = true;\n // trigger a re-render of the component to make sure it will contain the newest data\n // @ts-ignore\n binding.instance._?.ctx?.$forceUpdate?.();\n },\n onHide: (instance: any) => {\n // @ts-ignore\n if (instance.id === binding.instance.activeTippyInstance?.id) {\n // @ts-ignore\n binding.instance.activeTippyInstance = null;\n }\n if (onHide && typeof onHide === 'function') {\n onHide(el._tippyContentVm);\n }\n if (classOnShow) {\n el.classList?.remove?.(classOnShow);\n }\n },\n });\n\n el._tippyInstance = tippyInstance;\n };\n\n if (renderDelay && !tooltip) {\n el._renderTippyTimeout = setTimeout(createTippyCallback, renderDelay);\n return;\n }\n\n createTippyCallback();\n};\n\nconst tooltipDirective: any = {\n beforeMount(el: any, binding: DirectiveBinding, vnode: any) {\n const { value } = binding;\n const { disabled = false } = value;\n if (disabled) return;\n\n createTippyInstance(el, value, vnode, binding);\n },\n beforeUpdate(el: any, binding: DirectiveBinding, vnode: any) {\n const { value, oldValue } = binding;\n const { componentProps, disabled } = value;\n const { disabled: oldDisabled } = oldValue;\n\n if (el?._forceUpdate && el?._tippyInstance && el?._tippyContentVm) {\n el._forceUpdate = false;\n\n el._tippyContentVm.$el?.remove?.();\n el._tippyContentVm?.unmount?.();\n\n const newContentVm = mountContent(el, vnode, value);\n // @ts-ignore\n el._tippyInstance.setContent(newContentVm.$el);\n\n return;\n }\n\n if (!disabled && oldDisabled) {\n // create instance\n createTippyInstance(el, value, vnode, binding);\n }\n\n if (disabled && !oldDisabled) {\n // destroy instance\n el._tippyInstance?.destroy?.();\n el._tippyContentVm?.$destroy?.();\n return;\n }\n\n if (!componentProps || !el._tippyContentVm?.component?.props) return;\n Object.assign(el._tippyContentVm?.component?.props, componentProps);\n el._tippyContentVm.$forceUpdate?.(); // Force Vue to re-render the component\n },\n unmounted(el: any) {\n if (el._tippyInstance && !el._tippyInstance.state.isDestroyed) {\n el._tippyInstance.destroy();\n }\n if (el._tippyContentVm) {\n el._tippyContentVm.$destroy?.();\n }\n if (el._renderTippyTimeout) {\n clearTimeout(el._renderTippyTimeout);\n }\n },\n};\n\nexport default tooltipDirective;\n","import { ObjectDirective } from 'vue';\n\nconst directive: ObjectDirective = {\n mounted: (el, binding) => {\n if (!binding.value) return;\n setTimeout(() => {\n el.focus();\n }, 0);\n },\n};\n\nexport default directive;\n","import { ObjectDirective, DirectiveBinding, VNode } from 'vue';\n\ndeclare global {\n interface HTMLElement {\n vdraghover: {\n className: string;\n classAdded?: boolean;\n dragWatch?: () => void;\n mouseEnterHandler?: (event: MouseEvent) => void;\n mouseOverHandler?: (event: MouseEvent) => void;\n mouseLeaveHandler?: (event: MouseEvent) => void;\n };\n }\n}\n\nconst addClass = (el: HTMLElement, className: string) => {\n el.classList.add(className);\n el.vdraghover.classAdded = true;\n};\n\nconst removeClass = (el: HTMLElement, className: string) => {\n el.classList.remove(className);\n el.vdraghover.classAdded = false;\n el.vdraghover.dragWatch?.();\n};\n\nconst onMouseOver = (el: HTMLElement, context: any) => () => {\n if (el.vdraghover.classAdded) return;\n if (context?.draggingIsOn) {\n addClass(el, el.vdraghover.className);\n }\n};\n\nconst onMouseEnter = (el: HTMLElement, context: any) => () => {\n if (context?.draggingIsOn) {\n // Code to execute when draggingIsOn is true\n addClass(el, el.vdraghover.className);\n\n el.vdraghover.dragWatch = context?.$watch('draggingIsOn', (newValue: boolean) => {\n if (!newValue) {\n removeClass(el, el.vdraghover.className);\n }\n });\n }\n};\n\nconst onMouseLeave = (el: HTMLElement, context: any) => () => {\n if (!el.vdraghover.classAdded) return;\n if (context?.draggingIsOn) {\n // Code to execute when draggingIsOn is true\n removeClass(el, el.vdraghover.className);\n }\n};\n\nconst extractValues = (value: any) => {\n let className = '';\n let childDrag = false;\n\n if (typeof value === 'object') {\n if ('className' in value) {\n className = value.className as string;\n }\n if ('childDrag' in value) {\n childDrag = value.childDrag as boolean;\n }\n } else {\n className = value as string;\n }\n\n return { className, childDrag };\n};\n\nconst directive: ObjectDirective = {\n mounted: (el: HTMLElement, binding: DirectiveBinding) => {\n el.vdraghover = {\n className: '',\n };\n const { value, instance: context } = binding;\n\n const { className, childDrag } = extractValues(value);\n\n el.vdraghover.className = className;\n\n el.vdraghover.mouseOverHandler = onMouseOver(el, context);\n el.vdraghover.mouseEnterHandler = onMouseEnter(el, context);\n el.vdraghover.mouseLeaveHandler = onMouseLeave(el, context);\n\n if (childDrag) {\n // mouseenter will not fire when child element is dragged in el parent\n el.addEventListener('mousemove', el.vdraghover?.mouseOverHandler);\n }\n\n el.addEventListener('mouseenter', el.vdraghover.mouseEnterHandler);\n el.addEventListener('mouseleave', el.vdraghover.mouseLeaveHandler);\n },\n beforeUpdate: (el: HTMLElement, binding: DirectiveBinding) => {\n const { value, oldValue } = binding;\n const { childDrag } = extractValues(value);\n const { childDrag: oldChildDrag } = extractValues(oldValue);\n // CHECK IF draghover object has property mouseOverHandler\n if (!oldChildDrag && childDrag && el.vdraghover.mouseOverHandler) {\n el.removeEventListener('mousemove', el.vdraghover.mouseOverHandler);\n el.addEventListener('mousemove', el.vdraghover.mouseOverHandler);\n }\n },\n\n unmounted: (el) => {\n if (el.vdraghover.mouseOverHandler) {\n el.removeEventListener('mousemove', el.vdraghover.mouseOverHandler);\n }\n if (el.vdraghover.mouseEnterHandler) {\n el.removeEventListener('mouseenter', el.vdraghover.mouseEnterHandler);\n }\n if (el.vdraghover.mouseLeaveHandler) {\n el.removeEventListener('mouseleave', el.vdraghover.mouseLeaveHandler);\n }\n if (el.vdraghover.dragWatch) {\n el.vdraghover.dragWatch();\n }\n },\n};\n\nexport default directive;\n","import { ObjectDirective } from 'vue';\n\nconst addDragClass = (el: HTMLElement) => {\n if (el && !el.classList.contains('dragging')) {\n el.classList.add('dragging');\n }\n};\n\nconst removeDragClass = (el: HTMLElement) => {\n if (el) {\n el.classList.remove('dragging');\n }\n};\n\nconst directive: ObjectDirective = {\n mounted: (el: any, binding: any) => {\n let slider: Element = el;\n const [divPanel] = el.getElementsByClassName('__panel') ?? [];\n if (divPanel) {\n slider = divPanel;\n }\n let isDown = false;\n let startX: number = 0;\n let scrollLeft: number = 0;\n const filteredClasses = binding.value || [];\n const app = document.getElementById('app') as HTMLElement;\n slider.addEventListener('mousedown', (e) => {\n const element = e.target as HTMLElement;\n // check if element is a child of element with filteredClasses\n const closestElement = element.closest('.' + filteredClasses.join(',.'));\n\n if (filteredClasses.some((c: string) => element.classList.contains(c)) || closestElement) {\n return;\n }\n addDragClass(app);\n isDown = true;\n // @ts-ignore\n startX = e.pageX - slider.offsetLeft;\n scrollLeft = slider.scrollLeft;\n });\n slider.addEventListener('mouseleave', () => {\n removeDragClass(app);\n isDown = false;\n });\n slider.addEventListener('mouseup', () => {\n removeDragClass(app);\n isDown = false;\n });\n slider.addEventListener('mousemove', (e) => {\n // @ts-ignore\n const { alreadyDown } = e;\n if (alreadyDown !== undefined) {\n isDown = alreadyDown;\n }\n if (!isDown) return;\n e.preventDefault();\n // @ts-ignore\n const x = e.pageX - slider.offsetLeft;\n const walk = x - startX;\n slider.scrollLeft = scrollLeft - walk;\n });\n },\n};\n\nexport default directive;\n","import { createVNode, render } from 'vue';\nimport tippy from 'tippy.js';\nimport MemberHoverPreview from '@/components/widgets/MemberHoverPreview';\nimport { globalState } from '@/utilities/globalState';\nimport constants from '@/utilities/constants';\n\nconst CONSTANTS = {\n HIDE_DELAY: 700,\n DEFAULT_SHOW_DELAY: constants.showMemberHoverPreviewDelay,\n OFFSET: [0, 8],\n};\n\n// Single container and instances\nconst container = document.createElement('div');\nlet vnode = null;\nlet showTimeout = null;\n\nconst getMemberId = (member) => member.id || member.user_id || member.invitee_user_id || '';\n\nconst updateVNodeProps = (member, animationEnabled) => {\n if (vnode?.component) {\n vnode.component.props.member = member;\n vnode.component.props.class = { animation: animationEnabled };\n vnode.component.update();\n }\n};\n\nconst createVNodeWithProps = (member, animationEnabled) => {\n return createVNode(MemberHoverPreview, {\n member,\n class: { animation: animationEnabled },\n onViewWorkClick: () => {\n globalState.memberHoverTippyInstance?.hide?.();\n },\n });\n};\n\nconst initializeTippy = (el) => {\n if (globalState.memberHoverTippyInstance) return;\n globalState.memberHoverTippyInstance = tippy(document.createElement('div'), {\n content: container,\n appendTo: document.body,\n placement: 'top-start',\n role: 'poper',\n interactive: true,\n duration: 0,\n arrow: false,\n offset: CONSTANTS.OFFSET,\n triggerTarget: el,\n getReferenceClientRect: () => el.getBoundingClientRect(),\n onUntrigger: () => clearTimeout(showTimeout),\n onHide: () => {\n window.removeEventListener('keypress', globalState.memberHoverTippyInstance.hide);\n clearTimeout(globalState.currentGroupAvatarTimeout);\n globalState.currentGroupAvatarTimeout = setTimeout(() => {\n if (!globalState.memberHoverTippyInstance.state.isVisible) {\n globalState.currentGroupAvatarId = null;\n }\n }, CONSTANTS.HIDE_DELAY);\n globalState.memberHoverPreviewShown = false;\n },\n });\n};\n\nconst createShowTooltip = (el, binding) => {\n return () => {\n const groupAvatarId = binding.arg?.groupAvatarId;\n const delay =\n globalState.currentGroupAvatarId === groupAvatarId ? 0 : CONSTANTS.DEFAULT_SHOW_DELAY;\n\n // Update vnode props\n updateVNodeProps(binding.value, delay !== 0);\n\n // First time setup if needed\n if (!vnode?.component) {\n vnode = createVNodeWithProps(binding.value, delay);\n vnode.appContext = binding.instance.$.appContext;\n render(vnode, container);\n updateVNodeProps(binding.value, delay !== 0);\n }\n\n initializeTippy(el);\n\n // Update tippy instance\n globalState.memberHoverTippyInstance?.setProps?.({\n content: container,\n triggerTarget: el,\n getReferenceClientRect: () => el.getBoundingClientRect(),\n delay: [delay, 0],\n onShow: () => {\n if (!el.isConnected || binding.arg?.disabled) return false;\n window.addEventListener('keypress', globalState.memberHoverTippyInstance.hide);\n globalState.memberHoverPreviewShown = true;\n if (globalState.currentGroupAvatarTimeout) {\n clearTimeout(globalState.currentGroupAvatarTimeout);\n }\n return true;\n },\n });\n\n clearTimeout(showTimeout);\n globalState.currentGroupAvatarId = groupAvatarId;\n showTimeout = setTimeout(() => globalState.memberHoverTippyInstance?.show?.(), delay);\n };\n};\n\nexport default {\n mounted(el, binding) {\n const member = binding.value;\n const memberId = getMemberId(member);\n const disabled = binding.arg?.disabled;\n\n if (!memberId || !Object.keys(member).length || disabled) return;\n\n // Create single tippy instance if it doesn't exist\n if (!vnode || !vnode.component) {\n vnode = createVNodeWithProps(binding.value, false);\n vnode.appContext = binding.instance.$.appContext;\n }\n initializeTippy(el);\n\n const showTooltip = createShowTooltip(el, binding);\n el.addEventListener('mouseenter', showTooltip);\n el._tippyListeners = { mouseenter: showTooltip };\n },\n\n unmounted(el) {\n // Remove event listeners\n if (el._tippyListeners) {\n Object.entries(el._tippyListeners).forEach(([event, listener]) => {\n el.removeEventListener(event, listener);\n });\n delete el._tippyListeners;\n }\n },\n\n updated(el, binding) {\n const disabled = binding.arg?.disabled;\n\n if (disabled && el._tippyListeners) {\n // directive became disabled\n Object.entries(el._tippyListeners).forEach(([event, listener]) => {\n el.removeEventListener(event, listener);\n });\n delete el._tippyListeners;\n return;\n }\n\n const memberId = getMemberId(binding.value);\n if (!memberId || !Object.keys(binding.value).length) return;\n\n const attachListeners = () => {\n requestAnimationFrame(() => {\n // Create new showTooltip with updated member\n if (!vnode || !vnode.component) {\n vnode = createVNodeWithProps(binding.value, false);\n }\n const showTooltip = createShowTooltip(el, binding);\n el.addEventListener('mouseenter', showTooltip);\n el._tippyListeners = { mouseenter: showTooltip };\n });\n };\n\n if (binding.oldValue.id !== binding.value.id) {\n // when id of member changed, remove old event listener\n if (el._tippyListeners) {\n el.removeEventListener('mouseenter', el._tippyListeners?.mouseenter);\n }\n attachListeners();\n }\n\n // if member id is the same, bud directive became enabled\n if (binding.oldValue.id === binding.value.id && !disabled && !el._tippyListeners) {\n attachListeners();\n }\n },\n};\n","//./plugins/posthog.js\nimport posthog from 'posthog-js';\nimport constants from '@/utilities/constants';\n\nexport default {\n install(app, options) {\n app.config.globalProperties.$posthog = posthog.init(constants.postHogApiKey, {\n api_host: constants.postHogApiHost,\n person_profiles: 'identified_only',\n session_recording: {\n maskAllInputs: true,\n maskTextSelector: `\n .activity-user-name,\n .actor-name,\n .beautified-link--label *,\n .board-item-card-title,\n .board-title-in-list,\n .breadcrumb-item-text,\n .card-child-title,\n .card-project-label,\n .card-project-title,\n .card-title,\n .child-page-section-item *,\n .filter-dropdown-label span,\n .item-label,\n .list-title,\n .notification-text,\n .page-list-item-text,\n .page-list-title,\n .parent-card-title,\n .posted-by-user,\n .project-text,\n .resource-wrap,\n .resource-title,\n .st-editor-content *,\n .tag-name,\n .title *,\n .title-text,\n .toc-item\n `,\n },\n ...(options || {}),\n });\n },\n};\n","const changeLanguage = (i18nextInstance, language) => {\n const [lang] = language.split('-');\n if (i18nextInstance.languages.includes(lang)) {\n i18nextInstance.changeLanguage(lang);\n return Promise.resolve();\n } else {\n const importLanguage = async () =>\n import(`@superthread-com/localization/languages/${lang}/index.js`);\n return importLanguage()\n .then(({ default: translations }) => {\n i18nextInstance.addResources(lang, 'translation', translations);\n i18nextInstance.changeLanguage(lang);\n })\n .catch((error) => {\n if (!process.env.TEST) {\n console.log('Error loading translations:', error);\n }\n i18nextInstance.changeLanguage('en');\n });\n }\n};\n\nexport { changeLanguage };\n","import cons from '@/utilities/constants';\nimport isMob from '@/utilities/isMobile';\nimport { ref, reactive } from 'vue';\n\n/* eslint-disable no-param-reassign */\nfunction install(app, options) {\n // make reactive objects\n const breakpoints = ref({});\n\n let isMobile = reactive({ value: false });\n isMobile = isMob();\n\n const updateBreakpoints = (e, key) => {\n breakpoints[key] = e.matches;\n };\n\n const addMediaMatchers = () => {\n const matchers = {};\n Object.keys(cons.screens).forEach((key) => {\n matchers[key] = window.matchMedia(`(min-width: ${cons.screens[key]})`);\n matchers[key].addListener((e) => updateBreakpoints(e, key));\n updateBreakpoints(matchers[key], key);\n });\n };\n\n addMediaMatchers();\n\n // inject global component computed\n app.mixin({\n computed: {\n bps() {\n return breakpoints;\n },\n isAndroid() {\n return navigator?.userAgent.match(/android/i);\n },\n isMobile() {\n return isMobile;\n },\n isMobileScreen() {\n return !this.bps.sm;\n },\n isTabletScreen() {\n return this.bps.sm && this.bps.md && !this.bps.lg;\n },\n isDesktopScreen() {\n return this.bps.lg;\n },\n },\n });\n}\n\nconst BreakpointsPlugin = { install };\n\nexport default BreakpointsPlugin;\n","import constants from '@/utilities/constants';\n\nconst getBoardPropThreshold = (isSprint) =>\n isSprint\n ? constants.fullyLoadedSprintBoardPropThreshold\n : constants.fullyLoadedBoardPropThreshold;\n\nconst hasSufficientProperties = (object, threshold) => Object.keys(object).length > threshold;\n\nconst getBoardItemType = (boardId) => (boardId === constants.epicsBoardId ? 'epics' : 'cards');\n\nconst hasItemsInLists = (board) => {\n if (!board?.lists?.length) return false;\n\n const itemType = getBoardItemType(board.id);\n return board.lists.some((list) => {\n const items = list?.[itemType];\n return Array.isArray(items) && items.length > 0;\n });\n};\n\nexport const isBoardFullyLoaded = (board, isSprint = false) => {\n // *KNOWN BUG: boards with lists, where all lists do not contain any cards will be always fetched\n // TODO: to be fixed with this card: https://app.superthread.com/superthread/card-10112-isboardfullyloaded-check-not-working-properly\n if (!board) return false;\n\n const threshold = getBoardPropThreshold(isSprint);\n return hasSufficientProperties(board, threshold) && hasItemsInLists(board);\n};\n\nexport const isPageFullyLoaded = (page) => {\n if (!page) return false;\n\n const threshold = constants.fullyLoadedPagePropThreshold;\n return hasSufficientProperties(page, threshold);\n};\n","export default {\n ops: {\n rail: {\n opacity: 0,\n size: '6px',\n gutterOfSide: '8px',\n },\n bar: {\n background: 'rgba(69, 69, 69, 0.16)',\n opacity: 1,\n specifyBorderRadius: '4px',\n size: '6px',\n },\n },\n};\n","import 'vue-virtual-scroller/dist/vue-virtual-scroller.css';\nimport { createApp } from 'vue';\nimport App from '@/components/pages/App';\nimport router from './router';\nimport { store } from './store';\nimport './registerServiceWorker';\nimport './assets/scss/app.scss';\n\n// 3rd party libs\nimport i18next from 'i18next';\nimport I18NextVue from 'i18next-vue';\nimport en from '@superthread-com/localization/languages/en';\nimport PortalVue from 'portal-vue';\nimport VueTippy from 'vue-tippy';\nimport vuedraggable from 'vuedraggable';\nimport { ObserveVisibility } from 'vue-observe-visibility';\nimport { createHead, VueHeadMixin } from '@unhead/vue';\n\n// mixins\nimport removeLoader from '@/mixins/removeLoader';\nimport isGuestRoleMixin from '@/mixins/isGuestRoleMixin';\nimport isSafari from '@/mixins/isSafari';\nimport iconTypeMixin from '@/mixins/iconTypeMixin';\nimport draggingIsOn from '@/mixins/draggingIsOn';\nimport viewRouteCheckMixin from '@/mixins/viewRouteCheckMixin';\n\n// directives\nimport vtippy from '@/utilities/vtippy.directive';\nimport vClickOutside from 'v-click-outside';\nimport autofocus from '@/utilities/autofocus.directive';\nimport draghover from '@/utilities/draghover.directive';\nimport dragToScroll from '@/utilities/dragToScroll.directive';\nimport MemberHoverPreview from '@/utilities/member-hover-directive';\n\n// globals\nimport { MessageTypes } from '@/types/messageTypes';\nimport posthogPlugin from '@/utilities/posthog';\nimport { changeLanguage } from '@/utilities/languages';\nimport constants from '@/utilities/constants';\nimport breakpoints from '@/plugins/BreakpointsPlugin';\nimport capitalizeFirstLetter from '@/utilities/capitalizeFirstLetter';\nimport { isBoardFullyLoaded, isPageFullyLoaded } from '@/utilities/isFullyLoaded';\n\nimport vuescroll from 'vuescroll/dist/vuescroll-esm.js';\nimport vuescrollOptions from '@/utilities/vuescrollOptions';\n\nimport VueVirtualScroller from 'vue-virtual-scroller';\n\nconst metaManager = createHead();\n\nconst app = createApp(App);\napp.use(router);\napp.use(store);\napp.directive('autofocus', autofocus);\napp.directive('tippy', vtippy);\napp.directive('draghover', draghover);\napp.directive('dragtoscroll', dragToScroll);\napp.directive('observe-visibility', {\n beforeMount: (el, binding, vnode) => {\n // @ts-ignore\n vnode.context = binding.instance;\n ObserveVisibility.bind(el, binding, vnode);\n },\n // @ts-ignore\n update: ObserveVisibility.update,\n unmounted: ObserveVisibility.unbind,\n});\nconst { bind, unbind } = vClickOutside.directive;\napp.directive('click-outside', {\n mounted(el, bindling) {\n bind(el, { value: bindling.value });\n },\n beforeUnmount(el) {\n unbind(el);\n },\n});\napp.directive('member-hover-preview', MemberHoverPreview);\n\napp.use(VueTippy, {\n directive: 'tooltip',\n component: 'VPopover',\n defaultProps: {\n placement: 'bottom-start',\n duration: [300, 0],\n maxWidth: 'none',\n popperOptions: {\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n altAxis: true,\n },\n },\n ],\n },\n },\n});\napp.use(VueVirtualScroller);\napp.use(metaManager);\napp.use(posthogPlugin);\n// eslint-disable-next-line\napp.component('draggable', vuedraggable);\n// @ts-ignore\nwindow.StVueApp = app;\n\napp.use(I18NextVue, { i18next });\napp.use(PortalVue);\napp.mixin(VueHeadMixin);\napp.mixin(removeLoader);\napp.mixin(isSafari);\napp.mixin(isGuestRoleMixin);\napp.mixin(iconTypeMixin);\napp.mixin(draggingIsOn);\napp.mixin(viewRouteCheckMixin);\napp.use(breakpoints);\napp.use(vuescroll, vuescrollOptions);\n// add global properties\napp.config.globalProperties.$constants = constants;\napp.config.globalProperties.$cons = constants;\napp.config.globalProperties.$capitalizeFirstLetter = capitalizeFirstLetter;\napp.config.globalProperties.$messageTypes = MessageTypes;\napp.config.globalProperties.$isBoardFullyLoaded = isBoardFullyLoaded;\napp.config.globalProperties.$isPageFullyLoaded = isPageFullyLoaded;\napp.config.globalProperties.$blurhashWorker = new Worker(\n new URL(/* webpackChunkName: \"blurHashWorker\" */ './workers/blurhashWorker', import.meta.url),\n { type: 'module' }\n);\napp.config.globalProperties.translate = (\n key: string,\n interpolations: Record = {}\n) => {\n return i18next.t(key, { ...interpolations, interpolation: { escapeValue: false } });\n};\napp.config.globalProperties.changeLanguage = (language: string) =>\n changeLanguage(i18next, language);\n\ni18next.init({\n lng: 'en',\n fallbackLng: 'en',\n supportedLngs: ['en', 'fr', 'bs', 'de', 'pl'],\n resources: {\n en: {\n translation: en,\n },\n },\n interpolation: {\n prefix: '%{',\n suffix: '}',\n },\n});\n\napp.mount('#app');\n\nif (!['dev', 'local'].includes(`${process.env.VUE_APP_ENV}`)) {\n let sentryInited = false;\n const captureError = async (error: any) => {\n const { logError, initSentry } = await import(\n /* webpackChunkName: \"sentry\" */ './utilities/sentry'\n );\n if (!sentryInited) {\n sentryInited = true;\n initSentry(router, app);\n }\n logError(error);\n };\n window.onerror = (message, url, line, column, error) => captureError(error);\n window.onunhandledrejection = (event: any) => captureError(event?.reason);\n}\n","import { isImage, isVideo, isPdf } from './fileExtensions';\n\nconst attachmentPreviewable = (attachment) => {\n return (\n (isImage(attachment.type) &&\n !attachment.type.includes('heif') &&\n !attachment.type.includes('heic')) ||\n isVideo(attachment.type) ||\n isPdf(attachment.type)\n );\n};\n\nexport default attachmentPreviewable;\n","import useShortcutHandlers from '@/utilities/composables/useShortcutHandlers';\nimport isInViewport from '../utilities/isInViewport';\nimport EventBus from '../utilities/eventBus';\nimport checkPlatform from '@/mixins/checkPlatform';\nimport { isPublicPageApp } from '@/utilities/isPublicPageApp';\n\nexport default {\n mixins: [checkPlatform],\n setup() {\n if (!isPublicPageApp()) {\n const { quickCardShortcutHandler, quickPageShortcutHandler, quickNoteShortcutHandler } =\n useShortcutHandlers();\n return { quickCardShortcutHandler, quickPageShortcutHandler, quickNoteShortcutHandler };\n }\n return null;\n },\n data() {\n return {\n selectedIndex: -1,\n vh: window.innerHeight,\n fieldFocused: false,\n inputBottom: 0,\n suspendMouseEnter: false,\n scrollTop: false,\n enableSpaceKeySelect: false,\n scrolledOnMount: false,\n scrollOnMountTimeout: null,\n updateTimeout: null,\n };\n },\n computed: {\n searchResultsLength() {\n if (!Number.isNaN(parseFloat(this.searchResults?.length), 10)) {\n return this.searchResults.length;\n }\n return 0;\n },\n dropdownMaxHeight() {\n return this.vh - this.inputBottom;\n },\n membersDropdownShown() {\n return this.searchNotEmpty && this.fieldFocused;\n },\n dropdownCalcStyle() {\n // dropdown padding top + bottom = 32\n // viewport edge margin 8\n return { maxHeight: `${this.dropdownMaxHeight - 40}px` };\n },\n },\n\n mounted() {\n this.getInputYOffset();\n },\n\n methods: {\n checkKey(event) {\n if (event.target?.dataset?.hiddenInput) {\n if (this.shouldPreventDefault(event)) return;\n // support filtered event keys like shortcuts\n if (this.filteredOutKeyCodes.length) {\n if (this.filteredOutKeyCodes.includes(event.code)) {\n const item = this?.items?.find((i) => i.shortcutKeyCode === event.code);\n if (item) {\n this.selectSearchResult(item);\n }\n return;\n }\n }\n }\n event.stopPropagation();\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n this.changeSelection(event.key);\n }\n if (event.key === 'Tab') {\n event.preventDefault();\n this.changeSelection(event.key);\n }\n if (event.key === 'Enter') {\n event.preventDefault();\n this.changeSelection(event.key, event);\n }\n\n if (event.ctrlKey && event.key === '1') {\n event.preventDefault();\n this.hidePopup();\n }\n if (event.ctrlKey && event.key === '2') {\n event.preventDefault();\n this.hidePopup();\n }\n if (event.ctrlKey && event.key === '3') {\n event.preventDefault();\n this.hidePopup();\n }\n },\n checkDownKey(event) {\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n }\n\n if (event.target.dataset.hiddenInput) {\n if (this.shouldPreventDefault(event)) return;\n // support filtered event keys like shortcuts\n if (this.filteredOutKeyCodes.length) {\n if (this.filteredOutKeyCodes.includes(event.code)) {\n const item = this?.items?.find((i) => i.shortcutKeyCode === event.code);\n if (item) {\n this.selectSearchResult(item);\n }\n return;\n }\n }\n }\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n if (event.code === 'Space' && !event.shiftKey && this.searchResults.length > 0) {\n event.stopPropagation();\n if (this.searchValue === '' || this.enableSpaceKeySelect) {\n event.preventDefault();\n this.changeSelection(event.code);\n }\n }\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.handleEsc(event);\n }\n if ((this.isApple ? event.metaKey : event.ctrlKey) && this.shortcutKey(event.key)) {\n event.preventDefault();\n this.handleEsc(event);\n this.displaySearchModal();\n }\n\n event.stopPropagation();\n },\n shortcutKey(key) {\n return ['K', 'k'].includes(key);\n },\n changeSelection(arrowKey, event = null) {\n if (arrowKey === 'ArrowDown' || arrowKey === 'Tab') {\n this.enableSpaceKeySelect = true;\n this.disableMouseEnter();\n if (this.selectedIndex < this.searchResults?.length - 1) {\n this.selectedIndex += 1;\n return;\n }\n this.selectedIndex = 0;\n }\n if (arrowKey === 'ArrowUp') {\n this.enableSpaceKeySelect = true;\n this.disableMouseEnter();\n if (this.selectedIndex > 0) {\n this.selectedIndex -= 1;\n return;\n }\n this.selectedIndex = this.searchResults?.length - 1;\n }\n if (arrowKey === 'Enter') {\n if (this.selectedIndex > -1) {\n const result = this.searchResults[this.selectedIndex];\n if ((result || this.filterIsTextInput) && !result?.disabled) {\n // true for enter key\n this.selectSearchResult(result, this.selectedIndex, event, true);\n if (!result?.category && this.hideFilterPopup) {\n this.hideFilterPopup();\n }\n }\n }\n }\n if (arrowKey === 'Space') {\n if (this.selectedIndex > -1) {\n const result = this.searchResults[this.selectedIndex];\n if (result && !result.disabled) {\n if (!result.category && typeof this.selectOnlySearchResult === 'function') {\n this.selectOnlySearchResult(result);\n EventBus.$emit('enterFilterSelect', result);\n }\n if (\n !result.category &&\n (result.toggleButton ||\n result.radioButton ||\n result.toggleSection ||\n result.checkBox) &&\n typeof this.toggleItem === 'function'\n ) {\n this.toggleItem(result);\n }\n }\n }\n }\n },\n resultRef(index) {\n return `result-${index}`;\n },\n getInputYOffset() {\n this.$nextTick(() => {\n if (this.$refs.searchInput) {\n let clientRect;\n if (this.$refs.searchInput.$el) {\n clientRect = this.$refs.searchInput.$el.getBoundingClientRect();\n } else {\n clientRect = this.$refs.searchInput.getBoundingClientRect();\n }\n this.inputBottom = clientRect.bottom;\n }\n });\n },\n fieldFocus() {\n this.fieldFocused = true;\n },\n fieldBlur() {\n this.fieldFocused = false;\n },\n handleResize() {\n this.vh = window.innerHeight;\n this.getInputYOffset();\n },\n setSelectedIndex(index) {\n if (this.suspendMouseEnter) {\n return;\n }\n this.selectedIndex = index;\n },\n mouseMoveHandle() {\n this.suspendMouseEnter = false;\n },\n disableMouseEnter() {\n this.suspendMouseEnter = true;\n },\n scrollToTop() {\n this.scrollTop = true;\n },\n displaySearchModal() {\n this.$store.dispatch('setQuickCard', false);\n this.$store.dispatch('setDisplayMembersDropdownId', '');\n this.$store.dispatch('setCurrentCardIdForPopup', '');\n this.$store.dispatch('setQuickPage', false);\n this.$store.dispatch('toggleSearchModal', true);\n },\n\n compositionUpdate(event) {\n if (this.isMobile) {\n this.$nextTick(() => {\n clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n this.searchValue = event.target.value;\n });\n });\n }\n },\n getDropdownElement(resultsRef, newIndex) {\n let el = null;\n const resultsIsVueComponent = resultsRef.every?.((i) => i._isVue);\n if (resultsIsVueComponent) {\n el = resultsRef.find((c) => +(c.$el?.dataset?.index || c.dataset?.index) === newIndex);\n } else {\n el = this.$refs[this.resultRef(newIndex)]?.[0];\n }\n return el;\n },\n\n scrollToSelectedItem(element, index) {\n const { vertical } = isInViewport(element, this.$refs.searchResultsScroll);\n if (!vertical) {\n if (index === 0 && this.scrollTop && this.$refs.searchResultsScroll) {\n this.$refs.searchResultsScroll.scrollTo({ y: '0%' }, 500);\n this.scrollTop = false;\n return;\n }\n\n if (!this.scrolledOnMount) {\n this.scrollOnMountTimeout = setTimeout(() => {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }, 150);\n this.scrolledOnMount = true;\n } else {\n element.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n }\n },\n\n shouldPreventDefault(event) {\n if (\n this.quickCardShortcutHandler?.(event) ||\n this.quickPageShortcutHandler?.(event) ||\n this.quickNoteShortcutHandler?.(event)\n ) {\n event.preventDefault();\n this.handleEsc(event);\n return true;\n }\n return false;\n },\n },\n\n watch: {\n selectedIndex(newIndex) {\n if (\n Object.prototype.hasOwnProperty.call(this.$refs, 'results') &&\n this.searchResultsLength > 0\n ) {\n const element = this.getDropdownElement(this.$refs.results, newIndex);\n if (!element || Object.keys(element).length === 0) return;\n\n if (!this.scrolledOnMount) {\n this.scrollOnMountTimeout = setTimeout(() => {\n this.scrollToSelectedItem(element);\n }, 150);\n this.scrolledOnMount = true;\n } else {\n this.scrollToSelectedItem(element);\n }\n }\n },\n searchValue(newValue) {\n if (this.enableSpaceKeySelect) this.enableSpaceKeySelect = false;\n\n if (newValue) {\n this.selectedIndex = 0;\n return;\n }\n },\n },\n created() {\n window.addEventListener('resize', this.handleResize);\n this.handleResize();\n },\n beforeUnmount() {\n clearTimeout(this.scrollOnMountTimeout);\n clearTimeout(this.updateTimeout);\n window.removeEventListener('resize', this.handleResize);\n },\n};\n","const isMobile = () =>\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator?.userAgent);\n\nexport default isMobile;\n","import { Store, useStore } from 'vuex';\nimport constants from '@/utilities/constants';\n\nexport const fetchCalendarEvents = (store: Store) => {\n const googleCalendarIntegration = store.getters.getIntegrationInstallations(\n constants.googleCalendarIntegration\n )[0];\n\n if (googleCalendarIntegration?.id) {\n store.dispatch('getUpcomingGoogleCalendarEvents', {\n installation_id: googleCalendarIntegration?.id,\n });\n }\n};\n\nexport default async function (\n {\n store = useStore(),\n fetchEvents = false,\n }: {\n store?: Store;\n fetchEvents?: boolean;\n } = {} as any\n) {\n await store.dispatch('getTeamIntegrationInstallations', {\n integration: constants.googleCalendarIntegration,\n });\n\n const { calendar_user_notes } = await store.dispatch(\n 'getTeamIntegrationsSettings',\n constants.calendarUserNotesSettings\n );\n\n if (calendar_user_notes) {\n await store.dispatch('setIntegrationSettings', {\n integration: constants.calendarUserNotesSettings,\n settings: calendar_user_notes,\n });\n }\n\n if (!fetchEvents) return;\n\n fetchCalendarEvents(store);\n}\n"],"names":["generateDefaultMyWorkFilters","userId","tabId","include","members","exclude","statuses","creators","onPageLoad","loader","document","getElementById","removeLoader","remove","cdnBase","generateSrcUrl","src","width","height","pageCover","arguments","length","undefined","includes","constants","UNSPLASH_BASE_URL","encoded","encodeURI","computed","isApple","checkIsApple","icons","colors","appColors","warning300","gray300","gray600","gray900","error600","getRouteAfterLogin","clearAfterGet","redirectRouteAfterLogin","browserStorageGetItem","browserStorageRemoveItem","IconType","useCurrentRole","store","useStore","currentRole","getters","getCurrentRole","isOwner","value","TeamMemberRole","Owner","isAdmin","Admin","isMember","Member","isGuest","Guest","isGuestReader","GuestReader","isElevated","iconsContext","require","methods","iconPath","name","extension","this","error","getCustomIconStyle","path","styleOptions","useMask","url","maskImage","webkitMaskImage","maskSize","webkitMaskSize","maskRepeat","webkitMaskRepeat","backgroundImage","backgroundSize","backgroundRepeat","isImage","type","_type$includes","call","isVideo","_type$includes2","isPdf","_type$includes3","isElectronApp","_navigator","navigator","userAgent","indexOf","useIsElectronApp","isInput","tagName","isContentEditable","activeElement","toLowerCase","isElectronQuickNote","routeName","electronNotesRoute","closeOtherPopups","modalToOpen","dispatch","QuickResourceType","QuickCard","getQuickCardIsOn","QuickResourceAction","setQuickCard","QuickPage","getQuickPage","setQuickPage","QuickNote","getQuickNote","setQuickNote","getDeletePopupId","showSearchModal","getEmojiPickerDisplayed","openQuickResource","resourceType","QuickResourceActions","quickCardShortcutHandlerFn","event","completeOnboardingActions","code","key","quickPageShortcutHandlerFn","quickNoteShortcutHandlerFn","hasPermissions","useShortcutHandlers","route","useRoute","translate","useTranslate","useOnboardingActions","quickCardShortcutHandler","ref","quickPageShortcutHandler","quickNoteShortcutHandler","copyGitBranchNameShortcutHandler","hasAllPermissions","useAudioTranscription","watch","String","cardId","_navigator$clipboard","_navigator$clipboard$","card","getCardById","branchName","getBranchName","title","clipboard","writeText","message","icon","duration","immediate","lastVisitedNoteIdKey","quickPageNoteKey","notesSidebarWidthKey","notesCalendarIntegrationReminderKey","notesCalendarUsedEventIdsKey","noteTranscriptPersistKey","noteAiTitlePrompt","NoteContentType","NoteTemplate","draggedEntity","$store","draggingIsOn","Object","keys","useDeleteResource","id","_getCurrentInstance","_this","getCurrentInstance","proxy","setAndOpenProject","setAndOpenAdjacentProject","useSetAndOpenProject","frozenTitle","deleteProject","async","currentProjId","getCurrentProjectId","deletingCurrentProject","catch","err","deleteCard","result","cardType","getIsCardDisplayed","EventBus","$emit","deleteView","deletingCurrentView","$route","$constants","routeNames","view","$router","push","views","params","dontFetch","viewId","shared","resource","deletePage","pageResource","pageFromTree","getProjectPagesTree","project_id","pageId","projectId","allChildren","collectAllChildren","page","children","forEach","childId","currentlyViewed","ResourceType","Page","teamId","getTeamID","childPage","isChildPageOpened","currentPageId","openedPage","teamSlug","currentProjectId","deleteBoard","boardId","currentBoardId","deleteList","listId","deleteResource","deleteFn","Project","View","Epic","Card","Board","List","Promise","reject","Error","resourceTitle","getProject","getProjectById","getView","getPrivateViews","getPublicViews","find","v","getCard","getCards","getPage","getPageById","getBoard","getFlatBoards","getList","lists","res","resTitle","getTeamSlug","getCurrentPageID","useAddCardInGroupByOrder","_this$proxy","dispatchCardAction","action","items","groupBy","defaultId","idKey","_card$epic2","item","_card$epic","board_id","epicId","epic","addCardInGroupByOrder","_card$epic3","_card$epic4","tagsToAdd","tags","priority","status","removeCardFromGroupByOrder","_card$epic5","isPublicPageApp","useTranslation","t","newProjectId","getAdjacentProjectId","openProject","openManageSpaces","isSettings","toRouteName","settingsManageSpacesRouteName","manageSpacesRouteName","resolve","tabName","projectPath","projectSlug","toRoutePath","noteId","electronAPI","window","electron","transcriptionState","getTranscriptionState","startRecording","persistedNoteId","hasNoteTranscriptionFeatureFlag","newNoteId","newNote","createNote","transcriptionKeywords","getUser","transcription_keywords","memberKeywords","values","getTeamMembers","map","m","first_name","display_name","send","getUserSettings","transcription_language","nextTick","recording","alreadyRecorded","add","setupChannels","alreadyRecordedForCurrentNote","has","saveUnsavedTranscripts","_store$getters$getNot","unsavedTranscripts","getNotes","transcripts","filter","ongoing","source","content","interim_content","then","_ref","data","note","startRecordingForAnotherNote","currentTranscriptionNoteId","newNoteForRecording","stopRecording","persistNoteRecording","browserStorageSetItem","removeChannels","currentTranscriptionNoteTitle","_store$getters$getNot2","isRecordingPending","isRecordingStarted","isRecordingStopped","_store$getters$getNot3","hasTranscripts","Boolean","isTranscriptDone","is_final","test","trim","createInterimTranscript","transcript","local_id","nanoid","createFinalTranscript","processTranscript","notes","lastTranscriptIndex","slice","reverse","findIndex","ti","lastTranscript","newTranscriptIsDone","on","_","removeAllListeners","audioPermissionsCheck","perm","permission_status","JSON","parse","permissions","hasSystemAudioPermission","system","hasMicrophonePermission","microphone","isMicrophonePending","isSystemAudioPending","isMicrophoneAuthorized","isSystemAudioAuthorized","requestPermission","callback","permissionStatus","getPermission","getTranscriptContents","separator","noFormatting","join","reduce","acc","index","sourceFrom","NoteTranscriptSource","Author","prevTranscript","getTeamFeatureEnabled","featureFlagIds","noteAudioTranscription","interpolation","i18next","ResourceLoadedKey","isSafariCheck","isSafari","getListById","storeGetters","handleAddEventBoardView","_ref2","newIndex","oldIndex","originalListId","destinationBoardId","originalBoardId","storeDispatch","cardModel","order","getListCards","destinationBoard","originalBoard","isDestinationSprintBoard","newListObject","color","behavior","handleListUpdate","updateCardFields","updateBoardFields","fieldName","fieldValue","_ref3","originalList","newList","originalIndex","splice","_ref4","orginalId","_ref5","handleUpdateEventBoardView","_ref6","listCards","propertyName","addCard","_ref7","destinationProjectId","destinationListId","destinationPosition","originalProjectId","originalPosition","getSprintKey","sprintId","getSprintListKey","specialCharactersPattern","getDashedTitle","replaceAll","replace","str","text","charAt","toUpperCase","substring","useNotes","router","useRouter","debouncedUpdateNoteTitle","debouncedUpdateNoteContent","noteTemplates","getNoteTemplates","noteTemplatesFavourited","templates","favouritedTemplates","fromEntries","entries","is_favourited","autoEnhancedTemplate","AutoEnhanced","getNoteEditorId","debounceUpdateNoteTitle","clearTimeout","setTimeout","updateCorrectNoteContent","aiNoteId","fieldType","UserNotes","debounceUpdateNoteContent","clearUpdateNoteDebounceTimeout","calendarEvent","localId","afterLocalNoteCreatedCallback","localNote","time_created","Date","now","meeting_time","start","meeting_metadata","links","meeting_links","noteIdToUpdate","oldEditorId","newEditorId","oldId","newId","resourceId","getNoteChronologicalAfterNoteId","notesList","noteIndex","noteBefore","noteAfter","deleteNote","updateNoteTitle","updateNoteContent","getNote","getAiNote","templateId","_getNote$NoteContentT","AiNotes","note_template_id","updateLastNoteTemplateId","last_note_template_id","getNoteHasAiNotes","_getNote$NoteContentT2","getLastNoteTemplate","_getNote","getPublicNoteUrl","_getNote$public_setti","public_settings","togglePublicNote","_updatedNote$public_s","isPublicNote","updatedNote","payload","is_public","getNoteMeetingLinkInfo","_getNote$meeting_meta","linkInfo","link","provider","getTextToTitleCase","usedEventIds","markEventAsUsed","eventId","getNoteTitleFromEvent","eventStartDate","eventEndDate","end","formattedStartDate","convertTimeTo24Hours","formattedEndDate","toDateString","convertDateToDDMM","calendarEvents","getUpcomingGoogleCalendarEvents","createNoteFromEvent","e","theme","getTheme","defaultStyle","background","styleVariables","white","gray800","border","gray500","gray200","gray400","parameterize","strings","compareTimeCreated","a","b","compareProjectOrder","projectOrder","aIndex","bIndex","sortProjects","projects","sortedProjects","sort","OnboardingActionType","OnboardingActionStatus","getCurrentDateInSeconds","Math","round","getTime","isProject","inEpicBoard","notificationTypePage","getCurrentInboxResource","resource_type","isPage","isBoard","isSprints","sprintsRouteName","isSprint","sprint","isSprintInbox","isInbox","Sprint","isNewPage","isNewBoard","isAnyCardDisplayed","getIsAnyCardDisplayed","getChildCardCreation","isManageSpaces","isEpicsBoard","epicsBoardRoute","membersBasedOnRoute","_this$$store$getters$","selectedProjectId","getSelectedProjectId","getTeamProjectById","inactiveMembers","getInactiveTeamMembers","getCurrentMembers","member","user_id","currentBoard","inbox","isInViewport","elem","boundElem","boundingOffests","top","right","bottom","left","rect","getBoundingClientRect","rectAgainst","$el","boundOffsets","offsetedAgainstTop","offsetedAgainsBottom","vertical","horizontal","deltaH","deltaV","hideMemberDropdown","getCurrentCardIdMemberDropdown","hideCardActionsDropdown","getCurrentCardIdActionEdit","closeParentCardPopup","getShowSetParentCardPopup","closeDupicateCardPopup","getShowDuplicateCardPopup","closeEmojiPicker","closePageUploadPopup","getPageUploadPopup","closeRestOfCardDropdowns","hideManageProjectsDropdowns","hideAllDropdowns","MessageTypes","character","gitName","defaultConfig","withCredentials","withXSRFToken","httpClient","HttpClient","timeout","baseURL","http","instance","get","axiosBaseGet","axios","refereshPromise","refreshPending","authRefresh","client","post","createAxiosResponseInterceptor","interceptor","interceptors","response","use","errorResponse","_errorResponse$respon","isCancel","eject","config","method","pathname","location","getLoggedIn","href","history","pushState","finally","api","Api","authGet","endpoint","customConfig","authPut","putData","put","basePost","postData","authPost","authPatch","patchData","patch","authDelete","delete","validateEmail","email","SECOND","MINUTE","HOUR","DAY","MONTH","YEAR","UNSPLASH_URL","UNSPLASH_DOWNLOAD_URL","screens","sm","md","lg","xl","xxl","ST_PUBLIC_PAGE_BASE_URL","staticAssetsUrl","staticFilesUrl","fullScreen","docked","modal","postHogApiHost","postHogApiKey","emptyMarkdownInput","emptyEditor","profileImageSupportedFiles","cardSupportedFiles","userColors","editorSupportedFiles","videoVolumeDefault","videoVolumeStorageKey","videoMuteVolumeKey","addCardButton","epicsBoardId","inEpicBoardIdPrefix","epicRoute","newPage","newBoard","createSpaceRouteName","settingsCreateSpaceRouteName","settingsMemberRouteName","settingsSpaceRouteName","settingsBoardsRouteName","settingsSelectedBoardRouteName","settingsSprintsRouteName","settingsWorkspaceRouteName","settingsImportRouteName","settingsNotificationsRouteName","settingsRouteName","settingsTemplate","root","create","edit","memberRouteName","roles","owner","admin","guest","myWorkRouteName","hRx","internalLinkRegEx","projectsSlug","sidebarWidthRoot","sidebarResizeSnapWidth","sidebarTogglePercentage","timelineSidebarResizeSnapWidth","inboxListResizeSnapWidth","updateCardCancel","smallCardMemberCountMax","openedCardMemberCountMax","stImageMinWidth","stImage","editorChecklistItem","newChecklistItem","dark","light","fromSection","blockAttributeName","filterTypes","quickCard","quickChildCard","projectsColumn","newListButton","integrationRoutes","github","dev","staging","release","production","zapier","searchGroupsOrder","stImageDefaultWidth","stImageDefaultHeight","stImagePlaceholder","corsProxyBaseUrl","redirectAfterGoogleSignInRoute","desktopRedirectRoutes","changelogUrl","uiNotificationStatuses","success","warning","uiNotificationLabelTypes","opne","update","retry","changelog","undo","uiNotificationElements","button","span","checkBox","uiNotificationMaxTitleLength","timelineHelperElementId","timelineArrowButtonOffset","timelineAnimatedScrollingSpeed","connectToDesktopAppUrls","timelineCardTitleMinWidth","timelineTooltipDateFormat","infoSidebarProject","emojiRegex","pageSyncTime","quickCardMaxTagsCount","fullyLoadedBoardPropThreshold","fullyLoadedSprintBoardPropThreshold","fullyLoadedPagePropThreshold","noSpaceName","showMemberHoverPreviewDelay","estimateSystems","fibonacci","label","labelAbbreviation","exponential","tshirt","valueAbbreviations","toggleButtonClass","defaultSuggestedTagsColors","bug","feature","aiAssistant","aiAgents","aiSuggestedActions","privateSpace","userPermissions","inviteMembers","publicPageIndexing","timelineLayout","limitIds","spaceLimit","iconPicker","createProject","manageProjects","sidebarProject","templateContent","epicSidebar","epicBoardView","templateDropdown","pageView","boardView","quickBoardView","quickCardModalView","quickPageModalView","updateEmailPopupTypes","reauthenticate","input","verify","timeline","list","calendarLayout","getStartedShowLessCount","projectPrivacyType","open","private","characterLimit","comment","knowledgeBaseUrls","mentionAnyting","childCards","organisePages","createPages","pageIconAndCoverImage","comments","boardsCardsAndStatuses","onboardingActionsReleaseDate","resolved","onboardingActionsVideoPrefix","searchResultsType","SearchModal","MentionList","openSpace","notificationsIntegrations","slackUser","notificationDigest","OAuthState","googleCalendar","googleCalendarRedirectUri","googleBaseUrl","slack","slackRedirectUri","googleCalendarIntegration","calendarUserNotesSettings","webhookIntegrations","slackChannel","defaultTimeInputValue","fullWidth","readOnly","epicDefaultIcon","resourceIconDefault","emptyEditorClass","cardDetailsSidebar","epicDetailsSidebar","editorContentBaseClass","rolledOverList","teamLogin","login","workspaces","newWorkspace","verifyEmail","onboardingInfo","board","space","boardCard","sprintCard","newView","billing","agents","newAgent","updateAgent","notesSettings","editor","sharedToWebClass","bottomGutterClass","arrowUpInFirstRow","arrowLeftAtDocStart","staticImages","staticVideos","downloadLinks","macArm64","macx64","contactMail","importerRadioNewProject","prStates","prStatusKeys","pr_draft","pr_open","pr_merged","pr_closed","gitBranchNameRegex","boardEmailDomain","prod","keyboardShortcutCheatsheetUrl","numberOfRecentWorkspaces","cardView","noListsInEpicsBoardErr","missingCardTitleOrListIdErr","userTypes","user","systemName","memberSearchKeys","memberSearchThreshold","pageCoverImage","msPerSecond","msPerMinute","msPerHour","msPerDay","msPerMonth","msPerYear","periods","labelPlural","labelSingular","shortFormat","monthsLabels","_translate","split","generateMonthsLabels","_translate2","generateLabel","periodIndex","period","getTimeDifferenceRecursion","elapsed","valuesArray","floor","rest","newPeriodIndex","timeDifference","time","depth","dueDate","current","array","finalString","loopLimit","i","getDayFromDate","date","getDay","convertTimeTo12Hours","toLocaleTimeString","hour12","hour","minute","convertToTwoDigits","convertTimestampToDate","getMonth","getDate","convertTimestampToDateSecondFormat","convertTimestampToDateSecondFormatWithDay","_translate3","days","day","at","convertTimestampToDDMlabelTime","currentDate","currentYear","getFullYear","year","hours","getHours","minutes","getMinutes","convertToHoursMinutes","timestampToFullDate","_translate4","d","months","month","timestampToFullDateShort","webpackIconsContext","useCustomIcon","SocketService","constructor","_defineProperty","authExpired","resubscribe","same_user","topic","handleCardArchivedRestored","body","handleResourceCreated","handleResourceUpdated","handleResourceDeleted","handleCardMoved","handlePageMoved","handleBoardMoved","handleResourceArchived","reason","handleAuthRefresh","connect","baseUrl","getRoutes","socket","openStateTimeout","subscriptions","subscribe","boards","sprints","cards","unsubscribe","unsubscribe_all","waitForConnection","interval","ws","readyState","clearInterval","stringify","WebSocket","onopen","onOpen","onmessage","onMessage","onerror","onError","onclose","onClose","disconnect","close","subscribedList","resourceIndex","clearUnsubscribeResources","s","addRemoveResource","resourceIds","addKey","removeKey","addList","removeList","updateSubscriptions","subscribeTo","unsubscribeFrom","logError","AgentPromptIteration","list_id","GoogleCalendarEvent","fetchCalendarEvents","Subscription","handleSubscriptionUpdated","changes","resource_id","hints","handleSprintUpdated","handleBoardDeleted","handlePageDeleted","handleCardDeleted","planIdChange","change","to","dismissible","dismissCallback","reload","labels","buttonStyle","getListId","original_sprint_id","original_list_id","destination_sprint_id","destination_list_id","getBoardId","original_project_id","original_board_id","destination_project_id","destination_board_id","card_id","destination_position","original_position","destination_project","original_project","destinationPages","pages","originalPages","destinationPageOrder","page_order","originalPageOrder","destinationBoardOrder","board_order","originalBoardOrder","archived","c","listCardsObj","viewResult","getViewResults","viewCardIndex","isCardDisplayed","field","isOnlyCardDisplayed","getDisplayedCards","flatBoards","hasOwnProperty","boardsArray","notFound","Team","globalState","reactive","memberHoverPreviewShown","memberHoverTippyInstance","currentGroupAvatarId","currentGroupAvatarTimeout","MyWorkTabId","EpicTabId","NoteTabId","invitee_user_id","storeMember","getMemberById","hidden","isGuestRole","hiddenStyle","backgroundColor","userHashColor","maskPosition","memberInTeamMembers","memberInitials","last_name","invitee_email","fallbackStyle","borderColor","thumbnail_image","profile_image","img","backgroundPosition","showUserColor","memberColor","listOfViewResults","getListOfViewResults","currentViewResultsCount","getCurrentViewTotalCount","cardCountLabel","cardLabel","isMobile","preloadNewViewResults","card_filters","getViewFilters","fetchNewViewResults","count","localAddViewResultsToList","postFetchViewResults","preloadViewResults","fetchViewResults","setViewResults","localViewResults","getViewResultsFromList","setViewResultsFromLocal","viewToSelect","sprint_id","fetchSprint","fetchBoard","flatBoard","$isBoardFullyLoaded","fetchTags","sprintKey","projectTags","refreshing","registration","updateExists","created","addEventListener","updateAvailable","once","detail","refreshApp","waiting","serviceWorker","postMessage","getRandomNumber","x","y","trunc","crypto","getRandomValues","Uint32Array","goToWorkspaceSettingsRoute","goToSettingsRoute","goToImportSettingsRoute","goToKeyboardShortcutRoute","ViewKeyboardShortcuts","goToNotificationsSettingsRoute","showQuickCardModal","showQuickPageModal","routeRef","toRef","onboardingActionsDataMap","MentionAnything","onClick","openOnboardingActionsVideoPreview","tooltip","AddChildCard","CreateCard","CreatePage","AddWorkspaceLogo","CustomiseYourProfile","ImportTasks","ConnectSlack","userCreatedAfterOnboardingActionsRelease","getOnboardingActions","getNotDismissedOnboardingActions","Dismissed","getNotCompletedOnboardingActions","NotCompleted","getCompletionRunningOnboardingActions","animate_completion","getFullyCompletedOnboardingActions","Completed","dismissOnboardingAction","types","attachmentId","team","getTeam","teamLogo","_team$value","logo","userProfileImage","_user$value","shouldSkipOnboardingAction","getOnboardingAction","accumulator","onboardingActionsMap","_onboardingActionsMap","onboardingAction","fetchOnboardingActions","onboarding_actions","onboardingActions","getGetStartedExpanded","toggleGetStartedExpanded","setGetStartedExpandedFromLS","isExpanded","localStorage","getItem","getGetStartedShowAll","toggleGetStartedShowAll","setGetStartedShowAllFromLS","showAll","setAllAsNotCompleted","ctrlKey","altKey","colorIndex","prev","curr","charCodeAt","$on","handler","emitter","$once","$off","_len","args","Array","_key","groupByOption","itemName","_window","valueToStore","setItem","_window2","_window3","removeItem","browserStorageGetAndSetItem","browserStorageRenameItem","oldKey","newKey","removeMultipleItemsByArrayPrefix","prefixes","prefix","_window6","startsWith","cardStatusType","Backlog","Rolledover","CardStatus","POLL_INTERVAL","RECENT_NOTES_COUNT","useNotesPoll","fetchNotes","getRecentNotes","setNotes","setupNotesPoll","setInterval","bundleID","processName","childBundleID","useRuntimeConfig","public","appId","getCardStatus","isEpic","getDefaultCardStatuses","backlog","committed","Committed","started","Started","completed","cancelled","Cancelled","rolledover","getBoardLists","defaultSprintStatuses","isLocalhost","hostname","isEnvDevOrLocal","initSentry","vueRouterRef","appInstance","Sentry","app","dsn","integrations","tracesSampleRate","environment","process","mixins","cardStatuses","recentlyViewedGenItemTimeout","displayedCards","gettersAndIconsMap","getter","getSelectedView","_page$icon","iconType","_page$icon2","getCurrentProject","project","_project$icon","_project$icon2","cardStatusIcon","additionalIcon","recentlyViewedLS","currentTeamIdLS","getPages","newVal","_newVal$params","_newVal$params2","_newVal$params3","generateItemForRecentlyViewedDropdown","oldVal","diff","nv","some","ov","newCard","addItemToRecentlyViewedDropdown","setRecentlyViewed","mounted","saveQuickCardCreatedToRecentlyViewed","saveQuickPageCreatedToRecentlyViewed","beforeUnmount","currentCardList","cardStatus","isInvalidItemForRecentlyViewed","getLabel","memberLabel","configIconType","_item$icon","_item$icon2","list_color","role","addToElectronRecentlyViewed","isResourceDeleted","handleNoteTitleChange","stateNote","component","meta","requiresAuth","beforeEnter","from","next","redirect","query","redirectQuery","team_subdomain","fullPath","state","redirect_uri","template","ga","q","popstateDetected","isLoggingIn","localLogin","removeLocalStorageItem","setUser","setTeam","sub_domain","getPendingInvities","pending_invites","teams","defaultTabName","getDefaultTabName","_user$teams","handleRedirectLogin","teamSubDomain","getTeamSubDomain","localCurrentTeamId","teamIndex","isAuthorizeRoute","getRouteAfterLoginData","trusted","redirectData","checkGuestAttempt","_store$getters$getTea","handleRedirect","currentTeamId","defaultTeam","tryFetchingUser","trustedRoutes","previousRoute","handleLogin","currentTabName","getCurrentTabName","loadProjects","pagesIds","pagesObject","pagesTree","archivePages","archivedPagesTree","p","archive_pages","archive_page_order","projectBoards","beforeEachGuard","_to$meta","getIsAnyCardDisplayedInLayout","getPreviousNextButtonClicked","replaceAfterIndex","getElectronBrowseHistoryIndex","getElectronBrowseHistory","anem","getFavouritesOpened","socketDeletedProjects","_to$params$projectIdP","toProjectId","projectIdParam","getMyProjectById","scrollPositions","popstate","afterEachGuard","makeCardRouteHandler","_to","_from","_to$params","_to$query","_to$query2","_to$query3","sessionStorage","previousPathByType","cons","isComingFromVerifyCode","reloadWithPreviousRoute","reloadWithoutPreviousRoute","cardOpenedFromSettings","toPath","selectedTabId","tabIdToAdd","endsWith","isCardMoved","cardMoved","cardOpenedFromNotes","usePush","isCardIdButtonClicked","cardIdButton","getIsSettingsOpen","_store$getters$getFla","boardTitle","routeItemName","dashedBoardTitle","nextRoute","cardsLayout","boardRouteWithoutCardsLayout","currentRoute","routerCommand","historyStateProps","back","replaceState","_from$params","_from$params2","boardIdFromRoute","notificationMessage","userNavigated","cardBeforeEnterHandler","cardRouteHandler","cardTitle","_store$getters$getUse","pass","allowed","disallowed","fail","BoardLayout","Timeline","failPath","roleCheck","checkRole","createRouter","createWebHistory","routes","authentication","integration","installation_id","workspace","currentProjectIdForWs","pathMatch","isArray","components","Settings","__","guestReaderCheck","redirectUri","origin","slack_team_unfurl","all","google_calendar_user_notes","getCalendarIntegration","fetchEvents","getSettingsCurrentProjectId","gitHubIntegrated","getIntegrationInstallations","firstBoardId","getSettingsCurrentBoardId","enabled","_to$params2","_to$params3","slackChannelWebhookIntegrated","_i$slack_channel_webh","slack_channel_webhook","slackCode","slackState","webhookInstallation","integrationId","slack_user","settings","props","boardViewBeforeEnter","unsplitParam","getItemNotFound","lastRoute","getEpicSelectedTabId","getUserId","beforeEach","afterEach","isViewOpen","electronHelpersMixin","displayOverlay","getOpenInDesktopAppLS","getOpenInDesktopApp","pathName","disableOpeningLinksInApp","openInAppHandler","isElectronAppRunning","installed","displayChooseToOpenInDesktopAppNotif","openCurrentRouteInDesktopApp","fetch","ok","json","URL","search","hash","setOpenInDesktopAppLS","notificationLabels","subtitle","iconEnum","Icon","emojiEnum","Emoji","imageEnum","Image","defaultLists","SuggestionType","getDefaultState","currentEditCommentID","commentToDeleteId","commentToDeleteParentId","commentToDeleteResourceType","commentsAreActive","userSettings","teamProjects","cardsCommentsAndActivities","commentsSection","loggedIn","popUpMessage","loginDetails","userName","password","teamID","teamSubDomains","emojiPickerDisplayed","local","host","users","reactions","checklists","checklistitems","files","editorSocket","helpPopupIsOn","commentListOrderBy","projectFormName","projectFormDescription","showAskAiNotesModal","searchResults","childSearchResults","lastSearchQuery","lastAskAiNotesSearchQuery","notificationType","darkMode","cachedComponents","boardsBackground","sidebarExpanded","addMemberPopupIsOn","addMembersTarget","displayMembersDropdownId","displayEditLinkPopup","displayEditorTooltip","editorID","show","commentLinkUrl","commentLinkText","displayInfoSidebar","teamMembers","notificationCount","notificationAlerts","teamMemberNotifications","publicViews","privateViews","selectedViewType","viewPreview","selectedView","viewFilters","sort_by","viewPills","viewResultsList","viewEditMode","boardsFilters","uiNotifications","favouritesOpened","openedFavouriteItem","membersSearchInput","headerMemberDropdownPosition","activeComment","socketConnected","displayVideoLinkPopup","installations","importProgressSteps","routeBeforeSettings","importProgressCurrentStep","settingsCurrentProjectId","settingsCurrentBoardId","integrationSettings","projectSidebarExpanded","projectsExpanded","favouritesExpanded","draggingEntityProjectFromId","draggingSidebarItem","pendingInvites","doubleCheckPopup","confirmationModal","localCardIds","colorsPopup","commentsOrder","membersToAddQuickCard","quickCardBoardId","quickPage","noteInQuickPage","quickNote","cardCommentActivityFilter","commentsInProgressPatch","commentsInProgressDelete","online","loadedFiles","projectPreviewLastScrollPos","favourites","favouritesFolderExpanded","newFolderInput","importHistory","favouriteFolderForRename","favouriteFolderTitle","showPeekSidebar","electronBrowseHistory","electronBrowseHistoryIndex","electronRecentlyViewed","themePreference","inviteeRole","inviteesProjectIds","redirectProjectId","currentInboxResource","inboxFilter","inboxListWidth","inboxListExpanded","showOnboarding","openInDesktopApp","showRedirectedToAppOverlay","membersDropdownInvitees","editorForCardLink","myWorkSelectedTabId","myWorkUserId","deletePopupId","itemNotFound","trashProjects","boardsColumnLayout","pagesColumnLayout","pressedEscCancelDragging","currentViewTotalCount","sidebarHovered","sidebarDragging","teamFeatures","showUpdateEmailPopup","showHideReplies","editorOpen","pageIconPickerDisplayed","hideEmptyGroups","hideEmptyGroupByBoardKey","showWeekends","showWeekendsByBoardKey","reconnectionCallbacks","previousNextButtonClicked","resolveInlineComment","notificationDigestSettings","boardEmbedPopup","isSettingsOpen","showUpgradePlanPopup","myWorkSortBy","recentWorkspaces","openWorkspaceThroughQuickSwitcher","sidebarSprintsExpanded","noteCreating","aiNoteGenerating","aiNoteGeneratingTitle","Set","resourceLoaded","spaceTags","epics","noteTemplateDraft","noteTemplateSections","agentRuns","currentAgentId","agentPromptIterations","upcomingGoogleCalendarEvents","teamSubscription","availablePlans","subGroupByEnabled","workspaceSectionExpanded","localUpdatePageProp","prop","updateBoardPropertyInBoards","updateBoard","newProject","_newProject$board_ord","is_bookmarked","updatePage","_newProject$pages","prop2","_project$pages","blurhash","copiedPages","pageIndex","updateArchivedPages","_storeGetters$getProj","parentPageId","parent","updateBoardPageTitle","basePath","newPageTree","newArchivePageTree","archiveTree","objectSet","object","decomposedPath","base","prototype","activePromises","abortSearchController","viewsPaginationCursor","notificationsPaginationCursor","notesPaginationCursor","actions","getEmail","getPassword","loginUsernamePass","setUserSettings","commit","oldSettings","auth","updateUserSettings","fetchUserSettings","loadUser","meUser","token_outdated","checkForTokenPrivileged","_ref8","token_privileged","sendCodeToNewEmail","_ref9","_ref10","resend","sendUpdateUserEmailCode","updateUserEmail","_ref11","_ref12","setLoggedIn","_ref13","setNotLoggedIn","_ref14","_ref15","addProject","_ref16","isPrivate","getProjectFormName","getProjectFormDescription","getTeamProjects","newTeamProjects","projectMembers","MemberRole","randomColorIndex","randomIconIndex","description","is_member","is_private","team_id","time_updated","total_members","total_members_online","_ref17","newProjctsOrder","getProjectOrder","addToSocketDeletedProjects","_ref18","clearSocketDeletedProjects","_ref19","localRemoveProject","_ref20","newProjectOrder","projectIndex","trashedProjects","getTrashProjects","localAddProjectToTeamProjects","_ref21","alreadyExists","_newProject$members","joinProject","_ref22","addProjectMember","loadTeamProjects","_ref23","existingPromise","promise","getProjects","_ref24","_ref25","project_order","oldBoardData","layout","setTeamProjects","_ref26","_ref27","setProjectOrder","_ref28","updateProject","_ref29","_ref30","projectData","skipCheck","currentProject","currentProjectTimeUpdated","timeUpdated","updateFields","fieldValueSource","forceUpdate","fieldsToUpdate","localUpdateTeamProjectField","_ref31","_ref32","setHelpPopupIsOn","_ref33","setCurrentProjectId","_ref34","setProjectFormDescription","_ref35","setProjectFormName","_ref36","setPreviousRoute","_ref37","setPassword","_ref38","setUserName","_ref39","username","setEmail","_ref40","setTeamSubDomain","_ref41","teamSubdomain","removeTeamSubDomain","_ref42","addLocalComment","_ref43","updateLocalCommentId","_ref44","_ref45","commentId","childCommentId","commentPayload","removeLocalComment","_ref46","_ref47","localCommentId","parentCommentId","localUpdateComment","_ref48","_ref49","addComment","_ref50","_ref51","_getters$getPage","context","isCard","page_id","totalCommentCount","parseInt","total_comments","schema","commentsSchema","createComment","_ref52","addChildComment","_ref53","_ref54","commentContent","createChildComment","_ref55","updateComment","_ref56","_ref57","childComment","updateChild","updateChildComment","updateParent","_ref58","updateCommentStatus","_ref59","_ref60","loadComments","_ref61","getComments","_ref62","loadComment","_ref63","getComment","_ref64","setCurrentEditCommentID","_ref65","setComments","_ref66","setCardCommentsAndActivities","_ref67","_ref68","deleteComment","_ref69","_ref70","commentType","currentRouteName","getCurrentRoute","commentIndex","CardComment","getCardCommentsAndActivities","getPageComments","oldComment","childCommentString","_ref71","setPopUpMessage","_ref72","setCurrentTabName","_ref73","setCommentsAreActive","_ref74","active","setCommentsSection","_ref75","section","fetchTeamMembers","_ref76","_ref77","invited","localeCompare","inactive","setTeamMembers","_ref78","setProjectMembers","_ref79","toggleSearchModal","_ref80","toggleAskAiNotes","_ref81","cancelSearch","abort","fetchSearchResults","_ref82","_ref83","advanceOptions","queryParams","grouped","fields","project_ids","spaces","parent_card","parentCard","AbortController","getSearch","signal","paramsSerializer","indexes","sendSearchQuery","_ref84","_ref85","childCard","resp","setSearchResults","_ref86","results","setLastSearchQuery","_ref87","setLastAskAiNotesSearchQuery","_ref88","setChildSearchResults","_ref89","updateUserProfile","_ref90","updateUser","_ref91","loadProjectDetails","_ref92","_ref93","setNotificationMessage","_ref94","setNotificationType","_ref95","toggleDarkMode","_ref96","setBoardsBackground","_ref97","setSidebarExpanded","_ref98","setDisplayEditLinkPopup","_ref99","setDisplayEditorTooltip","_ref100","setCommentLinkUrl","_ref101","_ref102","logOut","_ref103","_ref104","clear","logout_redirect_url","setAddMemberPopup","_ref105","setDisplayMembersDropdownId","_ref106","setMembersSearchInput","_ref107","setAddMembersTarget","_ref108","target","_ref109","localAddUserInWorkspace","_ref110","locaRemoveUserFromWorkspace","_ref111","archiveWorkspace","_ref112","updateTeam","_ref113","deleteWorkspace","_ref114","deleteTeam","_ref115","addCardIdForLocalId","_ref116","_ref117","uploadFiles","_ref118","_ref119","showActualFileSize","abortUploadController","headers","onUploadProgress","progressEvent","_id$startsWith","uploadProgress","loaded","total","progress","uploadDetails","fileSize","cancelUpload","_id$startsWith2","getFiles","_ref120","uploadInProgressCardId","getCardAttachmentUploadingId","_ref121","file","attachmentsInProgress","getAttachments","att","getFile","_ref122","_ref123","deleteFile","_ref124","_ref125","fileId","resetState","_ref126","addMemberToProject","_ref127","_ref128","membersToAdd","getRedirectProjectId","membersPayload","existingProjectMembers","isMe","memberToAdd","memberExist","memberAlreadyAdded","memberId","existingOrder","newOrder","membersToRemove","memberToRemove","addProjectMembers","_ref129","_ref130","newMembers","removeProjectMembers","_ref131","_ref132","memberIndex","removeMemberFromProject","_ref133","_ref134","deleteProjectMember","_ref135","transferSpaceOwnership","_ref136","_ref137","ownerId","setProjectOwner","setRedirectRouteAfterLogin","_ref138","loadNotificationCount","_ref139","_ref140","notifications","localUpdateNotificationCount","_ref141","loadTeamMemberNotifications","_ref142","_ref143","loadMore","activity","getNotifications","cursor","_ref144","n","getTeamMemberNotifications","updateTeamMemberNotification","_ref145","_ref146","read","interacted","localRemoveNotification","_ref147","notificationId","markAllReadSeen","_ref148","option","mostRecentNotificationId","read_up_to_id","seen","seen_up_to_id","setTeamMemberNotifications","_ref149","inviteUser","_ref150","_ref151","updateTeamDetails","_ref152","_ref153","workspaceId","updatedFields","setRedirectProjectId","_ref154","setInviteeRole","_ref155","setInviteesProjectIds","_ref156","loadViews","_ref157","_ref158","setSelectedViewType","_ref159","viewType","updateSelectedViewName","_ref160","viewName","_ref161","_ref162","hideAllReplies","_ref163","_ref164","_ref165","updateLocalViewId","_ref166","_ref167","_ref168","updateCountInViewResultsList","_ref169","createView","_ref170","_ref171","updateView","_ref172","updatingData","_ref173","_ref174","_ref175","_ref176","fetchMoreViewResults","_ref177","getViewEditMode","isMyWorkRoute","isMemberRoute","request","_ref178","fetchView","_ref179","_ref180","localAddViewToViewList","_ref181","setSelectedView","_ref182","setViewFilters","_ref183","filters","setViewPills","_ref184","setViewEditMode","_ref185","changed","localUpdateViewId","_ref186","_ref187","getAllTrashProjects","_ref188","trash","_ref189","_data$projects","_ref190","_ref191","rawFavourites","toRaw","getFavourites","cloneDeep","isFavourite","viewDelete","localDeleteView","_ref192","_ref193","fetchBoardsFilters","_ref194","_ref195","addUiNotification","_ref196","notification","newNotification","removeUiNotificationById","_ref197","setOpenedFavouriteItem","_ref198","favouriteItem","setHeaderMemberDropdownPosition","_ref199","setActiveComment","_ref200","setImportHistory","_ref201","watchResource","_ref202","_ref203","actionName","watchPage","_ref204","_ref205","localPageUpdatePayload","successHandler","errHandler","revertPayload","addPageWatcher","deletePageWatcher","watchCard","_ref206","_ref207","_getters$getCards$res","localCardUpdatePayload","isEpicCard","resourceCardName","addCardWatcher","deleteCardWatcher","watchBoard","_ref208","_ref209","localBoardUpdatePayload","addBoardWatcher","deleteBoardWatcher","watchList","_ref210","_ref211","localListUpdatePayload","addListWatcher","deleteListWatcher","fetchProjectData","_ref212","_ref213","_ref214","setFavouritesOpened","_ref215","moveBoardHandler","_ref216","_ref217","_getters$getFlatBoard","projectExpanded","getProjectExpanded","localAddPageInProject","_ref218","_ref219","projectForUpdate","localUpdateSprintInProject","_ref220","_ref221","unfinishedCards","cardIds","rolledoverList","card_order","localUpdateProject","_ref222","_ref223","projectString","setCurrentRoute","_ref224","setSocketConnected","_ref225","setDisplayVideoLinkPopup","_ref226","createBoardWebhookNotification","_ref227","_ref228","createWebhookNotification","destination_type","integration_id","_ref229","_data$board","webhook_notifications","deleteBoardWebhookNotification","_ref230","_ref231","webhookDestination","deleteWebhookNotification","createInstallationForIntegration","_ref232","_ref233","createIntegrationInstallation","deleteInstallationForIntegration","_ref234","_ref235","installationId","getTeamIntegrations","_ref236","_ref237","getTeamIntegrationInstallations","_ref238","_ref239","_ref240","toggleBoardWebhookNotificationOption","_ref241","_ref242","updateWebhookNotificationBoard","_ref243","_data$board2","toggleListWebhookNotificationOption","_ref244","_ref245","updateWebhookNotificationList","_ref246","_data$list","setUpImport","_ref247","importer","createImport","_ref248","import","updateImportSettings","_ref249","_ref250","importId","_ref251","startImportProcess","_ref252","getImportHistory","_ref253","_ref254","imports","setImportProgressSteps","_ref255","updateImportProgressSteps","_ref256","_ref257","step","setRouteBeforeSettings","_ref258","setImportProgressCurrentStep","_ref259","setSettingsCurrentProjectId","_ref260","setCachedComponents","_ref261","setSettingsCurrentBoardId","_ref262","getTeamIntegrationsSettings","_ref263","_ref264","updateIntegrationsSettings","_ref265","_ref266","_ref267","setIntegrationSettings","_ref268","_ref269","updateLocalIntegrationSettings","_ref270","_ref271","setUpcomingGoogleCalendarEvents","_ref272","events","_ref273","_ref274","getGcalEvents","_ref275","fetchIntegrationDetails","_ref276","_ref277","client_id","_ref278","setExpandedProject","_ref279","_ref280","setBoardsColumnLayout","_ref281","_ref282","fetchAgents","_ref283","ai","getAiAgents","_ref284","getAgentById","_ref285","agentId","getAiAgent","_ref286","agent","createAgent","_ref287","createAiAgent","_ref288","getAgents","_ref289","_ref290","updateAiAgent","_ref291","agentIndex","attachAgent","_ref292","_ref293","_ref294","detachAgent","_ref295","_ref296","_ref297","attached_resources","deleteAgent","_ref298","deleteAiAgent","setCurrentAgentId","_ref299","fetchAgentPromptIterations","_ref300","getAiAgentPromptIterations","_ref301","_data$agent_prompt","iterations","agent_prompt","sendMessageToPromptBuilderAssistant","_ref302","_ref303","addAiAgentPromptIteration","_ref304","getAgentPromptIterations","prompt_iteration","handleAgentPromptIteration","_ref305","agent_id","isAlreadyPresent","iteration","resetChatHistoryForAgent","_ref306","deleteAiAgentPromptHistory","fetchAgentRuns","_ref307","getAiAgentRuns","_ref308","runs","setPagesColumnLayout","_ref309","_ref310","setProjectsExpanded","_ref311","setFavouritesExpanded","_ref312","setDraggingEntityProjectFromId","_ref313","setDraggingSidebarItem","_ref314","localAddProjectBoardOrder","_ref315","_ref316","localAddPageInTree","_ref317","_ref318","setSelectedProjectId","_ref319","localRemovePageInTree","_ref320","_ref321","itemId","localRemoveBoardFromOrder","_ref322","_ref323","getTeamPendingInvities","_ref324","_ref325","deleteTeamInvite","_ref326","invitee_emails","_ref327","deleteTeamMember","_ref328","_ref329","updateTeamMember","_ref330","_ref331","_ref332","resendTeamInvite","_ref333","_ref334","oldProjectOrder","oldTrashedProjects","trashProject","_ref335","setCurrentRole","_ref336","setDoubleCheckPopup","_ref337","setConfirmationModal","_ref338","setColorsPopup","_ref339","setCommentsOrder","_ref340","loadActivity","_ref341","activityDetail","_ref342","closeEditor","_ref343","_ref344","_ref345","setQuickCardBoardId","_ref346","_ref347","setNoteInQuickPage","_ref348","_ref349","setCardCommentActivityFilter","_ref350","addCommentInProgressPatch","_ref351","removeCommentInProgressPatch","_ref352","addCommentInProgressDelete","_ref353","removeCommentInProgressDelete","_ref354","setOnline","_ref355","addLoadedFile","_ref356","setProjectPreviewLastScrollPos","_ref357","_ref358","scrollPosition","fetchFavourites","_ref359","_ref360","setFavourites","_ref361","addFavourite","_ref362","parent_id","position","SprintState","Active","_ref363","localRemoveFromFavourites","_ref364","_ref365","addInRootFavourite","_ref366","addInParentFavourite","_ref367","_ref368","parentId","deleteUserFavourite","_ref369","resourceIdForRequest","deleteFavourite","localUpdateResourceInFavourites","_ref370","updateFavourite","_ref371","_ref372","resourceForUpdateKey","resourceForUpdate","_ref373","setFavouritesFolderExpand","_ref374","_ref375","toggleCommentReaction","_ref376","reaction","removeProgressTimeout","unicode","native","variation","colons","createCommentReaction","removeCommentReaction","_ref377","deleteCommentReaction","setEmojiPickerDisplayed","_ref378","setNewFolderInput","_ref379","setFavouriteFolderForRename","_ref380","setFavouriteFolderTitle","_ref381","_ref382","setTheme","_ref383","addToElectronBrowseHistory","_ref384","setElectronBrowseHistory","_ref385","setElectronBrowseHistoryIndex","_ref386","setElectronRecentlyViewed","_ref387","_ref388","removeFromElectronRecentlyViewed","_ref389","updateItemInElectronRecentlyViewed","_ref390","setThemePreference","_ref391","setCurrentInboxResource","_ref392","setInboxFilters","_ref393","setInboxListWidth","_ref394","setInboxListExpanded","_ref395","setShowOnboarding","_ref396","setOpenInDesktopApp","_ref397","setShowRedirectedToAppOverlay","_ref398","updateFile","_ref399","_ref400","setMembersDropdownInvitees","_ref401","addMembersDropdownInvitee","_ref402","removeMembersDropdownInvitee","_ref403","setEditorForCardLink","_ref404","setMyWorkSelectedTabId","_ref405","_ref406","setMyWorkUserId","_ref407","fetchArchivedBoardsByWorkspace","_ref408","_ref409","archivedBoards","addCardToCurrentViewResults","_ref410","setPressedEscCancelDrag","_ref411","setSidebarHover","_ref412","setSidebarDragging","_ref413","setShowUpdateEmailPopup","_ref414","AiTask","_ref415","credentials","Accept","getAllTeamFeatures","_ref416","getTeamFeatures","_ref417","features","setTeamFeatures","_ref418","toggleTeamFeature","_ref419","_ref420","featureId","oldValue","getTeamFeature","_ref421","_ref422","updateTeamFeature","_ref423","_ref424","setPageIconPickerDisplayed","_ref425","setHideEmptyGroups","_ref426","_ref427","setShowWeekends","_ref428","addReconnectionCallback","_ref429","_ref430","callbackId","removeReconnectionCallback","_ref431","callReconnectionCallbacks","_ref432","getReconnectionCallbacks","_ref433","updateUserTimezoneId","_ref434","timezone_id","fetchNotificationDigest","_ref435","getNotificationDigest","_ref436","digest","updateNotificationDigest","_ref437","oldNotifDigest","fetchNotificationDigestSettings","_ref438","getNotificationDigestSettings","_ref439","updateNotificationDigestSettings","_ref440","oldNotifDigestSettings","setBoardEmbedPopup","_ref441","askQuestionAi","_ref442","localRemovePageFromPageOrder","_ref443","removeProjectPage","_ref444","updatePageInTeamProject","_ref445","_ref446","addPageToTeamProject","_ref447","_ref448","removePageFromTeamProject","_ref449","_ref450","setIsSettingsOpen","_ref451","setShowUpgradePlanPopup","_ref452","setMyWorkSortBy","_ref453","setMyWorkSortByForAllUsers","_ref454","localRemoveTeamMember","_ref455","setModal","_ref456","setRecentWorkspaces","_ref457","updateRecentWorkspace","_ref458","_ref459","setOpenWorkspaceThroughQuickSwitcher","_ref460","setSidebarSprintsExpanded","_ref461","_ref462","localAddSprintToProject","_ref463","_ref464","setNote","_ref465","fetchNotesForPoll","_ref466","_ref467","_ref468","_ref469","_ref470","_ref471","_ref472","recentlyViewed","getElectronRecentlyViewed","updatedItem","toUpdate","updateNote","_ref473","_ref474","updateAiNoteContent","_ref475","_ref476","updateEnhancedNote","createNewNote","_ref477","_ref478","noteFromCalendarEvent","google_calendar_event","_ref479","_data$note","fromCalendarEvent","_ref480","_ref481","_ref482","_ref483","_ref484","_ref485","localUpdateNoteProp","_ref486","_ref487","setAiNoteGenerating","_ref488","setAiNoteGeneratingTitle","_ref489","fetchNoteTemplates","_ref490","_ref491","setNoteTemplates","_ref492","applyNoteTemplate","_ref493","_ref494","setAiNote","_ref495","_ref496","aiNote","generateAiActions","_ref497","_ref498","createAiActions","note_id","_ref499","updateAiAction","_ref500","_ref501","actionId","_ref502","setAiActions","_ref503","_ref504","_ref505","_ref506","setSelectedNoteTabId","_ref507","_ref508","localCreateTranscript","_ref509","_ref510","localUpdateTranscript","_ref511","_ref512","localSetNoteTranscripts","_ref513","_ref514","createTranscript","_ref515","_ref516","setTranscriptionState","_ref517","setResourceLoaded","_ref518","_ref519","fetchNoteTemplate","_ref520","_ref521","note_template","createNoteTemplate","_ref522","noteTemplate","getNoteTemplateDraft","sections","tempId","_ref523","updateNoteTemplate","_ref524","_ref525","oldTemplate","_ref526","deleteNoteTemplate","_ref527","setNoteTemplateDraft","_ref528","updateNoteTemplateDraftField","_ref529","_ref530","clearNoteTemplateDraft","_ref531","setNoteTemplateSections","_ref532","favouriteNoteTemplate","_ref533","unfavouriteNoteTemplate","_ref534","fetchTeamSubscription","_ref535","getSubscription","subscription","fetchAvailablePlans","_ref536","getAvailablePlans","setSubGroupByEnabled","_ref537","_ref538","subGroupByBoardKey","setListsExpanded","_ref539","_ref540","setWorkspaceSectionExpanded","_ref541","mutations","existingTeam","isOn","setCommentListOrderBy","orderBy","setTrashProjects","parentCommentIndex","parentComment","cIndex","child_comments","childCommentIndex","childC","commentsArray","_comment$children","childIndex","parentResourceId","primaryCommentId","storeComment","newReaction","existingReaction","r","userAlreadyReacted","u","setCurrentMembers","setTeamProjectField","membersObj","_state$user","_state$user2","newState","assign","mIndex","setNotificationCount","setNotificationAlerts","currentNotifications","localUpdateNotifMarkAllAsRead","newNotificationList","setPublicViews","setPrivateViews","viewResults","newCount","pills","unshift","localAddView","setBoardsFilters","onlineStatus","updateProjectById","localUpdateFailRequest","leaveProject","setInstallations","addInstallation","installation","localRemoveBoardOrPageInProject","itemIndex","localUpdateProjectBoardOrder","projectToId","projectFromId","projectIndexTo","projectIndexFrom","boardForRemoveIndex","localUpdateProjectBoardsOrder","boardOrder","setPendingInvites","temp","processFavourite","original_resource_id","favouritesForSet","addInFavourites","parentIndex","f","favourite","j","existing","pop","alreadyAdded","invitee","Assigned","addProjectPage","setUserTimezoneId","myWorkSortByKey","localUpdateTeamMember","workspaceIndex","_state$notes$noteId","aiNoteIndex","_state$notes$noteId2","aiNotes","_note$NoteContentType","_note$NoteContentType2","_note$NoteContentType3","_n$actions","actionIndex","transcriptIndex","updatedTranscript","templatesArray","flatTemplates","newTemplates","setNoteTemplate","replaceNoteTemplateId","newTemplate","is_shared","setAgents","setPromptIterationsForAgent","setAgentRuns","setTeamSubscription","setAvailablePlans","plans","getUserName","getUserEmail","_getters","rootState","rootGetters","getUserTeams","getMySortedProjects","getTeamSortedProjects","globalGetters","activities","getCommentActivityOrderOfDisplayedCard","getCommentById","_state$cardsCommentsA","getCurrentEditCommentId","getPreviousRoute","getPreviousRouteName","getPreviousRoutePath","isPreviousRouteRoot","getPopUpMessage","getHelpPopupIsOn","getCommentListOrderBy","previousProjectIndex","getTrashProjectById","getCurrentProjectTitle","getCurrentProjectDescription","getCommentsAreActive","getCommentsSection","getLastSearchQuery","getLastAskAiNotesSearchQuery","currentTeam","getNotificationMessage","getNotificationType","getTeamSubDomains","getBoardsBackground","getAddMemberPopupIsOn","getDisplayMembersDropdownId","getAddMembersTarget","getDisplayEditLinkPopup","getDisplayEditorTooltip","currentProjecId","currentProjectPath","getRedirectRouteAfterLogin","getNotificationAlerts","getSelectedViewType","getViewPills","getBoardsFilters","getUiNotifications","getOpenedFavouriteItem","fav","_fav$children","child","getMembersSearchInput","getHeaderMemberDropdownPosition","getSocketConnected","getDisplayVideoLinkPopup","getImportProgressSteps","getRouteBeforeSettings","getImportProgressCurrentStep","getIntegrationSettings","getProjectsExpanded","getFavouritesExpanded","getSelectedProject","getSelectedProjectTitle","getSelectedProjectDescription","getPendingInvites","getDoubleCheckPopup","getConfirmationModal","getColorsPopup","getCommentsOrder","getNoteInQuickPage","getCardCommentActivityFilter","getCommentsInProgressPatch","getCommentsInProgressDelete","getOnline","getLoadedFiles","getProjectPreviewLastScrollPos","getFavouriteResource","getFavouritesFolderExpanded","getThemePreference","getInviteeRole","getInviteesProjectIds","inboxFilters","getInboxListWidth","getShowOnboarding","getCardIdForLocalCardId","getLocalCardIdForId","getShowRedirectedToAppOverlay","getMembersDropdownInvitees","getMyWorkSelectedTabId","getMyWorkUserId","getBoardsColumnLayout","getPagesColumnLayout","getCurrentProjectBoardColumnLayout","getCurrentProjectPageColumnLayout","getPressedEscCancelDragging","getEstimateSystemForProject","_getters$getProjectBy","estimate_system","sidebarHover","getSidebarDragging","_state$teamFeatures$f","getTeamFeatureAvailable","getTeamLimit","limitId","teamLimits","limit","getUserFeatureEnabled","_rootState","_state$teams$rootGett","_state$teams$rootGett2","flags","getSubscriptionPlan","_state$teams$rootGett3","subscription_plan_id","getShowUpdateEmailPopup","getPageIconPickerDisplayed","getHideEmptyGroups","getShowWeekends","getUserTimezoneId","getUserLocale","locale","getIsAutomaticTimezone","autodetect_timezone_id","getCachedComponents","getBoardEmbedPopup","getShowUpgradePlanPopup","getMyWorkSortBy","getModal","getIsModalDisplayed","_globalGetters$getPag","getBoardById","Space","getViewById","getWorkspaceOwner","teamOwner","getRecentWorkspaces","getOpenWorkspaceThroughQuickSwitcher","getSidebarSprintsExpanded","getCurrentAgentId","getNoteCreating","getAiNoteGenerating","getAiNoteGeneratingTitle","getResourceLoaded","getNoteTemplateSections","getTeamSubscription","getSubGroupByEnabled","getWorkspaceSectionExpanded","getDefaultBoardState","boardsListsIds","newBoardProjectId","draftCard","listDraftCardCreateView","listsDraftCard","dropTargetId","expandedBoardIds","loadingBoards","boardViewNoDestroy","draftListInputVisibleOnOpen","boardListView","currentTagForEdit","cardSidebarExpanded","showImageUploadPopup","currentCardIdActionEdit","currentListIdActionEdit","localBoardLayoutKey","cardsLayoutOptions","default","Calendar","removedListMeta","removedCardMeta","attachments","cardFailedAttachments","cardAutoFocus","previewPopoverKey","attachmentTargetCardId","cardAttachmentsLoaded","archivedLists","archivedCards","newBoardTitle","currentCardIdMemberDropdown","currentCardMembersDropdown","currentCardIdForPopup","projectPreviewBoards","displayProjectPreviewBoards","previewProject","cardAttachmentUploadingId","showDuplicateCardPopup","showSetParentCardPopup","checklistTitle","draggingEnd","currentCardId","currentCardLayout","linkedCardType","collapsedChecklistIds","hiddenItemsChecklistIds","boardsPills","boardViewMouseSuspended","workspaceTags","cardCommentAttachmentUploadPopup","cardDescriptionAttachmentUploadPopup","lastOpenedBoardId","lastHoveredListId","lastHoveredCardId","lastHoveredDisplayedCardId","selectedCardId","checklistInputActive","checklistItemInputActive","reportInfoData","timelineZoom","timelineSidebarWidth","cardTemplates","cardTemplateDraft","card_title","card_content","card_board_id","card_list_id","card_members","card_tags","card_priority","card_child_cards","cardsSchema","quickCardFilesToUpdate","cardIdForMove","quickCardObject","quickChildCardFilesToUpdate","quickChildCardObject","childCardCreation","cardInEpicCreation","cardInNoteCreation","boardSortByOptions","viewDefault","inEpicBoardDefault","boardSortBy","priorityDropdown","showCardPriorityPopup","boardGroupByOptions","boardGroupBy","boardListGroupByOrder","listCardsGroupByOrder","cardWidth","showSuggestionsPlaceholder","qcShowSuggestionsPlaceholder","currentGroupByListIdCardActionEdit","currentCardUniqueRowId","newBoardObject","sprintSettings","spaceSprints","sprintLists","sprintForEditId","epicSelectedTabId","cardsFuse","cardsSubGroupByOrder","cardsSubGroupByOrderKey","boardSubGroupBy","boardSubGroupByKey","listsExpanded","getProjectBoards","getNewBoardProjectId","publicviews","getListDraftCardCreateView","boardExpanded","getBoardListView","getCurrentTagForEdit","getShowImageUploadPopup","getCurrentListIdActionEdit","_state$flatBoards$boa","getCardsLayoutForBoard","_state$flatBoards$boa2","getLocalBoardLayoutForBoard","getCurrentCardActionEdit","currentCardForPopup","getAreAttachmentsUploading","getCardAutoFocus","getPreviewPopoverKey","getAttachmentTargetCardId","getCardAttachmentsLoaded","getNewBoardTitle","getCurrentCardMembersDropdown","getLinkedCardType","getReportInfoData","getTimeperoidOptions","timeperiodOptions","getDraggingEnd","getEpics","getLayoutOfDisplayedCard","_state$displayedCards","getCommentActivityFilterOfDisplayedCard","_state$displayedCards2","comment_activity_filter","_state$displayedCards3","comment_activity_order","getDisplayedCardListCards","_state$displayedCards4","list_cards","getCollapsedChecklistIds","getHiddenItemsChecklistIds","boardFilters","getTags","getProjectTags","getWorkspaceTags","getCardCommentAttachmentUploadPopup","getCardDescriptionAttachmentUploadPopup","getChecklistInputActive","checklistId","getChecklistsInputActive","getChecklistItemInputActive","checklistItemId","getChecklistItemsInputActive","getTimelineZoom","getTimelineSidebarWidth","getCardWidth","getCardIdForMove","getQuickCardFilesToUpdate","getMembersToAddQuickCard","getQuickCardProjectId","getQuickCard","getQuickChildCardFilesToUpdate","getMembersToAddQuickChildCard","getQuickChildCardProjectId","getQuickChildCard","getCardInEpicCreation","getCardInNoteCreation","getCardSliderActive","cardSliderActive","getBoardSortBy","sortBy","isInEpicBoard","getShowPriorityDropdown","getShowCardPriorityPopup","getBoardGroupBy","getCardsByCurrentBoardId","getCardsByEpicId","_state$cards$key$epic","getCardsByCurrentSprintId","boardsCardsIds","listIds","getBoardsCardsIdsByBoardId","getBoardListGroupByOrder","getListCardsGroupByOrder","getCurrentGroupByListIdCardActionEdit","getCurrentCardUniqueRowId","getCardTemplates","getCardTemplateDraft","getCardTemplateChildCards","getQCChildCards","getSuggestions","_state$cards$cardId","getQCSuggestions","_state$quickCardObjec","getTagSuggestions","_state$cards$cardId2","tag","getQCTagSuggestions","_state$quickCardObjec2","getDuplicateSuggestions","_state$cards$cardId3","relation","getQCDuplicateSuggestions","_state$quickCardObjec3","getShowSuggestionsPlaceholder","getQCShowSuggestionsPlaceholder","getNewBoardObject","getSprintSettings","getSpaceSprints","getSprints","getSprintLists","getSprintForEditId","Details","getBoardSubGroupBy","subGroupBy","getSubGroupByListOrder","subGroup","_state$cardsSubGroupB","getSubGroupByListCards","_state$cardsSubGroupB2","getSubGroupByBoardId","_state$cardsSubGroupB3","getListExpanded","_state$listsExpanded$","decodeToken","token","decodedToken","decodeJwt","isExpired","exp","expirationDate","isTokenExpired","getQuickCardObjectName","isModal","getQuickCardFilesToUpdateName","getDefaultChildCardDraftObject","convertChildCardDraftToChildCard","childCardDraft","boardIdValue","listIdValue","ids","setCardsFuse","Fuse","threshold","ignoreLocation","setCurrentBoardId","setBoardListsFlat","l","addBoardListId","replaceBoardListId","moveBoardListId","removeBoardListId","removeBoardList","removeMultipleBoardLists","addBoardInBoards","removeBoardFromProjectBoards","boardArray","boardIndex","setBoardsListsIds","list_order","setSprintsListsIds","setReportInfoData","report","setNewBoardProjectId","setListDraftCardCreateView","setRemovedBoardListPosition","setRemovedCardPosition","setTimeperoidOptions","setDraggedEntity","setDropTargetId","toggleBoardQuickView","toggleProjectBoards","newExpandedBoardIds","toggleBoardsInRow","otherBoardIndex","otherBoardId","setBoardListProp","setBoardViewNoDestroy","setDraftListInputVisibleOnOpen","localAddMemberToBoard","localRemoveMemberFromBoard","localAddMemberToCard","alradyMember","localRemoveMemberFromCardBoardView","setBoardListView","setCurrentTagForEdit","tagForEdit","localAddTagToCard","alradyTag","updateLocalCardTag","tagId","newCardTags","listCardTagIndex","localAddTagToBoard","localDeleteTagFromCard","tagIndex","localDeleteTagFromCards","setLinkedCardType","setShowImageUploadPopup","setCurrentCardIdForActionEdit","setCurrentListIdForActionEdit","setCardsLayout","replaceLocalChildCardIdInParentCard","parentCardId","childCardOrder","child_card_order","childCardOrderIndex","child_cards","childCardIndex","updatedChildCard","localCard","localUpdateCardFields","overwrite","userIdUpdated","user_id_updated","localUpdateCardField","_state$cards","localUpdateCardFieldInMultipleCards","setAttachments","localAddAttachment","attachment","localRemoveAttachment","newAttachments","addAttachmentUploadDetails","attachmentIndex","localRemoveFileFromCard","cId","newCardAttachments","fileIndex","updateCardAttachmentId","newAttachemnts","setUploadFailedFlag","attachmentsKey","newFile","failed","addCardFailedAttachment","resetBoardState","setCardAutoFocus","setPreviewPopoverKey","setAttachmentTargetCardId","setCardAttachmentsLoaded","setArchivedBoards","setArchivedLists","setProjectPreviewBoards","setArchivedCards","addArchivedListToIndex","setNewBoardTitle","clearProjectPreviewBoards","setProjectPreview","setCurrentCardIdMemberDropdown","setCurrentCardMembersDropdown","setCurrentCardIdForPopup","setCardAttachmentUploadingId","setShowDuplicateCardPopup","setShowSetParentCardPopup","setDraggingEnd","setProjectBoards","removeProjectBoard","addProjectBoard","setFlatBoards","fullyLoaded","setCards","setListCards","setSingleListInListCards","addCardToListCards","newListCards","removeCardFromListCards","addCardToCards","_oldCard$collaboratio","oldCard","expired","collaboration","localCardId","removeCardFromCards","cardWsEventsUpdate","_card$cardProp$cardIn","_state$cards$cardProp","_card$cardProp$cardIn2","_state$cards$cardProp2","cardProp","cardPropId","secondResource","thirdResource","fourthResource","cardIndex","cardTagIndex","checklistIndex","newTags","checklist_item_order","cardWsEventsCreate","_state$projectTags$pr","_state$workspaceTags$","_card$checklists$chec","_state$projectTags$pr2","cardWsEventsDelete","_card$checklists$chec2","_card$checklists$chec3","checklist","start_date","due_date","setDisplayedCards","epicToBeDisplayed","dc","cardsToBeDisplayed","addDisplayedCards","removeDisplayedCards","removeDisplayedCardsByField","shouldMatch","setFieldOfDisplayedCard","idx","setFieldsOfDisplayedCard","setCurrentCardLayout","removeCardFromArchived","newArchivedCards","setChecklistCollapsedIds","checklistIds","setHiddenItemChecklistIds","setBoardFilters","setBoardPills","setTags","tagsArray","deleteLocalTag","addLocalTag","updateLocalTag","updatedTag","_card$tags","_card$tags$findIndex","removeLocalPropFromTag","newTag","updateLocalTagId","localTagId","setCardCommentAttachmentUploadPopup","setCardDescriptionAttachmentUploadPopup","setLastOpenedBoardId","setBoardList","removeBoardFromBoards","removeBoardsListsIds","setSelectedCardId","setBoardViewMouseSuspended","setChecklistInputActive","isActive","tempActiveChecklists","setChecklistItemInputActive","tempActiveChecklistItems","setCardOwnerId","owner_id","setCardTemplates","setCardTemplate","replaceCardTemplateId","deleteCardTemplate","setCardTemplateDraft","setMembersToCardTemplate","addedMember","updateCardTemplateDraftField","clearCardTemplateDraft","addTagToTemplate","_state$cardTemplateDr3","_state$cardTemplateDr4","_state$cardTemplateDr","_state$cardTemplateDr2","manageCardTemplateSelectedSpaces","spaceId","toggleMemberTemplateChildCard","addChildCardToTemplate","updateChildCardInTemplate","removeChildCardFromTemplate","updateTemplateChildCardProperty","setTimelineZoom","zoom","setTimelineSidebarWidth","setCardWidth","closeCardUploadPopup","addQuickCardFileToUpdate","removeQuickCardFilesToUpdate","setQuickCardTitle","setMembersToAddQuickCard","setQuickCardField","clearQuickCardObject","updateQuickCardChildCardProperty","toggleMemberQuickCardChildCard","setQuickCardProjectId","addTagToQuickCard","removeTagFromQuickCard","addChildCardToQuickCard","updateChildCardInQuickCard","removeChildCardFromQuickCard","setParentCardForQuickCard","setCardIdForMove","setBoardSortBy","setBoardGroupBy","setChildCardCreation","setCardInEpicCreation","setCardInNoteCreation","setQuickCardObject","setQCSuggestions","suggestions","setShowSuggestionsPlaceholder","showPlaceholder","setQCShowSuggestionsPlaceholder","addGroupByList","isSpecialCaseListId","boardIds","bId","_boardListGroupByOrde","lId","existingList","removeCardFromGroupByList","_boardListGroupByOrde2","_boardListGroupByOrde3","updateGroupByListOrder","_boardListGroupByOrde4","setListCardsGroupByOrder","groupByOrder","reorderCardsGroupByList","_state$boardListGroup","updateCardsGroupByOrder","_state$boardListGroup2","setCurrentGroupByListIdCardActionEdit","setCurrentCardUniqueRowId","uniqueRowId","setNewBoardObjectField","resetNewBoardObject","setProjectSprintSettings","setSpaceSprints","oldSprints","newSprints","addSprintToSpaceSprints","setSprintListsFlat","newSprintLists","setSprintForEdit","localUpdateSprint","setEpicSelectedTabId","setBoardSubGroupBy","setCardsSubGroupByOrder","subGroupByBoardObject","existingValues","listsExpandedKey","newValues","addCardToGroup","parentListId","isSubGroupCase","getBoardIds","shouldSkipBoard","resolveListId","specialCases","handleSubGroup","ensurePathExists","obj","finalValue","handleRegularGroup","_state$boardListGroup3","group","removeCardFromSubGroupByList","_subGroupByObject$par","subGroupByObject","getItemAndIndex","itemsArray","compareKey","_relation$card","_tag$name","getNormalizedDisplayedCardPayload","rs","getCardType","_rs$boards$cards$card","getCardLayout","_rs$boards$cards$card2","normalizePayload","arrDisplayedCards","loadBoards","getBoards","boardLists","handleBoardCreated","req","_error$response","postFetchBoard","_board$lists2","_board$lists","_c$child_cards","stateCard","partially_loaded","archiveBoard","timeNow","time_archived","loadArchived","newCards","archiveList","currentListOrder","newListOrder","passedList","isEpicsList","unarchiveList","newArchivedBoardLists","updateList","updateEpicsList","createBoardList","createEpicsList","createList","createCard","createEpic","updateCard","_stateCard$epic","oldListId","movingCard","updateRequest","updateEpic","oldList","positionUpdate","localUpdateChildParent","_cardData$child_cards","_cardData$child_cards2","cardData","childCardData","parentCardData","updateCardWithPatchRequest","updateTime","updateUserId","createPublishedBoard","msg","createBoard","ListBehavior","gray700","stBlue","success400","warning500","createBoardCopy","copyBoard","createChecklist","updateChecklist","deleteChecklist","oldCardChecklists","oldChecklistOrder","checklist_order","oldChecklistItemOrder","cardChecklistIndex","cardChecklists","checklistOrderIndex","co","checklistOrder","createPublishedChecklistItem","itemsBase","checklist_id","deleteChecklistItem","checklistItem","itemsUrl","localDeleteChecklistItem","clIndex","cl","cli","archiveCard","cardArchived","interpolationData","successMsg","errorMsg","changeParentCard","_child$parent_card","_child$parent_card2","newParentCard","rawNewParent","newParent","rawChild","oldParent","childCardId","epicBrief","removeChildCard","addChildCard","removeCardFromParent","_getCards$cardId","oldParentCard","oldChildCardOrder","localRemoveCardFromParent","_childCard$parent_car","_card$child_cards","_card$linked_cards","cardsByEpicId","cardListId","cardBoardId","linked_cards","linkedCard","linkedCards","removeLinkedCardIndex","oldListCards","deleteEpic","checklistItemToggle","checked","updateChecklistItem","moveBoardToProject","projectBoardsPosition","newProjectBoardsLength","boardCardIds","moveCardToParent","addParentToCard","_getters$getCards$chi","initiatedByAddParent","localAddCardToParent","stateParentCard","newChildCards","newChildCardsOrder","addChildCardToParent","_childCard$parent_car2","_childCard$epic","child_card","updateChildCardAfterResponse","boardLength","lastBoardId","isOdd","addMemberToBoard","membersLength","removeMemberFromBoard","_card$members","alreadyMember","currentMembers","assignee","addMemberToCard","localRemoveMemberFromCard","removeMemberFromCard","localAddChecklistItemToCard","localUpdateChecklistItemIdInCard","localItem","checklistItems","newItem","addTagToCard","addCardTags","removeCardTag","_card$epic6","_card$epic7","_card$epic8","addChecklistToListCards","checklistItemOrder","newChecklist","updateCardOrderInPreviewBoards","setCurrentCardChecklistsOrder","checklistsOrder","removeOrReplaceLocalCurrentCardChecklistItemOrder","updateCardTotalCommentsCount","currentCommentsCount","decrease","updateChildCards","cardsUrl","moveCardHandler","setShowDuplicateBoardPopup","duplicateCard","copyCard","createCardCopy","cardRelationships","addLinkedCard","removeCardRelationships","linkedCardId","removeLinkedCard","handleCardCreated","listIdToSet","localUpdateCard","_change$to","refreshCardCollaboration","_data$card","archiveHandler","_getters$getListCards","fetchReport","reports","reportsDetail","setCardDraggingEnd","fetchCard","getEpicCard","_error$response2","cheklistIds","mergeTags","createTag","updateTag","deleteTag","_card$epic9","_card$epic10","bulkDeleteTagFromCards","addBoardToBookmarked","fetchCardTemplates","card_templates","fetchCardTemplate","getCardTemplate","card_template","cardTemplate","createCardTemplate","updateCardTemplate","user_updated","addTagsToCard","setCardSliderActive","mainGrpupBy","mutationName","setSuggestions","removeSuggestion","oldSuggestions","newSuggestions","fnRemoveSuggestion","ignoreSuggestion","updateTagHints","tag_slug","related_card_id","removeQCSuggestion","oldHints","newHints","addCardToGroupByList","removeCardFromGroupByBoard","_card$epic15","_card$epic16","_card$epic17","_card$epic12","_card$epic14","_card$epic11","_card$epic13","addCardToGroupByBoard","_card$epic22","_card$epic23","_card$epic24","_card$epic19","_card$epic21","_card$epic18","_card$epic20","updateBoardProperty","setSprintSettings","localSetSprintSettings","sprint_settings","start_day","cooldown","createNewSprint","end_date","getSprintsForProject","untilDate","until","_sprint$unfinished_ca","unfinished_cards","sprintListIds","sprintListKey","getSprint","generatedSprintId","postFetchSprint","_sprint$unfinished_ca2","sprintForSet","_l$cards","sprintListId","_c$child_cards2","isRolledOverList","shouldAddRolledOverCard","shouldAddCardToState","restStateCard","updateSprint","localUpdateEpicInChildCards","localRemoveCardFromEpic","_stateCard$epic2","stateEpic","localAddCardToEpic","rawCard","removeCardFromEpic","addCardToEpic","_card$epic25","_flatBoard$lists","oldBoardOrder","newBoardOrder","allCards","createBranchAutomation","automation","createNewVcsBranchAutomation","createNewSprintVcsBranchAutomation","updateBranchAutomation","oldName","newName","updateBranchNameVcsBranchAutomation","branch","updateBranchNameSprintVcsBranchAutomation","deleteBranchAutomation","deleteBoardVcsBranchAutomation","deleteSprintVcsBranchAutomation","updateBoardEmail","_data$email","constructInEpicBoard","getAllCardsForEpic","inEpicBoardId","inEpicBoardListId","convertCardToEpic","_epicsBoard$list_orde","_oldCard$tags","_oldCard$linked_cards","_getters$getCardById","_oldCard$epic","_oldCard$parent_card","_oldCard$epic2","_oldCard$child_cards","epicsBoard","firstListId","firstList","newEpic","board_title","estimate","list_title","sprint_title","oldLinkedCards","linkedCardState","oldEpicLinkedCards","linked_card_type","_oldCard$linked_cards2","_oldCard$parent_card2","_oldCard$epic3","_oldCard$child_cards2","addCardToSubGroupByList","getDefaultPageState","pageVersions","currentPageID","currentPageMode","archivedPages","projectPages","newPageCreating","pagesEntity","loadingPages","pageCreating","imageUploadPopup","coverImageUploadPopup","pageIconUploadPopup","insertLinkPopup","inlineCommentPopup","lastSidebarItemAdded","parentPageIdForAdd","projectPagesTree","sidebarDraftPage","getParentPageForAddKey","archivePagesTree","parentPageExpanded","pageUploadPopup","pageRenamingId","pagesSchema","quickPageFilesToUpdate","pageTemplates","highlightedPageLevelComments","pageLevelCommentInputActive","pageTemplateDraft","page_title","page_content","pageEditorDisplay","pageIdForMove","getCurrentPageMode","getPageTitle","getCurentPage","getPageContent","getPagesEntity","showCoverImageUploadPopup","showPageIconUploadPopup","showInsertLinkPopup","getCurrentProjectPages","getNewPageCreating","commentPopupVisible","getProjectPages","getParentPageIdForAdd","getProjectPagesArchiveTree","getParentPageExpanded","getQuickPageFilesToUpdate","getPageLevelCommentInputActive","getPageTemplates","getPageTemplateDraft","getPageEditorDisplay","getPageIdForMove","setArchivedPages","addPageToArchivedPages","removePageFromArchivedPages","setPage","_existingPage$collabo","existingPage","updatePageMeta","bookmarked","cover_image","setCurrentPageID","setCurrentPageMode","mode","setPagesEntity","entity","removePageFromListByIndex","setImageUploadPopup","setCoverImageUploadPopup","setPageIconUploadPopup","setInsertLinkPopup","resetPageState","setPageVersions","setProjectPages","setPages","updatedPages","newPages","addPageToProjectPages","setNewPageCreating","removePageFormProjectPages","localRemovePageProp","addPageToPagesList","deleteFromPages","addPageToFlatPages","setLastSidebarItemAdded","setParentPageIdForAdd","setProjectPagesTree","_state$sidebarDraftPa","_state$sidebarDraftPa2","draftPageProjectId","draftPageParentId","draftPage","_state$projectPagesTr","projecPagesTree","_state$projectPagesTr2","currentChildren","setProjectPageOrderTree","setProjectArchivedTree","setProjectArchivePages","setProjectArchivePagesTree","localUpdatePageOrderPosition","localAddPageInPageTree","_state$projectPagesTr3","_state$projectPagesTr4","rootChildren","localAddPageInArchivePageTree","localRemovePagesFromTree","pagesForDelete","localRemovePagesFromArchiveTree","_state$projectPagesTr5","pageParentId","parentsPageChildren","pageForRemoveIndex","removePageFromArchivedParentOrder","localRemovePageFromArchivedTree","localAddPageToPageOrder","localMovePageInPageTree","_state$projectPagesTr6","projectIdTo","projectIdFrom","parentIdTo","parentIdFrom","pageForChange","localAddProjectInPageTree","newPageObje","setSidebarPageDraft","draftPageItem","setSetParentPageExpand","setPageUploadPopup","removePageUploadPopup","setPageRenamingId","addQuickPageFileToUpdate","removeQuickPageFilesToUpdate","setPageTemplates","setPageTemplate","replacePageTemplateId","deletePageTemplate","setPageTemplateDraft","updatePageTemplateDraftField","clearPageTemplateDraft","setHighlightedPageLevelComments","commentsIds","setPageLevelCommentInputActive","managePageTemplateSelectedSpaces","setPageEditorDisplay","removePage","setPageIdForMove","loadArchivedPages","archivePage","parent_page_id","unarchivePage","archivedTime","loadPages","fetchPage","handlePageCreated","createNewPage","_getters$sidebarDraft","pageToCreate","createPage","debounceUpdatePage","updatePageProps","loadPage","fetchPageData","loadPageVersions","getPageVersions","console","log","localMovePageToProject","projectIdAdd","projectIdRemove","movePageToProject","newProjectPagesLength","getPageTitleByTeamIdAndPageId","togglePagePublicFlag","isPublic","duplicatePage","copyPage","_getters$sidebarDraft2","_getters$sidebarDraft3","localAddPageInProjectPageTree","movePageHandler","desinationPageTree","orginalPageTree","destinationPagesIds","removePageFromBookmarked","refreshPageCollaboration","getPageCollaboration","removePageIconOrCover","fetchPageTemplates","page_templates","fetchPageTemplate","getPageTemplate","page_template","pageTemplate","createPageTemplate","updatePageTemplate","deleteAPage","subpages","subpage","getDefaultOnboardingState","userID","teamName","subdomain","invitationCode","errorMessage","projectName","currentTeamName","workspaceErrorMessage","failedInvites","onboardingWorkspace","signupAnswers","getStartedExpanded","getStartedShowAll","onboardingUserID","onboardingTeamName","onboardingSubDomain","onboardingErrorMessage","onboardingWorkspaceErrorMessage","getSignupAnswers","setOnboardingUserID","setOnboardingWorkspace","team_name","setOnboardingErrorMessage","setWorkspaceErrorMessage","setInvitationCode","setCurrentTeamId","setCurrentTeamName","setFailedInvites","resetOnboardingState","storeSignupAnswers","answers","setGetStartedExpanded","setGetStartedShowAll","setOnboardingActions","sa","_state$onboardingActi","updateOnboardingActionsStatus","sendLoginCodeEmail","loginWithEmailCode","loginWithCode","createOnboardingWorkspace","company_name","createTeam","updateOnboardingWorkspaceDetails","joinTeam","addUserTeam","loginWithInviteLink","inviteId","loginWithInvite","invite_id","link_code","resendInviteLink","passAuthCode","importOnboardingResources","sendSignupAnswers","submitSignupAnswers","signup_answers","actionsToUpdate","_getters$getOnboardin","updateOnboardingActions","setAsNotCompletedOnboardingAction","editors","currentEditorId","currentEditorResourceType","persistedPageKeys","suggesterShown","uploading","currentEditor","getPersistedPagesKeys","checkIfDbExists","dbName","_state$persistedPageK","setEditor","deleteEditor","setCurrentEditorId","setCurrentEditorResourceType","updateEditorId","_state$editors$oldKey","_state$editors$oldKey2","_state$editors$oldKey3","_state$editors$oldKey4","updateEditorResourceId","setPersistedPagesKeys","addPageKeyToPersistedKeys","setSuggesterShown","insertOrUpdateEditorUpload","upload","existingUpload","_state$uploading","removeEditorUpload","_state$uploading2","_state$uploading3","previewAttachments","previewAttachmentId","previewAttachmentResourceId","previewAttachmentIndex","attachmentPreviewFromInput","getPreviewAttachmentIndex","getPreviewAttachments","getAttachmentPreviewFromInput","getPreviewAttachmentId","getPreviewAttachmentResourceId","setPreviewAttachments","attachmentPreviewable","setPreviewAttachmentId","clearCardPreviewData","setNextAttachment","setPreviousAttachment","deleteAttachmentFromPreviewAttachments","setAttachmentPreviewFromInput","attachements","onboarding","attachmentPreview","createStore","strict","modules","isCardOpen","getRootElement","documentElement","getRootStyles","getComputedStyle","getRootStyle","varName","getPropertyValue","setRootStyle","style","setProperty","removeRootStyle","removeProperty","convertStyleToNumber","parseFloat","getSidebarWidthLocal","sidebarWidth","getDefaultSidebarWidth","getMaxSidebarWidth","sidebarMaxWidth","getMinSidebarWidth","sidebarMinWidth","getSidebarWidth","getMaxChildPageItemInPageWidth","childPageItemInPageMaxWidth","getPreviewChildPagesPaddingRight","previewChildPagesPaddingRight","getBoardHeaderRightSideWidth","boardHeaderRightSideWidth","getMobileBoardHeaderRightSideWidth","mobileBoardHeaderRightSideWidth","getSpaceHeaderRightSideWidth","spaceHeaderRightSideWidth","getMobileSpaceHeaderRightSideWidth","mobileSpaceHeaderRightSideWidth","getPageBreadcrumbMaxWidth","pageBreadcrumbMaxWidth","getMobilePageBreadcrumbMaxWidth","mobilePageBreadcrumbMaxWidth","getJoinProjectButtonWidth","joinProjectButtonWidth","getMobileSidebarWidth","mobileSidebarWidth","getTimelineSidebarWidthLocal","getDefaultTimelineSidebarWidth","getMinTimelineSidebarWidth","timelineSidebarMinWidth","getMaxTimelineSidebarWidth","timelineSidebarMaxWidth","getInboxListWidthLocal","getMinInboxListWidth","inboxListMinWidth","getMaxInboxListWidth","inboxListMaxWidth","getDefaultInboxListWidth","getHeaderHeight","headerHeight","getCardWidthLocal","cardWidthWidth","getMinCardWidthWidth","dockedCardMinWidth","getMaxCardWidthWidth","dockedCardMaxWidth","getDefaultCardWidthWidth","dockedCardWidth","getSmallCardTagMaxWidth","smallCardTagMaxWidth","getAiSourceItemMaxWidth","aiSourceItemMaxWidth","getSidebarHelpSectionHeight","sidebarHelpSectionHeight","capitalizeFirstLetter","getDraftCardTitleKey","getDraftCommentKey","sectionId","getDraftEditCommentKey","getChildCardCreationDraftKey","getTemplateChildCardCreationDraftKey","templateID","isQuickCard","getTemplateChildCardEditDraftKey","getQuickCardCreationDraftKey","getCreateCardTemplateDraftKey","getCreatePageTemplateDraftKey","getCreateNoteTemplateDraftKey","setDraft","getDraft","removeDraft","register","ready","dispatchEvent","CustomEvent","registered","reg","cached","updatefound","updated","offline","addLoader","loadingLabel","createElement","innerHTML","appendChild","mountContent","el","vnode","_window$StVueApp","componentStyle","componentProps","componentEvents","componentClass","tooltipContent","TooltipText","listeners","onEsc","_el$_tippyInstance","_el$_tippyInstance$hi","_tippyInstance","hide","onClose-tippy","_el$_tippyInstance2","_el$_tippyInstance2$h","attr","vNode","createVNode","class","appContext","StVueApp","_context","render","_tippyContentVm","createTippyInstance","binding","onShow","onHide","onTrigger","onUntrigger","tippyOptions","classOnShow","renderDelay","shouldStopPropagation","mobilePlacement","placement","_tippyOptions$placeme","horizPlacement","createTippyCallback","tippyInstance","tippy","interactive","maxWidth","stopPropagation","_binding$instance$_","_binding$instance$_$$","classList","activeTippyInstance","popper","_forceUpdate","ctx","$forceUpdate","_binding$instance$act","_el$classList","_el$classList$remove","_renderTippyTimeout","tooltipDirective","beforeMount","disabled","beforeUpdate","_el$_tippyContentVm3","_el$_tippyContentVm4","_el$_tippyContentVm$$3","_el$_tippyContentVm5","oldDisabled","_el$_tippyContentVm$$","_el$_tippyContentVm$$2","_el$_tippyContentVm","_el$_tippyContentVm$u","unmount","newContentVm","setContent","_el$_tippyInstance3","_el$_tippyInstance3$d","_el$_tippyContentVm2","_el$_tippyContentVm2$","destroy","$destroy","unmounted","_el$_tippyContentVm$$4","_el$_tippyContentVm6","isDestroyed","directive","focus","addClass","className","vdraghover","classAdded","removeClass","_el$vdraghover$dragWa","_el$vdraghover","dragWatch","onMouseOver","onMouseEnter","$watch","newValue","onMouseLeave","extractValues","childDrag","_el$vdraghover2","mouseOverHandler","mouseEnterHandler","mouseLeaveHandler","oldChildDrag","removeEventListener","addDragClass","contains","removeDragClass","slider","divPanel","getElementsByClassName","isDown","startX","scrollLeft","filteredClasses","element","closestElement","closest","pageX","offsetLeft","alreadyDown","preventDefault","walk","CONSTANTS","HIDE_DELAY","DEFAULT_SHOW_DELAY","OFFSET","container","showTimeout","getMemberId","updateVNodeProps","animationEnabled","_vnode","animation","createVNodeWithProps","MemberHoverPreview","onViewWorkClick","_globalState$memberHo","_globalState$memberHo2","initializeTippy","appendTo","arrow","offset","triggerTarget","getReferenceClientRect","isVisible","createShowTooltip","_binding$arg","_vnode2","_globalState$memberHo3","_globalState$memberHo4","groupAvatarId","arg","delay","$","setProps","_binding$arg2","isConnected","_globalState$memberHo5","_globalState$memberHo6","_binding$arg3","showTooltip","_tippyListeners","mouseenter","listener","_binding$arg4","attachListeners","requestAnimationFrame","_el$_tippyListeners","install","options","globalProperties","$posthog","posthog","init","api_host","person_profiles","session_recording","maskAllInputs","maskTextSelector","changeLanguage","i18nextInstance","language","lang","languages","importLanguage","translations","addResources","TEST","breakpoints","isMob","updateBreakpoints","matches","addMediaMatchers","matchers","matchMedia","addListener","mixin","bps","isAndroid","match","isMobileScreen","isTabletScreen","isDesktopScreen","BreakpointsPlugin","getBoardPropThreshold","hasSufficientProperties","getBoardItemType","hasItemsInLists","itemType","isBoardFullyLoaded","isPageFullyLoaded","ops","rail","opacity","size","gutterOfSide","bar","specifyBorderRadius","metaManager","createHead","createApp","App","autofocus","vtippy","draghover","dragToScroll","ObserveVisibility","bind","unbind","vClickOutside","bindling","VueTippy","defaultProps","popperOptions","modifiers","altAxis","VueVirtualScroller","posthogPlugin","vuedraggable","I18NextVue","PortalVue","VueHeadMixin","isGuestRoleMixin","iconTypeMixin","viewRouteCheckMixin","vuescroll","vuescrollOptions","$cons","$capitalizeFirstLetter","$messageTypes","$isPageFullyLoaded","$blurhashWorker","Worker","interpolations","escapeValue","lng","fallbackLng","supportedLngs","resources","en","translation","suffix","mount","sentryInited","captureError","line","column","onunhandledrejection","checkPlatform","setup","selectedIndex","vh","innerHeight","fieldFocused","inputBottom","suspendMouseEnter","scrollTop","enableSpaceKeySelect","scrolledOnMount","scrollOnMountTimeout","updateTimeout","searchResultsLength","_this$searchResults","Number","isNaN","dropdownMaxHeight","membersDropdownShown","searchNotEmpty","dropdownCalcStyle","maxHeight","getInputYOffset","checkKey","_event$target","dataset","hiddenInput","shouldPreventDefault","filteredOutKeyCodes","_this$items","shortcutKeyCode","selectSearchResult","changeSelection","hidePopup","checkDownKey","_this$items2","shiftKey","searchValue","handleEsc","metaKey","shortcutKey","displaySearchModal","arrowKey","_this$searchResults2","disableMouseEnter","_this$searchResults3","filterIsTextInput","category","hideFilterPopup","selectOnlySearchResult","toggleButton","radioButton","toggleSection","toggleItem","resultRef","$nextTick","$refs","searchInput","clientRect","fieldFocus","fieldBlur","handleResize","setSelectedIndex","mouseMoveHandle","scrollToTop","compositionUpdate","getDropdownElement","resultsRef","_resultsRef$every","resultsIsVueComponent","every","_isVue","_this$$refs$this$resu","_c$$el","_c$dataset","scrollToSelectedItem","searchResultsScroll","scrollTo","scrollIntoView","block","_this$quickCardShortc","_this$quickPageShortc","_this$quickNoteShortc","calendar_user_notes"],"sourceRoot":""}