websoft9/cockpit/myapps/build/static/js/836.06772eb6.chunk.js.map
2023-06-02 14:02:20 +08:00

1 line
39 KiB
Plaintext

{"version":3,"file":"static/js/836.06772eb6.chunk.js","mappings":"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","sources":["lib/cockpit-dark-theme.js","lib/cockpit-components-context-menu.js","lib/cockpit-components-terminal.js","lib/terminal.js","pages/myterminal.js"],"sourcesContent":["function debug() {\n if (window.debugging == \"all\" || window.debugging?.includes(\"style\")) {\n console.debug([`cockpit-dark-theme: ${document.documentElement.id}:`, ...arguments].join(\" \"));\n }\n}\n\nfunction changeDarkThemeClass(documentElement, dark_mode) {\n debug(`Setting cockpit theme to ${dark_mode ? \"dark\" : \"light\"}`);\n\n if (dark_mode) {\n documentElement.classList.add('pf-theme-dark');\n } else {\n documentElement.classList.remove('pf-theme-dark');\n }\n}\n\nfunction _setDarkMode(_style) {\n const style = _style || localStorage.getItem('shell:style') || 'auto';\n let dark_mode;\n // If a user set's an explicit theme, ignore system changes.\n if ((window.matchMedia?.('(prefers-color-scheme: dark)').matches && style === \"auto\") || style === \"dark\") {\n dark_mode = true;\n } else {\n dark_mode = false;\n }\n changeDarkThemeClass(document.documentElement, dark_mode);\n}\n\nwindow.addEventListener(\"storage\", event => {\n if (event.key === \"shell:style\") {\n debug(`Storage element 'shell:style' changed from ${event.oldValue} to ${event.newValue}`);\n\n _setDarkMode();\n }\n});\n\n// When changing the theme from the shell switcher the localstorage change will not fire for the same page (aka shell)\n// so we need to listen for the event on the window object.\nwindow.addEventListener(\"cockpit-style\", event => {\n const style = event.detail.style;\n debug(`Event received from shell with 'cockpit-style' ${style}`);\n\n _setDarkMode(style);\n});\n\nwindow.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {\n debug(`Operating system theme preference changed to ${window.matchMedia?.('(prefers-color-scheme: dark)').matches ? \"dark\" : \"light\"}`);\n _setDarkMode();\n});\n\n_setDarkMode();","import cockpit from \"cockpit\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport \"../assets/scss/custom/terminal/context-menu.css\";\n\nconst _ = cockpit.gettext;\n\nexport const ContextMenu = ({ parentId, getText, setText }) => {\n const [visible, setVisible] = React.useState(false);\n const [event, setEvent] = React.useState(null);\n const root = React.useRef(null);\n\n React.useEffect(() => {\n const _handleContextMenu = (event) => {\n event.preventDefault();\n\n setVisible(true);\n setEvent(event);\n };\n\n const _handleClick = (event) => {\n if (event && event.button === 0) {\n const wasOutside = !(event.target.contains === root.current);\n\n if (wasOutside)\n setVisible(false);\n }\n };\n\n const parent = document.getElementById(parentId);\n parent.addEventListener('contextmenu', _handleContextMenu);\n document.addEventListener('click', _handleClick);\n\n return () => {\n parent.removeEventListener('contextmenu', _handleContextMenu);\n document.removeEventListener('click', _handleClick);\n };\n }, [parentId]);\n\n React.useEffect(() => {\n if (!event)\n return;\n\n const clickX = event.clientX;\n const clickY = event.clientY;\n const screenW = window.innerWidth;\n const screenH = window.innerHeight;\n const rootW = root.current.offsetWidth;\n const rootH = root.current.offsetHeight;\n\n const right = (screenW - clickX) > rootW;\n const left = !right;\n const top = (screenH - clickY) > rootH;\n const bottom = !top;\n\n if (right) {\n root.current.style.left = `${clickX + 5}px`;\n }\n\n if (left) {\n root.current.style.left = `${clickX - rootW - 5}px`;\n }\n\n if (top) {\n root.current.style.top = `${clickY + 5}px`;\n }\n\n if (bottom) {\n root.current.style.top = `${clickY - rootH - 5}px`;\n }\n }, [event]);\n\n return visible &&\n <div ref={root} className=\"contextMenu\">\n <button className=\"contextMenuOption\" onClick={getText}>\n <div className=\"contextMenuName\"> {_(\"Copy\")} </div>\n <div className=\"contextMenuShortcut\">{_(\"Ctrl+Insert\")}</div>\n </button>\n <button className=\"contextMenuOption\" onClick={setText}>\n <div className=\"contextMenuName\"> {_(\"Paste\")} </div>\n <div className=\"contextMenuShortcut\">{_(\"Shift+Insert\")}</div>\n </button>\n </div>;\n};\n\nContextMenu.propTypes = {\n getText: PropTypes.func.isRequired,\n setText: PropTypes.func.isRequired,\n parentId: PropTypes.string.isRequired\n};","import { Button, Modal } from \"@patternfly/react-core\";\nimport cockpit from \"cockpit\";\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { Terminal as Term } from \"xterm\";\nimport { CanvasAddon } from 'xterm-addon-canvas';\nimport \"../assets/scss/custom/terminal/console.css\";\nimport { ContextMenu } from \"./cockpit-components-context-menu\";\n\nconst _ = cockpit.gettext;\n\nconst theme_core = {\n yellow: \"#b58900\",\n brightRed: \"#cb4b16\",\n red: \"#dc322f\",\n magenta: \"#d33682\",\n brightMagenta: \"#6c71c4\",\n blue: \"#268bd2\",\n cyan: \"#2aa198\",\n green: \"#859900\"\n};\n\nconst themes = {\n \"black-theme\": {\n background: \"#000000\",\n foreground: \"#ffffff\"\n },\n \"dark-theme\": Object.assign({}, theme_core, {\n background: \"#002b36\",\n foreground: \"#fdf6e3\",\n cursor: \"#eee8d5\",\n selection: \"#ffffff77\",\n brightBlack: \"#002b36\",\n black: \"#073642\",\n brightGreen: \"#586e75\",\n brightYellow: \"#657b83\",\n brightBlue: \"#839496\",\n brightCyan: \"#93a1a1\",\n white: \"#eee8d5\",\n brightWhite: \"#fdf6e3\"\n }),\n \"light-theme\": Object.assign({}, theme_core, {\n background: \"#fdf6e3\",\n foreground: \"#002b36\",\n cursor: \"#073642\",\n selection: \"#00000044\",\n brightWhite: \"#002b36\",\n white: \"#073642\",\n brightCyan: \"#586e75\",\n brightBlue: \"#657b83\",\n brightYellow: \"#839496\",\n brightGreen: \"#93a1a1\",\n black: \"#eee8d5\",\n brightBlack: \"#fdf6e3\"\n }),\n \"white-theme\": {\n background: \"#ffffff\",\n foreground: \"#000000\",\n selection: \"#00000044\",\n cursor: \"#000000\",\n },\n};\n\nexport class Terminal extends React.Component {\n constructor(props) {\n super(props);\n this.onChannelMessage = this.onChannelMessage.bind(this);\n this.onChannelClose = this.onChannelClose.bind(this);\n this.connectChannel = this.connectChannel.bind(this);\n this.disconnectChannel = this.disconnectChannel.bind(this);\n this.reset = this.reset.bind(this);\n this.focus = this.focus.bind(this);\n this.onWindowResize = this.onWindowResize.bind(this);\n this.resizeTerminal = this.resizeTerminal.bind(this);\n this.onFocusIn = this.onFocusIn.bind(this);\n this.onFocusOut = this.onFocusOut.bind(this);\n this.setText = this.setText.bind(this);\n this.getText = this.getText.bind(this);\n this.setTerminalTheme = this.setTerminalTheme.bind(this);\n\n const term = new Term({\n cols: props.cols || 80,\n rows: props.rows || 25,\n screenKeys: true,\n cursorBlink: true,\n fontSize: props.fontSize || 16,\n fontFamily: 'Menlo, Monaco, Consolas, monospace',\n screenReaderMode: true,\n showPastingModal: false,\n });\n\n this.terminalRef = React.createRef();\n\n term.onData(function (data) {\n if (this.props.channel.valid) {\n this.props.channel.send(data);\n }\n }.bind(this));\n\n if (props.onTitleChanged)\n term.onTitleChange(props.onTitleChanged);\n\n this.terminal = term;\n this.state = {\n showPastingModal: false,\n cols: props.cols || 80,\n rows: props.rows || 25\n };\n }\n\n componentDidMount() {\n this.terminal.open(this.terminalRef.current);\n this.terminal.loadAddon(new CanvasAddon());\n\n this.connectChannel();\n\n if (!this.props.rows) {\n window.addEventListener('resize', this.onWindowResize);\n this.onWindowResize();\n }\n this.setTerminalTheme(this.props.theme || 'black-theme');\n this.terminal.focus();\n }\n\n resizeTerminal(cols, rows) {\n this.terminal.resize(cols, rows);\n this.props.channel.control({\n window: {\n rows,\n cols\n }\n });\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.fontSize !== this.props.fontSize) {\n this.terminal.options.fontSize = this.props.fontSize;\n\n // After font size is changed, resize needs to be triggered\n const dimensions = this.calculateDimensions();\n if (dimensions.cols !== this.state.cols || dimensions.rows !== this.state.rows) {\n this.onWindowResize();\n } else {\n // When font size changes but dimensions are the same, we need to force `resize`\n this.resizeTerminal(dimensions.cols - 1, dimensions.rows);\n }\n }\n\n if (prevState.cols !== this.state.cols || prevState.rows !== this.state.rows)\n this.resizeTerminal(this.state.cols, this.state.rows);\n\n if (prevProps.theme !== this.props.theme)\n this.setTerminalTheme(this.props.theme);\n\n if (prevProps.channel !== this.props.channel) {\n this.terminal.reset();\n this.disconnectChannel(prevProps.channel);\n this.connectChannel();\n this.props.channel.control({\n window: {\n rows: this.state.rows,\n cols: this.state.cols\n }\n });\n }\n this.terminal.focus();\n }\n\n render() {\n return (\n <>\n <Modal title={_(\"Paste error\")}\n position=\"top\"\n variant=\"small\"\n isOpen={this.state.showPastingModal}\n onClose={() => this.setState({ showPastingModal: false })}\n actions={[\n <Button key=\"cancel\" variant=\"secondary\" onClick={() => this.setState({ showPastingModal: false })}>\n {_(\"Close\")}\n </Button>\n ]}>\n {_(\"Your browser does not allow paste from the context menu. You can use Shift+Insert.\")}\n </Modal>\n <div ref={this.terminalRef}\n key={this.terminal}\n className=\"console-ct\"\n onFocus={this.onFocusIn}\n onContextMenu={this.contextMenu}\n onBlur={this.onFocusOut} />\n <ContextMenu parentId={this.props.parentId} setText={this.setText} getText={this.getText} />\n </>\n );\n }\n\n componentWillUnmount() {\n this.disconnectChannel();\n this.terminal.dispose();\n window.removeEventListener('resize', this.onWindowResize);\n this.onFocusOut();\n }\n\n setText() {\n try {\n navigator.clipboard.readText()\n .then(text => this.props.channel.send(text))\n .catch(e => this.setState({ showPastingModal: true }))\n .finally(() => this.terminal.focus());\n } catch (error) {\n this.setState({ showPastingModal: true });\n }\n }\n\n getText() {\n try {\n navigator.clipboard.writeText(this.terminal.getSelection())\n .catch(e => console.error('Text could not be copied, use Ctrl+Insert ', e ? e.toString() : \"\"))\n .finally(() => this.terminal.focus());\n } catch (error) {\n console.error('Text could not be copied, use Ctrl+Insert:', error.toString());\n }\n }\n\n onChannelMessage(event, data) {\n this.terminal.write(data);\n }\n\n onChannelClose(event, options) {\n const term = this.terminal;\n term.write('\\x1b[31m' + (options.problem || 'disconnected') + '\\x1b[m\\r\\n');\n term.cursorHidden = true;\n term.refresh(term.rows, term.rows);\n }\n\n connectChannel() {\n const channel = this.props.channel;\n if (channel?.valid) {\n //channel.send(\"docker exec -it mysql55 bash||sh\\n\");\n\n channel.addEventListener('message', this.onChannelMessage.bind(this));\n channel.addEventListener('close', this.onChannelClose.bind(this));\n\n //用于打开终端时默认执行一条命令,进入容器内部\n channel.send(this.props.runCmd);\n this.reset();//调用一次重置\n }\n }\n\n disconnectChannel(channel) {\n if (channel === undefined)\n channel = this.props.channel;\n if (channel) {\n channel.removeEventListener('message', this.onChannelMessage);\n channel.removeEventListener('close', this.onChannelClose);\n }\n channel.close();\n }\n\n reset() {\n this.terminal.reset();\n this.props.channel.send(String.fromCharCode(12)); // Send SIGWINCH to show prompt on attaching\n }\n\n focus() {\n if (this.terminal)\n this.terminal.focus();\n }\n\n calculateDimensions() {\n const padding = 10; // Leave a bit of space around terminal\n const realHeight = this.terminal._core._renderService.dimensions.css.cell.height;\n const realWidth = this.terminal._core._renderService.dimensions.css.cell.width;\n if (realHeight && realWidth && realWidth !== 0 && realHeight !== 0)\n return {\n rows: Math.floor((this.terminalRef.current.parentElement.clientHeight - padding) / realHeight),\n cols: Math.floor((this.terminalRef.current.parentElement.clientWidth - padding - 12) / realWidth) // Remove 12px for scrollbar\n };\n\n return { rows: this.state.rows, cols: this.state.cols };\n }\n\n onWindowResize() {\n this.setState(this.calculateDimensions());\n }\n\n setTerminalTheme(theme) {\n this.terminal.options.theme = themes[theme];\n }\n\n onBeforeUnload(event) {\n // Firefox requires this when the page is in an iframe\n event.preventDefault();\n\n // see \"an almost cross-browser solution\" at\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n event.returnValue = '';\n return '';\n }\n\n onFocusIn() {\n window.addEventListener('beforeunload', this.onBeforeUnload);\n }\n\n onFocusOut() {\n window.removeEventListener('beforeunload', this.onBeforeUnload);\n }\n}\n\nTerminal.propTypes = {\n cols: PropTypes.number,\n rows: PropTypes.number,\n channel: PropTypes.object.isRequired,\n onTitleChanged: PropTypes.func,\n theme: PropTypes.string,\n parentId: PropTypes.string.isRequired\n};","import { FormSelect, FormSelectOption, NumberInput, Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem } from \"@patternfly/react-core\";\nimport cockpit from \"cockpit\";\nimport React from \"react\";\nimport \"../assets/scss/custom/terminal/patternfly/patternfly-4-cockpit.scss\";\nimport \"../assets/scss/custom/terminal/terminal.scss\";\nimport { Terminal } from \"./cockpit-components-terminal\";\nimport './cockpit-dark-theme';\n\nconst _ = cockpit.gettext;\n\ncockpit.translate();\n\nclass UserTerminal extends React.Component {\n createChannel(user) {\n return cockpit.channel({\n payload: \"stream\",\n spawn: [user.shell || \"/bin/bash\"],\n environ: [\n \"TERM=xterm-256color\",\n ],\n directory: user.home || \"/\",\n pty: true\n });\n }\n\n constructor(props) {\n super(props);\n\n let theme = localStorage.getItem('terminal:theme');\n let size = localStorage.getItem('terminal:font-size');\n\n if (theme === null || theme === \"\") {\n theme = document.cookie.replace(/(?:(?:^|.*;\\s*)theme_cookie\\s*=\\s*([^;]*).*$)|^.*$/, \"$1\");\n if (theme !== \"\") {\n localStorage.setItem('terminal:theme', theme);\n this.invalidateCookie(\"theme_cookie\");\n }\n }\n if (size === null || size === \"\") {\n size = document.cookie.replace(/(?:(?:^|.*;\\s*)size_cookie\\s*=\\s*([^;]*).*$)|^.*$/, \"$1\");\n if (size !== \"\") {\n localStorage.setItem('terminal:font-size', size);\n this.invalidateCookie(\"size_cookie\");\n }\n }\n\n this.state = {\n title: 'Terminal',\n theme: theme || \"black-theme\",\n size: parseInt(size) || 16,\n };\n this.onTitleChanged = this.onTitleChanged.bind(this);\n this.onResetClick = this.onResetClick.bind(this);\n this.onThemeChanged = this.onThemeChanged.bind(this);\n this.onPlus = this.onPlus.bind(this);\n this.onMinus = this.onMinus.bind(this);\n\n this.terminalRef = React.createRef();\n this.resetButtonRef = React.createRef();\n\n this.minSize = 6;\n this.maxSize = 40;\n }\n\n componentDidMount() {\n cockpit.user().done(function (user) {\n this.setState({ user, channel: this.createChannel(user) });\n }.bind(this));\n }\n\n onTitleChanged(title) {\n this.setState({ title });\n }\n\n invalidateCookie(key) {\n const cookie = key + \"=''\" +\n \"; path=/; Max-Age=0;\";\n document.cookie = cookie;\n }\n\n onPlus() {\n this.setState((state, _) => {\n localStorage.setItem('terminal:font-size', state.size + 1);\n return { size: state.size + 1 };\n });\n }\n\n onMinus() {\n this.setState((state, _) => {\n localStorage.setItem('terminal:font-size', state.size - 1);\n return { size: state.size - 1 };\n });\n }\n\n onThemeChanged(value) {\n this.setState({ theme: value });\n localStorage.setItem('terminal:theme', value);\n }\n\n onResetClick(event) {\n if (event.button !== 0)\n return;\n\n if (!this.state.channel.valid && this.state.user)\n this.setState(prevState => ({ channel: this.createChannel(prevState.user) }));\n else\n this.terminalRef.current.reset();\n\n // don't focus the button, but keep it on the terminal\n this.resetButtonRef.current.blur();\n this.terminalRef.current.focus();\n }\n\n render() {\n const terminal = this.state.channel\n ? <Terminal ref={this.terminalRef}\n channel={this.state.channel}\n theme={this.state.theme}\n fontSize={this.state.size}\n parentId=\"the-terminal\"\n onTitleChanged={this.onTitleChanged}\n runCmd={this.props.runCmd} />\n : <span>Loading...</span>;\n\n return (\n <div className='console-ct-container'>\n <div className='terminal-group'>\n {/* <tt className=\"terminal-title\">{this.state.title}</tt> */}\n <tt className=\"terminal-title\"></tt>\n <Toolbar id=\"toolbar\">\n <ToolbarContent>\n <ToolbarGroup>\n <ToolbarItem variant=\"label\" id=\"size-select\">\n {_(\"Font size\")}\n </ToolbarItem>\n <ToolbarItem>\n <NumberInput\n className=\"font-size\"\n value={this.state.size}\n min={this.minSize}\n max={this.maxSize}\n onMinus={this.onMinus}\n onPlus={this.onPlus}\n inputAriaLabel={_(\"Font size\")}\n minusBtnAriaLabel={_(\"Decrease by one\")}\n plusBtnAriaLabel={_(\"Increase by one\")}\n widthChars={2}\n />\n </ToolbarItem>\n </ToolbarGroup>\n <ToolbarGroup>\n <ToolbarItem variant=\"label\" id=\"theme-select\">\n {_(\"Appearance\")}\n </ToolbarItem>\n <ToolbarItem>\n <FormSelect id=\"select-theme\" onChange={this.onThemeChanged}\n aria-labelledby=\"theme-select\"\n value={this.state.theme}>\n <FormSelectOption value='black-theme' label={_(\"Black\")} />\n <FormSelectOption value='dark-theme' label={_(\"Dark\")} />\n <FormSelectOption value='light-theme' label={_(\"Light\")} />\n <FormSelectOption value='white-theme' label={_(\"White\")} />\n </FormSelect>\n </ToolbarItem>\n </ToolbarGroup>\n <ToolbarItem>\n <button ref={this.resetButtonRef}\n className=\"pf-c-button pf-m-secondary terminal-reset\"\n onClick={this.onResetClick}>{_(\"Reset\")}</button>\n </ToolbarItem>\n </ToolbarContent>\n </Toolbar>\n </div>\n <div className={\"terminal-body \" + this.state.theme} id=\"the-terminal\">\n {terminal}\n </div>\n </div >\n );\n }\n}\n\nexport default UserTerminal;","import React from 'react';\nimport { useLocation } from 'react-router-dom';\nimport UserTerminal from \"../lib/terminal\";\n\nconst MyTerminal = (props): React$Element<React$FragmentType> => {\n const location = useLocation();\n const id = new URLSearchParams(location.search).get(\"id\");\n\n return (\n <div className='ct-page-fill' id=\"terminal\">\n {/* <UserTerminal runCmd={`docker exec -it ${id} bash\\n`} /> */}\n <UserTerminal runCmd={`docker exec -it ${id} sh -c \"if [ -x /bin/bash ]; then exec /bin/bash; else exec /bin/sh; fi\" \\n`} />\n </div>\n );\n}\n\n// const MyTerminal = (props): React$Element<React$FragmentType> => {\n// return (\n// <div className='ct-page-fill' id=\"terminal\" >\n// <UserTerminal runCmd={`docker exec -it ${props.data.customer_name} bash\\n`} />\n// </div>\n// );\n// }\nexport default MyTerminal;\n"],"names":["debug","_window$debugging","window","debugging","includes","console","concat","document","documentElement","id","Array","prototype","slice","call","arguments","join","_setDarkMode","_style","_window$matchMedia","_window","dark_mode","style","localStorage","getItem","matchMedia","matches","classList","add","remove","changeDarkThemeClass","addEventListener","event","key","oldValue","newValue","detail","_window$matchMedia2","_window2","_","cockpit","ContextMenu","_ref","parentId","getText","setText","_React$useState","React","_React$useState2","_slicedToArray","visible","setVisible","_React$useState3","_React$useState4","setEvent","root","_handleContextMenu","preventDefault","_handleClick","button","target","contains","current","parent","getElementById","removeEventListener","clickX","clientX","clickY","clientY","screenW","innerWidth","screenH","innerHeight","rootW","offsetWidth","rootH","offsetHeight","right","left","top","bottom","_jsxs","ref","className","children","onClick","_jsx","theme_core","yellow","brightRed","red","magenta","brightMagenta","blue","cyan","green","themes","background","foreground","Object","assign","cursor","selection","brightBlack","black","brightGreen","brightYellow","brightBlue","brightCyan","white","brightWhite","Terminal","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","onChannelMessage","bind","_assertThisInitialized","onChannelClose","connectChannel","disconnectChannel","reset","focus","onWindowResize","resizeTerminal","onFocusIn","onFocusOut","setTerminalTheme","term","Term","cols","rows","screenKeys","cursorBlink","fontSize","fontFamily","screenReaderMode","showPastingModal","terminalRef","onData","data","this","channel","valid","send","onTitleChanged","onTitleChange","terminal","state","_createClass","value","open","loadAddon","CanvasAddon","theme","resize","control","prevProps","prevState","options","dimensions","calculateDimensions","_this2","_Fragment","Modal","title","position","variant","isOpen","onClose","setState","actions","Button","onFocus","onContextMenu","contextMenu","onBlur","dispose","_this3","navigator","clipboard","readText","then","text","catch","e","finally","error","_this4","writeText","getSelection","toString","write","problem","cursorHidden","refresh","runCmd","undefined","close","String","fromCharCode","realHeight","_core","_renderService","css","cell","height","realWidth","width","Math","floor","parentElement","clientHeight","clientWidth","returnValue","onBeforeUnload","UserTerminal","size","cookie","replace","setItem","invalidateCookie","parseInt","onResetClick","onThemeChanged","onPlus","onMinus","resetButtonRef","minSize","maxSize","user","payload","spawn","shell","environ","directory","home","pty","done","createChannel","blur","Toolbar","ToolbarContent","ToolbarGroup","ToolbarItem","NumberInput","min","max","inputAriaLabel","minusBtnAriaLabel","plusBtnAriaLabel","widthChars","FormSelect","onChange","FormSelectOption","label","location","useLocation","URLSearchParams","search","get"],"sourceRoot":""}