{"version":3,"file":"static/chunks/63-ddcc56cfc4d05d74.js","mappings":"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","sources":["webpack://_N_E/./src/app/components/ChatBox/FileUploadAnimation.tsx","webpack://_N_E/./src/app/components/FeedItem/FeedItemFooter.tsx","webpack://_N_E/./src/app/components/Reactions/ReactionsTooltip.tsx","webpack://_N_E/./src/app/components/Reactions/ReactionsTooltipContent.tsx","webpack://_N_E/./src/app/components/Reactions/ThreadReactions.tsx","webpack://_N_E/./src/app/components/TypingAnimation.tsx","webpack://_N_E/./src/app/components/TypingIndicator.tsx","webpack://_N_E/./src/app/components/icons/ConnectIcon.tsx","webpack://_N_E/./src/app/components/icons/CustomCheckCircledIcon.tsx","webpack://_N_E/./src/app/modules/slack-markdown/index.ts","webpack://_N_E/./src/app/services/chats.ts","webpack://_N_E/./src/app/utils/constants.ts","webpack://_N_E/./src/app/services/search.ts","webpack://_N_E/./src/app/services/threads.ts","webpack://_N_E/./src/app/utils/dataUtils.ts","webpack://_N_E/./src/app/components/ChatBox/FileUploadAnimation.module.scss","webpack://_N_E/./src/app/components/FeedItem/FeedItemFooter.module.scss","webpack://_N_E/./src/app/components/Reactions/ReactionsTooltip.module.scss","webpack://_N_E/./src/app/components/Reactions/ThreadReactions.module.scss","webpack://_N_E/./src/app/components/TypingAnimation.module.scss","webpack://_N_E/"],"sourcesContent":["import { Flex } from \"@radix-ui/themes\";\nimport styles from \"./FileUploadAnimation.module.scss\";\n\ninterface FileUploadAnimationProps {\n style?: React.CSSProperties;\n}\n\nexport const FileUploadAnimation = ({ style }: FileUploadAnimationProps) => (\n \n \n \n \n \n);\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./FeedItemFooter.module.scss\";\nimport ThreadReactions from \"@/app/components/Reactions/ThreadReactions\";\nimport { ChatBubbleIcon } from \"@radix-ui/react-icons\";\nimport { Badge, Flex, Text, Separator } from \"@radix-ui/themes\";\nimport { ConnectIcon } from \"@/app/components/icons/ConnectIcon\";\nimport { CustomCheckCircledIcon } from \"@/app/components/icons/CustomCheckCircledIcon\";\nimport { motion } from \"framer-motion\";\nimport { TypingAnimation } from \"@/app/components/TypingAnimation\";\nimport TypingIndicator from \"@/app/components/TypingIndicator\";\n\ninterface FeedItemFooterProps {\n reactions: any;\n messageCount?: any;\n num_unread?: any;\n createdDate: any;\n lastUpdated: string;\n isResolved?: any;\n typingUsers?: any;\n}\n\nconst FeedItemFooter = ({\n reactions,\n messageCount,\n num_unread,\n createdDate,\n lastUpdated,\n isResolved,\n typingUsers,\n}: FeedItemFooterProps) => {\n const shouldShowSeparator = messageCount || num_unread > 0;\n\n return (\n \n {reactions && reactions.length > 0 && (\n <>\n \n \n \n )}\n {messageCount > 0 && (\n <>\n \n {messageCount}\n \n )}\n {num_unread > 0 && {num_unread} new}\n {shouldShowSeparator && (\n \n )}\n \n {createdDate}\n \n \n {lastUpdated}\n {isResolved && (\n <>\n \n \n \n )}\n {typingUsers && typingUsers.length > 0 && (\n \n \n \n \n \n )}\n \n );\n};\n\nexport default FeedItemFooter;\n","import * as Tooltip from \"@radix-ui/react-tooltip\";\nimport { ReactNode } from \"react\";\nimport styles from \"./ReactionsTooltip.module.scss\";\nimport { Flex, Theme } from \"@radix-ui/themes\";\n\ninterface ReactionsTooltipProps {\n content: ReactNode;\n children: ReactNode;\n}\n\nconst ReactionsTooltip = ({ content, children }: ReactionsTooltipProps) => (\n \n \n {children}\n \n \n \n \n {content}\n \n \n \n \n \n \n \n);\n\nexport default ReactionsTooltip;\n","import React from \"react\";\nimport { ReactionResponse, StructUser } from \"@/app/types/Thread.type\";\nimport { StructAuthenticatedUser } from \"@/app/types/session\";\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport { DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport dynamic from \"next/dynamic\";\nimport { BlockType } from \"@/app/types/Block.type\";\n\nconst Emoji = dynamic(() => import(\"../Emoji\").then((mod) => mod.Emoji));\nconst CustomEmoji = dynamic(() =>\n import(\"../CustomEmoji\").then((mod) => mod.CustomEmoji),\n);\n\ninterface ReactionsTooltipProps {\n reactions: ReactionResponse[];\n currentUserID?: StructAuthenticatedUser[\"id\"];\n showPeople?: boolean;\n}\n\nconst ReactionsTooltipContent = ({\n reactions,\n currentUserID,\n showPeople = true,\n}: ReactionsTooltipProps) => {\n const getEmojiNameString = () =>\n reactions.map((reaction) => `:${reaction.block.name}:`).join(\" \");\n\n const reactionCount = reactions.length;\n const displayedReactions = reactions.slice(0, 7);\n\n const getPeopleText = () => {\n if (!showPeople) return \"People\";\n if (reactionCount < 0) {\n return reactionCount === 1 ? \"1 person\" : `${reactionCount} people`;\n }\n\n const nameList = reactions.flatMap(\n (reaction) =>\n reaction.user_ids?.map((id) =>\n id === currentUserID\n ? \"You\"\n : reaction?.entity_map?.[id] || \"Unknown\",\n ),\n );\n\n const uniqueNames = [...new Set(nameList)];\n\n const sortedNames = uniqueNames.includes(\"You\")\n ? [\"You\", ...uniqueNames.filter((name) => name !== \"You\")]\n : uniqueNames;\n\n return sortedNames.length === 1\n ? sortedNames[0]\n : sortedNames.slice(0, -1).join(\", \") +\n \" and \" +\n sortedNames[sortedNames.length - 1];\n };\n\n return (\n \n \n {displayedReactions.map((reaction) => (\n \n {reaction.block.type === BlockType.CustomEmoji ? (\n \n ) : (\n \n )}\n \n ))}\n {reactionCount > 7 && (\n \n \n \n \n )}\n \n \n \n {getPeopleText()}\n {\" \"}\n {reactionCount > 7\n ? \"reacted with many emojis!\"\n : `reacted with ${getEmojiNameString()}`}\n \n \n );\n};\n\nexport default ReactionsTooltipContent;\n","import React from \"react\";\nimport styles from \"./ThreadReactions.module.scss\";\nimport { Flex, Text } from \"@radix-ui/themes\";\nimport { ReactionResponse } from \"@/app/types/Thread.type\";\n\nimport dynamic from \"next/dynamic\";\nimport ReactionsTooltipContent from \"@/app/components/Reactions/ReactionsTooltipContent\";\nimport ReactionsTooltip from \"@/app/components/Reactions/ReactionsTooltip\";\nimport { BlockType } from \"@/app/types/Block.type\";\nconst Emoji = dynamic(() => import(\"../Emoji\").then((mod) => mod.Emoji));\nconst CustomEmoji = dynamic(() =>\n import(\"../CustomEmoji\").then((mod) => mod.CustomEmoji),\n);\n\ninterface ThreadReactionsProps {\n reactions: ReactionResponse[];\n}\n\nconst MAX_REACTIONS = 100;\n\nconst ThreadReactions = ({ reactions }: ThreadReactionsProps) => {\n const sortedReactions = reactions\n .sort((a, b) => b.count - a.count)\n .slice(0, MAX_REACTIONS);\n\n const totalReactionCount = reactions\n .map(({ count }) => count)\n .reduce((partialSum, count) => partialSum + count, 0);\n\n const renderReaction = (reaction: ReactionResponse) => {\n if (!reaction?.block?.unicode) return null;\n return (\n \n {reaction?.block?.type === BlockType.CustomEmoji ? (\n \n ) : (\n \n )}\n \n );\n };\n\n return (\n \n }\n >\n
\n {sortedReactions\n .slice(0, 3)\n .map((reaction) => renderReaction(reaction))}\n \n {totalReactionCount}\n \n
\n \n );\n};\n\nexport default ThreadReactions;\n","import { Flex } from \"@radix-ui/themes\";\nimport styles from \"./TypingAnimation.module.scss\";\nimport React from \"react\";\n\nexport const TypingAnimation = () => (\n \n \n \n \n \n);\n","import { Text } from \"@radix-ui/themes\";\nimport { CSSProperties } from \"react\";\n\ninterface TypingIndicatorProps {\n names: string[];\n style?: CSSProperties;\n}\n\nconst TypingIndicator = ({ names, style }: TypingIndicatorProps) => {\n switch (names.length) {\n case 0:\n return null;\n case 1:\n return (\n \n {names[0]} is typing...\n \n );\n case 2:\n return (\n \n {names[0]} and{\" \"}\n {names[1]} are typing...\n \n );\n default:\n const othersCount = names.length - 2;\n\n return (\n \n {names[0]},{\" \"}\n {names[1]} and{\" \"}\n {othersCount} other user\n {othersCount > 1 ? \"s\" : \"\"} are typing...\n \n );\n }\n};\n\nexport default TypingIndicator;\n","import { IconType } from \"@/app/components/icons/icon.type\";\n\nexport const ConnectIcon = ({ style, className }: IconType) => (\n \n \n \n \n);\n","import { IconType } from \"@/app/components/icons/icon.type\";\n\nexport const CustomCheckCircledIcon = ({ style, className }: IconType) => (\n \n \n \n \n);\n","/**\n * Fork of https://npm.io/slack-markdown\n */\nconst markdown = require(\"simple-markdown\");\nconst emoji = require(\"node-emoji\");\n\nfunction htmlTag(\n tagName: string,\n content: string,\n attributes: any,\n isClosed = true,\n state: stateType,\n) {\n if (typeof isClosed === \"object\") {\n state = isClosed;\n isClosed = true;\n }\n if (!attributes) {\n attributes = {};\n }\n if (attributes.class) {\n attributes.class = attributes.class\n .split(\" \")\n .map((cl: any) => state.cssModuleNames[cl] || cl)\n .join(\" \");\n }\n let attributeString = \"\";\n for (let attr in attributes) {\n if (\n Object.prototype.hasOwnProperty.call(attributes, attr) &&\n attributes[attr]\n ) {\n attributeString += ` ${markdown.sanitizeText(\n attr,\n )}=\"${markdown.sanitizeText(attributes[attr])}\"`;\n }\n }\n\n const unclosedTag = `<${tagName}${attributeString}>`;\n return isClosed ? unclosedTag + content + `` : unclosedTag;\n}\n\n(markdown.htmlTag as any) = htmlTag;\n\nfunction htmlSlackTag(content: string, attributes: any, state: stateType) {\n if (state.noExtraSpanTags) {\n return content;\n }\n return htmlTag(\"span\", content, attributes, true, state);\n}\n\nexport const rulesUniversal = {\n emoji: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) => /^:([a-zA-Z0-9_\\-+]+):/.exec(source),\n parse: (capture: any) => {\n const code = capture[1];\n\n // slack uses _face sometimes, so fallback to that\n const result = emoji.find(code) || emoji.find(code + \"_face\");\n\n return {\n content: result ? result.emoji : `:${code}:`,\n isEmoji: !!result,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const content = markdown.sanitizeText(node.content);\n if (!node.isEmoji || state.noExtraEmojiSpanTags) return content;\n return htmlTag(\"span\", content, { class: \"s-emoji\" }, true, state);\n },\n },\n text: Object.assign({}, markdown.defaultRules.text, {\n match: (source: string) =>\n /^[\\s\\S]+?(?=[^0-9A-Za-z\\s\\u00c0-\\uffff-]|\\n\\n|\\n|\\w+:\\S|$)/.exec(source),\n html: (node: any, output: any, state: stateType) => {\n const content = emoji.emojify(node.content);\n if (state.escapeHTML) {\n return markdown.sanitizeText(content);\n }\n\n return content;\n },\n }),\n};\n\nexport const rules = {\n blockQuote: Object.assign({}, markdown.defaultRules.blockQuote, {\n match: (source: string, state: stateType, prevSource: string) =>\n !/^$|\\n *$/.test(prevSource) || state.inQuote\n ? null\n : /^( *> [^\\n]*(\\n *> [^\\n]*)*\\n?)/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const all = capture[0];\n const removeSyntaxRegex = /^ *> ?/gm;\n const content = all.replace(removeSyntaxRegex, \"\");\n\n state.inQuote = true;\n state.inline = true;\n const parsed = parse(content, state);\n state.inQuote = state.inQuote || false;\n state.inline = state.inline || false;\n\n return {\n content: parsed,\n type: \"blockQuote\",\n };\n },\n }),\n codeBlock: Object.assign({}, markdown.defaultRules.codeBlock, {\n match: markdown.inlineRegex(/^```([^]+?`*)\\n*```/i),\n parse: (capture: any, parse: any, state: stateType) => {\n return {\n content: capture[1] || \"\",\n inQuote: state.inQuote || false,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const codeHtml = node.content.replace(\n /<(https?:\\/\\/[\\w]+(?:\\.[\\w]+)+(?:\\/[\\w?=%&@$#_.+]+)*\\/?)(?:\\|((?:[^>])+)>)?>/gm,\n (_: any, link: string) => link,\n );\n return htmlTag(\n \"pre\",\n htmlTag(\"code\", codeHtml, null, true, state),\n null,\n true,\n state,\n );\n },\n }),\n newline: markdown.defaultRules.newline,\n autolink: Object.assign({}, markdown.defaultRules.autolink, {\n order: markdown.defaultRules.strong.order + 1,\n match: markdown.inlineRegex(\n /^<((?:(?:(?:ht|f)tps?|ssh|irc):\\/\\/|mailto:|tel:)[^|>]+)(\\|([^>]*))?>/,\n ),\n parse: (capture: any, parse: any, state: stateType) => {\n const content = capture[3]\n ? parse(capture[3], state)\n : [\n {\n type: \"text\",\n content: capture[1],\n },\n ];\n return {\n content,\n target: capture[1],\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const attrs = {\n href: markdown.sanitizeUrl(node.target),\n target: \"\",\n rel: \"\",\n };\n if (state.hrefTarget) {\n attrs.target = state.hrefTarget;\n }\n\n if (\n state.hrefFollowURLsFromHosts &&\n state.hrefFollowURLsFromHosts?.length > 0 &&\n attrs.href\n ) {\n try {\n const url = new URL(attrs.href);\n // get the main domain and check if it matches the host, only follow if the domains are in the same domain\n const targetHost = url.host.split(\".\").slice(-2).join(\".\");\n // check if the host contains http or https, remove them and get only host\n const hrefFollowHosts = state.hrefFollowURLsFromHosts.map((host) =>\n new URL(host.startsWith(\"http\") ? host : `https://${host}`).host\n .split(\".\")\n .slice(-2)\n .join(\".\"),\n );\n const followHosts = [...hrefFollowHosts, \"struct.ai\", \"struct.co\"];\n if (!followHosts.find((host) => host === targetHost)) {\n attrs.rel = \"nofollow\";\n }\n } catch (error) {\n console.error(error);\n console.error({\n followHost: state.hrefFollowURLsFromHosts,\n href: attrs.href,\n });\n }\n }\n return htmlTag(\"a\", output(node.content, state), attrs, true, state);\n },\n }),\n url: Object.assign({}, markdown.defaultRules.url, {\n parse: (capture: any) => {\n return {\n content: [\n {\n type: \"text\",\n content: capture[1],\n },\n ],\n target: capture[1],\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const attrs = {\n href: markdown.sanitizeUrl(node.target),\n target: \"\",\n rel: \"\",\n };\n if (state.hrefTarget) {\n attrs.target = state.hrefTarget;\n }\n\n if (state.hrefFollowURLsFromHosts && attrs.href) {\n try {\n const url = new URL(attrs.href);\n // get the main domain and check if it matches the host, only follow if the domains are in the same domain\n const targetHost = url.host.split(\".\").slice(-2).join(\".\");\n // check if the host contains http or https, remove them and get only host\n const hrefFollowHosts = state.hrefFollowURLsFromHosts.map((host) =>\n new URL(host.startsWith(\"http\") ? host : `https://${host}`).host\n .split(\".\")\n .slice(-2)\n .join(\".\"),\n );\n const followHosts = [...hrefFollowHosts, \"struct.ai\", \"struct.co\"];\n if (!followHosts.find((host) => host === targetHost)) {\n attrs.rel = \"nofollow\";\n }\n } catch (error) {\n console.error(error);\n console.error({\n followHost: state.hrefFollowURLsFromHosts,\n href: attrs.href,\n });\n }\n }\n\n return htmlTag(\"a\", output(node.content, state), attrs, true, state);\n },\n }),\n noem: {\n order: markdown.defaultRules.text.order,\n match: (source: string) => /^\\\\_/.exec(source),\n parse: function () {\n return {\n type: \"text\",\n content: \"\\\\_\",\n };\n },\n html: function (node: any, output: any, state: stateType) {\n return output(node.content, state);\n },\n },\n em: Object.assign({}, markdown.defaultRules.em, {\n match: markdown.inlineRegex(/^\\b_(\\S(?:\\\\[\\s\\S]|[^\\\\])*?\\S|\\S)_(?!_)\\b/),\n parse: (capture: any, parse: any) => {\n return {\n content: parse(capture[1]),\n type: \"em\",\n };\n },\n }),\n strong: Object.assign({}, markdown.defaultRules.strong, {\n match: markdown.inlineRegex(/^\\*(\\S(?:\\\\[\\s\\S]|[^\\\\])*?\\S|\\S)\\*(?!\\*)/),\n }),\n strike: Object.assign({}, markdown.defaultRules.del, {\n match: markdown.inlineRegex(/^~(\\S(?:\\\\[\\s\\S]|[^\\\\])*?\\S|\\S)~(?!~)/),\n }),\n inlineCode: {\n order: markdown.defaultRules.strong.order,\n match: (source: any) => /^(`+)([\\s\\S]*?[^`])\\1(?!`)/.exec(source),\n parse: (capture: any) => ({\n content: capture[2].replace(/^ (?= *`)|(` *) $/g, \"$1\"),\n }),\n html: (node: any, output: any, state: stateType) =>\n state.noInlineCode\n ? node.content\n : htmlTag(\n \"code\",\n markdown.sanitizeText(node.content),\n null,\n true,\n state,\n ),\n },\n br: Object.assign({}, markdown.defaultRules.br, {\n match: markdown.anyScopeRegex(/^\\n/),\n }),\n};\n\nconst slackCallbackDefaults = {\n user: (node: any) => \"@\" + (node.name || node.id),\n channel: (node: any) => \"#\" + (node.name || node.id),\n usergroup: (node: any) => \"^\" + (node.name || node.id),\n atHere: (node: any) => \"@\" + (node.name || \"here\"),\n atChannel: (node: any) => \"@\" + (node.name || \"channel\"),\n atEveryone: (node: any) => \"@\" + (node.name || \"everyone\"),\n date: (node: any) => node.fallback,\n};\n\nexport const rulesSlack = {\n slackUser: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) => /^<@([^|>]+)(\\|([^>]*))?>/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const name = capture[3] ? parse(capture[3], state) : \"\";\n return {\n id: capture[1],\n content: name,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const newNode = {\n id: node.id,\n name: node.content ? output(node.content, state) : \"\",\n };\n return htmlSlackTag(\n state.slackCallbacks.user(newNode),\n { class: \"s-mention s-user\" },\n state,\n );\n },\n },\n slackChannel: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) => /^<#([^|>]+)(\\|([^>]*))?>/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const name = capture[3] ? parse(capture[3], state) : \"\";\n return {\n id: capture[1],\n content: name,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const newNode = {\n id: node.id,\n name: node.content ? output(node.content, state) : \"\",\n };\n return htmlSlackTag(\n state.slackCallbacks.channel(newNode),\n { class: \"s-mention s-channel\" },\n state,\n );\n },\n },\n slackUserGroup: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) => /^]+)(\\|([^>]+))?>/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const name = capture[3] ? parse(capture[3], state) : \"\";\n return {\n id: capture[1],\n content: name,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const newNode = {\n id: node.id,\n name: node.content ? output(node.content, state) : \"\",\n };\n return htmlSlackTag(\n state.slackCallbacks.usergroup(newNode),\n { class: \"s-mention s-usergroup\" },\n state,\n );\n },\n },\n slackAtHere: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) => /^]*))?>/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const name = capture[2] ? parse(capture[2], state) : \"\";\n return {\n content: name,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const newNode = {\n name: node.content ? output(node.content, state) : \"\",\n };\n return htmlSlackTag(\n state.slackCallbacks.atHere(newNode),\n { class: \"s-mention s-at-here\" },\n state,\n );\n },\n },\n slackAtChannel: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) => /^]*))?>/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const name = capture[2] ? parse(capture[2], state) : \"\";\n return {\n content: name,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const newNode = {\n name: node.content ? output(node.content, state) : \"\",\n };\n return htmlSlackTag(\n state.slackCallbacks.atChannel(newNode),\n { class: \"s-mention s-at-channel\" },\n state,\n );\n },\n },\n slackAtEveryone: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) => /^]*))?>/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const name = capture[2] ? parse(capture[2], state) : \"\";\n return {\n content: name,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const newNode = {\n name: node.content ? output(node.content, state) : \"\",\n };\n return htmlSlackTag(\n state.slackCallbacks.atEveryone(newNode),\n { class: \"s-mention s-at-everyone\" },\n state,\n );\n },\n },\n slackDate: {\n order: markdown.defaultRules.strong.order,\n match: (source: string) =>\n /^^]+)\\^([^|>^]+)(\\^([^|>^]+))?(\\|([^>]*))?>/.exec(source),\n parse: (capture: any, parse: any, state: stateType) => {\n const name = capture[6] ? parse(capture[6], state) : \"\";\n const timestamp = capture[1];\n const format = capture[2];\n const link = capture[4];\n return {\n timestamp,\n format,\n link,\n content: name,\n };\n },\n html: (node: any, output: any, state: stateType) => {\n const newNode = {\n timestamp: node.timestamp,\n format: node.format,\n link: node.link,\n fallback: node.content ? output(node.content, state) : \"\",\n };\n return htmlSlackTag(\n state.slackCallbacks.date(newNode),\n { class: \"s-mention s-date\" },\n state,\n );\n },\n },\n};\n\nconst slackOnlyRules = {\n ...rulesSlack,\n ...rulesUniversal,\n};\nconst allRules = { ...rules, ...rulesSlack, ...rulesUniversal };\n\nconst parser = markdown.parserFor(allRules);\nconst htmlOutput = markdown.htmlFor(markdown.ruleOutput(allRules, \"html\"));\nconst parserSlack = markdown.parserFor(slackOnlyRules);\nconst htmlOutputSlack = markdown.htmlFor(\n markdown.ruleOutput(slackOnlyRules, \"html\"),\n);\n\nexport type toHTMLOptions = {\n escapeHTML?: boolean;\n slackOnly?: boolean;\n slackCallbacks?: any;\n cssModuleNames?: any;\n noExtraSpanTags?: boolean;\n noExtraEmojiSpanTags?: boolean;\n hrefTarget?: string;\n hrefFollowURLsFromHosts?: string[];\n noInlineCode?: boolean;\n};\n\nexport type stateType = {\n inline: boolean;\n inQuote: boolean;\n escapeHTML: boolean;\n cssModuleNames: any;\n slackCallbacks: any;\n noExtraSpanTags: boolean;\n noExtraEmojiSpanTags: boolean;\n hrefTarget?: string;\n hrefFollowURLsFromHosts?: string[];\n noInlineCode?: boolean;\n};\n\nexport function toHTML(source: string, opts?: toHTMLOptions): string {\n const options: toHTMLOptions = {\n escapeHTML: false,\n slackOnly: false,\n slackCallbacks: {},\n cssModuleNames: {},\n noExtraSpanTags: false,\n noExtraEmojiSpanTags: false,\n hrefTarget: \"\",\n hrefFollowURLsFromHosts: [],\n noInlineCode: false,\n ...opts,\n };\n\n const _parser = options.slackOnly ? parserSlack : parser;\n const _htmlOutput = options.slackOnly ? htmlOutputSlack : htmlOutput;\n\n const state = {\n inline: true,\n inQuote: false,\n escapeHTML: options.escapeHTML,\n cssModuleNames: options.cssModuleNames,\n slackCallbacks: {\n ...slackCallbackDefaults,\n ...options.slackCallbacks,\n },\n noExtraSpanTags: options.noExtraSpanTags,\n noExtraEmojiSpanTags: options.noExtraEmojiSpanTags,\n hrefTarget: options.hrefTarget,\n hrefFollowURLsFromHosts: options.hrefFollowURLsFromHosts,\n noInlineCode: options.noInlineCode,\n };\n\n return _htmlOutput(_parser(source, state), state);\n}\n","import { STRUCT_API_VERSION } from \"@/app/constants\";\nimport { structAPIFetchClient } from \"@/app/services/client\";\nimport {\n StructChat,\n StructChatResponse,\n StructThread,\n} from \"@/app/types/Thread.type\";\n\nconst CHAT_ENDPOINT = `/${STRUCT_API_VERSION}/chats`;\n\ninterface createChatMessageArgs {\n threadId: StructThread[\"id\"];\n message: StructChat[\"text\"];\n attachments?: StructChat[\"attachments\"];\n reply_to?: StructChat[\"reply_to\"];\n}\n\nexport const createChatMessageAPI = ({\n threadId,\n message,\n attachments,\n reply_to,\n}: createChatMessageArgs) =>\n structAPIFetchClient(`${CHAT_ENDPOINT}`, {\n method: \"POST\",\n body: JSON.stringify({\n thread_id: threadId,\n text: message,\n attachments,\n reply_to,\n }),\n }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n });\n\ninterface updateChatMessageArgs {\n messageId: string;\n threadId: string;\n message: string;\n}\n\nexport const updateChatMessageAPI = async ({\n messageId,\n threadId,\n message,\n}: updateChatMessageArgs) =>\n await structAPIFetchClient(CHAT_ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({\n id: messageId,\n thread_id: threadId,\n text: message,\n }),\n });\n\ninterface deleteChatMessageArgs {\n messageId: string;\n threadId: string;\n}\n\nexport const deleteChatMessageAPI = async ({\n messageId,\n threadId,\n}: deleteChatMessageArgs) =>\n await structAPIFetchClient(CHAT_ENDPOINT, {\n method: \"PUT\",\n\n body: JSON.stringify({\n id: messageId,\n thread_id: threadId,\n bits: {\n deleted: true,\n },\n }),\n });\n\ninterface fetchChatsArgs {\n threadId: string;\n messageCount?: number;\n beforeChatId?: string;\n showError?: boolean;\n}\n\nexport const fetchChatsAPI = async ({\n threadId,\n messageCount: num,\n beforeChatId: before,\n showError = true,\n}: fetchChatsArgs) => {\n let url = `/${STRUCT_API_VERSION}/chats/${threadId}`;\n const params = new URLSearchParams();\n if (num) params.append(\"num\", num.toString());\n if (before) params.append(\"before\", before);\n if (params.toString()) url += `?${params.toString()}`;\n\n return await structAPIFetchClient(\n url,\n {\n method: \"GET\",\n },\n showError,\n )\n .then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n })\n .then(({ data }) => data as StructChatResponse[]);\n};\n\ninterface PostReactionsAPIArgs {\n messageId: string;\n name: string;\n action: \"set\" | \"delete\";\n}\n\nexport const postReactionsAPI = async ({\n messageId,\n name,\n action,\n}: PostReactionsAPIArgs) =>\n await structAPIFetchClient(`/${STRUCT_API_VERSION}/reactions`, {\n method: \"POST\",\n\n body: JSON.stringify({\n chat_id: messageId,\n name,\n [action]: true,\n }),\n });\n\nconst READ_ENDPOINT = `/${STRUCT_API_VERSION}/read`;\n\ninterface MarkAsReadArgs {\n threadId: string;\n}\ninterface BookmarkArgs {\n threadId: string;\n isBookmarked: boolean;\n}\n\nexport const postChatReadAPI = async ({ threadId }: MarkAsReadArgs) =>\n await structAPIFetchClient(READ_ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({\n thread_id: threadId,\n }),\n }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n });\n\nexport const toggleBookmarkAPI = async ({\n threadId,\n isBookmarked,\n}: BookmarkArgs) =>\n await structAPIFetchClient(READ_ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({\n thread_id: threadId,\n bits: {\n thread_bookmarked: true,\n flip: !isBookmarked,\n },\n }),\n }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n });\n\nexport const putFeedReadAPI = async ({\n feedId,\n threadId,\n threadIds,\n flip = false,\n isUnread = true,\n isHidden = false,\n}: {\n feedId?: string;\n threadId?: string;\n threadIds?: string[];\n flip?: boolean;\n isUnread?: boolean;\n isHidden?: boolean;\n}) =>\n await structAPIFetchClient(READ_ENDPOINT, {\n method: \"PUT\",\n body: JSON.stringify({\n feed_id: feedId,\n thread_id: threadId,\n thread_ids: threadIds,\n bits: {\n ...(isUnread && { feed_unread: true }),\n ...(isHidden && !isUnread && { feed_hidden: true }),\n flip,\n },\n }),\n }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n });\n\nexport const forkChatsAPI = async ({\n chatIds,\n}: {\n chatIds: StructChatResponse[\"id\"][];\n}) =>\n await structAPIFetchClient(`/${STRUCT_API_VERSION}/fork`, {\n method: \"POST\",\n body: JSON.stringify({\n chat_ids: chatIds,\n }),\n }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n return response.json();\n });\n","// Struct Server Endpoint\nexport const STRUCT_API_URL = process.env.NEXT_PUBLIC_STRUCT_SERVER_URL || \"\";\nexport const STRUCT_API_VERSION = process.env.NEXT_PUBLIC_STRUCT_API_VERSION;\nexport const STRUCT_ACTIVE_THEME = \"STRUCT_ACTIVE_THEME\";\nexport const APP_ENV = process.env.NEXT_PUBLIC_APP_ENV;\n\n// posthog\nexport const POST_HOG_API_KEY = process.env.NEXT_PUBLIC_POSTHOG_KEY;\nexport const POST_HOG_HOST = process.env.NEXT_PUBLIC_POSTHOG_HOST;\n\n// Struct app endpoint\nexport const STRUCT_APP_URL = process.env.NEXT_PUBLIC_STRUCT_APP_URL;\n\n// auth\nexport const ID_SERVER_URL = process.env.NEXT_PUBLIC_ID_SERVER_URL;\n","import { structAPIFetchClient } from \"./client\";\nimport { STRUCT_API_VERSION } from \"@/app/utils/constants\";\nimport SearchResult from \"@/app/types/Search.type\";\nimport { SortingOption } from \"@/app/types/Sorting.type\";\n\nconst SEARCH_ENDPOINT = `/${STRUCT_API_VERSION}/search`;\n\nexport interface SearchResponse {\n facet_counts: [string];\n found: number;\n hits: [SearchResult];\n out_of: number;\n page: number;\n request_params: {\n collection_name: string;\n per_page: number;\n q: string;\n };\n search_cutoff: boolean;\n search_time_ms: number;\n}\n\nexport type FilterOptions = {\n users: string[];\n channels: string[];\n tags: string[];\n};\n\nconst getFormattedFilterOptions = (\n filterOptions?: FilterOptions,\n): string | undefined => {\n if (\n !filterOptions ||\n (filterOptions.channels?.length === 0 &&\n filterOptions.users?.length === 0 &&\n filterOptions.tags?.length === 0)\n ) {\n return;\n }\n const arrayOfOptions = Object.entries(filterOptions).reduce(\n (result, [key, value]) => {\n if (key === \"users\" && value.length > 0) {\n return [...result, `user_ids := [${value.join(\",\")}]`];\n }\n if (key === \"channels\" && value.length > 0) {\n return [...result, `xsr_ids := [${value.join(\",\")}]`];\n }\n if (key === \"tags\" && value.length > 0) {\n return [...result, `tags := [${value.join(\",\")}]`];\n }\n\n return result;\n },\n [] as string[],\n );\n\n return arrayOfOptions.join(\" && \");\n};\n\nexport const getSearchResultsAPI = async ({\n q,\n page,\n sortBy,\n filterBy,\n from,\n to,\n}: {\n q?: string;\n page?: number;\n sortBy?: SortingOption;\n filterBy?: FilterOptions;\n from?: number;\n to?: number;\n}) => {\n const queryParams = new URLSearchParams();\n if (from !== undefined)\n queryParams.set(\"from\", Math.round(from / 1000).toString());\n if (to !== undefined) queryParams.set(\"to\", Math.round(to / 1000).toString());\n const response = await structAPIFetchClient(\n `${SEARCH_ENDPOINT}?${queryParams.toString()}`,\n {\n method: \"POST\",\n body: JSON.stringify({\n q,\n page,\n ...(sortBy ? { sort_by: sortBy } : {}),\n filter_by: getFormattedFilterOptions(filterBy),\n }),\n },\n );\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n const data = await response.json();\n return {\n formattedText: data.q_plain,\n hits: data.data,\n };\n};\n","import {\n FeedThreadResponse,\n Read,\n StructChatResponse,\n StructFeedThreadResponse,\n StructThread,\n StructThreadResponse,\n} from \"@/app/types/Thread.type\";\nimport { structAPIFetchClient } from \"./client\";\nimport { STRUCT_API_VERSION } from \"@/app/constants\";\nimport { SortingOption } from \"@/app/types/Sorting.type\";\n\nconst THREADS_ENDPOINT = `/${STRUCT_API_VERSION}/threads`;\n\nexport interface StructAPIThreadsResponse {\n threads: StructThreadResponse[];\n next_cursor: string;\n}\n\nexport const getAllThreadsAPI = async ({ cursor }: { cursor?: string }) => {\n const response = await structAPIFetchClient(THREADS_ENDPOINT, {\n method: \"GET\",\n body: JSON.stringify({\n ...(cursor ? { cursor } : {}),\n limit: 30,\n asc: false,\n }),\n });\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n const data = await response.json();\n return data as StructThreadResponse[];\n};\n\nexport interface StructThreadAPIResponse {\n read: Read;\n chats: StructChatResponse[];\n thread: StructThreadResponse;\n similar_threads: StructThreadResponse[];\n join_chat: String;\n read_until: StructChatResponse[\"id\"];\n}\n\nexport const getThreadByIdAPI = async (threadId: string) => {\n const response = await structAPIFetchClient(\n `${THREADS_ENDPOINT}/${threadId}`,\n {\n method: \"GET\",\n },\n );\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n const data = await response.json();\n if (data.thread && data.read && !data.thread.read) {\n data.thread.read = data.read;\n }\n return data as StructThreadAPIResponse;\n};\n\nexport const putHideThreadsAPI = (threadIds: string[]) => {\n return structAPIFetchClient(`${THREADS_ENDPOINT}`, {\n method: \"PUT\",\n body: JSON.stringify({\n bits: { hidden: true },\n thread_ids: threadIds,\n }),\n });\n};\n\nexport const putUnhideThreadsAPI = (threadIds: string[]) => {\n return structAPIFetchClient(`${THREADS_ENDPOINT}`, {\n method: \"PUT\",\n body: JSON.stringify({\n bits: { hidden: true, flip: true },\n thread_ids: threadIds,\n }),\n });\n};\n\nexport const putDeleteThreadsAPI = (threadIds: string[]) => {\n return structAPIFetchClient(`${THREADS_ENDPOINT}`, {\n method: \"PUT\",\n body: JSON.stringify({\n // always send true even if we want to delete/undelete\n bits: { deleted: true },\n thread_ids: threadIds,\n op: \"set\",\n }),\n });\n};\n\nexport interface StructFeedResponse {\n id: string;\n user_id: string;\n org_id: string;\n name: string;\n channel_ids: null | string[];\n user_ids: null | string[];\n bits: {};\n}\n\nexport interface SearchFeedParams {\n q?: string;\n page?: number;\n filterBy?: FilterOptions;\n sortBy?: SortingOption;\n from?: number;\n to?: number;\n}\n\nexport type FilterOptions = {\n users: string[];\n channels: string[];\n tags: string[];\n};\n\nconst getFormattedFilterOptions = (\n filterOptions?: FilterOptions,\n): string | undefined => {\n if (\n !filterOptions ||\n (filterOptions.channels?.length === 0 &&\n filterOptions.users?.length === 0 &&\n filterOptions.tags?.length === 0)\n ) {\n return;\n }\n const arrayOfOptions = Object.entries(filterOptions).reduce(\n (result, [key, value]) => {\n if (key === \"users\" && value.length > 0) {\n return [...result, `user_ids := [${value.join(\",\")}]`];\n }\n if (key === \"channels\" && value.length > 0) {\n return [...result, `xsr_ids := [${value.join(\",\")}]`];\n }\n if (key === \"tags\" && value.length > 0) {\n return [...result, `tags := [${value.join(\",\")}]`];\n }\n return result;\n },\n [] as string[],\n );\n\n return arrayOfOptions.join(\" && \");\n};\n\nexport const searchFeedAPI = async ({\n q,\n page,\n filterBy,\n sortBy,\n from,\n to,\n}: SearchFeedParams): Promise => {\n const queryParams = new URLSearchParams();\n if (page !== undefined) queryParams.set(\"page\", page.toString());\n const body = {\n q,\n ...(sortBy ? { sort_by: sortBy } : {}),\n filter_by: getFormattedFilterOptions(filterBy),\n };\n\n // @ts-expect-error\n if (from !== undefined) body[\"from\"] = Math.round(from / 1000).toString();\n // @ts-expect-error\n if (to !== undefined) body[\"to\"] = Math.round(to / 1000).toString();\n\n const endpoint = `/v1/feed/search`;\n\n const response = await structAPIFetchClient(\n `${endpoint}?${queryParams.toString()}`,\n {\n method: \"POST\",\n // @ts-ignore\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(body),\n },\n );\n\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n const data = await response.json();\n return data as StructFeedThreadResponse;\n};\n\nexport interface CreateThreadParams {\n message: string;\n channelIds: StructThread[\"xsr_ids\"];\n attachments?: Array;\n}\n\ntype CreateThreadResponse = {\n thread_id: StructThreadResponse[\"id\"];\n chat_id: StructChatResponse[\"id\"];\n};\n\nexport const createThreadAPI = async ({\n message,\n channelIds,\n attachments,\n}: CreateThreadParams): Promise => {\n const response = await structAPIFetchClient(THREADS_ENDPOINT, {\n method: \"POST\",\n\n body: JSON.stringify({\n text: message,\n xsr_ids: channelIds,\n attachments,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\"Network response was not ok\");\n }\n\n const data = await response.json();\n return data as CreateThreadResponse;\n};\n","import { UserEntity, ChannelEntity } from \"./../types/Thread.type\";\nimport { DateTime } from \"luxon\";\nimport { StructChannel } from \"@/app/types/Channel.type\";\nimport {\n FeedThreadResponse,\n ReactionResponse,\n StructChat,\n StructChatGroupedByDate,\n StructChatResponse,\n StructThread,\n StructThreadResponse,\n StructUser,\n} from \"@/app/types/Thread.type\";\nimport { replaceMentionedUserAndChannelIdsWithNames } from \"./stringUtils\";\nimport { toHTML } from \"@/app/modules/slack-markdown\";\nimport { formatTimeAgoForDateGroup } from \"./timeUtils\";\nimport { StructOrganisation } from \"@/app/types/Organisation.type\";\nimport { getAnonymousUser } from \"@/app/utils/users\";\nimport { EntityIDMap } from \"../constants\";\n\n/** Get the user from the indexed users */\nconst getUser = (\n user_id: string,\n usersById: Record,\n organisation?: StructOrganisation,\n): StructUser => {\n const user = usersById?.[user_id];\n\n if (user) {\n return user;\n }\n\n return getAnonymousUser(organisation);\n};\n\n/** Joins indexed users and channels into a thread */\nexport const mergeThreadData = (\n thread: StructThreadResponse | FeedThreadResponse,\n organisation: StructOrganisation,\n): StructThread => {\n const reactions: ReactionResponse[] =\n thread.reactions?.map(\n ({ count, name, user_ids, block }: ReactionResponse) => {\n const reaction: ReactionResponse = {\n name: name,\n count: count,\n user_ids: user_ids || [],\n block,\n };\n return reaction;\n },\n ) || [];\n\n let chatLink = `https://${organisation?.xid}.slack.com`;\n try {\n const [_, channelid, messageId] = thread.xid.split(\"-\");\n if (messageId) {\n chatLink += `/archives/${channelid}/p${messageId.split(\".\").join(\"\")}`;\n }\n } catch (error) {\n console.error(error);\n }\n\n const entityMap = thread.entity_map ?? {};\n\n return {\n ...thread,\n subject: replaceMentionedUserAndChannelIdsWithNames(\n thread.subject,\n entityMap as UserEntity,\n entityMap as ChannelEntity,\n ).replace(/<[^>]+>/g, \"\"),\n summaryHTML: replaceMentionedUserAndChannelIdsWithNames(\n toHTML(thread.summary),\n entityMap as UserEntity,\n entityMap as ChannelEntity,\n ),\n summaryText: replaceMentionedUserAndChannelIdsWithNames(\n thread.summary,\n entityMap as UserEntity,\n entityMap as ChannelEntity,\n ).replace(/<[^>]+>/g, \"\"),\n chatLink,\n reactions,\n sortedReactions: reactions.sort((a, b) => b.count - a.count).slice(0, 3),\n totalReactions: reactions\n .map((reaction) => reaction.count)\n .reduce((partialSum, count) => partialSum + count, 0),\n participants: thread.user_ids\n ?.filter((user_id) => user_id !== thread.author_id)\n .map((userId) => getUser(userId, entityMap as UserEntity, organisation)),\n user: getUser(thread.author_id, entityMap as UserEntity, organisation),\n lastUpdated: thread.updated_at || thread.created_at,\n createdDate: DateTime.fromSeconds(thread.created_at).toFormat(\n \"LLL dd, yyyy\",\n ),\n formattedDate: DateTime.fromSeconds(\n thread.updated_at || thread.created_at,\n ).toFormat(\"LLL dd, yyyy\"),\n channels:\n thread.xsr_ids\n ?.filter((id) => id.startsWith(EntityIDMap.Channel))\n ?.reduce(\n (result, id) =>\n (entityMap as ChannelEntity)[id]?.name\n ? [...result, (entityMap as ChannelEntity)[id]]\n : result,\n [],\n ) || [],\n DMs: (\n thread.xsr_ids\n ?.filter((id) => id.startsWith(EntityIDMap.User))\n ?.filter((id) => thread.author_id !== id) || []\n )\n .map((id) => (entityMap as UserEntity)[id])\n .filter(Boolean),\n };\n};\n\n/** Converts a given time to be used to group dates within a day\n * returns in the format of \"Apr 12, 2023 (12 days ago)\"\n */\nexport const convertDateToGroupHeader = (chatDate: DateTime): string =>\n `${chatDate.toFormat(\"LLL dd, yyyy\")} (${formatTimeAgoForDateGroup(\n chatDate,\n )})`;\n\n/**\n * Function to join all the different data points into thread Data\n * @param thread API response Data for the thread\n * @returns\n */\nexport const joinThreadData = ({\n thread,\n organisation,\n}: {\n thread: StructThreadResponse;\n organisation: StructOrganisation;\n}): StructThread => {\n return mergeThreadData(thread, organisation);\n};\n\n/**\n * Function to join all the different data points into a list of thread Data\n * @param threads API response Data for the threads list\n * @param users API response Data for the users\n * @param channels API response Data for the channels\n * @returns\n */\nexport const joinManyThreadsData = ({\n threads,\n organisation,\n}: {\n threads: StructThreadResponse[] | FeedThreadResponse[];\n organisation: StructOrganisation;\n}): StructThread[] => {\n try {\n return (\n threads?.map((thread) => mergeThreadData(thread, organisation)) || []\n );\n } catch (error) {\n console.error(error);\n return [];\n }\n};\n\n/**\n * returns true if the channel list has channels accessible for the public\n * @param channels\n * @returns\n */\nexport const orgHasPublicChannels = (channels: StructChannel[]): boolean =>\n channels?.some((channel) => channel.bits?.chan_anyone) || false;\n\n/**\n * returns true if the channel list has channels only accessible for the team\n * @param channels\n * @returns\n */\nexport const orgHasPrivateChannels = (channels: StructChannel[]): boolean =>\n channels?.some((channel) => channel.bits?.chan_member) || false;\n\n// TODO: Change this to use functional programming\nexport const getGroupedChatByDate = (\n chats: StructChat[],\n): StructChatGroupedByDate => {\n return chats\n .sort((a, b) => a.created_at - b.created_at)\n .reduce((result, chatData) => {\n const dateGroup = convertDateToGroupHeader(\n DateTime.fromSeconds(chatData.created_at),\n );\n\n result[dateGroup] = result[dateGroup]\n ? [...result[dateGroup], chatData]\n : [chatData];\n\n return result;\n }, {});\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fileUploadAnimation\":\"FileUploadAnimation_fileUploadAnimation__65VF1\",\"blink\":\"FileUploadAnimation_blink__otPUx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"threadFooter\":\"FeedItemFooter_threadFooter__uL4Kb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reactionTooltip\":\"ReactionsTooltip_reactionTooltip__YTDuy\",\"arrow\":\"ReactionsTooltip_arrow__XtF2I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reactions\":\"ThreadReactions_reactions__J5bor\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"typingAnimation\":\"TypingAnimation_typingAnimation__1cL8M\",\"blink\":\"TypingAnimation_blink__GAK49\"};"],"names":["FileUploadAnimation","style","param","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","Flex","className","styles","jsx","span","__webpack_exports__","Z","reactions","messageCount","num_unread","createdDate","lastUpdated","isResolved","typingUsers","align","wrap","length","Fragment","ThreadReactions","Separator","size","orientation","mx","ChatBubbleIcon","marginRight","Text","Badge","ml","shouldShowSeparator","mr","ConnectIcon","CustomCheckCircledIcon","color","motion","div","layout","display","alignItems","initial","opacity","animate","exit","TypingAnimation","TypingIndicator","names","content","children","Tooltip","delayDuration","asChild","Theme","accentColor","grayColor","radius","sideOffset","Emoji","dynamic","__webpack_require__","e","then","bind","mod","CustomEmoji","currentUserID","showPeople","reactionCount","displayedReactions","slice","direction","maxWidth","position","map","reaction","block","type","BlockType","unicode","name","concat","justify","bottom","right","width","height","background","justifyContent","verticalAlign","DotsHorizontalIcon","weight","getPeopleText","nameList","flatMap","user_ids","id","entity_map","uniqueNames","Set","sortedNames","includes","filter","join","sortedReactions","sort","a","b","count","totalReactionCount","reduce","partialSum","renderReaction","ReactionsTooltip","ReactionsTooltipContent","othersCount","svg","xmlns","viewBox","fill","rect","fillOpacity","path","fillRule","clipRule","d","markdown","require","emoji","htmlTag","tagName","attributes","isClosed","state","class","split","cssModuleNames","cl","attributeString","attr","Object","prototype","hasOwnProperty","call","sanitizeText","unclosedTag","htmlSlackTag","noExtraSpanTags","rulesUniversal","order","defaultRules","strong","match","exec","source","parse","code","capture","result","find","isEmoji","html","node","output","noExtraEmojiSpanTags","text","assign","emojify","escapeHTML","rules","blockQuote","prevSource","test","inQuote","all","replace","inline","parsed","codeBlock","inlineRegex","codeHtml","_","link","newline","autolink","target","attrs","href","sanitizeUrl","rel","hrefTarget","hrefFollowURLsFromHosts","url","URL","targetHost","host","hrefFollowHosts","startsWith","followHosts","error","console","followHost","noem","em","strike","del","inlineCode","noInlineCode","br","anyScopeRegex","slackCallbackDefaults","user","channel","usergroup","atHere","atChannel","atEveryone","date","fallback","rulesSlack","slackUser","newNode","slackCallbacks","slackChannel","slackUserGroup","slackAtHere","slackAtChannel","slackAtEveryone","slackDate","timestamp","format","slackOnlyRules","allRules","parser","parserFor","htmlOutput","htmlFor","ruleOutput","parserSlack","htmlOutputSlack","toHTML","opts","options","slackOnly","_parser","_htmlOutput","CHAT_ENDPOINT","STRUCT_API_VERSION","createChatMessageAPI","threadId","message","attachments","reply_to","structAPIFetchClient","method","body","JSON","stringify","thread_id","response","ok","json","updateChatMessageAPI","messageId","deleteChatMessageAPI","bits","deleted","fetchChatsAPI","num","beforeChatId","before","showError","params","URLSearchParams","append","toString","data","postReactionsAPI","action","chat_id","READ_ENDPOINT","postChatReadAPI","toggleBookmarkAPI","isBookmarked","thread_bookmarked","flip","putFeedReadAPI","feedId","threadIds","isUnread","isHidden","feed_id","thread_ids","feed_unread","feed_hidden","forkChatsAPI","chatIds","chat_ids","process","env","NEXT_PUBLIC_STRUCT_SERVER_URL","NEXT_PUBLIC_POSTHOG_KEY","NEXT_PUBLIC_POSTHOG_HOST","NEXT_PUBLIC_STRUCT_APP_URL","SEARCH_ENDPOINT","getFormattedFilterOptions","filterOptions","channels","users","tags","arrayOfOptions","entries","key","value","getSearchResultsAPI","q","page","sortBy","filterBy","from","to","queryParams","undefined","set","Math","round","sort_by","filter_by","formattedText","q_plain","hits","THREADS_ENDPOINT","getAllThreadsAPI","cursor","limit","asc","getThreadByIdAPI","thread","read","putHideThreadsAPI","hidden","putUnhideThreadsAPI","putDeleteThreadsAPI","op","searchFeedAPI","headers","createThreadAPI","channelIds","xsr_ids","getUser","user_id","usersById","organisation","getAnonymousUser","mergeThreadData","chatLink","xid","channelid","entityMap","subject","replaceMentionedUserAndChannelIdsWithNames","summaryHTML","summary","summaryText","totalReactions","participants","author_id","userId","updated_at","created_at","DateTime","fromSeconds","toFormat","formattedDate","EntityIDMap","Channel","_entityMap_id","DMs","User","Boolean","convertDateToGroupHeader","formatTimeAgoForDateGroup","chatDate","joinThreadData","joinManyThreadsData","threads","getGroupedChatByDate","chats","chatData","dateGroup","module","exports"],"sourceRoot":""}