{"version":3,"file":"static/chunks/pages/editor-3ce839a7c374e5a5.js","mappings":"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","sources":["webpack://_N_E/?fb4d","webpack://_N_E/./src/components/Loading/index.tsx","webpack://_N_E/./src/components/AdTest/index.tsx","webpack://_N_E/./src/components/Tooltip/index.tsx","webpack://_N_E/./src/utils/getNextDirection.ts","webpack://_N_E/./src/components/Sidebar/index.tsx","webpack://_N_E/./src/containers/Editor/BottomBar.tsx","webpack://_N_E/./src/components/ErrorContainer/index.tsx","webpack://_N_E/./src/components/MonacoEditor/index.tsx","webpack://_N_E/./src/containers/Editor/JsonEditor/index.tsx","webpack://_N_E/./src/containers/Editor/Panes.tsx","webpack://_N_E/./src/pages/editor.tsx","webpack://_N_E/"],"sourcesContent":["\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/editor\",\n function () {\n return require(\"private-next-pages/editor.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/editor\"])\n });\n }\n ","import React from \"react\";\r\nimport styled, { keyframes } from \"styled-components\";\r\n\r\ninterface LoadingProps {\r\n loading?: boolean;\r\n message?: string;\r\n}\r\n\r\nconst fadeIn = keyframes`\r\n 99% {\r\n visibility: hidden;\r\n }\r\n 100% {\r\n visibility: visible;\r\n }\r\n`;\r\n\r\nconst StyledLoading = styled.div`\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n display: grid;\r\n place-content: center;\r\n width: 100%;\r\n height: 100vh;\r\n text-align: center;\r\n background: ${({ theme }) => theme.BLACK_DARK};\r\n z-index: 36;\r\n pointer-events: none;\r\n animation: 0.2s ${fadeIn};\r\n animation-fill-mode: forwards;\r\n visibility: hidden;\r\n`;\r\n\r\nconst StyledLogo = styled.h2`\r\n font-weight: 800;\r\n font-size: 56px;\r\n pointer-events: none;\r\n margin-bottom: 10px;\r\n`;\r\n\r\nconst StyledText = styled.span`\r\n color: #faa81a;\r\n`;\r\n\r\nconst StyledMessage = styled.div`\r\n color: #b9bbbe;\r\n font-size: 24px;\r\n font-weight: 500;\r\n`;\r\n\r\nexport const Loading: React.FC = ({ loading = true, message }) => {\r\n if (!loading) return null;\r\n\r\n return (\r\n \r\n \r\n JSON Crack\r\n \r\n {message ?? \"Preparing the environment for you...\"}\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst AdWrapper = styled.div`\r\n & {\r\n position: fixed;\r\n z-index: 1000;\r\n bottom: 40px;\r\n right: 10px;\r\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu,\r\n Cantarell, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n }\r\n\r\n & .native-button {\r\n z-index: 100;\r\n display: flex;\r\n padding: 8px 20px;\r\n border-radius: 4px;\r\n box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.15);\r\n color: #fff;\r\n text-transform: uppercase;\r\n letter-spacing: 1px;\r\n font-weight: 600;\r\n font-size: 12px;\r\n cursor: pointer;\r\n\r\n user-select: none;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n & .native-img {\r\n margin-right: 10px;\r\n width: 20px;\r\n height: 20px;\r\n }\r\n\r\n & .native-overlay {\r\n position: fixed;\r\n bottom: 80px;\r\n display: none;\r\n padding: 20px;\r\n max-width: 330px;\r\n border-radius: 4px;\r\n background: #fff;\r\n box-shadow: 0 1px 4px 1px hsla(0, 0%, 0%, 0.15);\r\n opacity: 0;\r\n transition: transform 0.2s ease-in-out, opacity 0.1s ease-in-out;\r\n transform: scale(1) translateY(-50px);\r\n }\r\n\r\n & #native-button:checked + .native-overlay {\r\n opacity: 1;\r\n transition: transform 0.2s ease-in-out, opacity 0.4s ease-in-out;\r\n transform: scale(1) translateY(0);\r\n }\r\n\r\n #native-button {\r\n display: none;\r\n }\r\n\r\n & .native-banner {\r\n line-height: 1.35;\r\n }\r\n\r\n & .native-tagline {\r\n letter-spacing: 0.5px;\r\n font-weight: 600;\r\n font-size: 16px;\r\n }\r\n\r\n & .native-description {\r\n margin-bottom: 10px;\r\n font-size: 16px;\r\n }\r\n\r\n & .native-footer {\r\n display: flex;\r\n\r\n justify-content: space-between;\r\n align-items: center;\r\n }\r\n\r\n & .native-logo {\r\n width: 120px;\r\n height: auto;\r\n }\r\n\r\n & .native-cta {\r\n padding: 6px 8px;\r\n border-radius: 3px;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n font-weight: 600;\r\n font-size: 12px;\r\n }\r\n`;\r\n\r\nconst template = `${\"`\"}\r\n\r\n\r\n
\r\n
\r\n
##tagline##
\r\n
##description##
\r\n
\r\n ##callToAction##\r\n \r\n
\r\n
\r\n
\r\n${\"`\"}`;\r\n\r\nexport const AdTest = () => {\r\n const ref = React.useRef(null!);\r\n\r\n React.useEffect(() => {\r\n if (window.innerWidth < 660) return;\r\n ref.current.innerHTML = \"\";\r\n const s = document.createElement(\"script\");\r\n s.id = \"_carbonads_js\";\r\n s.innerHTML = `(function() {\r\n if (typeof _bsa !== 'undefined' && _bsa) {\r\n _bsa.init('custom', 'CWYD42JI', 'placement:jsoncrackcom', {\r\n target: '#cutton-js',\r\n template: ${template}\r\n });\r\n }\r\n })();`;\r\n ref.current.appendChild(s);\r\n }, []);\r\n\r\n return ;\r\n};\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\ninterface TooltipProps extends React.ComponentPropsWithoutRef<\"div\"> {\r\n title?: string;\r\n}\r\n\r\nconst StyledTooltip = styled.div`\r\n position: absolute;\r\n display: none;\r\n top: 0;\r\n right: 0;\r\n transform: translate(calc(100% + 15px), 25%);\r\n z-index: 2;\r\n background: ${({ theme }) => theme.BACKGROUND_PRIMARY};\r\n color: ${({ theme }) => theme.TEXT_NORMAL};\r\n border-radius: 5px;\r\n padding: 6px 8px;\r\n white-space: nowrap;\r\n font-size: 16px;\r\n user-select: none;\r\n font-weight: 500;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07), 0 2px 4px rgba(0, 0, 0, 0.07),\r\n 0 4px 8px rgba(0, 0, 0, 0.07), 0 8px 16px rgba(0, 0, 0, 0.07), 0 16px 32px rgba(0, 0, 0, 0.07),\r\n 0 32px 64px rgba(0, 0, 0, 0.07);\r\n\r\n &::after {\r\n content: \"\";\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n transform: translate(-90%, 50%);\r\n border-width: 8px;\r\n border-style: solid;\r\n border-color: transparent ${({ theme }) => theme.BACKGROUND_PRIMARY} transparent transparent;\r\n }\r\n\r\n @media only screen and (max-width: 768px) {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst StyledTooltipWrapper = styled.div`\r\n position: relative;\r\n width: fit-content;\r\n height: 100%;\r\n\r\n &:hover ${StyledTooltip} {\r\n display: initial;\r\n }\r\n`;\r\n\r\nexport const Tooltip: React.FC> = ({\r\n children,\r\n title,\r\n ...props\r\n}) => (\r\n \r\n {title && {title}}\r\n
{children}
\r\n
\r\n);\r\n","export function getNextDirection(direction: \"LEFT\" | \"RIGHT\" | \"DOWN\" | \"UP\") {\r\n switch (direction) {\r\n case \"RIGHT\":\r\n return \"DOWN\";\r\n\r\n case \"DOWN\":\r\n return \"LEFT\";\r\n\r\n case \"LEFT\":\r\n return \"UP\";\r\n\r\n default:\r\n return \"RIGHT\";\r\n }\r\n}\r\n","import React from \"react\";\r\nimport toast from \"react-hot-toast\";\r\nimport { AiOutlineDelete, AiOutlineSave, AiOutlineFileAdd, AiOutlineEdit } from \"react-icons/ai\";\r\nimport { CgArrowsMergeAltH, CgArrowsShrinkH } from \"react-icons/cg\";\r\nimport { TiFlowMerge } from \"react-icons/ti\";\r\nimport {\r\n VscAccount,\r\n VscCloud,\r\n VscCollapseAll,\r\n VscExpandAll,\r\n VscSettingsGear,\r\n} from \"react-icons/vsc\";\r\nimport { Tooltip } from \"src/components/Tooltip\";\r\nimport useGraph from \"src/store/useGraph\";\r\nimport useJson from \"src/store/useJson\";\r\nimport useModal from \"src/store/useModal\";\r\nimport { getNextDirection } from \"src/utils/getNextDirection\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledSidebar = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n flex-direction: column;\r\n align-items: center;\r\n width: fit-content;\r\n background: ${({ theme }) => theme.BACKGROUND_TERTIARY};\r\n padding: 4px;\r\n border-right: 1px solid ${({ theme }) => theme.BACKGROUND_MODIFIER_ACCENT};\r\n\r\n @media only screen and (max-width: 768px) {\r\n flex-direction: row;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nconst StyledElement = styled.button`\r\n position: relative;\r\n display: flex;\r\n justify-content: center;\r\n text-align: center;\r\n font-size: 24px;\r\n font-weight: 600;\r\n width: fit-content;\r\n color: ${({ theme }) => theme.SIDEBAR_ICONS};\r\n cursor: pointer;\r\n\r\n svg {\r\n padding: 12px 8px;\r\n vertical-align: middle;\r\n }\r\n\r\n a {\r\n display: flex;\r\n }\r\n\r\n &:hover :is(a, svg) {\r\n color: ${({ theme }) => theme.INTERACTIVE_HOVER};\r\n }\r\n\r\n @media only screen and (max-width: 768px) {\r\n font-size: 22px;\r\n\r\n svg {\r\n padding: 8px 4px;\r\n vertical-align: middle;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledText = styled.span<{ secondary?: boolean }>`\r\n color: ${({ theme, secondary }) => (secondary ? theme.INTERACTIVE_HOVER : theme.ORANGE)};\r\n`;\r\n\r\nconst StyledFlowIcon = styled(TiFlowMerge)<{ rotate: number }>`\r\n transform: rotate(${({ rotate }) => `${rotate}deg`});\r\n`;\r\n\r\nconst StyledTopWrapper = styled.nav`\r\n display: flex;\r\n justify-content: space-between;\r\n flex-direction: column;\r\n align-items: center;\r\n width: 100%;\r\n\r\n .mobile {\r\n display: none;\r\n }\r\n\r\n @media only screen and (max-width: 768px) {\r\n justify-content: space-evenly;\r\n flex-direction: row;\r\n\r\n .mobile {\r\n display: initial;\r\n }\r\n\r\n .desktop {\r\n display: none;\r\n }\r\n }\r\n`;\r\n\r\nconst StyledBottomWrapper = styled.nav`\r\n display: flex;\r\n justify-content: space-between;\r\n flex-direction: column;\r\n align-items: center;\r\n width: 100%;\r\n\r\n @media only screen and (max-width: 768px) {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst StyledLogo = styled.a`\r\n color: ${({ theme }) => theme.FULL_WHITE};\r\n padding: 8px 4px;\r\n border-bottom: 1px solid ${({ theme }) => theme.BACKGROUND_MODIFIER_ACCENT};\r\n\r\n @media only screen and (max-width: 768px) {\r\n border-bottom: 0;\r\n }\r\n`;\r\n\r\nfunction rotateLayout(direction: \"LEFT\" | \"RIGHT\" | \"DOWN\" | \"UP\") {\r\n if (direction === \"LEFT\") return 90;\r\n if (direction === \"UP\") return 180;\r\n if (direction === \"RIGHT\") return 270;\r\n return 360;\r\n}\r\n\r\nconst SidebarButton: React.FC<{\r\n onClick: () => void;\r\n deviceDisplay?: \"desktop\" | \"mobile\";\r\n title: string;\r\n component: React.ReactNode;\r\n}> = ({ onClick, deviceDisplay, title, component }) => {\r\n return (\r\n \r\n {component}\r\n \r\n );\r\n};\r\n\r\nexport const Sidebar: React.FC = () => {\r\n const setVisible = useModal(state => state.setVisible);\r\n const setDirection = useGraph(state => state.setDirection);\r\n const getJson = useJson(state => state.getJson);\r\n\r\n const collapseGraph = useGraph(state => state.collapseGraph);\r\n const expandGraph = useGraph(state => state.expandGraph);\r\n const toggleFold = useGraph(state => state.toggleFold);\r\n const toggleFullscreen = useGraph(state => state.toggleFullscreen);\r\n\r\n const direction = useGraph(state => state.direction);\r\n const foldNodes = useGraph(state => state.foldNodes);\r\n const fullscreen = useGraph(state => state.fullscreen);\r\n const graphCollapsed = useGraph(state => state.graphCollapsed);\r\n\r\n const handleSave = () => {\r\n const a = document.createElement(\"a\");\r\n const file = new Blob([getJson()], { type: \"text/plain\" });\r\n\r\n a.href = window.URL.createObjectURL(file);\r\n a.download = \"jsoncrack.json\";\r\n a.click();\r\n };\r\n\r\n const toggleFoldNodes = () => {\r\n toggleFold(!foldNodes);\r\n toast(`${foldNodes ? \"Unfolded\" : \"Folded\"} nodes`);\r\n };\r\n\r\n const toggleDirection = () => {\r\n const nextDirection = getNextDirection(direction);\r\n setDirection(nextDirection);\r\n };\r\n\r\n const toggleExpandCollapseGraph = () => {\r\n if (graphCollapsed) expandGraph();\r\n else collapseGraph();\r\n\r\n toast(`${graphCollapsed ? \"Expanded\" : \"Collapsed\"} graph.`);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n J\r\n C\r\n \r\n\r\n toggleFullscreen(!fullscreen)}\r\n component={}\r\n />\r\n\r\n setVisible(\"import\")(true)}\r\n component={}\r\n />\r\n\r\n }\r\n />\r\n\r\n : }\r\n />\r\n\r\n : }\r\n />\r\n\r\n }\r\n />\r\n\r\n setVisible(\"clear\")(true)}\r\n component={}\r\n />\r\n\r\n setVisible(\"cloud\")(true)}\r\n component={}\r\n />\r\n\r\n setVisible(\"settings\")(true)}\r\n component={}\r\n />\r\n \r\n \r\n setVisible(\"account\")(true)}\r\n component={}\r\n />\r\n setVisible(\"settings\")(true)}\r\n component={}\r\n />\r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport Head from \"next/head\";\r\nimport { useRouter } from \"next/router\";\r\nimport toast from \"react-hot-toast\";\r\nimport {\r\n AiOutlineCloudSync,\r\n AiOutlineCloudUpload,\r\n AiOutlineLink,\r\n AiOutlineLock,\r\n AiOutlineUnlock,\r\n} from \"react-icons/ai\";\r\nimport { VscAccount } from \"react-icons/vsc\";\r\nimport { saveJson, updateJson } from \"src/services/db/json\";\r\nimport useJson from \"src/store/useJson\";\r\nimport useModal from \"src/store/useModal\";\r\nimport useStored from \"src/store/useStored\";\r\nimport useUser from \"src/store/useUser\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledBottomBar = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n border-top: 1px solid ${({ theme }) => theme.BACKGROUND_MODIFIER_ACCENT};\r\n background: ${({ theme }) => theme.BACKGROUND_TERTIARY};\r\n max-height: 27px;\r\n height: 27px;\r\n padding: 0 6px;\r\n\r\n @media only screen and (max-width: 768px) {\r\n display: none;\r\n }\r\n`;\r\n\r\nconst StyledLeft = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: left;\r\n gap: 4px;\r\n`;\r\n\r\nconst StyledRight = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: right;\r\n gap: 4px;\r\n`;\r\n\r\nconst StyledBottomBarItem = styled.button`\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n width: fit-content;\r\n margin: 0;\r\n height: 28px;\r\n padding: 4px;\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: ${({ theme }) => theme.INTERACTIVE_NORMAL};\r\n\r\n &:hover:not(&:disabled) {\r\n background-image: linear-gradient(rgba(0, 0, 0, 0.1) 0 0);\r\n color: ${({ theme }) => theme.INTERACTIVE_HOVER};\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.4;\r\n cursor: default;\r\n }\r\n`;\r\n\r\nconst StyledImg = styled.img<{ light: boolean }>`\r\n filter: ${({ light }) => light && \"invert(100%)\"};\r\n`;\r\n\r\nexport const BottomBar = () => {\r\n const { replace, query } = useRouter();\r\n const data = useJson(state => state.data);\r\n const user = useUser(state => state.user);\r\n const lightmode = useStored(state => state.lightmode);\r\n const hasChanges = useJson(state => state.hasChanges);\r\n\r\n const getJson = useJson(state => state.getJson);\r\n const setVisible = useModal(state => state.setVisible);\r\n const setHasChanges = useJson(state => state.setHasChanges);\r\n const [isPrivate, setIsPrivate] = React.useState(false);\r\n const [isUpdating, setIsUpdating] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n setIsPrivate(data?.private ?? true);\r\n }, [data]);\r\n\r\n const handleSaveJson = React.useCallback(async () => {\r\n if (!user) return setVisible(\"login\")(true);\r\n\r\n if (hasChanges) {\r\n try {\r\n setIsUpdating(true);\r\n toast.loading(\"Saving JSON...\", { id: \"jsonSave\" });\r\n const res = await saveJson({ id: query.json as string, data: getJson() });\r\n\r\n if (res.errors && res.errors.items.length > 0) throw res.errors;\r\n if (res.data._id) replace({ query: { json: res.data._id } });\r\n\r\n toast.success(\"JSON saved to cloud\", { id: \"jsonSave\" });\r\n setHasChanges(false);\r\n } catch (error: any) {\r\n if (error?.items?.length > 0) {\r\n return toast.error(error.items[0].message, { id: \"jsonSave\", duration: 5000 });\r\n }\r\n\r\n toast.error(\"Failed to save JSON!\", { id: \"jsonSave\" });\r\n } finally {\r\n setIsUpdating(false);\r\n }\r\n }\r\n }, [getJson, hasChanges, query.json, replace, setHasChanges, setVisible, user]);\r\n\r\n const handleLoginClick = () => {\r\n if (user) return setVisible(\"account\")(true);\r\n else setVisible(\"login\")(true);\r\n };\r\n\r\n const setPrivate = async () => {\r\n try {\r\n if (!query.json) return handleSaveJson();\r\n setIsUpdating(true);\r\n\r\n const res = await updateJson(query.json as string, { private: !isPrivate });\r\n\r\n if (!res.errors?.items.length) {\r\n setIsPrivate(res.data.private);\r\n toast.success(`Document set to ${isPrivate ? \"public\" : \"private\"}.`);\r\n } else throw res.errors;\r\n } catch (error) {\r\n toast.error(\"An error occurred while updating document!\");\r\n } finally {\r\n setIsUpdating(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {data?.name && (\r\n \r\n {data.name} | JSON Crack\r\n \r\n )}\r\n \r\n \r\n \r\n {user ? user.name : \"Login\"}\r\n \r\n \r\n {hasChanges ? : }\r\n {hasChanges ? \"Unsaved Changes\" : \"Saved\"}\r\n \r\n {data && (\r\n <>\r\n {typeof data.private !== \"undefined\" && (\r\n \r\n {isPrivate ? : }\r\n {isPrivate ? \"Private\" : \"Public\"}\r\n \r\n )}\r\n setVisible(\"share\")(true)} disabled={isPrivate}>\r\n \r\n Share\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Powered by\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { MdReportGmailerrorred, MdOutlineCheckCircleOutline } from \"react-icons/md\";\r\nimport useJson from \"src/store/useJson\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledErrorWrapper = styled.div`\r\n z-index: 1;\r\n`;\r\n\r\nconst StyledErrorExpand = styled.div<{ error: boolean }>`\r\n position: relative;\r\n display: flex;\r\n width: 100%;\r\n padding: 4px 16px;\r\n height: 28px;\r\n border-radius: 0;\r\n justify-content: space-between;\r\n align-items: center;\r\n color: ${({ theme, error }) => (error ? theme.TEXT_DANGER : theme.TEXT_POSITIVE)};\r\n pointer-events: ${({ error }) => !error && \"none\"};\r\n background: ${({ theme }) => theme.BACKGROUND_SECONDARY};\r\n box-shadow: 0 1px 0px ${({ theme }) => theme.BACKGROUND_TERTIARY};\r\n`;\r\n\r\nconst StyledTitle = styled.span`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n font-weight: 500;\r\n gap: 10px;\r\n font-size: 16px;\r\n`;\r\n\r\nconst StyledError = styled.pre`\r\n color: ${({ theme }) => theme.TEXT_DANGER};\r\n border-bottom: 1px solid ${({ theme }) => theme.SILVER_DARK};\r\n font-size: 12px;\r\n padding: 12px;\r\n margin: 0;\r\n word-wrap: break-word;\r\n white-space: pre-line;\r\n`;\r\n\r\nexport const ErrorContainer = () => {\r\n const hasError = useJson(state => state.hasError);\r\n\r\n return (\r\n \r\n \r\n \r\n {hasError ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {hasError ? \"Invalid JSON\" : \"JSON Valid\"}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport Editor, { loader, Monaco } from \"@monaco-editor/react\";\r\nimport debounce from \"lodash.debounce\";\r\nimport { Loading } from \"src/components/Loading\";\r\nimport useJson from \"src/store/useJson\";\r\nimport useStored from \"src/store/useStored\";\r\nimport styled from \"styled-components\";\r\n\r\nloader.config({\r\n paths: {\r\n vs: \"https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.34.0/min/vs\",\r\n },\r\n});\r\n\r\nconst editorOptions = {\r\n formatOnPaste: true,\r\n minimap: {\r\n enabled: false,\r\n },\r\n};\r\n\r\nconst StyledWrapper = styled.div`\r\n display: grid;\r\n height: calc(100vh - 36px);\r\n grid-template-columns: 100%;\r\n grid-template-rows: minmax(0, 1fr);\r\n`;\r\n\r\nexport const MonacoEditor = () => {\r\n const json = useJson(state => state.json);\r\n const setJson = useJson(state => state.setJson);\r\n const setError = useJson(state => state.setError);\r\n const [loaded, setLoaded] = React.useState(false);\r\n const [value, setValue] = React.useState(json);\r\n\r\n const hasError = useJson(state => state.hasError);\r\n const getHasChanges = useJson(state => state.getHasChanges);\r\n const lightmode = useStored(state => (state.lightmode ? \"light\" : \"vs-dark\"));\r\n\r\n const handleEditorWillMount = React.useCallback(\r\n (monaco: Monaco) => {\r\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\r\n allowComments: true,\r\n comments: \"ignore\",\r\n });\r\n\r\n monaco.editor.onDidChangeMarkers(([uri]) => {\r\n const markers = monaco.editor.getModelMarkers({ resource: uri });\r\n setError(!!markers.length);\r\n });\r\n },\r\n [setError]\r\n );\r\n\r\n const debouncedSetJson = React.useMemo(\r\n () =>\r\n debounce(value => {\r\n if (hasError) return;\r\n setJson(value || \"[]\");\r\n }, 1200),\r\n [hasError, setJson]\r\n );\r\n\r\n React.useEffect(() => {\r\n if ((value || !hasError) && loaded) debouncedSetJson(value);\r\n setLoaded(true);\r\n\r\n return () => debouncedSetJson.cancel();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedSetJson, hasError, value]);\r\n\r\n const handleChange = React.useCallback((value?: string) => {\r\n try {\r\n const parsedJson = JSON.stringify(JSON.parse(value!), null, 2);\r\n setValue(parsedJson);\r\n } catch (error) {\r\n setValue(value);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const beforeunload = (e: BeforeUnloadEvent) => {\r\n if (getHasChanges()) {\r\n const confirmationMessage =\r\n \"Unsaved changes, if you leave before saving your changes will be lost\";\r\n\r\n (e || window.event).returnValue = confirmationMessage; //Gecko + IE\r\n return confirmationMessage;\r\n }\r\n };\r\n\r\n window.addEventListener(\"beforeunload\", beforeunload);\r\n\r\n return () => {\r\n window.removeEventListener(\"beforeunload\", beforeunload);\r\n };\r\n }, [getHasChanges]);\r\n\r\n return (\r\n \r\n }\r\n beforeMount={handleEditorWillMount}\r\n defaultLanguage=\"json\"\r\n height=\"100%\"\r\n />\r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { ErrorContainer } from \"src/components/ErrorContainer\";\r\nimport { MonacoEditor } from \"src/components/MonacoEditor\";\r\nimport styled from \"styled-components\";\r\n\r\nconst StyledEditorWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n user-select: none;\r\n`;\r\n\r\nexport const JsonEditor: React.FC = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport dynamic from \"next/dynamic\";\r\nimport { Allotment } from \"allotment\";\r\nimport \"allotment/dist/style.css\";\r\nimport { JsonEditor } from \"src/containers/Editor/JsonEditor\";\r\nimport useGraph from \"src/store/useGraph\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const StyledEditor = styled(Allotment)`\r\n position: relative !important;\r\n display: flex;\r\n background: ${({ theme }) => theme.BACKGROUND_SECONDARY};\r\n`;\r\n\r\nconst LiveEditor = dynamic(() => import(\"src/containers/Editor/LiveEditor\"), {\r\n ssr: false,\r\n});\r\n\r\nconst Panes: React.FC = () => {\r\n const fullscreen = useGraph(state => state.fullscreen);\r\n const toggleFullscreen = useGraph(state => state.toggleFullscreen);\r\n const isMobile = React.useMemo(() => window.innerWidth <= 768, []);\r\n\r\n React.useEffect(() => {\r\n if (isMobile) toggleFullscreen(true);\r\n }, [isMobile, toggleFullscreen]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Panes;\r\n","import React from \"react\";\r\nimport Head from \"next/head\";\r\nimport { useRouter } from \"next/router\";\r\nimport { AdTest } from \"src/components/AdTest\";\r\nimport { Loading } from \"src/components/Loading\";\r\nimport { Sidebar } from \"src/components/Sidebar\";\r\nimport { BottomBar } from \"src/containers/Editor/BottomBar\";\r\nimport Panes from \"src/containers/Editor/Panes\";\r\nimport useJson from \"src/store/useJson\";\r\nimport useUser from \"src/store/useUser\";\r\nimport styled from \"styled-components\";\r\n\r\nexport const StyledPageWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n height: calc(100vh - 28px);\r\n width: 100%;\r\n\r\n @media only screen and (max-width: 768px) {\r\n position: fixed;\r\n height: -webkit-fill-available;\r\n flex-direction: column;\r\n }\r\n`;\r\n\r\nexport const StyledEditorWrapper = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n`;\r\n\r\nconst EditorPage: React.FC = () => {\r\n const { isReady, query } = useRouter();\r\n const checkSession = useUser(state => state.checkSession);\r\n const fetchJson = useJson(state => state.fetchJson);\r\n const loading = useJson(state => state.loading);\r\n\r\n React.useEffect(() => {\r\n // Fetch JSON by query\r\n // Check Session User\r\n if (isReady) {\r\n checkSession();\r\n fetchJson(query.json);\r\n }\r\n }, [checkSession, fetchJson, isReady, query.json]);\r\n\r\n if (loading) return ;\r\n\r\n return (\r\n \r\n \r\n Editor | JSON Crack\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EditorPage;\r\n"],"names":["window","__NEXT_P","push","__webpack_require__","fadeIn","keyframes","StyledLoading","styled","theme","param","BLACK_DARK","StyledLogo","StyledText","StyledMessage","Loading","loading","message","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","jsxs","jsx","AdWrapper","AdTest","ref","React","innerWidth","current","innerHTML","s","document","createElement","id","concat","appendChild","jsx_runtime","StyledTooltip","BACKGROUND_PRIMARY","TEXT_NORMAL","StyledTooltipWrapper","Tooltip","children","title","props","div","StyledSidebar","BACKGROUND_TERTIARY","BACKGROUND_MODIFIER_ACCENT","StyledElement","SIDEBAR_ICONS","INTERACTIVE_HOVER","secondary","ORANGE","StyledFlowIcon","TiFlowMerge","rotate","StyledTopWrapper","StyledBottomWrapper","FULL_WHITE","SidebarButton","onClick","deviceDisplay","component","className","Sidebar","setVisible","useModal","state","setDirection","useGraph","getJson","useJson","collapseGraph","expandGraph","toggleFold","toggleFullscreen","direction","foldNodes","fullscreen","graphCollapsed","handleSave","a","file","Blob","type","href","URL","createObjectURL","download","click","toggleFoldNodes","toast","toggleDirection","nextDirection","getNextDirection","toggleExpandCollapseGraph","as","AiOutlineEdit","AiOutlineFileAdd","CgArrowsShrinkH","CgArrowsMergeAltH","VscExpandAll","VscCollapseAll","AiOutlineSave","AiOutlineDelete","VscCloud","VscSettingsGear","VscAccount","StyledBottomBar","StyledLeft","StyledRight","StyledBottomBarItem","INTERACTIVE_NORMAL","StyledImg","light","BottomBar","replace","query","useRouter","data","user","useUser","lightmode","useStored","hasChanges","setHasChanges","isPrivate","setIsPrivate","isUpdating","setIsUpdating","private","handleSaveJson","res","saveJson","json","errors","items","length","_id","error","duration","handleLoginClick","setPrivate","updateJson","name","Head","disabled","AiOutlineCloudUpload","AiOutlineCloudSync","Fragment","AiOutlineLock","AiOutlineUnlock","AiOutlineLink","rel","target","height","width","src","alt","StyledErrorWrapper","StyledErrorExpand","TEXT_DANGER","TEXT_POSITIVE","BACKGROUND_SECONDARY","StyledTitle","SILVER_DARK","ErrorContainer","hasError","MdReportGmailerrorred","size","MdOutlineCheckCircleOutline","loader","paths","vs","editorOptions","formatOnPaste","minimap","enabled","StyledWrapper","MonacoEditor","setJson","setError","loaded","setLoaded","value","setValue","getHasChanges","handleEditorWillMount","monaco","languages","jsonDefaults","setDiagnosticsOptions","allowComments","comments","editor","onDidChangeMarkers","uri","markers","getModelMarkers","resource","debouncedSetJson","debounce","cancel","handleChange","parsedJson","JSON","stringify","parse","beforeunload","confirmationMessage","e","event","returnValue","addEventListener","removeEventListener","Editor","options","onChange","beforeMount","defaultLanguage","StyledEditorWrapper","JsonEditor","StyledEditor","Allotment","LiveEditor","dynamic","Promise","all","then","bind","ssr","Panes","isMobile","proportionalLayout","vertical","preferredSize","minSize","maxSize","Infinity","visible","StyledPageWrapper","EditorPage","isReady","checkSession","fetchJson","meta","content"],"sourceRoot":""}