You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2021/04/02 14:09:06 UTC

svn commit: r1888308 [2/2] - in /tinkerpop/site/gremlint: ./ static/ static/css/ static/js/ static/media/

Added: tinkerpop/site/gremlint/static/js/main.ecfcc9bc.chunk.js.map
URL: http://svn.apache.org/viewvc/tinkerpop/site/gremlint/static/js/main.ecfcc9bc.chunk.js.map?rev=1888308&view=auto
==============================================================================
--- tinkerpop/site/gremlint/static/js/main.ecfcc9bc.chunk.js.map (added)
+++ tinkerpop/site/gremlint/static/js/main.ecfcc9bc.chunk.js.map Fri Apr  2 14:09:06 2021
@@ -0,0 +1 @@
+{"version":3,"sources":["router.ts","components/FadeIn.tsx","styleVariables.ts","components/NavigationButton.tsx","components/Navigator.tsx","libs/reduced-state/dispatch.ts","libs/reduced-state/reducedState.ts","store/initialState.ts","store/actions.ts","store/index.ts","store/reducers.ts","store/routines.ts","components/QueryInput.tsx","components/TextButton.tsx","components/CodePreview.tsx","libs/reduced-state/useReducedState.ts","components/Toggle.tsx","views/QueryFormatter/AdvancedOptions.tsx","views/QueryFormatter/index.tsx","components/Paragraph.tsx","components/Title.tsx","components/Spacer.ts","components/StyleGuideRule.tsx","views/StyleGuide/rules.ts","views/StyleGuide/index.tsx","gremlint-loading-logo-colored.png","gremlint-loading-logo-grayscale.png","components/LoadingAnimation.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["router","createRouter","FadeInWrapper","styled","div","$opacity","FadeIn","children","props","useState","opacity","setOpacity","useEffect
 ","setTimeout","textColor","inputTextColor","highlightedTextColor","white","NavigationButtonWrapper","span","NavigationButtonLink","a","$isSelected","NavigationButton","isSelected","href","label","NavigatorWrapper","NavigatorCenterContainer","Spacer","Navigator","matchedRoute","dispatch","action","payload","window","dispatchEvent","CustomEvent","detail","createReducedState","initialState","reducers","routines","state","changeListeners","Object","entries","forEach","reducer","addEventListener","event","nextState","changeListener","routine","addChangeListener","changeListenerToBeAdded","removeChangeListener","changeListenerToBeRemoved","filter","queryInput","queryOutput","shouldShowAdvancedOptions","indentation","maxLineLength","shouldPlaceDotsAfterLineBreaks","SET_QUERY_INPUT","FORMAT_QUERY","TOGGLE_SHOULD_SHOW_ADVANCED_OPTIONS","SET_INDENTATION","SET_MAX_LINE_LENGTH","SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS","store","formatQuery","unparsedIndentation","parseInt","isNaN","unparsedMax
 LineLength","QueryInputWrapper","QueryInputTextArea","textarea","QueryInput","onChange","value","rows","TextButtonWrapper","TextButtonButton","button","TextButton","onClick","CodePreviewWrapper","CodePreviewBox","Code","CodeRuler","$maxLineLength","CodePreview","useReducedState","reducedState","setState","ToggleContainer","$height","$width","Option","SelectedOption","$checked","Toggle","width","height","checked","labels","unchecked","AdvancedOptionRowWrapper","AdvancedOptionLabel","AdvancedOptionInput","input","AdvancedOptions","type","min","max","target","ExpandableAdvancedOptionsWrapper","$isExpanded","QueryFormatter","ParagraphWrapper","$hasContent","css","ParagraphContent","Paragraph","Boolean","TitleWrapper","TitleContent","Title","StyleGuideRule","title","explanation","example","rules","StyleGuide","map","LoadingAnimationWrapper","GrayscaleImageWrapper","ColoredImageWrapper","$loadingCompletion","Image","img","LoadingAnimation","onLoadingComplete","loadingCompletion","setLoadi
 ngCompletion","coloredImageHasLoaded","setColoredImageHasLoaded","grayscaleImageHasLoaded","setGrayscaleImageHasLoaded","src","gremlintLoadingLogoGrayscale","onLoad","gremlintLoadingLogoColored","ViewWrapper","App","useRouter","loadingComplete","setLoadingComplete","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.ecfcc9bc.chunk.js","sourcesContent":["/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed t
 o in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport createRouter from 'sharp-router';\n\nconst router = createRouter({\n  '/': 'Gremlint - Query formatter',\n  '/style-guide': 'Gremlint - Style guide',\n});\n\nexport default router;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by 
 applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { HTMLAttributes, useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\nconst FadeInWrapper = styled.div<{ $opacity: number }>`\n  opacity: ${({ $opacity }) => $opacity};\n`;\n\nconst FadeIn = ({ children, ...props }: HTMLAttributes<HTMLDivElement>) => {\n  const [opacity, setOpacity] = useState(0);\n\n  useEffect(() => {\n    setTimeout(() => setOpacity(1));\n  }, []);\n\n  return (\n    <FadeInWrapper $opacity={opacity} {...props}>\n      {children}\n    </FadeInWrapper>\n  );\n};\n\nexport default FadeIn;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NO
 TICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport const borderColor = 'lightgray';\nexport const textColor = 'slategray';\nexport const inputTextColor = 'darkslategray';\nexport const highlightedTextColor = 'darkslategray';\nexport const disabledTextColor = 'lightgray';\nexport const highlightColor = 'yellowgreen';\nexport const
  white = 'white';\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport { highlightColor, highlightedTextColor, textColor } from '../styleVa
 riables';\n\nconst NavigationButtonWrapper = styled.span`\n  display: inline-block;\n  vertical-align: bottom;\n  padding: 10px;\n  box-sizing: border-box;\n  height: 40px;\n  width: 160px;\n`;\n\nconst NavigationButtonLink = styled.a<{ $isSelected: boolean }>`\n  text-decoration: none;\n  display: inline-block;\n  height: 20px;\n  line-height: 20px;\n  font-size: 15px;\n  color: ${({ $isSelected }) => ($isSelected ? highlightedTextColor : textColor)};\n  border-bottom: ${({ $isSelected }) => ($isSelected ? `2px solid ${highlightColor}` : 'none')};\n  &:hover {\n    color: ${highlightedTextColor};\n  }\n`;\n\ntype NavigationButtonProps = {\n  isSelected: boolean;\n  href: string;\n  label: string;\n};\n\nconst NavigationButton = ({ isSelected, href, label }: NavigationButtonProps) => (\n  <NavigationButtonWrapper>\n    <NavigationButtonLink href={href} $isSelected={isSelected}>\n      {label}\n    </NavigationButtonLink>\n  </NavigationButtonWrapper>\n);\n\nexport default Navigation
 Button;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport NavigationButton from './NavigationButton';\nimport { white } from '../styleVa
 riables';\n\nconst NavigatorWrapper = styled.div`\n  background: ${white};\n  box-shadow: ${white} 0 0 10px;\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  z-index: 1;\n`;\n\nconst NavigatorCenterContainer = styled.div`\n  width: min(800px, 100vw);\n  margin-left: calc(50vw - min(400px, 50vw));\n`;\n\nconst Spacer = styled.div`\n  height: 40px;\n`;\n\ntype NavigatorProps = {\n  matchedRoute: string;\n};\n\nconst Navigator = ({ matchedRoute }: NavigatorProps) => (\n  <div>\n    <NavigatorWrapper>\n      <NavigatorCenterContainer>\n        <NavigationButton isSelected={matchedRoute === '/'} label=\"Query formatter\" href=\"#/\" />\n        <NavigationButton isSelected={matchedRoute === '/style-guide'} label=\"Style guide\" href=\"#/style-guide\" />\n      </NavigatorCenterContainer>\n    </NavigatorWrapper>\n    <Spacer />\n  </div>\n);\n\nexport default Navigator;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreeme
 nts.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport const dispatch = (action: string, payload?: any) => {\n  window.dispatchEvent(new CustomEvent(action, { detail: payload }));\n};\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\
 n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { ChangeListener, CreateReducedStateProps } from './types';\n\nconst createReducedState = <T>({ initialState, reducers, routines }: CreateReducedStateProps<T>) => {\n  let state = initialState;\n  let changeListeners: ChangeListener<T>[] = [];\n\n  Object.entries(reducers).forEach(([action
 , reducer]) => {\n    window.addEventListener(action, ((event: CustomEvent) => {\n      const nextState = reducer(state, event.detail);\n      state = nextState;\n      changeListeners.forEach((changeListener) => changeListener(state));\n    }) as EventListener);\n  });\n\n  Object.entries(routines).forEach(([action, routine]) => {\n    window.addEventListener(action, ((event: CustomEvent) => {\n      routine(state, event.detail);\n    }) as EventListener);\n  });\n\n  const addChangeListener = (changeListenerToBeAdded: ChangeListener<T>) => {\n    changeListeners = [...changeListeners, changeListenerToBeAdded];\n  };\n\n  const removeChangeListener = (changeListenerToBeRemoved: ChangeListener<T>) => {\n    changeListeners = changeListeners.filter((changeListener) => changeListener !== changeListenerToBeRemoved);\n  };\n\n  return { state, addChangeListener, removeChangeListener };\n};\n\nexport default createReducedState;\n","/*\n * Licensed to the Apache Software Foundation (ASF) 
 under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nconst initialState = {\n  queryInput: '',\n  queryOutput: '',\n  shouldShowAdvancedOptions: false,\n  indentation: 0,\n  maxLineLength: 72,\n  shouldPlaceDotsAfterLineBreaks: false,\n};\n\nexport default initialState;\n","
 /*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport const SET_QUERY_INPUT = 'SET_QUERY_INPUT';\nexport const FORMAT_QUERY = 'FORMAT_QUERY';\nexport const TOGGLE_SHOULD_SHOW_ADVANCED_OPTIONS = 'TOGGLE_SHOULD_SHOW
 _ADVANCED_OPTIONS';\nexport const SET_INDENTATION = 'SET_INDENTATION';\nexport const SET_MAX_LINE_LENGTH = 'SET_MAX_LINE_LENGTH';\nexport const SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS = 'SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS';\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language go
 verning permissions and limitations\n * under the License.\n */\n\nimport createReducedState from '../libs/reduced-state';\nimport initialState from './initialState';\nimport reducers from './reducers';\nimport routines from './routines';\n\nconst store = createReducedState({ initialState, reducers, routines });\n\nexport default store;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTI
 ES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { formatQuery } from 'gremlint';\nimport {\n  FORMAT_QUERY,\n  SET_INDENTATION,\n  SET_MAX_LINE_LENGTH,\n  SET_QUERY_INPUT,\n  SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS,\n  TOGGLE_SHOULD_SHOW_ADVANCED_OPTIONS,\n} from './actions';\nimport { State } from './types';\n\nconst handleSetQueryInput = (state: State, queryInput: string) => ({\n  ...state,\n  queryInput,\n});\n\nconst handleFormatQuery = (state: State) => ({\n  ...state,\n  queryOutput: formatQuery(state.queryInput, {\n    indentation: state.indentation,\n    maxLineLength: state.maxLineLength,\n    shouldPlaceDotsAfterLineBreaks: state.shouldPlaceDotsAfterLineBreaks,\n  }),\n});\n\nconst handleToggleShouldShowAdvancedOptions = (state: State) => ({\n  ...state,\n  shouldShowAdvancedOptions: !state.shouldShowAdvancedOptions,\n});\n\nconst handleSe
 tIndentation = (state: State, unparsedIndentation: string) => {\n  const indentation = parseInt(unparsedIndentation);\n  if (isNaN(indentation)) return { ...state };\n  if (indentation < 0) return { ...state, indentation: 0 };\n  const { maxLineLength } = state;\n  if (indentation > maxLineLength) {\n    return { ...state, indentation: maxLineLength };\n  }\n  return { ...state, indentation };\n};\n\nconst handleSetMaxLineLength = (state: State, unparsedMaxLineLength: string) => {\n  const maxLineLength = parseInt(unparsedMaxLineLength);\n  if (isNaN(maxLineLength)) return { ...state };\n  const { indentation } = state;\n  if (maxLineLength < indentation) {\n    return { ...state, maxLineLength: indentation };\n  }\n  return { ...state, maxLineLength };\n};\n\nconst handleSetShouldPlaceDotsAfterLineBreaks = (state: State, shouldPlaceDotsAfterLineBreaks: boolean) => ({\n  ...state,\n  shouldPlaceDotsAfterLineBreaks,\n});\n\nconst reducers = {\n  [SET_QUERY_INPUT]: handleSetQueryInput
 ,\n  [FORMAT_QUERY]: handleFormatQuery,\n  [TOGGLE_SHOULD_SHOW_ADVANCED_OPTIONS]: handleToggleShouldShowAdvancedOptions,\n  [SET_INDENTATION]: handleSetIndentation,\n  [SET_MAX_LINE_LENGTH]: handleSetMaxLineLength,\n  [SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS]: handleSetShouldPlaceDotsAfterLineBreaks,\n};\n\nexport default reducers;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR
  CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { dispatch } from '../libs/reduced-state';\nimport {\n  SET_QUERY_INPUT,\n  FORMAT_QUERY,\n  SET_INDENTATION,\n  SET_MAX_LINE_LENGTH,\n  SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS,\n} from './actions';\n\nconst handleSetQueryInput = () => dispatch(FORMAT_QUERY);\nconst handleSetIndentation = () => dispatch(FORMAT_QUERY);\nconst handleSetMaxLineLength = () => dispatch(FORMAT_QUERY);\nconst handleSetShouldPlaceDotsAfterLineBreaks = () => dispatch(FORMAT_QUERY);\n\nconst routines = {\n  [SET_QUERY_INPUT]: handleSetQueryInput,\n  [SET_INDENTATION]: handleSetIndentation,\n  [SET_MAX_LINE_LENGTH]: handleSetMaxLineLength,\n  [SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS]: handleSetShouldPlaceDotsAfterLineBreaks,\n};\n\nexport default routines;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or mo
 re contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport { inputTextColor } from '../styleVariables';\n\nconst QueryInputWrapper = styled.div`\n  padding: 10px;\n`;\n\nconst QueryInputTextArea = styled.textarea`\n  height:
  calc(100vh / 4);\n  border-radius: 5px;\n  font-family: 'Courier New', Courier, monospace;\n  background: rgba(0, 0, 0, 0.05);\n  outline: none;\n  font-size: 16px;\n  padding: 10px;\n  border: none;\n  resize: none;\n  width: 100%;\n  box-shadow: inset rgba(0, 0, 0, 0.5) 0 0 10px -5px;\n  color: ${inputTextColor};\n  box-sizing: border-box;\n`;\n\ntype QueryInputProps = {\n  onChange?: ((event: React.ChangeEvent<HTMLTextAreaElement>) => void) | undefined;\n  value: string;\n};\n\nconst QueryInput = ({ onChange, value }: QueryInputProps) => (\n  <QueryInputWrapper>\n    <QueryInputTextArea onChange={onChange} value={value} rows={25} />\n  </QueryInputWrapper>\n);\n\nexport default QueryInput;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, V
 ersion 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport { highlightedTextColor, textColor } from '../styleVariables';\n\nconst TextButtonWrapper = styled.span`\n  display: inline-block;\n  padding: 10px;\n  box-sizing: border-box;\n`;\n\nconst TextButtonButton = styled.button`\n  height: 20px;\n  line-height: 20px;\n  font-size: 15px;\n  color: ${textColor};\n  &: {\n    color: ${highlightedTextColor};\n  }\n  background: none;\n  b
 order: none;\n  cursor: pointer;\n  padding: 0;\n  outline: none;\n`;\n\ntype TextButtonProps = {\n  label: string;\n  onClick: VoidFunction;\n};\n\nconst TextButton = ({ label, onClick }: TextButtonProps) => (\n  <TextButtonWrapper>\n    <TextButtonButton onClick={onClick}>{label}</TextButtonButton>\n  </TextButtonWrapper>\n);\n\nexport default TextButton;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BA
 SIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport { HTMLAttributes } from 'react';\nimport { disabledTextColor, textColor } from '../styleVariables';\n\nconst CodePreviewWrapper = styled.div`\n  padding: 10px;\n`;\n\nconst CodePreviewBox = styled.div`\n  border-radius: 5px;\n  font-family: 'Courier New', Courier, monospace;\n  background: rgba(0, 0, 0, 0.05);\n  outline: none;\n  font-size: 15px;\n  padding: 10px;\n  border: none;\n  resize: none;\n  box-shadow: inset rgba(0, 0, 0, 0.5) 0 0 10px -5px;\n  white-space: pre-wrap;\n  overflow: auto;\n  position: relative;\n`;\n\nconst Code = styled.div`\n  color: ${textColor};\n  line-height: 20px;\n  font-size: 15px;\n`;\n\nconst CodeRuler = styled.div<{ $maxLineLength: number }>`\n  top: 0;\n  left: 0;\n  width: ca
 lc(10px + ${({ $maxLineLength }) => $maxLineLength}ch);\n  border-right: 1px solid ${disabledTextColor};\n  position: absolute;\n  height: 100%;\n  pointer-events: none;\n`;\n\ntype CodePreviewProps = {\n  maxLineLength?: number;\n} & HTMLAttributes<HTMLSpanElement>;\n\nconst CodePreview = ({ maxLineLength, children }: CodePreviewProps) => (\n  <CodePreviewWrapper>\n    <CodePreviewBox>\n      <Code>{children}</Code>\n      {maxLineLength ? <CodeRuler $maxLineLength={maxLineLength} /> : null}\n    </CodePreviewBox>\n  </CodePreviewWrapper>\n);\n\nexport default CodePreview;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a c
 opy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport { useEffect, useState } from 'react';\nimport { ReducedState } from './types';\n\nexport const useReducedState = <T>(reducedState: ReducedState<T>) => {\n  const [state, setState] = useState<T>(reducedState.state);\n\n  useEffect(() => {\n    const changeListener = (state: T) => {\n      setState(state);\n    };\n    reducedState.addChangeListener(changeListener);\n    return () => reducedState.removeChangeListener(changeListener);\n  }, [reducedState]);\n\n  return state;\n};\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contrib
 utor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport { borderColor, highlightedTextColor, textColor, white } from '../styleVariables';\n\nconst ToggleContainer = styled.span<{ $width: string; $height: string }>`\n  display: inli
 ne-block;\n  height: ${({ $height }) => $height};\n  width: ${({ $width }) => $width};\n  border-radius: 5px;\n  background: rgba(0, 0, 0, 0.05);\n  box-shadow: inset rgba(0, 0, 0, 0.5) 0 0 10px -5px;\n  position: relative;\n`;\n\nconst Option = styled.span<{ $width: string; $height: string }>`\n  cursor: pointer;\n  display: inline-block;\n  height: ${({ $height }) => $height};\n  width: calc(${({ $width }) => $width} / 2);\n  box-sizing: border-box;\n  padding: 10px;\n  line-height: 20px;\n  font-size: 16px;\n  color: ${textColor};\n  text-align: center;\n`;\n\nconst SelectedOption = styled.span<{ $checked: boolean }>`\n  background: ${white};\n  cursor: pointer;\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  left: ${({ $checked }) => ($checked ? '160px' : '0')};\n  height: 40px;\n  width: 160px;\n  border-radius: 5px;\n  box-sizing: border-box;\n  padding: 10px;\n  line-height: 20px;\n  font-size: 16px;\n  color: ${highlightedTextColor};\n  text-align: center;\n  
 border: 1px solid ${borderColor};\n  transition: 0.5s;\n`;\n\ntype ToggleProps = {\n  width: string;\n  height: string;\n  checked: boolean;\n  labels: { checked: string; unchecked: string };\n  onChange: (checked: boolean) => void;\n};\n\nconst Toggle = ({\n  width = '320px',\n  height = '40px',\n  checked = false,\n  labels = { checked: 'Checked', unchecked: 'Unchecked' },\n  onChange,\n}: ToggleProps) => (\n  <ToggleContainer $width={width} $height={height}>\n    <Option $width={width} $height={height} onClick={() => onChange(false)}>\n      {labels.unchecked}\n    </Option>\n    <Option $width={width} $height={height} onClick={() => onChange(true)}>\n      {labels.checked}\n    </Option>\n    <SelectedOption $checked={checked}>{checked ? labels.checked : labels.unchecked}</SelectedOption>\n  </ToggleContainer>\n);\n\nexport default Toggle;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * di
 stributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport { dispatch } from '../../libs/reduced-state';\nimport { useReducedState } from '../../libs/reduced-state/useReducedState';\nimport store from '../../store';\nimport { SET_INDENTATION, SET_MAX_LINE_LENGTH, SET_SHOULD_PLACE_DOTS_
 AFTER_LINE_BREAKS } from '../../store/actions';\nimport { inputTextColor, textColor } from '../../styleVariables';\nimport Toggle from '../../components/Toggle';\n\nconst AdvancedOptionRowWrapper = styled.div`\n  padding: 10px;\n`;\n\nconst AdvancedOptionLabel = styled.div`\n  height: 20px;\n  line-height: 20px;\n  font-size: 15px;\n  color: ${textColor};\n`;\n\nconst AdvancedOptionInput = styled.input`\n  border-radius: 5px;\n  background: rgba(0, 0, 0, 0.05);\n  outline: none;\n  font-size: 16px;\n  padding: 10px;\n  border: none;\n  box-shadow: inset rgba(0, 0, 0, 0.5) 0 0 10px -5px;\n  color: ${inputTextColor};\n  display: inline-block;\n  vertical-align: bottom;\n  box-sizing: border-box;\n  height: 40px;\n  width: 320px;\n`;\n\nconst AdvancedOptions = () => {\n  const state = useReducedState(store);\n  return (\n    <div>\n      <AdvancedOptionRowWrapper>\n        <AdvancedOptionLabel>Indentation</AdvancedOptionLabel>\n        <AdvancedOptionInput\n          type=\"number\"\n 
          min={0}\n          max={state.maxLineLength}\n          value={state.indentation}\n          onChange={({ target }) => {\n            dispatch(SET_INDENTATION, target.value);\n          }}\n        />\n      </AdvancedOptionRowWrapper>\n      <AdvancedOptionRowWrapper>\n        <AdvancedOptionLabel>Max line length</AdvancedOptionLabel>\n        <AdvancedOptionInput\n          type=\"number\"\n          min={state.indentation}\n          value={state.maxLineLength}\n          onChange={({ target }) => {\n            dispatch(SET_MAX_LINE_LENGTH, target.value);\n          }}\n        />\n      </AdvancedOptionRowWrapper>\n      <AdvancedOptionRowWrapper>\n        <AdvancedOptionLabel>Dot placement</AdvancedOptionLabel>\n        <Toggle\n          height=\"40px\"\n          width=\"320px\"\n          checked={state.shouldPlaceDotsAfterLineBreaks}\n          labels={{\n            checked: 'After line break',\n            unchecked: 'Before line break',\n          }}\n         
  onChange={(shouldPlaceDotsAfterLineBreaks) => {\n            dispatch(SET_SHOULD_PLACE_DOTS_AFTER_LINE_BREAKS, shouldPlaceDotsAfterLineBreaks);\n          }}\n        />\n      </AdvancedOptionRowWrapper>\n    </div>\n  );\n};\n\nexport default AdvancedOptions;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the Licens
 e for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled from 'styled-components';\nimport store from '../../store';\nimport QueryInput from '../../components/QueryInput';\nimport TextButton from '../../components/TextButton';\nimport CodePreview from '../../components/CodePreview';\nimport AdvancedOptions from './AdvancedOptions';\nimport { State } from '../../store/types';\nimport { dispatch } from '../../libs/reduced-state';\nimport { useReducedState } from '../../libs/reduced-state/useReducedState';\nimport { SET_QUERY_INPUT, TOGGLE_SHOULD_SHOW_ADVANCED_OPTIONS } from '../../store/actions';\n\nconst ExpandableAdvancedOptionsWrapper = styled.div<{ $isExpanded: boolean }>`\n  max-height: ${({ $isExpanded }) => ($isExpanded ? '240px' : '0')};\n  box-shadow: inset white 0 0 10px 0;\n  overflow: hidden;\n  transition: 0.5s;\n`;\n\nconst QueryFormatter = () => {\n  const state = useReducedState<State
 >(store);\n  return (\n    <div>\n      <QueryInput value={state.queryInput} onChange={({ target }) => dispatch(SET_QUERY_INPUT, target.value)} />\n      <TextButton\n        label={state.shouldShowAdvancedOptions ? 'Hide advanced options' : 'Show advanced options'}\n        onClick={() => dispatch(TOGGLE_SHOULD_SHOW_ADVANCED_OPTIONS)}\n      />\n      <ExpandableAdvancedOptionsWrapper $isExpanded={state.shouldShowAdvancedOptions}>\n        <AdvancedOptions />\n      </ExpandableAdvancedOptionsWrapper>\n      {state.queryOutput ? <CodePreview maxLineLength={state.maxLineLength}>{state.queryOutput}</CodePreview> : null}\n    </div>\n  );\n};\n\nexport default QueryFormatter;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * 
 \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport styled, { css } from 'styled-components';\nimport { HTMLAttributes } from 'react';\nimport { textColor } from '../styleVariables';\n\nconst ParagraphWrapper = styled.div<{ $hasContent: boolean }>`\n  ${({ $hasContent }) =>\n    $hasContent &&\n    css`\n      padding: 10px;\n    `}\n`;\n\nconst ParagraphContent = styled.span`\n  color: ${textColor};\n  line-height: 20px;\n  font-size: 15px;\n`;\n\nconst Paragraph = ({ children }: HTMLAtt
 ributes<HTMLSpanElement>) => (\n  <ParagraphWrapper $hasContent={Boolean(children)}>\n    <ParagraphContent>{children}</ParagraphContent>\n  </ParagraphWrapper>\n);\n\nexport default Paragraph;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations
 \n * under the License.\n */\n\nimport React from 'react';\nimport styled, { css } from 'styled-components';\nimport { HTMLAttributes } from 'react';\nimport { textColor } from '../styleVariables';\n\nconst TitleWrapper = styled.div<{ $hasContent: boolean }>`\n  ${({ $hasContent }) =>\n    $hasContent &&\n    css`\n      padding: 10px;\n    `}\n`;\n\nconst TitleContent = styled.div`\n  color: ${textColor};\n  line-height: 30px;\n  font-size: 25px;\n`;\n\nconst Title = ({ children }: HTMLAttributes<HTMLDivElement>) => (\n  <TitleWrapper $hasContent={Boolean(children)}>\n    <TitleContent>{children}</TitleContent>\n  </TitleWrapper>\n);\n\nexport default Title;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); y
 ou may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport styled from 'styled-components';\n\nconst Spacer = styled.div`\n  height: 20px;\n`;\n\nexport default Spacer;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance
 \n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport Paragraph from './Paragraph';\nimport Title from './Title';\nimport CodePreview from './CodePreview';\nimport Spacer from './Spacer';\n\ntype StyleGuideRuleProps = {\n  title: string;\n  explanation: string;\n  example: string;\n};\n\nconst StyleGuideRule = ({ title, explanation, example }: StyleGuideRuleProps) => (\n  <div>\n    <Title>{title}</Title>\n    <Paragraph>{explanation}</Paragraph>\n    <CodePreview>{example}</CodePreview>\n    <Spacer />\n  </div>\n);\n\nexport default StyleGuideRule
 ;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nexport const rules = [\n  {\n    title: 'Break long queries into multiple lines',\n    explanation: `What is considered too long depends on your application.\nW
 hen breaking the query, not all parts of the traversal have to be broken up. First, divide the query into logical groups, based on which steps belong naturally together. For instance, every set of steps which end with an as()-step often belong together, as they together form a new essential step in the query.\n    \nIf anoymous traversals are passed as arguments to another step, like a filter()-step, and it's causing the line to be too long, first split the line at the commas. Only if the traversal arguments are still too long, consider splitting them further.`,\n    example: `// Good (80 characters max width)\ng.V().hasLabel('person').where(outE(\"created\").count().is(P.gte(2))).count()\n    \n// Good (50 characters max width)\ng.V().\n  hasLabel('person').\n  where(outE(\"created\").count().is(P.gte(2))).\n  count()\n    \n// Good (30 characters max width)\ng.V().\n  hasLabel('person').\n  where(\n    outE(\"created\").\n    count().\n    is(P.gte(2))).\n  count()`,\n  },\n  {\n 
    title: 'Use soft tabs (spaces) for indentation',\n    explanation: 'This ensures that your code looks the same for anyone, regardless of their text editor settings.',\n    example: `// Bad - indented using hard tabs\ng.V().\n  hasLabel('person').as('person').\n  properties('location').as('location').\n  select('person','location').\n    by('name').\n    by(valueMap())\n    \n// Good - indented using spaces\ng.V().\n∙∙hasLabel('person').as('person').\n∙∙properties('location').as('location').\n∙∙select('person','location').\n∙∙∙∙by('name').\n∙∙∙∙by(valueMap())`,\n  },\n  {\n    title: 'Use two spaces for indentation',\n    explanation:\n      'Two spaces makes the intent of the indent clear, but does not waste too much space. Of course, more spaces are allowed when indenting from an already indented block of code.',\n    example: `// Bad - Indented using four spaces\ng.V().\n    hasLabel('person').as('person').\n
     properties('location').as('location').\n    select('person','location').\n        by('name').\n        by(valueMap())\n// Good - Indented using two spaces\ng.V().\n  hasLabel('person').as('person').\n  properties('location').as('location').\n  select('person','location').\n    by('name').\n    by(valueMap())`,\n  },\n  {\n    title: 'Use indents wisely',\n    explanation: `No newline should ever have the same indent as the line starting with the traversal source g.\nUse indents when the step in the new line is a modulator of a previous line.\nUse indents when the content in the new line is an argument of a previous step.\nIf multiple anonymous traversals are passed as arguments to a function, each newline which is not the first step of the traversal should be indented to make it more clear where the distinction between each argument goes. If this is the case, but the newline would already be indented because the step in the content in the new line is the argument of a previous s
 tep, there is no need to double-indent.\nDon't be tempted to add extra indentation to vertically align a step with a step in a previous line.`,\n    example: `// Bad - No newline should have the same indent as the line starting with the traversal source g\ng.V().\ngroup().\nby().\nby(bothE().count())\n// Bad - Modulators of a step on a previous line should be indented\ng.V().\n  group().\n  by().\n  by(bothE().count())\n// Good\ng.V().\n  group().\n    by().\n    by(bothE().count())\n// Bad - You have ignored the indent rules to achieve the temporary satisfaction of vertical alignment\ng.V().local(union(identity(),\n                  bothE().count()).\n            fold())\n// Good\ng.V().\n  local(\n    union(\n      identity(),\n      bothE().count()).\n    fold())\n// Bad - When multiple anonymous traversals are passed as arguments to a function, each newline which is not the first of line of the step should be indented to make it more clear where the distinction between each argu
 ment goes.\ng.V().\n  has('person','name','marko').\n  fold().\n  coalesce(\n    unfold(),\n    addV('person').\n    property('name','marko').\n    property('age',29))\n// Good - We make it clear that the coalesce step takes two traversals as arguments\ng.V().\n  has('person','name','marko').\n  fold().\n  coalesce(\n    unfold(),\n    addV('person').\n      property('name','marko').\n      property('age',29))`,\n  },\n  {\n    title: 'Keep as()-steps at the end of each line',\n    explanation: `The end of the line is a natural place to assign a label to a step. It's okay if the as()-step is in the middle of the line if there are multiple consecutive label assignments, or if the line is so short that a newline doesn't make sense. Maybe a better way to put it is to not start a line with an as()-step, unless you're using it inside a match()-step of course.`,\n    example: `// Bad\ng.V().\n  as('a').\n  out('created').\n  as('b').\n  select('a','b')\n// Good\ng.V().as('a').\n  out('cre
 ated').as('b').\n  select('a','b')\n// Good\ng.V().as('a').out('created').as('b').select('a','b')`,\n  },\n  {\n    title: 'Add linebreak after punctuation, not before',\n    explanation: `While adding the linebreak before the punctuation looks good in most cases, it introduces alignment problems when not all lines start with a punctuation. You never know if the next line should be indented relative to the punctuation of the previous line or the method of the previous line. Switching between having the punctuation at the start or the end of the line depending on whether it works in a particular case requires much brainpower (which we don't have), so it's better to be consistent. Adding the punctuation before the linebreak also means that you can know if you have reached the end of the query without reading the next line.`,\n    example: `// Bad - Looks okay, though\ng.V().has('name','marko')\n     .out('knows')\n     .has('age', gt(29))\n     .values('name')\n// Good\ng.V().\n  has(
 'name','marko').\n  out('knows').\n  has('age', gt(29)).\n  values('name')\n// Bad - Punctuation at the start of the line makes the transition from filter to select to count too smooth\ng.V()\n  .hasLabel(\"person\")\n  .group()\n    .by(values(\"name\", \"age\").fold())\n  .unfold()\n  .filter(\n    select(values)\n    .count(local)\n    .is(gt(1)))\n// Good - Keeping punctuation at the end of each line, more clearly shows the query structure\ng.V().\n  hasLabel(\"person\").\n  group().\n    by(values(\"name\", \"age\").fold()).\n  unfold().\n  filter(\n    select(values).\n    count(local).\n    is(gt(1)))`,\n  },\n  {\n    title: 'Add linebreak and indentation for nested traversals which are long enough to span multiple lines',\n    explanation: '',\n    example: `// Bad - Not newlining the first argument of a function whose arguments span over multipe lines causes the arguments to not align.\ng.V().\n  hasLabel(\"person\").\n  groupCount().\n    by(values(\"age\").\n      choose
 (is(lt(28)),\n        constant(\"young\"),\n        choose(is(lt(30)),\n          constant(\"old\"),\n          constant(\"very old\"))))\n// Bad - We talked about this in the indentation section, didn't we?\ng.V().\n  hasLabel(\"person\").\n  groupCount().\n    by(values(\"age\").\n       choose(is(lt(28)),\n              constant(\"young\"),\n              choose(is(lt(30)),\n                     constant(\"old\"),\n                     constant(\"very old\"))))\n// Good\ng.V().\n  hasLabel(\"person\").\n  groupCount().\n    by(\n      values(\"age\").\n      choose(\n        is(lt(28)),\n        constant(\"young\"),\n        choose(\n          is(lt(30)),\n          constant(\"old\"),\n          constant(\"very old\"))))`,\n  },\n  {\n    title: 'Place all trailing parentheses on a single line instead of distinct lines',\n    explanation:\n      'Aligning the end parenthesis with the step to which the start parenthesis belongs might make it easier to check that the number of pare
 ntheses is correct, but looks ugly and wastes a lot of space.',\n    example: `// Bad\ng.V().\n  hasLabel(\"person\").\n  groupCount().\n    by(\n      values(\"age\").\n      choose(\n        is(lt(28)),\n        constant(\"young\"),\n        choose(\n          is(lt(30)),\n          constant(\"old\"),\n          constant(\"very old\")\n        )\n      )\n    )\n// Good\ng.V().\n  hasLabel(\"person\").\n  groupCount().\n    by(\n      values(\"age\").\n      choose(\n        is(lt(28)),\n        constant(\"young\"),\n        choose(\n          is(lt(30)),\n          constant(\"old\"),\n          constant(\"very old\"))))`,\n  },\n  {\n    title: 'Use // for single line comments. Place single line comments on a newline above the subject of the comment.',\n    explanation: '',\n    example: `// Bad\ng.V().\n  has('name','alice').out('bought'). // Find everything that Alice has bought\n  in('bought').dedup().values('name') // Find everyone who have bought some of the same things as A
 lice\n// Good\ng.V().\n  // Find everything that Alice has bought\n  has('name','alice').out('bought').\n  // Find everyone who have bought some of the same things as Alice\n  in('bought').dedup().values('name')`,\n  },\n  {\n    title: 'Use single quotes for strings',\n    explanation:\n      'Use single quotes for literal string values. If the string contains double quotes or single quotes, surround the string with the type of quote which creates the fewest escaped characters.',\n    example: `// Bad - Use single quotes where possible\ng.V().has(\"Movie\", \"name\", \"It's a wonderful life\")\n// Bad - Escaped single quotes are even worse than double quotes\ng.V().has('Movie', 'name', 'It\\\\'s a wonderful life')\n// Good\ng.V().has('Movie', 'name', \"It's a wonderful life\")`,\n  },\n  {\n    title: 'Write idiomatic Gremlin code',\n    explanation: `If there is a simpler way, do it the simpler way. Use the Gremlin methods for what they're worth.`,\n    example: `// Bad\ng.V().out
 E().inV()\n// Good\ng.V().out()\n// Bad\ng.V().\n  has('name', 'alice').\n  outE().hasLabel('bought').inV().\n  values('name')\n// Good\ng.V().\n  has('name','alice').\n  out('bought').\n  values('name')\n// Bad\ng.V().hasLabel('person').has('name', 'alice')\n// Good\ng.V().has('person', 'name', 'alice')`,\n  },\n];\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF A
 NY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport StyleGuideRule from '../../components/StyleGuideRule';\nimport { rules } from './rules';\n\nconst StyleGuide = () => (\n  <div>\n    {rules.map(({ title, explanation, example }) => (\n      <StyleGuideRule key={title} title={title} explanation={explanation} example={example} />\n    ))}\n  </div>\n);\n\nexport default StyleGuide;\n","export default __webpack_public_path__ + \"static/media/gremlint-loading-logo-colored.7e095463.png\";","export default __webpack_public_path__ + \"static/media/gremlint-loading-logo-grayscale.a64db4a4.png\";","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to y
 ou under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { white } from '../styleVariables';\nimport gremlintLoadingLogoColored from '../gremlint-loading-logo-colored.png';\nimport gremlintLoadingLogoGrayscale from '../gremlint-loading-logo-grayscale.png';\n\nconst LoadingAnimationWrapper = styled.div`\n  position: fixed;\n  background: ${white};\n  top: 0;\n  right: 0;\n  bottom
 : 0;\n  left: 0;\n  z-index: 2;\n`;\n\nconst GrayscaleImageWrapper = styled.div`\n  height: 100%;\n  width: 100%;\n  position: absolute;\n  bottom: calc(50vh - 25vmin);\n`;\n\nconst ColoredImageWrapper = styled.div<{ $loadingCompletion: number }>`\n  overflow: hidden;\n  height: ${({ $loadingCompletion }) => $loadingCompletion / 2}vmin;\n  width: 100%;\n  position: absolute;\n  bottom: calc(50vh - 25vmin);\n`;\n\nconst Image = styled.img<{ $opacity: number }>`\n  opacity: ${({ $opacity }) => $opacity};\n  transition: 0.25s;\n  height: 50vmin;\n  width: 50vmin;\n  display: block;\n  margin: auto;\n  position: absolute;\n  bottom: 0;\n  left: 50%;\n  transform: translate(-50%, 0);\n`;\n\ntype LoadingAnimationProps = {\n  onLoadingComplete: VoidFunction;\n};\n\nconst LoadingAnimation = ({ onLoadingComplete }: LoadingAnimationProps) => {\n  const [loadingCompletion, setLoadingCompletion] = useState(0);\n  const [coloredImageHasLoaded, setColoredImageHasLoaded] = useState(false);\n  cons
 t [grayscaleImageHasLoaded, setGrayscaleImageHasLoaded] = useState(false);\n\n  useEffect(() => {\n    setTimeout(\n      () => {\n        if (loadingCompletion < 100) {\n          if (coloredImageHasLoaded && grayscaleImageHasLoaded) {\n            setLoadingCompletion(loadingCompletion + 1);\n          }\n        } else {\n          setTimeout(onLoadingComplete, 250);\n        }\n      },\n      loadingCompletion === 0 ? 250 : 10,\n    );\n  }, [loadingCompletion, coloredImageHasLoaded, grayscaleImageHasLoaded, onLoadingComplete]);\n\n  return (\n    <LoadingAnimationWrapper>\n      <GrayscaleImageWrapper>\n        <Image\n          src={gremlintLoadingLogoGrayscale}\n          $opacity={grayscaleImageHasLoaded && loadingCompletion !== 100 ? 1 : 0}\n          onLoad={() => setGrayscaleImageHasLoaded(true)}\n        />\n      </GrayscaleImageWrapper>\n      <ColoredImageWrapper $loadingCompletion={loadingCompletion}>\n        <Image\n          src={gremlintLoadingLogoColored}\n    
       $opacity={loadingCompletion !== 100 ? 1 : 0}\n          onLoad={() => setColoredImageHasLoaded(true)}\n        />\n      </ColoredImageWrapper>\n    </LoadingAnimationWrapper>\n  );\n};\n\nexport default LoadingAnimation;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language gov
 erning permissions and limitations\n * under the License.\n */\n\nimport React, { useState } from 'react';\nimport './App.css';\nimport styled from 'styled-components';\nimport { useRouter } from 'sharp-router';\nimport router from './router';\nimport FadeIn from './components/FadeIn';\nimport Navigator from './components/Navigator';\nimport QueryFormatter from './views/QueryFormatter';\nimport StyleGuide from './views/StyleGuide';\nimport LoadingAnimation from './components/LoadingAnimation';\n\nconst ViewWrapper = styled.div`\n  width: min(800px, 100vw);\n  margin-left: calc(50vw - min(400px, 50vw));\n`;\n\nconst App = () => {\n  const { matchedRoute } = useRouter(router);\n  const [loadingComplete, setLoadingComplete] = useState(false);\n  if (!loadingComplete) return <LoadingAnimation onLoadingComplete={() => setLoadingComplete(true)} />;\n  return (\n    <FadeIn>\n      <div>\n        <Navigator matchedRoute={matchedRoute} />\n        <div>\n          <ViewWrapper>\n           
  {matchedRoute === '/' ? <QueryFormatter /> : matchedRoute === '/style-guide' ? <StyleGuide /> : null}\n          </ViewWrapper>\n        </div>\n      </div>\n    </FadeIn>\n  );\n};\n\nexport default App;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions an
 d limitations\n * under the License.\n */\n\nimport { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n  if (onPerfEntry && onPerfEntry instanceof Function) {\n    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n      getCLS(onPerfEntry);\n      getFID(onPerfEntry);\n      getFCP(onPerfEntry);\n      getLCP(onPerfEntry);\n      getTTFB(onPerfEntry);\n    });\n  }\n};\n\nexport default reportWebVitals;\n","/*\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *  http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required
  by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n  <React.StrictMode>\n    <App />\n  </React.StrictMode>,\n  document.getElementById('root'),\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}
\ No newline at end of file

Added: tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js
URL: http://svn.apache.org/viewvc/tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js?rev=1888308&view=auto
==============================================================================
--- tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js (added)
+++ tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js Fri Apr  2 14:09:06 2021
@@ -0,0 +1,2 @@
+!function(e){function r(r){for(var n,a,i=r[0],c=r[1],l=r[2],s=0,p=[];s<i.length;s++)a=i[s],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var c=t[i];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+"static/js/"+({}[e]||e)+"."+{3:"ba58ae2a"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){i.onerror=i.onload=null,clearTime
 out(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:f
 unction(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/",a.oe=function(e){throw console.error(e),e};var i=this["webpackJsonpgremlint.com"]=this["webpackJsonpgremlint.com"]||[],c=i.push.bind(i);i.push=r,i=i.slice();for(var l=0;l<i.length;l++)r(i[l]);var f=c;t()}([]);
+//# sourceMappingURL=runtime-main.c1a892ee.js.map
\ No newline at end of file

Added: tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js.map
URL: http://svn.apache.org/viewvc/tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js.map?rev=1888308&view=auto
==============================================================================
--- tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js.map (added)
+++ tinkerpop/site/gremlint/static/js/runtime-main.c1a892ee.js.map Fri Apr  2 14:09:06 2021
@@ -0,0 +1 @@
+{"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","o
 bject","property","oe","err","console","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.c1a892ee.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \
 t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = fal
 se;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"3\":\"ba58ae2a\"}[chunkId] + \".chunk.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t
 \tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolv
 e, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : 
 event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_r
 equire__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = 
 Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = fun
 ction(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = this[\"webpackJsonpgremlint.com\"] = this[\"webpackJsonpgremlint.com\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}
\ No newline at end of file

Added: tinkerpop/site/gremlint/static/media/gremlint-loading-logo-colored.7e095463.png
URL: http://svn.apache.org/viewvc/tinkerpop/site/gremlint/static/media/gremlint-loading-logo-colored.7e095463.png?rev=1888308&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tinkerpop/site/gremlint/static/media/gremlint-loading-logo-colored.7e095463.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: tinkerpop/site/gremlint/static/media/gremlint-loading-logo-grayscale.a64db4a4.png
URL: http://svn.apache.org/viewvc/tinkerpop/site/gremlint/static/media/gremlint-loading-logo-grayscale.a64db4a4.png?rev=1888308&view=auto
==============================================================================
Binary file - no diff available.

Propchange: tinkerpop/site/gremlint/static/media/gremlint-loading-logo-grayscale.a64db4a4.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream