diff --git a/.gitignore b/.gitignore index 08d1bfe..77cdc12 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ __pycache__/ build/ dist/ ex/ +!_static/build diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1b00adc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + +## `0.1.0` + +> TBD diff --git a/_modules/index.html b/_modules/index.html index 0c973f0..0f7d31a 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -161,6 +161,13 @@ + + + + + + + + + + + +
  • \n
      \n {renderedChildren}\n
    \n
  • \n ) : (\n
  • \n {expandable && (\n \n )}\n \n {labelRenderer(...stylingArgs)}\n \n \n {renderedItemString}\n \n
      \n {renderedChildren}\n
    \n
  • \n );\n }\n\n handleClick = () => {\n if (this.props.expandable) {\n this.setState({ expanded: !this.state.expanded });\n }\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport objType from './objType';\nimport JSONObjectNode from './JSONObjectNode';\nimport JSONArrayNode from './JSONArrayNode';\nimport JSONIterableNode from './JSONIterableNode';\nimport JSONValueNode from './JSONValueNode';\nimport { CircularPropsPassedThroughJSONNode } from './types';\n\ninterface Props extends CircularPropsPassedThroughJSONNode {\n keyPath: (string | number)[];\n value: any;\n isCustomNode: (value: any) => boolean;\n}\n\nconst JSONNode: React.FunctionComponent = ({\n getItemString,\n keyPath,\n labelRenderer,\n styling,\n value,\n valueRenderer,\n isCustomNode,\n ...rest\n}) => {\n const nodeType = isCustomNode(value) ? 'Custom' : objType(value);\n\n const simpleNodeProps = {\n getItemString,\n key: keyPath[0],\n keyPath,\n labelRenderer,\n nodeType,\n styling,\n value,\n valueRenderer,\n };\n\n const nestedNodeProps = {\n ...rest,\n ...simpleNodeProps,\n data: value,\n isCustomNode,\n };\n\n switch (nodeType) {\n case 'Object':\n case 'Error':\n case 'WeakMap':\n case 'WeakSet':\n return ;\n case 'Array':\n return ;\n case 'Iterable':\n case 'Map':\n case 'Set':\n return ;\n case 'String':\n return (\n `\"${raw}\"`}\n />\n );\n case 'Number':\n return ;\n case 'Boolean':\n return (\n (raw ? 'true' : 'false')}\n />\n );\n case 'Date':\n return (\n raw.toISOString()}\n />\n );\n case 'Null':\n return 'null'} />;\n case 'Undefined':\n return (\n 'undefined'} />\n );\n case 'Function':\n case 'Symbol':\n return (\n raw.toString()}\n />\n );\n case 'Custom':\n return ;\n default:\n return (\n `<${nodeType}>`}\n />\n );\n }\n};\n\nJSONNode.propTypes = {\n getItemString: PropTypes.func.isRequired,\n keyPath: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\n ).isRequired,\n labelRenderer: PropTypes.func.isRequired,\n styling: PropTypes.func.isRequired,\n value: PropTypes.any,\n valueRenderer: PropTypes.func.isRequired,\n isCustomNode: PropTypes.func.isRequired,\n};\n\nexport default JSONNode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport JSONNestedNode from './JSONNestedNode';\nimport { CircularPropsPassedThroughJSONNode } from './types';\n\n// Returns the \"n Items\" string for this node,\n// generating and caching it if it hasn't been created yet.\nfunction createItemString(data: any) {\n const len = Object.getOwnPropertyNames(data).length;\n return `${len} ${len !== 1 ? 'keys' : 'key'}`;\n}\n\ninterface Props extends CircularPropsPassedThroughJSONNode {\n data: any;\n nodeType: string;\n}\n\n// Configures to render an Object\nconst JSONObjectNode: React.FunctionComponent = ({ data, ...props }) => (\n 0}\n />\n);\n\nJSONObjectNode.propTypes = {\n data: PropTypes.object,\n nodeType: PropTypes.string.isRequired,\n};\n\nexport default JSONObjectNode;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { JSONValueNodeCircularPropsProvidedByJSONNode } from './types';\n\n/**\n * Renders simple values (eg. strings, numbers, booleans, etc)\n */\n\ninterface Props extends JSONValueNodeCircularPropsProvidedByJSONNode {\n nodeType: string;\n value: any;\n valueGetter?: (value: any) => any;\n}\n\nconst JSONValueNode: React.FunctionComponent = ({\n nodeType,\n styling,\n labelRenderer,\n keyPath,\n valueRenderer,\n value,\n valueGetter = (value) => value,\n}) => (\n
  • \n \n \n {valueRenderer(valueGetter(value), value, ...keyPath)}\n \n
  • \n);\n\nJSONValueNode.propTypes = {\n nodeType: PropTypes.string.isRequired,\n styling: PropTypes.func.isRequired,\n labelRenderer: PropTypes.func.isRequired,\n keyPath: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\n ).isRequired,\n valueRenderer: PropTypes.func.isRequired,\n value: PropTypes.any,\n valueGetter: PropTypes.func,\n};\n\nexport default JSONValueNode;\n","import {\n Base16Theme,\n createStyling,\n StylingConfig,\n} from 'react-base16-styling';\nimport solarized from './themes/solarized';\n\nconst colorMap = (theme: Base16Theme) => ({\n BACKGROUND_COLOR: theme.base00,\n TEXT_COLOR: theme.base07,\n STRING_COLOR: theme.base0B,\n DATE_COLOR: theme.base0B,\n NUMBER_COLOR: theme.base09,\n BOOLEAN_COLOR: theme.base09,\n NULL_COLOR: theme.base08,\n UNDEFINED_COLOR: theme.base08,\n FUNCTION_COLOR: theme.base08,\n SYMBOL_COLOR: theme.base08,\n LABEL_COLOR: theme.base0D,\n ARROW_COLOR: theme.base0D,\n ITEM_STRING_COLOR: theme.base0B,\n ITEM_STRING_EXPANDED_COLOR: theme.base03,\n});\n\ntype Color = keyof ReturnType;\ntype Colors = {\n [color in Color]: string;\n};\n\nconst valueColorMap = (colors: Colors) => ({\n String: colors.STRING_COLOR,\n Date: colors.DATE_COLOR,\n Number: colors.NUMBER_COLOR,\n Boolean: colors.BOOLEAN_COLOR,\n Null: colors.NULL_COLOR,\n Undefined: colors.UNDEFINED_COLOR,\n Function: colors.FUNCTION_COLOR,\n Symbol: colors.SYMBOL_COLOR,\n});\n\nconst getDefaultThemeStyling = (theme: Base16Theme): StylingConfig => {\n const colors = colorMap(theme);\n\n return {\n tree: {\n border: 0,\n padding: 0,\n marginTop: '0.5em',\n marginBottom: '0.5em',\n marginLeft: '0.125em',\n marginRight: 0,\n listStyle: 'none',\n MozUserSelect: 'none',\n WebkitUserSelect: 'none',\n backgroundColor: colors.BACKGROUND_COLOR,\n },\n\n value: ({ style }, nodeType, keyPath) => ({\n style: {\n ...style,\n paddingTop: '0.25em',\n paddingRight: 0,\n marginLeft: '0.875em',\n WebkitUserSelect: 'text',\n MozUserSelect: 'text',\n wordWrap: 'break-word',\n paddingLeft: (keyPath as unknown[]).length > 1 ? '2.125em' : '1.25em',\n textIndent: '-0.5em',\n wordBreak: 'break-all',\n },\n }),\n\n label: {\n display: 'inline-block',\n color: colors.LABEL_COLOR,\n },\n\n valueLabel: {\n margin: '0 0.5em 0 0',\n },\n\n valueText: ({ style }, nodeType) => ({\n style: {\n ...style,\n color:\n valueColorMap(colors)[\n nodeType as keyof ReturnType\n ],\n },\n }),\n\n itemRange: (styling, expanded) => ({\n style: {\n paddingTop: expanded ? 0 : '0.25em',\n cursor: 'pointer',\n color: colors.LABEL_COLOR,\n },\n }),\n\n arrow: ({ style }, nodeType, expanded) => ({\n style: {\n ...style,\n marginLeft: 0,\n transition: '150ms',\n WebkitTransition: '150ms',\n MozTransition: '150ms',\n WebkitTransform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)',\n MozTransform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)',\n transform: expanded ? 'rotateZ(90deg)' : 'rotateZ(0deg)',\n transformOrigin: '45% 50%',\n WebkitTransformOrigin: '45% 50%',\n MozTransformOrigin: '45% 50%',\n position: 'relative',\n lineHeight: '1.1em',\n fontSize: '0.75em',\n },\n }),\n\n arrowContainer: ({ style }, arrowStyle) => ({\n style: {\n ...style,\n display: 'inline-block',\n paddingRight: '0.5em',\n paddingLeft: arrowStyle === 'double' ? '1em' : 0,\n cursor: 'pointer',\n },\n }),\n\n arrowSign: {\n color: colors.ARROW_COLOR,\n },\n\n arrowSignInner: {\n position: 'absolute',\n top: 0,\n left: '-0.4em',\n },\n\n nestedNode: ({ style }, keyPath, nodeType, expanded, expandable) => ({\n style: {\n ...style,\n position: 'relative',\n paddingTop: '0.25em',\n marginLeft: (keyPath as unknown[]).length > 1 ? '0.875em' : 0,\n paddingLeft: !expandable ? '1.125em' : 0,\n },\n }),\n\n rootNode: {\n padding: 0,\n margin: 0,\n },\n\n nestedNodeLabel: ({ style }, keyPath, nodeType, expanded, expandable) => ({\n style: {\n ...style,\n margin: 0,\n padding: 0,\n WebkitUserSelect: expandable ? 'inherit' : 'text',\n MozUserSelect: expandable ? 'inherit' : 'text',\n cursor: expandable ? 'pointer' : 'default',\n },\n }),\n\n nestedNodeItemString: ({ style }, keyPath, nodeType, expanded) => ({\n style: {\n ...style,\n paddingLeft: '0.5em',\n cursor: 'default',\n color: expanded\n ? colors.ITEM_STRING_EXPANDED_COLOR\n : colors.ITEM_STRING_COLOR,\n },\n }),\n\n nestedNodeItemType: {\n marginLeft: '0.3em',\n marginRight: '0.3em',\n },\n\n nestedNodeChildren: ({ style }, nodeType, expanded) => ({\n style: {\n ...style,\n padding: 0,\n margin: 0,\n listStyle: 'none',\n display: expanded ? 'block' : 'none',\n },\n }),\n\n rootNodeChildren: {\n padding: 0,\n margin: 0,\n listStyle: 'none',\n },\n };\n};\n\nexport default createStyling(getDefaultThemeStyling, {\n defaultBase16: solarized,\n});\n","function getLength(type: string, collection: any) {\n if (type === 'Object') {\n // eslint-disable-next-line @typescript-eslint/ban-types\n return Object.keys(collection as {}).length;\n } else if (type === 'Array') {\n return (collection as unknown[]).length;\n }\n\n return Infinity;\n}\n\nfunction isIterableMap(collection: any) {\n return typeof (collection as Map).set === 'function';\n}\n\nfunction getEntries(\n type: string,\n collection: any,\n sortObjectKeys?: ((a: any, b: any) => number) | boolean | undefined,\n from = 0,\n to = Infinity\n): { entries: { key: string | number; value: any }[]; hasMore?: boolean } {\n let res;\n\n if (type === 'Object') {\n let keys = Object.getOwnPropertyNames(collection);\n\n if (sortObjectKeys) {\n keys.sort(sortObjectKeys === true ? undefined : sortObjectKeys);\n }\n\n keys = keys.slice(from, to + 1);\n\n res = {\n entries: keys.map((key) => ({ key, value: collection[key] })),\n };\n } else if (type === 'Array') {\n res = {\n entries: collection\n .slice(from, to + 1)\n .map((val: unknown, idx: number) => ({ key: idx + from, value: val })),\n };\n } else {\n let idx = 0;\n const entries = [];\n let done = true;\n\n const isMap = isIterableMap(collection);\n\n for (const item of collection) {\n if (idx > to) {\n done = false;\n break;\n }\n if (from <= idx) {\n if (isMap && Array.isArray(item)) {\n if (typeof item[0] === 'string' || typeof item[0] === 'number') {\n entries.push({ key: item[0], value: item[1] });\n } else {\n entries.push({\n key: `[entry ${idx}]`,\n value: {\n '[key]': item[0],\n '[value]': item[1],\n },\n });\n }\n } else {\n entries.push({ key: idx, value: item });\n }\n }\n idx++;\n }\n\n res = {\n hasMore: !done,\n entries,\n };\n }\n\n return res;\n}\n\nfunction getRanges(from: number, to: number, limit: number) {\n const ranges = [];\n while (to - from > limit * limit) {\n limit = limit * limit;\n }\n for (let i = from; i <= to; i += limit) {\n ranges.push({ from: i, to: Math.min(to, i + limit - 1) });\n }\n\n return ranges;\n}\n\nexport default function getCollectionEntries(\n type: string,\n collection: any,\n sortObjectKeys: ((a: any, b: any) => number) | boolean | undefined,\n limit: number,\n from = 0,\n to = Infinity\n) {\n const getEntriesBound = getEntries.bind(\n null,\n type,\n collection,\n sortObjectKeys\n );\n\n if (!limit) {\n return getEntriesBound().entries;\n }\n\n const isSubset = to < Infinity;\n const length = Math.min(to - from, getLength(type, collection));\n\n if (type !== 'Iterable') {\n if (length <= limit || limit < 7) {\n return getEntriesBound(from, to).entries;\n }\n } else {\n if (length <= limit && !isSubset) {\n return getEntriesBound(from, to).entries;\n }\n }\n\n let limitedEntries;\n if (type === 'Iterable') {\n const { hasMore, entries } = getEntriesBound(from, from + limit - 1);\n\n limitedEntries = hasMore\n ? [...entries, ...getRanges(from + limit, from + 2 * limit - 1, limit)]\n : entries;\n } else {\n limitedEntries = isSubset\n ? getRanges(from, to, limit)\n : [\n ...getEntriesBound(0, limit - 5).entries,\n ...getRanges(limit - 4, length - 5, limit),\n ...getEntriesBound(length - 4, length - 1).entries,\n ];\n }\n\n return limitedEntries;\n}\n","// ES6 + inline style port of JSONViewer https://bitbucket.org/davevedder/react-json-viewer/\n// all credits and original code to the author\n// Dave Vedder http://www.eskimospy.com/\n// port by Daniele Zannotti http://www.github.com/dzannotti \n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport JSONNode from './JSONNode';\nimport createStylingFromTheme from './createStylingFromTheme';\nimport {\n invertTheme,\n StylingConfig,\n StylingFunction,\n StylingValue,\n Theme,\n} from 'react-base16-styling';\nimport { CircularPropsPassedThroughJSONTree } from './types';\n\ninterface Props extends CircularPropsPassedThroughJSONTree {\n data: any;\n theme?: Theme;\n invertTheme: boolean;\n}\n\ninterface State {\n styling: StylingFunction;\n}\n\nconst identity = (value: any) => value;\nconst expandRootNode = (\n keyPath: (string | number)[],\n data: any,\n level: number\n) => level === 0;\nconst defaultItemString = (\n type: string,\n data: any,\n itemType: React.ReactNode,\n itemString: string\n) => (\n \n {itemType} {itemString}\n \n);\nconst defaultLabelRenderer = ([label]: (string | number)[]) => (\n {label}:\n);\nconst noCustomNode = () => false;\n\nfunction checkLegacyTheming(theme: Theme | undefined, props: Props) {\n const deprecatedStylingMethodsMap = {\n getArrowStyle: 'arrow',\n getListStyle: 'nestedNodeChildren',\n getItemStringStyle: 'nestedNodeItemString',\n getLabelStyle: 'label',\n getValueStyle: 'valueText',\n };\n\n const deprecatedStylingMethods = Object.keys(\n deprecatedStylingMethodsMap\n ).filter((name) => props[name as keyof Props]);\n\n if (deprecatedStylingMethods.length > 0) {\n if (typeof theme === 'string') {\n theme = {\n extend: theme,\n };\n } else {\n theme = { ...theme };\n }\n\n deprecatedStylingMethods.forEach((name) => {\n // eslint-disable-next-line no-console\n console.error(\n `Styling method \"${name}\" is deprecated, use \"theme\" property instead`\n );\n\n (theme as StylingConfig)[\n deprecatedStylingMethodsMap[\n name as keyof typeof deprecatedStylingMethodsMap\n ]\n ] = ({ style }, ...args) => ({\n style: {\n ...style,\n ...props[name as keyof Props](...args),\n },\n });\n });\n }\n\n return theme;\n}\n\nfunction getStateFromProps(props: Props) {\n let theme = checkLegacyTheming(props.theme, props);\n if (props.invertTheme) {\n theme = invertTheme(theme);\n }\n\n return {\n styling: createStylingFromTheme(theme),\n };\n}\n\nexport default class JSONTree extends React.Component {\n static propTypes = {\n data: PropTypes.any,\n hideRoot: PropTypes.bool,\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n invertTheme: PropTypes.bool,\n keyPath: PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n ),\n postprocessValue: PropTypes.func,\n sortObjectKeys: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n };\n\n static defaultProps = {\n shouldExpandNode: expandRootNode,\n hideRoot: false,\n keyPath: ['root'],\n getItemString: defaultItemString,\n labelRenderer: defaultLabelRenderer,\n valueRenderer: identity,\n postprocessValue: identity,\n isCustomNode: noCustomNode,\n collectionLimit: 50,\n invertTheme: true,\n };\n\n constructor(props: Props) {\n super(props);\n this.state = getStateFromProps(props);\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: Props) {\n if (\n ['theme', 'invertTheme'].find(\n (k) => nextProps[k as keyof Props] !== this.props[k as keyof Props]\n )\n ) {\n this.setState(getStateFromProps(nextProps));\n }\n }\n\n shouldComponentUpdate(nextProps: Props) {\n return !!Object.keys(nextProps).find((k) =>\n k === 'keyPath'\n ? nextProps[k].join('/') !== this.props[k].join('/')\n : nextProps[k as keyof Props] !== this.props[k as keyof Props]\n );\n }\n\n render() {\n const {\n data: value,\n keyPath,\n postprocessValue,\n hideRoot,\n theme, // eslint-disable-line no-unused-vars\n invertTheme: _, // eslint-disable-line no-unused-vars\n ...rest\n } = this.props;\n\n const { styling } = this.state;\n\n return (\n
      \n \n
    \n );\n }\n}\n\nexport { StylingValue };\n","export default function objType(obj: any) {\n const type = Object.prototype.toString.call(obj).slice(8, -1);\n if (type === 'Object' && typeof obj[Symbol.iterator] === 'function') {\n return 'Iterable';\n }\n\n if (\n type === 'Custom' &&\n obj.constructor !== Object &&\n obj instanceof Object\n ) {\n // For projects implementing objects overriding `.prototype[Symbol.toStringTag]`\n return 'Object';\n }\n\n return type;\n}\n","export default {\n scheme: 'solarized',\n author: 'ethan schoonover (http://ethanschoonover.com/solarized)',\n base00: '#002b36',\n base01: '#073642',\n base02: '#586e75',\n base03: '#657b83',\n base04: '#839496',\n base05: '#93a1a1',\n base06: '#eee8d5',\n base07: '#fdf6e3',\n base08: '#dc322f',\n base09: '#cb4b16',\n base0A: '#b58900',\n base0B: '#859900',\n base0C: '#2aa198',\n base0D: '#268bd2',\n base0E: '#6c71c4',\n base0F: '#d33682',\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n"],"names":["exports","__esModule","scheme","author","base00","base01","base02","base03","base04","base05","base06","base07","base08","base09","base0A","base0B","base0C","base0D","base0E","base0F","module","_interopRequire","obj","_threezerotwofour","threezerotwofour","_apathy","apathy","_ashes","ashes","_atelierDune","atelierDune","_atelierForest","atelierForest","_atelierHeath","atelierHeath","_atelierLakeside","atelierLakeside","_atelierSeaside","atelierSeaside","_bespin","bespin","_brewer","brewer","_bright","bright","_chalk","chalk","_codeschool","codeschool","_colors","colors","_default","_eighties","eighties","_embers","embers","_flat","flat","_google","google","_grayscale","grayscale","_greenscreen","greenscreen","_harmonic","harmonic","_hopscotch","hopscotch","_isotope","isotope","_marrakesh","marrakesh","_mocha","mocha","_monokai","monokai","_ocean","ocean","_paraiso","paraiso","_pop","pop","_railscasts","railscasts","_shapeshifter","shapeshifter","_solarized","solarized","_summerfruit","summerfruit","_tomorrow","tomorrow","_tube","tube","_twilight","twilight","cssKeywords","reverseKeywords","key","hasOwnProperty","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","Error","length","Object","defineProperty","value","h","l","r","g","b","min","Math","max","delta","rdif","gdif","bdif","s","v","diff","diffc","c","k","reversed","currentClosestKeyword","x","y","currentClosestDistance","Infinity","distance","pow","z","t1","t2","t3","val","i","smin","lmin","hi","floor","f","p","q","t","sl","vmin","n","wh","bl","ratio","m","y2","x2","z2","a","atan2","PI","sqrt","hr","cos","sin","args","arguments","round","ansi","color","mult","rem","string","toString","toUpperCase","substring","match","colorString","split","map","char","join","integer","parseInt","hue","chroma","mg","pure","w","conversions","route","keys","forEach","fromModel","routes","toModel","fn","wrappedFn","Array","prototype","slice","call","result","len","conversion","wrapRounded","raw","wrapRaw","link","from","to","wrapConversion","graph","path","parent","cur","unshift","models","buildGraph","queue","current","adjacents","adjacent","node","deriveBFS","colorNames","swizzle","reverseNames","create","name","cs","get","clamp","num","hexDouble","str","toLowerCase","hexAlpha","i2","parseFloat","alpha","isNaN","rgba","percent","hsla","hwba","_slice","skippedModels","hashedModelKeys","sort","limiters","Color","this","valpha","newArr","zeroArray","splice","indexOf","hashedKeys","JSON","stringify","push","limit","freeze","getset","channel","modifier","isArray","maxfn","assertArray","arr","toJSON","places","self","concat","percentString","array","object","unitArray","unitObject","Number","toFixed","roundTo","roundToPlace","red","green","blue","saturationl","lightness","saturationv","white","wblack","cyan","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","isDark","isLight","negate","lighten","darken","saturate","desaturate","whiten","blacken","fade","opaquer","rotate","degrees","mix","mixinColor","weight","color1","undefined","w1","w2","newAlpha","PLACEHOLDER","wrapFlags","reTrim","reWrapComment","reWrapDetails","reSplitDetails","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","freeParseInt","freeGlobal","freeSelf","root","Function","apply","func","thisArg","baseIsNaN","countHolders","placeholder","replaceHolders","index","resIndex","uid","funcProto","objectProto","coreJsData","maskSrcKey","exec","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","replace","objectCreate","nativeMax","nativeMin","getNative","baseCreate","proto","isObject","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","offset","createCtor","Ctor","thisBinding","createHybrid","bitmask","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","wrapper","getHolder","holdersCount","newHolders","createRecurry","reorder","reverse","wrapFunc","isCurry","setWrapToString","getValue","isMasked","pattern","tag","isFunction","e","isHostObject","test","toSource","baseIsNative","getWrapDetails","source","insertWrapDetails","details","lastIndex","isIndex","indexes","arrLength","oldArray","copyArray","reference","updateWrapDetails","iteratee","pair","fromIndex","predicate","fromRight","baseFindIndex","baseIndexOf","arrayIncludes","arrayEach","curry","guard","TypeError","toInteger","newData","createCurry","createPartial","createBind","createWrap","type","isObjectLike","isSymbol","other","valueOf","isBinary","toNumber","toFinite","remainder","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","bigint","bool","number","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","yuv","u","DEFAULT_BASE16","base16","BASE16_KEYS","merger","styling","prevStyling","className","filter","Boolean","style","mergeStylings","customStylings","defaultStylings","reduce","mergedStyling","customStyling","defaultStyling","customType","defaultType","mergeStyling","getStylingByKeys","styles","invertBase16Theme","base16Theme","hexString","flippedYuv","rgb2yuv","yuv2rgb","createStyling","getStylingFromBase16","options","themeOrStyling","defaultBase16","base16Themes","getBase16Theme","theme","isStylingConfig","extend","themeName","ItemRange","setState","expanded","state","renderChildNodes","nodeType","onClick","handleClick","arrowStyle","React","Component","createItemString","data","JSONArrayNode","nodeTypeIndicator","expandable","propTypes","JSONArrow","defaultProps","count","hasMore","isSafeInteger","size","collectionLimit","circularCache","keyPath","postprocessValue","sortObjectKeys","childNodes","entry","isCircular","hideRoot","getStateFromProps","shouldExpandNode","JSONNestedNode","nextProps","nextState","find","getItemString","labelRenderer","renderedChildren","renderedItemString","stylingArgs","JSONNode","valueRenderer","isCustomNode","rest","simpleNodeProps","nestedNodeProps","valueGetter","toISOString","getOwnPropertyNames","JSONObjectNode","JSONValueNode","valueColorMap","String","STRING_COLOR","Date","DATE_COLOR","NUMBER_COLOR","BOOLEAN_COLOR","Null","NULL_COLOR","Undefined","UNDEFINED_COLOR","FUNCTION_COLOR","Symbol","SYMBOL_COLOR","BACKGROUND_COLOR","TEXT_COLOR","LABEL_COLOR","ARROW_COLOR","ITEM_STRING_COLOR","ITEM_STRING_EXPANDED_COLOR","colorMap","tree","border","padding","marginTop","marginBottom","marginLeft","marginRight","listStyle","MozUserSelect","WebkitUserSelect","backgroundColor","paddingTop","paddingRight","wordWrap","paddingLeft","textIndent","wordBreak","label","display","valueLabel","margin","valueText","itemRange","cursor","arrow","transition","WebkitTransition","MozTransition","WebkitTransform","MozTransform","transform","transformOrigin","WebkitTransformOrigin","MozTransformOrigin","position","lineHeight","fontSize","arrowContainer","arrowSign","arrowSignInner","top","left","nestedNode","rootNode","nestedNodeLabel","nestedNodeItemString","nestedNodeItemType","nestedNodeChildren","rootNodeChildren","getLength","collection","isIterableMap","set","getEntries","res","entries","idx","done","isMap","item","getRanges","ranges","getEntriesBound","bind","limitedEntries","isSubset","identity","deprecatedStylingMethodsMap","getArrowStyle","getListStyle","getItemStringStyle","getLabelStyle","getValueStyle","deprecatedStylingMethods","console","error","checkLegacyTheming","invertTheme","JSONTree","itemType","itemString","iterator","constructor","isArrayish","results","arg","wrap","getOwnPropertyDescriptor"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4658.090d4a9.js b/_static/build/4658.090d4a9.js new file mode 100644 index 0000000..cc5827b --- /dev/null +++ b/_static/build/4658.090d4a9.js @@ -0,0 +1,3 @@ +/*! For license information please see 4658.090d4a9.js.LICENSE.txt */ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4658],{11527:e=>{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},62033:e=>{e.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},84658:(e,r,t)=>{"use strict";var a=t(97776),s=t(32464),o=t(1837),i=t(30859),n=t(38377),l=t(17398),c=t(95157),u=t(55026),h=t(16626);e.exports=y,y.prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);return!0!==t.$async&&(this.errors=t.errors),s},y.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},y.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var o=0;o{"use strict";var r=e.exports=function(){this._cache={}};r.prototype.put=function(e,r){this._cache[e]=r},r.prototype.get=function(e){return this._cache[e]},r.prototype.del=function(e){delete this._cache[e]},r.prototype.clear=function(){this._cache={}}},2680:(e,r,t)=>{"use strict";var a=t(88270).MissingRef;e.exports=function e(r,t,s){var o=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof t&&(s=t,t=void 0);var i=n(r).then((function(){var e=o._addSchema(r,void 0,t);return e.validate||l(e)}));return s&&i.then((function(e){s(null,e)}),s),i;function n(r){var t=r.$schema;return t&&!o.getSchema(t)?e.call(o,{$ref:t},!0):Promise.resolve()}function l(e){try{return o._compile(e)}catch(r){if(r instanceof a)return function(r){var a=r.missingSchema;if(c(a))throw new Error("Schema "+a+" is loaded but "+r.missingRef+" cannot be resolved");var s=o._loadingSchemas[a];return s||(s=o._loadingSchemas[a]=o._opts.loadSchema(a)).then(i,i),s.then((function(e){if(!c(a))return n(e).then((function(){c(a)||o.addSchema(e,a,void 0,t)}))})).then((function(){return l(e)}));function i(){delete o._loadingSchemas[a]}function c(e){return o._refs[e]||o._schemas[e]}}(r);throw r}}}},88270:(e,r,t)=>{"use strict";var a=t(32464);function s(e,r,t){this.message=t||s.message(e,r),this.missingRef=a.url(e,r),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function o(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}e.exports={Validation:o((function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0})),MissingRef:o(s)},s.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},17398:(e,r,t)=>{"use strict";var a=t(16626),s=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,o=[0,31,28,31,30,31,30,31,31,30,31,30,31],i=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,n=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,l=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,f=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return e="full"==e?"full":"fast",a.copy(m[e])}function v(e){var r=e.match(s);if(!r)return!1;var t=+r[1],a=+r[2],i=+r[3];return a>=1&&a<=12&&i>=1&&i<=(2==a&&function(e){return e%4==0&&(e%100!=0||e%400==0)}(t)?29:o[a])}function y(e,r){var t=e.match(i);if(!t)return!1;var a=t[1],s=t[2],o=t[3],n=t[5];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||n)}e.exports=m,m.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f},m.full={date:v,time:y,"date-time":function(e){var r=e.split(g);return 2==r.length&&v(r[0])&&y(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":f};var g=/t|\s/i,P=/\/|:/,E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},97776:(e,r,t)=>{"use strict";var a=t(32464),s=t(16626),o=t(88270),i=t(38377),n=t(87176),l=s.ucs2length,c=t(64351),u=o.Validation;function h(e,r,t){var a=p.call(this,e,r,t);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:e,root:r,baseId:t},{index:a,compiling:!1})}function d(e,r,t){var a=p.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}function p(e,r,t){for(var a=0;a{"use strict";var a=t(80782),s=t(64351),o=t(16626),i=t(30859),n=t(9125);function l(e,r,t){var a=this._refs[t];if("string"==typeof a){if(!this._refs[a])return l.call(this,e,r,a);a=this._refs[a]}if((a=a||this._schemas[t])instanceof i)return f(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var s,o,n,u=c.call(this,r,t);return u&&(s=u.schema,r=u.root,n=u.baseId),s instanceof i?o=s.validate||e.call(this,s.schema,r,void 0,n):void 0!==s&&(o=f(s,this._opts.inlineRefs)?s:e.call(this,s,r,void 0,n)),o}function c(e,r){var t=a.parse(r),s=g(t),o=y(this._getId(e.schema));if(0===Object.keys(e.schema).length||s!==o){var n=E(s),l=this._refs[n];if("string"==typeof l)return u.call(this,e,l,t);if(l instanceof i)l.validate||this._compile(l),e=l;else{if(!((l=this._schemas[n])instanceof i))return;if(l.validate||this._compile(l),n==E(r))return{schema:l,root:e,baseId:o};e=l}if(!e.schema)return;o=y(this._getId(e.schema))}return d.call(this,t,o,e.schema,e)}function u(e,r,t){var a=c.call(this,e,r);if(a){var s=a.schema,o=a.baseId;e=a.root;var i=this._getId(s);return i&&(o=w(o,i)),d.call(this,t,o,s,e)}}e.exports=l,l.normalizeId=E,l.fullPath=y,l.url=w,l.ids=function(e){var r=E(this._getId(e)),t={"":r},i={"":y(r,!1)},l={},c=this;return n(e,{allKeys:!0},(function(e,r,n,u,h,d,p){if(""!==r){var f=c._getId(e),m=t[u],v=i[u]+"/"+h;if(void 0!==p&&(v+="/"+("number"==typeof p?p:o.escapeFragment(p))),"string"==typeof f){f=m=E(m?a.resolve(m,f):f);var y=c._refs[f];if("string"==typeof y&&(y=c._refs[y]),y&&y.schema){if(!s(e,y.schema))throw new Error('id "'+f+'" resolves to more than one schema')}else if(f!=E(v))if("#"==f[0]){if(l[f]&&!s(e,l[f]))throw new Error('id "'+f+'" resolves to more than one schema');l[f]=e}else c._refs[f]=v}t[r]=m,i[r]=v}})),l},l.inlineRef=f,l.schema=c;var h=o.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function d(e,r,t,a){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var s=e.fragment.split("/"),i=1;i{"use strict";var a=t(18122),s=t(16626).toHash;e.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],r=["type","$comment"];return e.all=s(r),e.types=s(["number","integer","string","array","object","boolean","null"]),e.forEach((function(t){t.rules=t.rules.map((function(t){var s;if("object"==typeof t){var o=Object.keys(t)[0];s=t[o],t=o,s.forEach((function(t){r.push(t),e.all[t]=!0}))}return r.push(t),e.all[t]={keyword:t,code:a[t],implements:s}})),e.all.$comment={keyword:"$comment",code:a.$comment},t.type&&(e.types[t.type]=t)})),e.keywords=s(r.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),e.custom={},e}},30859:(e,r,t)=>{"use strict";var a=t(16626);e.exports=function(e){a.copy(e,this)}},77968:e=>{"use strict";e.exports=function(e){for(var r,t=0,a=e.length,s=0;s=55296&&r<=56319&&s{"use strict";function a(e,r,t,a){var s=a?" !== ":" === ",o=a?" || ":" && ",i=a?"!":"",n=a?"":"!";switch(e){case"null":return r+s+"null";case"array":return i+"Array.isArray("+r+")";case"object":return"("+i+r+o+"typeof "+r+s+'"object"'+o+n+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+s+'"number"'+o+n+"("+r+" % 1)"+o+r+s+r+(t?o+i+"isFinite("+r+")":"")+")";case"number":return"(typeof "+r+s+'"'+e+'"'+(t?o+i+"isFinite("+r+")":"")+")";default:return"typeof "+r+s+'"'+e+'"'}}e.exports={copy:function(e,r){for(var t in r=r||{},e)r[t]=e[t];return r},checkDataType:a,checkDataTypes:function(e,r,t){if(1===e.length)return a(e[0],r,t,!0);var s="",i=o(e);for(var n in i.array&&i.object&&(s=i.null?"(":"(!"+r+" || ",s+="typeof "+r+' !== "object")',delete i.null,delete i.array,delete i.object),i.number&&delete i.integer,i)s+=(s?" && ":"")+a(n,r,t,!0);return s},coerceToTypes:function(e,r){if(Array.isArray(r)){for(var t=[],a=0;a=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,c=s.split("/"),u=0;u{"use strict";var r=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var a=0;a{"use strict";var a=t(62033);e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},41428:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var p="maximum"==r,f=p?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[f],v=e.opts.$data&&m&&m.$data,y=p?"<":">",g=p?">":"<",P=void 0;if(!d&&"number"!=typeof n&&void 0!==n)throw new Error(r+" must be number");if(!v&&void 0!==m&&"number"!=typeof m&&"boolean"!=typeof m)throw new Error(f+" must be number or boolean");if(v){var E,w=e.util.getData(m.$data,i,e.dataPathArr),b="exclusive"+o,S="exclType"+o,_="exclIsNumber"+o,F="' + "+($="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+w+"; ",s+=" var "+b+"; var "+S+" = typeof "+(w="schemaExcl"+o)+"; if ("+S+" != 'boolean' && "+S+" != 'undefined' && "+S+" != 'number') { ",P=f,(E=E||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+f+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var R=s;s=E.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+S+" == 'number' ? ( ("+b+" = "+a+" === undefined || "+w+" "+y+"= "+a+") ? "+h+" "+g+"= "+w+" : "+h+" "+g+" "+a+" ) : ( ("+b+" = "+w+" === true) ? "+h+" "+g+"= "+a+" : "+h+" "+g+" "+a+" ) || "+h+" !== "+h+") { var op"+o+" = "+b+" ? '"+y+"' : '"+y+"='; ",void 0===n&&(P=f,c=e.errSchemaPath+"/"+f,a=w,d=v)}else if(F=y,(_="number"==typeof m)&&d){var $="'"+F+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+y+"= "+a+" ? "+h+" "+g+"= "+m+" : "+h+" "+g+" "+a+" ) || "+h+" !== "+h+") { "}else _&&void 0===n?(b=!0,P=f,c=e.errSchemaPath+"/"+f,a=m,g+="="):(_&&(a=Math[p?"min":"max"](m,n)),m===(!_||a)?(b=!0,P=f,c=e.errSchemaPath+"/"+f,g+="="):(b=!1,F+="=")),$="'"+F+"'",s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+h+" "+g+" "+a+" || "+h+" !== "+h+") { ";return P=P||r,(E=E||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+$+", limit: "+a+", exclusive: "+b+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+F+" ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ",R=s,s=E.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+R+"]); ":s+=" validate.errors = ["+R+"]; return false; ":s+=" var err = "+R+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}},93747:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+h+".length "+("maxItems"==r?">":"<")+" "+a+") { ";var p=r,f=f||[];f.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(p||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+m+"]); ":s+=" validate.errors = ["+m+"]; return false; ":s+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},12530:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");var p="maxLength"==r?">":"<";s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),!1===e.opts.unicode?s+=" "+h+".length ":s+=" ucs2length("+h+") ",s+=" "+p+" "+a+") { ";var f=r,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var v=s;return s=m.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+v+"]); ":s+=" validate.errors = ["+v+"]; return false; ":s+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},64803:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+h+").length "+("maxProperties"==r?">":"<")+" "+a+") { ";var p=r,f=f||[];f.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(p||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=f.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+m+"]); ":s+=" validate.errors = ["+m+"]; return false; ":s+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},4238:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,n=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var u="valid"+l.level,h=l.baseId,d=!0,p=s;if(p)for(var f,m=-1,v=p.length-1;m0||!1===f:e.util.schemaHasRules(f,e.RULES.all))&&(d=!1,l.schema=f,l.schemaPath=o+"["+m+"]",l.errSchemaPath=i+"/"+m,a+=" "+e.validate(l)+" ",l.baseId=h,n&&(a+=" if ("+u+") { ",c+="}"));return n&&(a+=d?" if (true) { ":" "+c.slice(0,-1)+" "),a}},87893:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e),f="";p.level++;var m="valid"+p.level,v=i.every((function(r){return e.opts.strictKeywords?"object"==typeof r&&Object.keys(r).length>0||!1===r:e.util.schemaHasRules(r,e.RULES.all)}));if(v){var y=p.baseId;a+=" var "+d+" = errors; var "+h+" = false; ";var g=e.compositeRule;e.compositeRule=p.compositeRule=!0;var P=i;if(P)for(var E,w=-1,b=P.length-1;w{"use strict";e.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.errSchemaPath+"/"+r,i=(e.opts.allErrors,e.util.toQuotedString(s));return!0===e.opts.$comment?a+=" console.log("+i+");":"function"==typeof e.opts.$comment&&(a+=" self._opts.$comment("+i+", "+e.util.toQuotedString(o)+", validate.root.schema);"),a}},74956:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; "),d||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+h+" = equal("+u+", schema"+s+"); if (!"+h+") { ";var p=p||[];p.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValue: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var f=a;return a=p.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+f+"]); ":a+=" validate.errors = ["+f+"]; return false; ":a+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},23375:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e);p.level++;var f="valid"+p.level,m="i"+s,v=p.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId,P=e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all);if(a+="var "+d+" = errors;var "+h+";",P){var E=e.compositeRule;e.compositeRule=p.compositeRule=!0,p.schema=i,p.schemaPath=n,p.errSchemaPath=l,a+=" var "+f+" = false; for (var "+m+" = 0; "+m+" < "+u+".length; "+m+"++) { ",p.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var w=u+"["+m+"]";p.dataPathArr[v]=m;var b=e.validate(p);p.baseId=g,e.util.varOccurences(b,y)<2?a+=" "+e.util.varReplace(b,y,w)+" ":a+=" var "+y+" = "+w+"; "+b+" ",a+=" if ("+f+") break; } ",e.compositeRule=p.compositeRule=E,a+=" if (!"+f+") {"}else a+=" if ("+u+".length == 0) {";var S=S||[];S.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should contain a valid item' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var _=a;return a=S.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+_+"]); ":a+=" validate.errors = ["+_+"]; return false; ":a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { ",P&&(a+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(a+=" } "),a}},58378:e=>{"use strict";e.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,d="data"+(n||""),p="valid"+i,f="errs__"+i,m=e.opts.$data&&l&&l.$data;m?(o+=" var schema"+i+" = "+e.util.getData(l.$data,n,e.dataPathArr)+"; ",s="schema"+i):s=l;var v,y,g,P,E,w=this,b="definition"+i,S=w.definition,_="";if(m&&S.$data){E="keywordValidate"+i;var F=S.validateSchema;o+=" var "+b+" = RULES.custom['"+r+"'].definition; var "+E+" = "+b+".validate;"}else{if(!(P=e.useCustomRule(w,l,e.schema,e)))return;s="validate.schema"+c,E=P.code,v=S.compile,y=S.inline,g=S.macro}var R=E+".errors",$="i"+i,x="ruleErr"+i,D=S.async;if(D&&!e.async)throw new Error("async keyword in sync schema");if(y||g||(o+=R+" = null;"),o+="var "+f+" = errors;var "+p+";",m&&S.$data&&(_+="}",o+=" if ("+s+" === undefined) { "+p+" = true; } else { ",F&&(_+="}",o+=" "+p+" = "+b+".validateSchema("+s+"); if ("+p+") { ")),y)S.statements?o+=" "+P.validate+" ":o+=" "+p+" = "+P.validate+"; ";else if(g){var O=e.util.copy(e);_="",O.level++;var j="valid"+O.level;O.schema=P.validate,O.schemaPath="";var I=e.compositeRule;e.compositeRule=O.compositeRule=!0;var A=e.validate(O).replace(/validate\.schema/g,E);e.compositeRule=O.compositeRule=I,o+=" "+A}else{(T=T||[]).push(o),o="",o+=" "+E+".call( ",e.opts.passContext?o+="this":o+="self",v||!1===S.schema?o+=" , "+d+" ":o+=" , "+s+" , "+d+" , validate.schema"+e.schemaPath+" ",o+=" , (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var k=n?"data"+(n-1||""):"parentData",C=n?e.dataPathArr[n]:"parentDataProperty",L=o+=" , "+k+" , "+C+" , rootData ) ";o=T.pop(),!1===S.errors?(o+=" "+p+" = ",D&&(o+="await "),o+=L+"; "):o+=D?" var "+(R="customErrors"+i)+" = null; try { "+p+" = await "+L+"; } catch (e) { "+p+" = false; if (e instanceof ValidationError) "+R+" = e.errors; else throw e; } ":" "+R+" = null; "+p+" = "+L+"; "}if(S.modifying&&(o+=" if ("+k+") "+d+" = "+k+"["+C+"];"),o+=""+_,S.valid)h&&(o+=" if (true) { ");else{var T;o+=" if ( ",void 0===S.valid?(o+=" !",o+=g?""+j:""+p):o+=" "+!S.valid+" ",o+=") { ",a=w.keyword,(T=T||[]).push(o),o="",(T=T||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var z=o;o=T.pop(),!e.compositeRule&&h?e.async?o+=" throw new ValidationError(["+z+"]); ":o+=" validate.errors = ["+z+"]; return false; ":o+=" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";var N=o;o=T.pop(),y?S.errors?"full"!=S.errors&&(o+=" for (var "+$+"="+f+"; "+$+"{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e),p="";d.level++;var f="valid"+d.level,m={},v={},y=e.opts.ownProperties;for(w in i)if("__proto__"!=w){var g=i[w],P=Array.isArray(g)?v:m;P[w]=g}a+="var "+h+" = errors;";var E=e.errorPath;for(var w in a+="var missing"+s+";",v)if((P=v[w]).length){if(a+=" if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),c){a+=" && ( ";var b=P;if(b)for(var S=-1,_=b.length-1;S<_;)O=b[S+=1],S&&(a+=" || "),a+=" ( ( "+(k=u+(A=e.util.getProperty(O)))+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:A)+") ) ";a+=")) { ";var F="missing"+s,R="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,F,!0):E+" + "+F);var $=$||[];$.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+R+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",1==P.length?a+="property "+e.util.escapeQuotes(P[0]):a+="properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var x=a;a=$.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+x+"]); ":a+=" validate.errors = ["+x+"]; return false; ":a+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var D=P;if(D)for(var O,j=-1,I=D.length-1;j0||!1===g:e.util.schemaHasRules(g,e.RULES.all))&&(a+=" "+f+" = true; if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),a+=") { ",d.schema=g,d.schemaPath=n+e.util.getProperty(w),d.errSchemaPath=l+"/"+e.util.escapeFragment(w),a+=" "+e.validate(d)+" ",d.baseId=C,a+=" } ",c&&(a+=" if ("+f+") { ",p+="}"));return c&&(a+=" "+p+" if ("+h+" == errors) {"),a}},13442:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var p="i"+s,f="schema"+s;d||(a+=" var "+f+" = validate.schema"+n+";"),a+="var "+h+";",d&&(a+=" if (schema"+s+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+s+")) "+h+" = false; else {"),a+=h+" = false;for (var "+p+"=0; "+p+"<"+f+".length; "+p+"++) if (equal("+u+", "+f+"["+p+"])) { "+h+" = true; break; }",d&&(a+=" } "),a+=" if (!"+h+") { ";var m=m||[];m.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+v+"]); ":a+=" validate.errors = ["+v+"]; return false; ":a+=" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},50068:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||"");if(!1===e.opts.format)return c&&(a+=" if (true) { "),a;var h,d=e.opts.$data&&i&&i.$data;d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",h="schema"+s):h=i;var p=e.opts.unknownFormats,f=Array.isArray(p);if(d)a+=" var "+(m="format"+s)+" = formats["+h+"]; var "+(v="isObject"+s)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+s)+" = "+v+" && "+m+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if ( ",d&&(a+=" ("+h+" !== undefined && typeof "+h+" != 'string') || "),a+=" (","ignore"!=p&&(a+=" ("+h+" && !"+m+" ",f&&(a+=" && self._opts.unknownFormats.indexOf("+h+") == -1 "),a+=") || "),a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ",e.async?a+=" (async"+s+" ? await "+m+"("+u+") : "+m+"("+u+")) ":a+=" "+m+"("+u+") ",a+=" : "+m+".test("+u+"))))) {";else{var m;if(!(m=e.formats[i])){if("ignore"==p)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(a+=" if (true) { "),a;if(f&&p.indexOf(i)>=0)return c&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y=(v="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(v){var g=!0===m.async;m=m.validate}if(y!=t)return c&&(a+=" if (true) { "),a;if(g){if(!e.async)throw new Error("async format in sync schema");a+=" if (!(await "+(P="formats"+e.util.getProperty(i)+".validate")+"("+u+"))) { "}else{a+=" if (! ";var P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof m?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=d?""+h:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+h+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a;return a=E.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+w+"]); ":a+=" validate.errors = ["+w+"]; return false; ":a+=" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},79195:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e);p.level++;var f="valid"+p.level,m=e.schema.then,v=e.schema.else,y=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&Object.keys(m).length>0||!1===m:e.util.schemaHasRules(m,e.RULES.all)),g=void 0!==v&&(e.opts.strictKeywords?"object"==typeof v&&Object.keys(v).length>0||!1===v:e.util.schemaHasRules(v,e.RULES.all)),P=p.baseId;if(y||g){var E;p.createErrors=!1,p.schema=i,p.schemaPath=n,p.errSchemaPath=l,a+=" var "+d+" = errors; var "+h+" = true; ";var w=e.compositeRule;e.compositeRule=p.compositeRule=!0,a+=" "+e.validate(p)+" ",p.baseId=P,p.createErrors=!0,a+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=p.compositeRule=w,y?(a+=" if ("+f+") { ",p.schema=e.schema.then,p.schemaPath=e.schemaPath+".then",p.errSchemaPath=e.errSchemaPath+"/then",a+=" "+e.validate(p)+" ",p.baseId=P,a+=" "+h+" = "+f+"; ",y&&g?a+=" var "+(E="ifClause"+s)+" = 'then'; ":E="'then'",a+=" } ",g&&(a+=" else { ")):a+=" if (!"+f+") { ",g&&(p.schema=e.schema.else,p.schemaPath=e.schemaPath+".else",p.errSchemaPath=e.errSchemaPath+"/else",a+=" "+e.validate(p)+" ",p.baseId=P,a+=" "+h+" = "+f+"; ",y&&g?a+=" var "+(E="ifClause"+s)+" = 'else'; ":E="'else'",a+=" } "),a+=" if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { failingKeyword: "+E+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match \"' + "+E+" + '\" schema' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; "),a+=" } ",c&&(a+=" else { ")}else c&&(a+=" if (true) { ");return a}},18122:(e,r,t)=>{"use strict";e.exports={$ref:t(43942),allOf:t(4238),anyOf:t(87893),$comment:t(74603),const:t(74956),contains:t(23375),dependencies:t(14018),enum:t(13442),format:t(50068),if:t(79195),items:t(61706),maximum:t(41428),minimum:t(41428),maxItems:t(93747),minItems:t(93747),maxLength:t(12530),minLength:t(12530),maxProperties:t(64803),minProperties:t(64803),multipleOf:t(73907),not:t(8496),oneOf:t(6538),pattern:t(660),properties:t(80142),propertyNames:t(335),required:t(18344),uniqueItems:t(75891),validate:t(87176)}},61706:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e),f="";p.level++;var m="valid"+p.level,v="i"+s,y=p.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+d+" = errors;var "+h+";",Array.isArray(i)){var E=e.schema.additionalItems;if(!1===E){a+=" "+h+" = "+u+".length <= "+i.length+"; ";var w=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+h+") { ";var b=b||[];b.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var S=a;a=b.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+S+"]); ":a+=" validate.errors = ["+S+"]; return false; ":a+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=w,c&&(f+="}",a+=" else { ")}var _=i;if(_)for(var F,R=-1,$=_.length-1;R<$;)if(F=_[R+=1],e.opts.strictKeywords?"object"==typeof F&&Object.keys(F).length>0||!1===F:e.util.schemaHasRules(F,e.RULES.all)){a+=" "+m+" = true; if ("+u+".length > "+R+") { ";var x=u+"["+R+"]";p.schema=F,p.schemaPath=n+"["+R+"]",p.errSchemaPath=l+"/"+R,p.errorPath=e.util.getPathExpr(e.errorPath,R,e.opts.jsonPointers,!0),p.dataPathArr[y]=R;var D=e.validate(p);p.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,x)+" ":a+=" var "+g+" = "+x+"; "+D+" ",a+=" } ",c&&(a+=" if ("+m+") { ",f+="}")}"object"==typeof E&&(e.opts.strictKeywords?"object"==typeof E&&Object.keys(E).length>0||!1===E:e.util.schemaHasRules(E,e.RULES.all))&&(p.schema=E,p.schemaPath=e.schemaPath+".additionalItems",p.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",p.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0),x=u+"["+v+"]",p.dataPathArr[y]=v,D=e.validate(p),p.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,x)+" ":a+=" var "+g+" = "+x+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" } } ",c&&(a+=" if ("+m+") { ",f+="}"))}else(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all))&&(p.schema=i,p.schemaPath=n,p.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",p.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0),x=u+"["+v+"]",p.dataPathArr[y]=v,D=e.validate(p),p.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,x)+" ":a+=" var "+g+" = "+x+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" }");return c&&(a+=" "+f+" if ("+d+" == errors) {"),a}},73907:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,!d&&"number"!=typeof n)throw new Error(r+" must be number");s+="var division"+o+";if (",d&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+h+" / "+a+", ",e.opts.multipleOfPrecision?s+=" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":s+=" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",d&&(s+=" ) "),s+=" ) { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be multiple of ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var f=s;return s=p.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},8496:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var p="valid"+d.level;if(e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+h+" = errors; ";var f,m=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.opts.allErrors&&(f=d.opts.allErrors,d.opts.allErrors=!1),a+=" "+e.validate(d)+" ",d.createErrors=!0,f&&(d.opts.allErrors=f),e.compositeRule=d.compositeRule=m,a+=" if ("+p+") { ";var v=v||[];v.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var y=a;a=v.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+y+"]); ":a+=" validate.errors = ["+y+"]; return false; ":a+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},6538:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,p=e.util.copy(e),f="";p.level++;var m="valid"+p.level,v=p.baseId,y="prevValid"+s,g="passingSchemas"+s;a+="var "+d+" = errors , "+y+" = false , "+h+" = false , "+g+" = null; ";var P=e.compositeRule;e.compositeRule=p.compositeRule=!0;var E=i;if(E)for(var w,b=-1,S=E.length-1;b0||!1===w:e.util.schemaHasRules(w,e.RULES.all))?(p.schema=w,p.schemaPath=n+"["+b+"]",p.errSchemaPath=l+"/"+b,a+=" "+e.validate(p)+" ",p.baseId=v):a+=" var "+m+" = true; ",b&&(a+=" if ("+m+" && "+y+") { "+h+" = false; "+g+" = ["+g+", "+b+"]; } else { ",f+="}"),a+=" if ("+m+") { "+h+" = "+y+" = true; "+g+" = "+b+"; }";return e.compositeRule=p.compositeRule=P,a+=f+"if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { passingSchemas: "+g+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(e.async?a+=" throw new ValidationError(vErrors); ":a+=" validate.errors = vErrors; return false; "),a+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},660:e=>{"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || "),s+=" !"+(d?"(new RegExp("+a+"))":e.usePattern(n))+".test("+h+") ) { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",s+=d?""+a:""+e.util.toQuotedString(n),s+=" } ",!1!==e.opts.messages&&(s+=" , message: 'should match pattern \"",s+=d?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+e.util.toQuotedString(n),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var f=s;return s=p.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+f+"]); ":s+=" validate.errors = ["+f+"]; return false; ":s+=" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},80142:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e),p="";d.level++;var f="valid"+d.level,m="key"+s,v="idx"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P="dataProperties"+s,E=Object.keys(i||{}).filter(A),w=e.schema.patternProperties||{},b=Object.keys(w).filter(A),S=e.schema.additionalProperties,_=E.length||b.length,F=!1===S,R="object"==typeof S&&Object.keys(S).length,$=e.opts.removeAdditional,x=F||R||$,D=e.opts.ownProperties,O=e.baseId,j=e.schema.required;if(j&&(!e.opts.$data||!j.$data)&&j.length8)a+=" || validate.schema"+n+".hasOwnProperty("+m+") ";else{var k=E;if(k)for(var C=-1,L=k.length-1;C0||!1===W:e.util.schemaHasRules(W,e.RULES.all)){var X=e.util.getProperty(Z),ee=(M=u+X,B&&void 0!==W.default);if(d.schema=W,d.schemaPath=n+X,d.errSchemaPath=l+"/"+e.util.escapeFragment(Z),d.errorPath=e.util.getPath(e.errorPath,Z,e.opts.jsonPointers),d.dataPathArr[y]=e.util.toQuotedString(Z),K=e.validate(d),d.baseId=O,e.util.varOccurences(K,g)<2){K=e.util.varReplace(K,g,M);var re=M}else re=g,a+=" var "+g+" = "+M+"; ";if(ee)a+=" "+K+" ";else{if(I&&I[Z]){a+=" if ( "+re+" === undefined ",D&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Z)+"') "),a+=") { "+f+" = false; ",q=e.errorPath,V=l;var te,ae=e.util.escapeQuotes(Z);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(q,Z,e.opts.jsonPointers)),l=e.errSchemaPath+"/required",(te=te||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+ae+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is a required property":a+="should have required property \\'"+ae+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",U=a,a=te.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+U+"]); ":a+=" validate.errors = ["+U+"]; return false; ":a+=" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=V,e.errorPath=q,a+=" } else { "}else c?(a+=" if ( "+re+" === undefined ",D&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Z)+"') "),a+=") { "+f+" = true; } else { "):(a+=" if ("+re+" !== undefined ",D&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(Z)+"') "),a+=" ) { ");a+=" "+K+" } "}}c&&(a+=" if ("+f+") { ",p+="}")}}if(b.length){var se=b;if(se)for(var oe,ie=-1,ne=se.length-1;ie0||!1===W:e.util.schemaHasRules(W,e.RULES.all))&&(d.schema=W,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(oe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(oe),a+=D?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+v+"=0; "+v+"<"+P+".length; "+v+"++) { var "+m+" = "+P+"["+v+"]; ":" for (var "+m+" in "+u+") { ",a+=" if ("+e.usePattern(oe)+".test("+m+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers),M=u+"["+m+"]",d.dataPathArr[y]=m,K=e.validate(d),d.baseId=O,e.util.varOccurences(K,g)<2?a+=" "+e.util.varReplace(K,g,M)+" ":a+=" var "+g+" = "+M+"; "+K+" ",c&&(a+=" if (!"+f+") break; "),a+=" } ",c&&(a+=" else "+f+" = true; "),a+=" } ",c&&(a+=" if ("+f+") { ",p+="}"))}return c&&(a+=" "+p+" if ("+h+" == errors) {"),a}},335:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var p="valid"+d.level;if(a+="var "+h+" = errors;",e.opts.strictKeywords?"object"==typeof i&&Object.keys(i).length>0||!1===i:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l;var f="key"+s,m="idx"+s,v="i"+s,y="' + "+f+" + '",g="data"+(d.dataLevel=e.dataLevel+1),P="dataProperties"+s,E=e.opts.ownProperties,w=e.baseId;E&&(a+=" var "+P+" = undefined; "),a+=E?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+P+".length; "+m+"++) { var "+f+" = "+P+"["+m+"]; ":" for (var "+f+" in "+u+") { ",a+=" var startErrs"+s+" = errors; ";var b=f,S=e.compositeRule;e.compositeRule=d.compositeRule=!0;var _=e.validate(d);d.baseId=w,e.util.varOccurences(_,g)<2?a+=" "+e.util.varReplace(_,g,b)+" ":a+=" var "+g+" = "+b+"; "+_+" ",e.compositeRule=d.compositeRule=S,a+=" if (!"+p+") { for (var "+v+"=startErrs"+s+"; "+v+"{"use strict";e.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(n||""),d="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=!0===e.root.schema.$async,s="root.refVal[0]");else{var p=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===p){var f=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){e.logger.error(f),(g=g||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),o+=" } "):o+=" {} ";var m=o;o=g.pop(),!e.compositeRule&&u?e.async?o+=" throw new ValidationError(["+m+"]); ":o+=" validate.errors = ["+m+"]; return false; ":o+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",u&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,f);e.logger.warn(f),u&&(o+=" if (true) { ")}}else if(p.inline){var v=e.util.copy(e);v.level++;var y="valid"+v.level;v.schema=p.schema,v.schemaPath="",v.errSchemaPath=l,o+=" "+e.validate(v).replace(/validate\.schema/g,p.code)+" ",u&&(o+=" if ("+y+") { ")}else a=!0===p.$async||e.async&&!1!==p.$async,s=p.code}if(s){var g;(g=g||[]).push(o),o="",e.opts.passContext?o+=" "+s+".call(this, ":o+=" "+s+"( ",o+=" "+h+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var P=o+=" , "+(n?"data"+(n-1||""):"parentData")+" , "+(n?e.dataPathArr[n]:"parentDataProperty")+", rootData) ";if(o=g.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(o+=" var "+d+"; "),o+=" try { await "+P+"; ",u&&(o+=" "+d+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(o+=" "+d+" = false; "),o+=" } ",u&&(o+=" if ("+d+") { ")}else o+=" if (!"+P+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",u&&(o+=" else { ")}return o}},18344:e=>{"use strict";e.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var p="schema"+s;if(!d)if(i.length0||!1===P:e.util.schemaHasRules(P,e.RULES.all))||(f[f.length]=v)}}else f=i;if(d||f.length){var E=e.errorPath,w=d||f.length>=e.opts.loopRequired,b=e.opts.ownProperties;if(c)if(a+=" var missing"+s+"; ",w){d||(a+=" var "+p+" = validate.schema"+n+"; ");var S="' + "+(D="schema"+s+"["+($="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,D,e.opts.jsonPointers)),a+=" var "+h+" = true; ",d&&(a+=" if (schema"+s+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+s+")) "+h+" = false; else {"),a+=" for (var "+$+" = 0; "+$+" < "+p+".length; "+$+"++) { "+h+" = "+u+"["+p+"["+$+"]] !== undefined ",b&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", "+p+"["+$+"]) "),a+="; if (!"+h+") break; } ",d&&(a+=" } "),a+=" if (!"+h+") { ",(F=F||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",e.opts._errorDataPathProperty?a+="is a required property":a+="should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var _=a;a=F.pop(),!e.compositeRule&&c?e.async?a+=" throw new ValidationError(["+_+"]); ":a+=" validate.errors = ["+_+"]; return false; ":a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var F,R=f;if(R)for(var $=-1,x=R.length-1;${"use strict";e.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d="valid"+o,p=e.opts.$data&&n&&n.$data;if(p?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,(n||p)&&!1!==e.opts.uniqueItems){p&&(s+=" var "+d+"; if ("+a+" === false || "+a+" === undefined) "+d+" = true; else if (typeof "+a+" != 'boolean') "+d+" = false; else { "),s+=" var i = "+h+".length , "+d+" = true , j; if (i > 1) { ";var f=e.schema.items&&e.schema.items.type,m=Array.isArray(f);if(!f||"object"==f||"array"==f||m&&(f.indexOf("object")>=0||f.indexOf("array")>=0))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+d+" = false; break outer; } } } ";else{s+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ";var v="checkDataType"+(m?"s":"");s+=" if ("+e.util[v](f,"item",e.opts.strictNumbers,!0)+") continue; ",m&&(s+=" if (typeof item == 'string') item = '\"' + item; "),s+=" if (typeof itemIndices[item] == 'number') { "+d+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}s+=" } ",p&&(s+=" } "),s+=" if (!"+d+") { ";var y=y||[];y.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=p?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var g=s;s=y.pop(),!e.compositeRule&&u?e.async?s+=" throw new ValidationError(["+g+"]); ":s+=" validate.errors = ["+g+"]; return false; ":s+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}},87176:e=>{"use strict";e.exports=function(e,r,t){var a="",s=!0===e.schema.$async,o=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),i=e.self._getId(e.schema);if(e.opts.strictKeywords){var n=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(n){var l="unknown keyword: "+n;if("log"!==e.opts.strictKeywords)throw new Error(l);e.logger.warn(l)}}if(e.isTop&&(a+=" var validate = ",s&&(e.async=!0,a+="async "),a+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",i&&(e.opts.sourceCode||e.opts.processCode)&&(a+=" /*# sourceURL="+i+" */ ")),"boolean"==typeof e.schema||!o&&!e.schema.$ref){r="false schema";var c=e.level,u=e.dataLevel,h=e.schema[r],d=e.schemaPath+e.util.getProperty(r),p=e.errSchemaPath+"/"+r,f=!e.opts.allErrors,m="data"+(u||""),v="valid"+c;if(!1===e.schema){e.isTop?f=!0:a+=" var "+v+" = false; ",(M=M||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'boolean schema is false' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+m+" "),a+=" } "):a+=" {} ";var y=a;a=M.pop(),!e.compositeRule&&f?e.async?a+=" throw new ValidationError(["+y+"]); ":a+=" validate.errors = ["+y+"]; return false; ":a+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else e.isTop?a+=s?" return data; ":" validate.errors = null; return true; ":a+=" var "+v+" = true; ";return e.isTop&&(a+=" }; return validate; "),a}if(e.isTop){var g=e.isTop;if(c=e.level=0,u=e.dataLevel=0,m="data",e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[""],void 0!==e.schema.default&&e.opts.useDefaults&&e.opts.strictDefaults){var P="default is ignored in the schema root";if("log"!==e.opts.strictDefaults)throw new Error(P);e.logger.warn(P)}a+=" var vErrors = null; ",a+=" var errors = 0; ",a+=" if (rootData === undefined) rootData = data; "}else{if(c=e.level,m="data"+((u=e.dataLevel)||""),i&&(e.baseId=e.resolve.url(e.baseId,i)),s&&!e.async)throw new Error("async schema in sync schema");a+=" var errs_"+c+" = errors;"}v="valid"+c,f=!e.opts.allErrors;var E="",w="",b=e.schema.type,S=Array.isArray(b);if(b&&e.opts.nullable&&!0===e.schema.nullable&&(S?-1==b.indexOf("null")&&(b=b.concat("null")):"null"!=b&&(b=[b,"null"],S=!0)),S&&1==b.length&&(b=b[0],S=!1),e.schema.$ref&&o){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');!0!==e.opts.extendRefs&&(o=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(e.schema.$comment&&e.opts.$comment&&(a+=" "+e.RULES.all.$comment.code(e,"$comment")),b){if(e.opts.coerceTypes)var _=e.util.coerceToTypes(e.opts.coerceTypes,b);var F=e.RULES.types[b];if(_||S||!0===F||F&&!G(F)){d=e.schemaPath+".type",p=e.errSchemaPath+"/type",d=e.schemaPath+".type",p=e.errSchemaPath+"/type";var R=S?"checkDataTypes":"checkDataType";if(a+=" if ("+e.util[R](b,m,e.opts.strictNumbers,!0)+") { ",_){var $="dataType"+c,x="coerced"+c;a+=" var "+$+" = typeof "+m+"; var "+x+" = undefined; ","array"==e.opts.coerceTypes&&(a+=" if ("+$+" == 'object' && Array.isArray("+m+") && "+m+".length == 1) { "+m+" = "+m+"[0]; "+$+" = typeof "+m+"; if ("+e.util.checkDataType(e.schema.type,m,e.opts.strictNumbers)+") "+x+" = "+m+"; } "),a+=" if ("+x+" !== undefined) ; ";var D=_;if(D)for(var O,j=-1,I=D.length-1;j{"use strict";var a=/^[a-z_$][a-z0-9_$-]*$/i,s=t(58378),o=t(61245);e.exports={add:function(e,r){var t=this.RULES;if(t.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!a.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){this.validateKeyword(r,!0);var o=r.type;if(Array.isArray(o))for(var i=0;i{"use strict";e.exports=function e(r,t){if(r===t)return!0;if(r&&t&&"object"==typeof r&&"object"==typeof t){if(r.constructor!==t.constructor)return!1;var a,s,o;if(Array.isArray(r)){if((a=r.length)!=t.length)return!1;for(s=a;0!=s--;)if(!e(r[s],t[s]))return!1;return!0}if(r.constructor===RegExp)return r.source===t.source&&r.flags===t.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===t.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===t.toString();if((a=(o=Object.keys(r)).length)!==Object.keys(t).length)return!1;for(s=a;0!=s--;)if(!Object.prototype.hasOwnProperty.call(t,o[s]))return!1;for(s=a;0!=s--;){var i=o[s];if(!e(r[i],t[i]))return!1}return!0}return r!=r&&t!=t}},38377:e=>{"use strict";e.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t,a="boolean"==typeof r.cycles&&r.cycles,s=r.cmp&&(t=r.cmp,function(e){return function(r,a){var s={key:r,value:e[r]},o={key:a,value:e[a]};return t(s,o)}}),o=[];return function e(r){if(r&&r.toJSON&&"function"==typeof r.toJSON&&(r=r.toJSON()),void 0!==r){if("number"==typeof r)return isFinite(r)?""+r:"null";if("object"!=typeof r)return JSON.stringify(r);var t,i;if(Array.isArray(r)){for(i="[",t=0;t{"use strict";var r=e.exports=function(e,r,a){"function"==typeof r&&(a=r,r={}),t(r,"function"==typeof(a=r.cb||a)?a:a.pre||function(){},a.post||function(){},e,"",e)};function t(e,a,s,o,i,n,l,c,u,h){if(o&&"object"==typeof o&&!Array.isArray(o)){for(var d in a(o,i,n,l,c,u,h),o){var p=o[d];if(Array.isArray(p)){if(d in r.arrayKeywords)for(var f=0;f1){r[0]=r[0].slice(0,-1);for(var a=r.length-1,s=1;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,v=String.fromCharCode;function y(e){throw new RangeError(f[e])}function g(e,r){var t=e.split("@"),a="";return t.length>1&&(a=t[0]+"@",e=t[1]),a+function(e,r){for(var t=[],a=e.length;a--;)t[a]=r(e[a]);return t}((e=e.replace(p,".")).split("."),r).join(".")}function P(e){for(var r=[],t=0,a=e.length;t=55296&&s<=56319&&t>1,e+=m(e/r);e>455;a+=u)e=m(e/35);return m(a+36*e/(e+38))},b=function(e){var r,t=[],a=e.length,s=0,o=128,i=72,n=e.lastIndexOf("-");n<0&&(n=0);for(var l=0;l=128&&y("not-basic"),t.push(e.charCodeAt(l));for(var h=n>0?n+1:0;h=a&&y("invalid-input");var v=(r=e.charCodeAt(h++))-48<10?r-22:r-65<26?r-65:r-97<26?r-97:u;(v>=u||v>m((c-s)/p))&&y("overflow"),s+=v*p;var g=f<=i?1:f>=i+26?26:f-i;if(vm(c/P)&&y("overflow"),p*=P}var E=t.length+1;i=w(s-d,E,0==d),m(s/E)>c-o&&y("overflow"),o+=m(s/E),s%=E,t.splice(s++,0,o)}return String.fromCodePoint.apply(String,t)},S=function(e){var r=[],t=(e=P(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var h,d=e[Symbol.iterator]();!(i=(h=d.next()).done);i=!0){var p=h.value;p<128&&r.push(v(p))}}catch(e){n=!0,l=e}finally{try{!i&&d.return&&d.return()}finally{if(n)throw l}}var f=r.length,g=f;for(f&&r.push("-");g=a&&xm((c-s)/D)&&y("overflow"),s+=(b-a)*D,a=b;var O=!0,j=!1,I=void 0;try{for(var A,k=e[Symbol.iterator]();!(O=(A=k.next()).done);O=!0){var C=A.value;if(Cc&&y("overflow"),C==a){for(var L=s,T=u;;T+=u){var z=T<=o?1:T>=o+26?26:T-o;if(L>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function x(e){for(var r="",t=0,a=e.length;t=194&&s<224){if(a-t>=6){var o=parseInt(e.substr(t+4,2),16);r+=String.fromCharCode((31&s)<<6|63&o)}else r+=e.substr(t,6);t+=6}else if(s>=224){if(a-t>=9){var i=parseInt(e.substr(t+4,2),16),n=parseInt(e.substr(t+7,2),16);r+=String.fromCharCode((15&s)<<12|(63&i)<<6|63&n)}else r+=e.substr(t,9);t+=9}else r+=e.substr(t,3),t+=3}return r}function D(e,r){function t(e){var t=x(e);return t.match(r.UNRESERVED)?t:e}return e.scheme&&(e.scheme=String(e.scheme).replace(r.PCT_ENCODED,t).toLowerCase().replace(r.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(r.PCT_ENCODED,t).replace(r.NOT_USERINFO,$).replace(r.PCT_ENCODED,s)),void 0!==e.host&&(e.host=String(e.host).replace(r.PCT_ENCODED,t).toLowerCase().replace(r.NOT_HOST,$).replace(r.PCT_ENCODED,s)),void 0!==e.path&&(e.path=String(e.path).replace(r.PCT_ENCODED,t).replace(e.scheme?r.NOT_PATH:r.NOT_PATH_NOSCHEME,$).replace(r.PCT_ENCODED,s)),void 0!==e.query&&(e.query=String(e.query).replace(r.PCT_ENCODED,t).replace(r.NOT_QUERY,$).replace(r.PCT_ENCODED,s)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(r.PCT_ENCODED,t).replace(r.NOT_FRAGMENT,$).replace(r.PCT_ENCODED,s)),e}function O(e){return e.replace(/^0*(.*)/,"$1")||"0"}function j(e,r){var t=e.match(r.IPV4ADDRESS)||[],a=l(t,2)[1];return a?a.split(".").map(O).join("."):e}function I(e,r){var t=e.match(r.IPV6ADDRESS)||[],a=l(t,3),s=a[1],o=a[2];if(s){for(var i=s.toLowerCase().split("::").reverse(),n=l(i,2),c=n[0],u=n[1],h=u?u.split(":").map(O):[],d=c.split(":").map(O),p=r.IPV4ADDRESS.test(d[d.length-1]),f=p?7:8,m=d.length-f,v=Array(f),y=0;y1){var E=v.slice(0,g.index),w=v.slice(g.index+g.length);P=E.join(":")+"::"+w.join(":")}else P=v.join(":");return o&&(P+="%"+o),P}return e}var A=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,k=void 0==="".match(/(){0}/)[1];function C(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={},a=!1!==r.iri?n:i;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var s=e.match(A);if(s){k?(t.scheme=s[1],t.userinfo=s[3],t.host=s[4],t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=s[7],t.fragment=s[8],isNaN(t.port)&&(t.port=s[5])):(t.scheme=s[1]||void 0,t.userinfo=-1!==e.indexOf("@")?s[3]:void 0,t.host=-1!==e.indexOf("//")?s[4]:void 0,t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=-1!==e.indexOf("?")?s[7]:void 0,t.fragment=-1!==e.indexOf("#")?s[8]:void 0,isNaN(t.port)&&(t.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:void 0)),t.host&&(t.host=I(j(t.host,a),a)),void 0!==t.scheme||void 0!==t.userinfo||void 0!==t.host||void 0!==t.port||t.path||void 0!==t.query?void 0===t.scheme?t.reference="relative":void 0===t.fragment?t.reference="absolute":t.reference="uri":t.reference="same-document",r.reference&&"suffix"!==r.reference&&r.reference!==t.reference&&(t.error=t.error||"URI is not a "+r.reference+" reference.");var o=R[(r.scheme||t.scheme||"").toLowerCase()];if(r.unicodeSupport||o&&o.unicodeSupport)D(t,a);else{if(t.host&&(r.domainHost||o&&o.domainHost))try{t.host=_(t.host.replace(a.PCT_ENCODED,x).toLowerCase())}catch(e){t.error=t.error||"Host's domain name can not be converted to ASCII via punycode: "+e}D(t,i)}o&&o.parse&&o.parse(t,r)}else t.error=t.error||"URI can not be parsed.";return t}function L(e,r){var t=!1!==r.iri?n:i,a=[];return void 0!==e.userinfo&&(a.push(e.userinfo),a.push("@")),void 0!==e.host&&a.push(I(j(String(e.host),t),t).replace(t.IPV6ADDRESS,(function(e,r,t){return"["+r+(t?"%25"+t:"")+"]"}))),"number"!=typeof e.port&&"string"!=typeof e.port||(a.push(":"),a.push(String(e.port))),a.length?a.join(""):void 0}var T=/^\.\.?\//,z=/^\/\.(\/|$)/,N=/^\/\.\.(\/|$)/,q=/^\/?(?:.|\n)*?(?=\/|$)/;function Q(e){for(var r=[];e.length;)if(e.match(T))e=e.replace(T,"");else if(e.match(z))e=e.replace(z,"/");else if(e.match(N))e=e.replace(N,"/"),r.pop();else if("."===e||".."===e)e="";else{var t=e.match(q);if(!t)throw new Error("Unexpected dot segment condition");var a=t[0];e=e.slice(a.length),r.push(a)}return r.join("")}function V(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=r.iri?n:i,a=[],s=R[(r.scheme||e.scheme||"").toLowerCase()];if(s&&s.serialize&&s.serialize(e,r),e.host)if(t.IPV6ADDRESS.test(e.host));else if(r.domainHost||s&&s.domainHost)try{e.host=r.iri?F(e.host):_(e.host.replace(t.PCT_ENCODED,x).toLowerCase())}catch(t){e.error=e.error||"Host's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+t}D(e,t),"suffix"!==r.reference&&e.scheme&&(a.push(e.scheme),a.push(":"));var o=L(e,r);if(void 0!==o&&("suffix"!==r.reference&&a.push("//"),a.push(o),e.path&&"/"!==e.path.charAt(0)&&a.push("/")),void 0!==e.path){var l=e.path;r.absolutePath||s&&s.absolutePath||(l=Q(l)),void 0===o&&(l=l.replace(/^\/\//,"/%2F")),a.push(l)}return void 0!==e.query&&(a.push("?"),a.push(e.query)),void 0!==e.fragment&&(a.push("#"),a.push(e.fragment)),a.join("")}function U(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a={};return arguments[3]||(e=C(V(e,t),t),r=C(V(r,t),t)),!(t=t||{}).tolerant&&r.scheme?(a.scheme=r.scheme,a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=Q(r.path||""),a.query=r.query):(void 0!==r.userinfo||void 0!==r.host||void 0!==r.port?(a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=Q(r.path||""),a.query=r.query):(r.path?("/"===r.path.charAt(0)?a.path=Q(r.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:a.path=r.path:a.path="/"+r.path,a.path=Q(a.path)),a.query=r.query):(a.path=e.path,void 0!==r.query?a.query=r.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=r.fragment,a}function H(e,r){return e&&e.toString().replace(r&&r.iri?n.PCT_ENCODED:i.PCT_ENCODED,x)}var M={scheme:"http",domainHost:!0,parse:function(e,r){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,r){var t="https"===String(e.scheme).toLowerCase();return e.port!==(t?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},K={scheme:"https",domainHost:M.domainHost,parse:M.parse,serialize:M.serialize};function B(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}var J={scheme:"ws",domainHost:!0,parse:function(e,r){var t=e;return t.secure=B(t),t.resourceName=(t.path||"/")+(t.query?"?"+t.query:""),t.path=void 0,t.query=void 0,t},serialize:function(e,r){if(e.port!==(B(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){var t=e.resourceName.split("?"),a=l(t,2),s=a[0],o=a[1];e.path=s&&"/"!==s?s:void 0,e.query=o,e.resourceName=void 0}return e.fragment=void 0,e}},Z={scheme:"wss",domainHost:J.domainHost,parse:J.parse,serialize:J.serialize},Y={},G="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",W="[0-9A-Fa-f]",X=t(t("%[EFef]"+W+"%"+W+W+"%"+W+W)+"|"+t("%[89A-Fa-f]"+W+"%"+W+W)+"|"+t("%"+W+W)),ee=r("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),re=new RegExp(G,"g"),te=new RegExp(X,"g"),ae=new RegExp(r("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',ee),"g"),se=new RegExp(r("[^]",G,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),oe=se;function ie(e){var r=x(e);return r.match(re)?r:e}var ne={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + ' 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema);\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + ' 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author
    Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = ((\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n"],"names":["module","exports","compileSchema","resolve","Cache","SchemaObject","stableStringify","formats","rules","$dataMetaSchema","util","Ajv","prototype","validate","schemaKeyRef","data","v","this","getSchema","Error","schemaObj","_addSchema","_compile","valid","$async","errors","compile","schema","_meta","undefined","addSchema","key","_skipValidation","Array","isArray","i","length","id","_getId","checkUnique","normalizeId","_schemas","addMetaSchema","skipValidation","validateSchema","throwOrLogError","$schema","_opts","defaultMeta","self","meta","META_SCHEMA_ID","logger","warn","message","errorsText","error","keyRef","_getSchemaObj","ref","res","call","root","baseId","_fragments","fragment","_getSchemaFragment","removeSchema","RegExp","_removeAllSchemas","_refs","_cache","clear","del","cacheKey","serialize","addFormat","name","format","_formats","options","separator","dataVar","text","e","dataPath","slice","shouldAddSchema","cached","get","addUsedSchema","recursiveMeta","willValidate","localRefs","ids","put","compiling","callValidate","currentOpts","_metaOpts","refs","refVal","_validate","result","apply","arguments","compileAsync","customKeyword","addKeyword","add","getKeyword","removeKeyword","remove","validateKeyword","errorClasses","ValidationError","Validation","MissingRefError","MissingRef","META_IGNORE_OPTIONS","META_SUPPORT_DATA","opts","copy","log","noop","console","setLogger","cache","_loadingSchemas","_compilations","RULES","schemaId","_get$IdOrId","_get$Id","chooseGetId","loopRequired","Infinity","errorDataPath","_errorDataPathProperty","metaOpts","getMetaSchemaOptions","addInitialFormats","keywords","keyword","addInitialKeywords","$dataSchema","$data","$id","metaSchema","addDefaultMetaSchema","nullable","type","optsSchemas","schemas","addInitialSchemas","regex","test","value","callback","loadSchema","p","loadMetaSchemaOf","then","_compileAsync","sch","$ref","Promise","missingSchema","added","missingRef","schemaPromise","removePromise","loadMissingSchema","url","fullPath","errorSubclass","Subclass","Object","create","constructor","ajv","validation","DATE","DAYS","TIME","HOSTNAME","URI","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","mode","date","str","matches","match","year","month","day","isLeapYear","time","full","hour","minute","second","timeZone","fast","uri","email","hostname","ipv4","ipv6","uuid","dateTime","split","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","validateGenerator","ucs2length","equal","checkCompiling","index","compIndex","endCompiling","splice","c","patternCode","patterns","toQuotedString","defaultCode","refValCode","customRuleCode","vars","arr","statement","code","patternsHash","defaults","defaultsHash","customRules","compilation","localCompile","cv","sourceCode","source","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","processCode","Function","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","refId","replaceLocalRef","removeLocalRef","inline","regexStr","valueStr","rule","parentSchema","it","deps","definition","dependencies","every","hasOwnProperty","join","macro","traverse","resolveSchema","parse","refPath","_getFullPath","getFullPath","keys","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","baseIds","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","PREVENT_SCOPE_CHANGE","toHash","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","countKeys","item","count","normalize","TRAILING_SLASH_HASH","replace","ruleModules","ALL","all","types","forEach","group","map","implKeywords","k","push","implements","$comment","concat","custom","obj","len","pos","charCodeAt","checkDataType","dataType","strictNumbers","negate","EQUAL","AND","OK","NOT","o","to","checkDataTypes","dataTypes","t","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","varOccurences","varReplace","expr","schemaHasRules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","hash","IDENTIFIER","SINGLE_QUOTE","a","b","KEYWORDS","keywordsJsonPointers","JSON","stringify","j","anyOf","definitions","simpleTypes","statements","not","required","properties","items","modifying","async","const","$keyword","$ruleType","$schemaValue","out","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$$outStack","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","createErrors","messages","verbose","__err","pop","compositeRule","Math","unicode","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","strictKeywords","$valid","$errs","$noEmptySchema","$wasComposite","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","passContext","$parentData","$parentDataProperty","def_callRuleValidate","def_customError","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","arr2","i2","l2","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","indexOf","$formatRef","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","allOf","contains","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","oneOf","pattern","propertyNames","uniqueItems","$additionalItems","additionalItems","$currErrSchemaPath","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$key","$dataProperties","$schemaKeys","filter","notProto","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","useDefaults","arr3","i3","l3","$hasDefault","default","arr4","i4","l4","$invalidName","$refCode","$refVal","$message","missingRefs","__callValidate","$propertySch","$loopRequired","$itemType","$typeIsArray","$method","$refKeywords","$unknownKwd","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","extendRefs","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$type","arr5","i5","l5","$shouldUseRule","impl","$ruleImplementsSomeKeyword","definitionSchema","_addRule","ruleGroup","rg","throwError","_validateKeyword","flags","valueOf","toString","cmp","f","cycles","node","aobj","bobj","seen","toJSON","isFinite","TypeError","seenIndex","sort","cb","_traverse","pre","post","arrayKeywords","propsKeywords","skipKeywords","enum","exclusiveMaximum","exclusiveMinimum","merge","sets","xl","x","subexp","typeOf","shift","toLowerCase","toUpperCase","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","SCHEME$","USERINFO$","UNRESERVED$$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","IPV6ADDRESS$","IP_LITERAL$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","HOST$","REG_NAME$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","QUERY$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","IPRIVATE$$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","maxInt","base","regexPunycode","regexNonASCII","regexSeparators","floor","stringFromCharCode","String","fromCharCode","RangeError","mapDomain","string","fn","ucs2decode","output","counter","extra","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","decode","input","codePoint","inputLength","n","bias","basic","lastIndexOf","oldi","w","baseMinusT","fromCodePoint","encode","currentValue","basicLength","handledCPCount","m","handledCPCountPlusOne","q","qMinusT","punycode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","parseInt","substr","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","UNRESERVED","scheme","PCT_ENCODED","NOT_SCHEME","userinfo","NOT_USERINFO","host","NOT_HOST","path","NOT_PATH","NOT_PATH_NOSCHEME","query","NOT_QUERY","NOT_FRAGMENT","_stripLeadingZeros","_normalizeIPv4","IPV4ADDRESS","address","_normalizeIPv6","IPV6ADDRESS","zone","reverse","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","longestZeroFields","reduce","acc","field","lastLongest","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","iri","IRI_PROTOCOL","URI_PROTOCOL","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","_","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","authority","charAt","absolutePath","resolveComponents","relative","target","tolerant","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","ws","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","subject","body","addr","setInterval","toAddr","atIdx","localPart","domain","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","uuidComponents","https","wss","mailto","urn","baseURI","relativeURI","schemelessOptions","assign","uriA","uriB","ESCAPE"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4665.aa19a41.js b/_static/build/4665.aa19a41.js new file mode 100644 index 0000000..e550937 --- /dev/null +++ b/_static/build/4665.aa19a41.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4665],{94665:(e,t,r)=>{r.d(t,{O:()=>T,g:()=>i});var n=r(26169);const T=new n.Token("@jupyterlab/settingeditor:ISettingEditorTracker"),i=new n.Token("@jupyterlab/settingeditor:IJSONSettingEditorTracker")}}]); +//# sourceMappingURL=4665.aa19a41.js.map \ No newline at end of file diff --git a/_static/build/4665.aa19a41.js.map b/_static/build/4665.aa19a41.js.map new file mode 100644 index 0000000..fbae817 --- /dev/null +++ b/_static/build/4665.aa19a41.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4665.aa19a41.js","mappings":"2KAYO,MAAM,EAAwB,IAAI,QACvC,mDAOW,EAA4B,IAAI,QAC3C,sD","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4668.f65690b.js b/_static/build/4668.f65690b.js new file mode 100644 index 0000000..e900b71 --- /dev/null +++ b/_static/build/4668.f65690b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4668],{64668:(T,U,_)=>{_.r(U)}}]); \ No newline at end of file diff --git a/_static/build/4690.3dd4096.js b/_static/build/4690.3dd4096.js new file mode 100644 index 0000000..f5eff38 --- /dev/null +++ b/_static/build/4690.3dd4096.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4690],{73730:(e,n,t)=>{t.d(n,{Z:()=>s});var o=t(34663),r=t.n(o),a=t(7638),c=t.n(a)()(r());c.push([e.id,".cm-s-ambiance.CodeMirror {\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n box-shadow: none;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ambiance-mobile.css"],names:[],mappings:"AAAA;EACE,wBAAwB;EACxB,qBAAqB;EACrB,gBAAgB;AAClB",sourcesContent:[".cm-s-ambiance.CodeMirror {\n -webkit-box-shadow: none;\n -moz-box-shadow: none;\n box-shadow: none;\n}\n"],sourceRoot:""}]);const s=c},7638:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",o=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),o&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),o&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,o,r,a){"string"==typeof e&&(e=[[null,e,void 0]]);var c={};if(o)for(var s=0;s0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=a),t&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=t):p[2]=t),r&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=r):p[4]="".concat(r)),n.push(p))}},n}},34663:e=>{e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),a="/*# ".concat(r," */"),c=t.sources.map((function(e){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(e," */")}));return[n].concat(c).concat([a]).join("\n")}return[n].join("\n")}},74690:(e,n,t)=>{t.r(n),t.d(n,{default:()=>b});var o=t(1892),r=t.n(o),a=t(95760),c=t.n(a),s=t(38311),i=t.n(s),u=t(58192),p=t.n(u),d=t(38060),l=t.n(d),f=t(54865),m=t.n(f),v=t(73730),h={};h.styleTagTransform=m(),h.setAttributes=p(),h.insert=i().bind(null,"head"),h.domAPI=c(),h.insertStyleElement=l(),r()(v.Z,h);const b=v.Z&&v.Z.locals?v.Z.locals:void 0},1892:e=>{var n=[];function t(e){for(var t=-1,o=0;o{var n={};e.exports=function(e,t){var o=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}},38060:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},58192:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},95760:e=>{e.exports=function(e){var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var o="";t.supports&&(o+="@supports (".concat(t.supports,") {")),t.media&&(o+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(o+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),o+=t.css,r&&(o+="}"),t.media&&(o+="}"),t.supports&&(o+="}");var a=t.sourceMap;a&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(o,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},54865:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}}}]); +//# sourceMappingURL=4690.3dd4096.js.map \ No newline at end of file diff --git a/_static/build/4690.3dd4096.js.map b/_static/build/4690.3dd4096.js.map new file mode 100644 index 0000000..6664f25 --- /dev/null +++ b/_static/build/4690.3dd4096.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4690.3dd4096.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ambiance-mobile.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ambiance-mobile.css?73f4","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-ambiance.CodeMirror {\\n -webkit-box-shadow: none;\\n -moz-box-shadow: none;\\n box-shadow: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ambiance-mobile.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,wBAAwB;EACxB,qBAAqB;EACrB,gBAAgB;AAClB\",\"sourcesContent\":[\".cm-s-ambiance.CodeMirror {\\n -webkit-box-shadow: none;\\n -moz-box-shadow: none;\\n box-shadow: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ambiance-mobile.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ambiance-mobile.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4715.e7690b9.js b/_static/build/4715.e7690b9.js new file mode 100644 index 0000000..a51e461 --- /dev/null +++ b/_static/build/4715.e7690b9.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4715,1806],{54715:(e,t,n)=>{n.r(t),n.d(t,{STATUSBAR_PLUGIN_ID:()=>g,default:()=>C,kernelStatus:()=>h,lineColItem:()=>b,runningSessionsItem:()=>I});var a=n(67504),s=n(2814),o=n(69041),i=n(6624),r=n(33079),l=n(15786),c=n(16725),d=n(4265),u=n(59674),m=n(72867);const g="@jupyterlab/statusbar-extension:plugin",p={id:g,requires:[d.ITranslator],provides:c.IStatusBar,autoStart:!0,activate:(e,t,n,a,s)=>{const o=t.load("jupyterlab"),i=new c.StatusBar;i.id="jp-main-statusbar",e.shell.add(i,"bottom"),n&&n.layoutModified.connect((()=>{i.update()}));const r=o.__("Main Area"),l="statusbar:toggle";if(e.commands.addCommand(l,{label:o.__("Show Status Bar"),execute:e=>{i.setHidden(i.isVisible),a&&a.set(g,"visible",i.isVisible)},isToggled:()=>i.isVisible}),s&&s.addItem({command:l,category:r}),a){const t=a.load(g),n=e=>{const t=e.get("visible").composite;i.setHidden(!t)};Promise.all([t,e.restored]).then((([e])=>{n(e),e.changed.connect((e=>{n(e)}))})).catch((e=>{console.error(e.message)}))}return i},optional:[a.ILabShell,l.ISettingRegistry,s.ICommandPalette]},h={id:"@jupyterlab/statusbar-extension:kernel-status",autoStart:!0,requires:[c.IStatusBar,r.INotebookTracker,o.IConsoleTracker,a.ILabShell,d.ITranslator],optional:[s.ISessionContextDialogs],activate:(e,t,n,a,o,i,r)=>{let l=null;const d=new c.KernelStatus({onClick:async()=>{l&&await(r||s.sessionContextDialogs).selectKernel(l,i)}},i),u=e=>{d.model.activityName=e.label};o.currentChanged.connect(((e,t)=>{const{oldValue:s,newValue:o}=t;s&&s.title.changed.disconnect(u),o&&o.title.changed.connect(u),l=o&&a.has(o)||o&&n.has(o)?o.sessionContext:null,d.model.sessionContext=l})),t.registerStatusItem("@jupyterlab/statusbar-extension:kernel-status",{item:d,align:"left",rank:1,isActive:()=>{const e=o.currentWidget;return!!e&&(n.has(e)||a.has(e))}})}},b={id:"@jupyterlab/statusbar-extension:line-col-status",autoStart:!0,requires:[c.IStatusBar,r.INotebookTracker,i.IEditorTracker,o.IConsoleTracker,a.ILabShell,d.ITranslator],activate:(e,t,n,a,s,o,i)=>{const r=new c.LineCol(i),l=(e,t)=>{r.model.editor=t&&t.editor},d=(e,t)=>{r.model.editor=t&&t.editor};o.currentChanged.connect(((e,t)=>{const{oldValue:o,newValue:i}=t;if(o&&s.has(o)?o.console.promptCellCreated.disconnect(d):o&&n.has(o)&&o.content.activeCellChanged.disconnect(l),i&&s.has(i)){i.console.promptCellCreated.connect(d);const e=i.console.promptCell;r.model.editor=e&&e.editor}else if(i&&n.has(i)){i.content.activeCellChanged.connect(l);const e=i.content.activeCell;r.model.editor=e&&e.editor}else i&&a.has(i)?r.model.editor=i.content.editor:r.model.editor=null})),t.registerStatusItem("@jupyterlab/statusbar-extension:line-col-status",{item:r,align:"right",rank:2,isActive:()=>{const e=o.currentWidget;return!!e&&(n.has(e)||a.has(e)||s.has(e))}})}},I={id:"@jupyterlab/statusbar-extension:running-sessions-status",autoStart:!0,requires:[c.IStatusBar,d.ITranslator],activate:(e,t,n)=>{const a=new c.RunningSessions({onClick:()=>e.shell.activateById("jp-running-sessions"),serviceManager:e.serviceManager,translator:n});t.registerStatusItem("@jupyterlab/statusbar-extension:running-sessions-status",{item:a,align:"left",rank:0})}},S={id:"@jupyterlab/statusbar-extension:mode-switch",requires:[a.ILabShell,d.ITranslator,c.IStatusBar],optional:[l.ISettingRegistry],activate:(e,t,n,a,s)=>{const o=n.load("jupyterlab"),i=new u.Switch;if(i.id="jp-single-document-mode",i.valueChanged.connect(((e,n)=>{t.mode=n.newValue?"single-document":"multiple-document"})),t.modeChanged.connect(((e,t)=>{i.value="single-document"===t})),s){const n=s.load(g),a=e=>{const n=e.get("startMode").composite;n&&(t.mode="single"===n?"single-document":"multiple-document")};Promise.all([n,e.restored]).then((([e])=>{a(e)})).catch((e=>{console.error(e.message)}))}i.value="single-document"===t.mode;const r=()=>{const t=e.commands.keyBindings.find((e=>"application:toggle-mode"===e.command));if(t){const e=t.keys.map(m.CommandRegistry.formatKeystroke).join(", ");i.caption=o.__("Simple Interface (%1)",e)}else i.caption=o.__("Simple Interface")};r(),e.commands.keyBindingChanged.connect((()=>{r()})),i.label=o.__("Simple"),a.registerStatusItem("@jupyterlab/statusbar-extension:mode-switch",{item:i,align:"left",rank:-1})},autoStart:!0},C=[p,b,h,I,S]}}]); +//# sourceMappingURL=4715.e7690b9.js.map \ No newline at end of file diff --git a/_static/build/4715.e7690b9.js.map b/_static/build/4715.e7690b9.js.map new file mode 100644 index 0000000..150e16f --- /dev/null +++ b/_static/build/4715.e7690b9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4715.e7690b9.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4749.46ebbb2.js b/_static/build/4749.46ebbb2.js new file mode 100644 index 0000000..be6ed22 --- /dev/null +++ b/_static/build/4749.46ebbb2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4749],{63867:(o,c,n)=>{n.d(c,{Z:()=>A});var r=n(34663),s=n.n(r),a=n(7638),e=n.n(a)()(s());e.push([o.id,"/*\n\n Name: shadowfox\n Author: overdodactyl (http://github.com/overdodactyl)\n\n Original shadowfox color scheme by Firefox\n\n*/\n\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\n\n.cm-s-shadowfox span.cm-comment { color: #939393; }\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\n\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\n\n.cm-s-shadowfox span.cm-meta { color: #939393; }\n.cm-s-shadowfox span.cm-hr { color: #939393; }\n\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\n\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\n.cm-s-shadowfox span.cm-link { color: #737373; }\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\n\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/shadowfox.css"],names:[],mappings:"AAAA;;;;;;;CAOC;;AAED,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;AAClE,0CAA0C,mBAAmB,EAAE;AAC/D,6JAA6J,mBAAmB,EAAE;AAClL,4KAA4K,mBAAmB,EAAE;AACjM,sCAAsC,oBAAoB,EAAE,+BAA+B,EAAE;AAC7F,2CAA2C,WAAW,EAAE;AACxD,yCAAyC,cAAc,EAAE;AACzD,qCAAqC,2BAA2B,EAAE;;AAElE,kCAAkC,cAAc,EAAE;AAClD,+BAA+B,cAAc,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,kCAAkC,cAAc,EAAE;AAClD,gCAAgC,cAAc,EAAE;;AAEhD,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;;AAEnD,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;;AAE7C,iCAAiC,cAAc,EAAE;AACjD,oCAAoC,cAAc,EAAE;AACpD,qCAAqC,cAAc,EAAE;;AAErD,mCAAmC,cAAc,EAAE;;AAEnD,8BAA8B,cAAc,EAAE;AAC9C,kCAAkC,cAAc,EAAE;AAClD,8BAA8B,cAAc,EAAE;AAC9C,uCAAuC,cAAc,EAAE;;AAEvD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;AACrD,+BAA+B,cAAc,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,kCAAkC,cAAc,EAAE;;AAElD,oDAAoD,qCAAqC;AACzF,8CAA8C,2CAA2C,EAAE,uBAAuB,EAAE",sourcesContent:["/*\n\n Name: shadowfox\n Author: overdodactyl (http://github.com/overdodactyl)\n\n Original shadowfox color scheme by Firefox\n\n*/\n\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\n\n.cm-s-shadowfox span.cm-comment { color: #939393; }\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\n\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\n\n.cm-s-shadowfox span.cm-meta { color: #939393; }\n.cm-s-shadowfox span.cm-hr { color: #939393; }\n\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\n\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\n\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\n.cm-s-shadowfox span.cm-link { color: #737373; }\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\n\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\n"],sourceRoot:""}]);const A=e},7638:o=>{o.exports=function(o){var c=[];return c.toString=function(){return this.map((function(c){var n="",r=void 0!==c[5];return c[4]&&(n+="@supports (".concat(c[4],") {")),c[2]&&(n+="@media ".concat(c[2]," {")),r&&(n+="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {")),n+=o(c),r&&(n+="}"),c[2]&&(n+="}"),c[4]&&(n+="}"),n})).join("")},c.i=function(o,n,r,s,a){"string"==typeof o&&(o=[[null,o,void 0]]);var e={};if(r)for(var A=0;A0?" ".concat(i[5]):""," {").concat(i[1],"}")),i[5]=a),n&&(i[2]?(i[1]="@media ".concat(i[2]," {").concat(i[1],"}"),i[2]=n):i[2]=n),s&&(i[4]?(i[1]="@supports (".concat(i[4],") {").concat(i[1],"}"),i[4]=s):i[4]="".concat(s)),c.push(i))}},c}},34663:o=>{o.exports=function(o){var c=o[1],n=o[3];if(!n)return c;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(s," */"),e=n.sources.map((function(o){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(o," */")}));return[c].concat(e).concat([a]).join("\n")}return[c].join("\n")}},44749:(o,c,n)=>{n.r(c),n.d(c,{default:()=>C});var r=n(1892),s=n.n(r),a=n(95760),e=n.n(a),A=n(38311),t=n.n(A),d=n(58192),i=n.n(d),m=n(38060),l=n.n(m),f=n(54865),p=n.n(f),h=n(63867),u={};u.styleTagTransform=p(),u.setAttributes=i(),u.insert=t().bind(null,"head"),u.domAPI=e(),u.insertStyleElement=l(),s()(h.Z,u);const C=h.Z&&h.Z.locals?h.Z.locals:void 0},1892:o=>{var c=[];function n(o){for(var n=-1,r=0;r{var c={};o.exports=function(o,n){var r=function(o){if(void 0===c[o]){var n=document.querySelector(o);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(o){n=null}c[o]=n}return c[o]}(o);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},38060:o=>{o.exports=function(o){var c=document.createElement("style");return o.setAttributes(c,o.attributes),o.insert(c,o.options),c}},58192:(o,c,n)=>{o.exports=function(o){var c=n.nc;c&&o.setAttribute("nonce",c)}},95760:o=>{o.exports=function(o){var c=o.insertStyleElement(o);return{update:function(n){!function(o,c,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var s=void 0!==n.layer;s&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,s&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),c.styleTagTransform(r,o,c.options)}(c,o,n)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(c)}}}},54865:o=>{o.exports=function(o,c){if(c.styleSheet)c.styleSheet.cssText=o;else{for(;c.firstChild;)c.removeChild(c.firstChild);c.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=4749.46ebbb2.js.map \ No newline at end of file diff --git a/_static/build/4749.46ebbb2.js.map b/_static/build/4749.46ebbb2.js.map new file mode 100644 index 0000000..1fbe00d --- /dev/null +++ b/_static/build/4749.46ebbb2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4749.46ebbb2.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/shadowfox.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/shadowfox.css?a638","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n\\n Name: shadowfox\\n Author: overdodactyl (http://github.com/overdodactyl)\\n\\n Original shadowfox color scheme by Firefox\\n\\n*/\\n\\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\\n\\n.cm-s-shadowfox span.cm-comment { color: #939393; }\\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\\n\\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\\n\\n.cm-s-shadowfox span.cm-meta { color: #939393; }\\n.cm-s-shadowfox span.cm-hr { color: #939393; }\\n\\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\\n\\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\\n.cm-s-shadowfox span.cm-link { color: #737373; }\\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\\n\\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/shadowfox.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;CAOC;;AAED,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;AAClE,0CAA0C,mBAAmB,EAAE;AAC/D,6JAA6J,mBAAmB,EAAE;AAClL,4KAA4K,mBAAmB,EAAE;AACjM,sCAAsC,oBAAoB,EAAE,+BAA+B,EAAE;AAC7F,2CAA2C,WAAW,EAAE;AACxD,yCAAyC,cAAc,EAAE;AACzD,qCAAqC,2BAA2B,EAAE;;AAElE,kCAAkC,cAAc,EAAE;AAClD,+BAA+B,cAAc,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,kCAAkC,cAAc,EAAE;AAClD,gCAAgC,cAAc,EAAE;;AAEhD,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;;AAEnD,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;;AAE7C,iCAAiC,cAAc,EAAE;AACjD,oCAAoC,cAAc,EAAE;AACpD,qCAAqC,cAAc,EAAE;;AAErD,mCAAmC,cAAc,EAAE;;AAEnD,8BAA8B,cAAc,EAAE;AAC9C,kCAAkC,cAAc,EAAE;AAClD,8BAA8B,cAAc,EAAE;AAC9C,uCAAuC,cAAc,EAAE;;AAEvD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;AACrD,+BAA+B,cAAc,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,kCAAkC,cAAc,EAAE;;AAElD,oDAAoD,qCAAqC;AACzF,8CAA8C,2CAA2C,EAAE,uBAAuB,EAAE\",\"sourcesContent\":[\"/*\\n\\n Name: shadowfox\\n Author: overdodactyl (http://github.com/overdodactyl)\\n\\n Original shadowfox color scheme by Firefox\\n\\n*/\\n\\n.cm-s-shadowfox.CodeMirror { background: #2a2a2e; color: #b1b1b3; }\\n.cm-s-shadowfox div.CodeMirror-selected { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::selection, .cm-s-shadowfox .CodeMirror-line > span::selection, .cm-s-shadowfox .CodeMirror-line > span > span::selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-line::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span::-moz-selection, .cm-s-shadowfox .CodeMirror-line > span > span::-moz-selection { background: #353B48; }\\n.cm-s-shadowfox .CodeMirror-gutters { background: #0c0c0d ; border-right: 1px solid #0c0c0d; }\\n.cm-s-shadowfox .CodeMirror-guttermarker { color: #555; }\\n.cm-s-shadowfox .CodeMirror-linenumber { color: #939393; }\\n.cm-s-shadowfox .CodeMirror-cursor { border-left: 1px solid #fff; }\\n\\n.cm-s-shadowfox span.cm-comment { color: #939393; }\\n.cm-s-shadowfox span.cm-atom { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-quote { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-builtin { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-attribute { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-keyword { color: #FF7DE9; }\\n.cm-s-shadowfox span.cm-error { color: #FF7DE9; }\\n\\n.cm-s-shadowfox span.cm-number { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string { color: #6B89FF; }\\n.cm-s-shadowfox span.cm-string-2 { color: #6B89FF; }\\n\\n.cm-s-shadowfox span.cm-meta { color: #939393; }\\n.cm-s-shadowfox span.cm-hr { color: #939393; }\\n\\n.cm-s-shadowfox span.cm-header { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-qualifier { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-variable-2 { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-property { color: #86DE74; }\\n\\n.cm-s-shadowfox span.cm-def { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-bracket { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-tag { color: #75BFFF; }\\n.cm-s-shadowfox span.cm-link:visited { color: #75BFFF; }\\n\\n.cm-s-shadowfox span.cm-variable { color: #B98EFF; }\\n.cm-s-shadowfox span.cm-variable-3 { color: #d7d7db; }\\n.cm-s-shadowfox span.cm-link { color: #737373; }\\n.cm-s-shadowfox span.cm-operator { color: #b1b1b3; }\\n.cm-s-shadowfox span.cm-special { color: #d7d7db; }\\n\\n.cm-s-shadowfox .CodeMirror-activeline-background { background: rgba(185, 215, 253, .15) }\\n.cm-s-shadowfox .CodeMirror-matchingbracket { outline: solid 1px rgba(255, 255, 255, .25); color: white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./shadowfox.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./shadowfox.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4750.56c06ab.js b/_static/build/4750.56c06ab.js new file mode 100644 index 0000000..a79fff9 --- /dev/null +++ b/_static/build/4750.56c06ab.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4750],{5303:(o,n,c)=>{c.d(n,{Z:()=>i});var r=c(34663),e=c.n(r),a=c(7638),m=c.n(a)()(e());m.push([o.id,"/* Based on Sublime Text's Monokai theme */\n\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\n\n.cm-s-monokai span.cm-comment { color: #75715e; }\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\n.cm-s-monokai span.cm-number { color: #ae81ff; }\n\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\n.cm-s-monokai span.cm-keyword { color: #f92672; }\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\n.cm-s-monokai span.cm-string { color: #e6db74; }\n\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\n.cm-s-monokai span.cm-def { color: #fd971f; }\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\n.cm-s-monokai span.cm-tag { color: #f92672; }\n.cm-s-monokai span.cm-header { color: #ae81ff; }\n.cm-s-monokai span.cm-link { color: #ae81ff; }\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\n\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\n.cm-s-monokai .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/monokai.css"],names:[],mappings:"AAAA,0CAA0C;;AAE1C,2BAA2B,mBAAmB,EAAE,cAAc,EAAE;AAChE,wCAAwC,mBAAmB,EAAE;AAC7D,uJAAuJ,iCAAiC,EAAE;AAC1L,sKAAsK,iCAAiC,EAAE;AACzM,oCAAoC,mBAAmB,EAAE,iBAAiB,EAAE;AAC5E,yCAAyC,YAAY,EAAE;AACvD,gDAAgD,cAAc,EAAE;AAChE,uCAAuC,cAAc,EAAE;AACvD,mCAAmC,8BAA8B,EAAE;;AAEnE,gCAAgC,cAAc,EAAE;AAChD,6BAA6B,cAAc,EAAE;AAC7C,+BAA+B,cAAc,EAAE;;AAE/C,6CAA6C,cAAc,EAAE;AAC7D,uCAAuC,cAAc,EAAE;AACvD,uCAAuC,cAAc,EAAE;AACvD,wCAAwC,cAAc,EAAE;;AAExD,kEAAkE,cAAc,EAAE;AAClF,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;;AAE/C,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,4BAA4B,cAAc,EAAE;AAC5C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;AAC7C,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;;AAEnE,kDAAkD,mBAAmB,EAAE;AACvE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB",sourcesContent:["/* Based on Sublime Text's Monokai theme */\n\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\n\n.cm-s-monokai span.cm-comment { color: #75715e; }\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\n.cm-s-monokai span.cm-number { color: #ae81ff; }\n\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\n.cm-s-monokai span.cm-keyword { color: #f92672; }\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\n.cm-s-monokai span.cm-string { color: #e6db74; }\n\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\n.cm-s-monokai span.cm-def { color: #fd971f; }\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\n.cm-s-monokai span.cm-tag { color: #f92672; }\n.cm-s-monokai span.cm-header { color: #ae81ff; }\n.cm-s-monokai span.cm-link { color: #ae81ff; }\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\n\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\n.cm-s-monokai .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n"],sourceRoot:""}]);const i=m},7638:o=>{o.exports=function(o){var n=[];return n.toString=function(){return this.map((function(n){var c="",r=void 0!==n[5];return n[4]&&(c+="@supports (".concat(n[4],") {")),n[2]&&(c+="@media ".concat(n[2]," {")),r&&(c+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),c+=o(n),r&&(c+="}"),n[2]&&(c+="}"),n[4]&&(c+="}"),c})).join("")},n.i=function(o,c,r,e,a){"string"==typeof o&&(o=[[null,o,void 0]]);var m={};if(r)for(var i=0;i0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=a),c&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=c):A[2]=c),e&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=e):A[4]="".concat(e)),n.push(A))}},n}},34663:o=>{o.exports=function(o){var n=o[1],c=o[3];if(!c)return n;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(c)))),e="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(e," */"),m=c.sources.map((function(o){return"/*# sourceURL=".concat(c.sourceRoot||"").concat(o," */")}));return[n].concat(m).concat([a]).join("\n")}return[n].join("\n")}},14750:(o,n,c)=>{c.r(n),c.d(n,{default:()=>k});var r=c(1892),e=c.n(r),a=c(95760),m=c.n(a),i=c(38311),t=c.n(i),s=c(58192),A=c.n(s),l=c(38060),d=c.n(l),u=c(54865),p=c.n(u),f=c(5303),C={};C.styleTagTransform=p(),C.setAttributes=A(),C.insert=t().bind(null,"head"),C.domAPI=m(),C.insertStyleElement=d(),e()(f.Z,C);const k=f.Z&&f.Z.locals?f.Z.locals:void 0},1892:o=>{var n=[];function c(o){for(var c=-1,r=0;r{var n={};o.exports=function(o,c){var r=function(o){if(void 0===n[o]){var c=document.querySelector(o);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(o){c=null}n[o]=c}return n[o]}(o);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(c)}},38060:o=>{o.exports=function(o){var n=document.createElement("style");return o.setAttributes(n,o.attributes),o.insert(n,o.options),n}},58192:(o,n,c)=>{o.exports=function(o){var n=c.nc;n&&o.setAttribute("nonce",n)}},95760:o=>{o.exports=function(o){var n=o.insertStyleElement(o);return{update:function(c){!function(o,n,c){var r="";c.supports&&(r+="@supports (".concat(c.supports,") {")),c.media&&(r+="@media ".concat(c.media," {"));var e=void 0!==c.layer;e&&(r+="@layer".concat(c.layer.length>0?" ".concat(c.layer):""," {")),r+=c.css,e&&(r+="}"),c.media&&(r+="}"),c.supports&&(r+="}");var a=c.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(r,o,n.options)}(n,o,c)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(n)}}}},54865:o=>{o.exports=function(o,n){if(n.styleSheet)n.styleSheet.cssText=o;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=4750.56c06ab.js.map \ No newline at end of file diff --git a/_static/build/4750.56c06ab.js.map b/_static/build/4750.56c06ab.js.map new file mode 100644 index 0000000..80b7e64 --- /dev/null +++ b/_static/build/4750.56c06ab.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4750.56c06ab.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/monokai.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/monokai.css?cf90","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Based on Sublime Text's Monokai theme */\\n\\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\\n\\n.cm-s-monokai span.cm-comment { color: #75715e; }\\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\\n.cm-s-monokai span.cm-number { color: #ae81ff; }\\n\\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\\n.cm-s-monokai span.cm-keyword { color: #f92672; }\\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\\n.cm-s-monokai span.cm-string { color: #e6db74; }\\n\\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\\n.cm-s-monokai span.cm-def { color: #fd971f; }\\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\\n.cm-s-monokai span.cm-tag { color: #f92672; }\\n.cm-s-monokai span.cm-header { color: #ae81ff; }\\n.cm-s-monokai span.cm-link { color: #ae81ff; }\\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\\n\\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\\n.cm-s-monokai .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/monokai.css\"],\"names\":[],\"mappings\":\"AAAA,0CAA0C;;AAE1C,2BAA2B,mBAAmB,EAAE,cAAc,EAAE;AAChE,wCAAwC,mBAAmB,EAAE;AAC7D,uJAAuJ,iCAAiC,EAAE;AAC1L,sKAAsK,iCAAiC,EAAE;AACzM,oCAAoC,mBAAmB,EAAE,iBAAiB,EAAE;AAC5E,yCAAyC,YAAY,EAAE;AACvD,gDAAgD,cAAc,EAAE;AAChE,uCAAuC,cAAc,EAAE;AACvD,mCAAmC,8BAA8B,EAAE;;AAEnE,gCAAgC,cAAc,EAAE;AAChD,6BAA6B,cAAc,EAAE;AAC7C,+BAA+B,cAAc,EAAE;;AAE/C,6CAA6C,cAAc,EAAE;AAC7D,uCAAuC,cAAc,EAAE;AACvD,uCAAuC,cAAc,EAAE;AACvD,wCAAwC,cAAc,EAAE;;AAExD,kEAAkE,cAAc,EAAE;AAClF,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;;AAE/C,iCAAiC,cAAc,EAAE;AACjD,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,4BAA4B,cAAc,EAAE;AAC5C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,6BAA6B,cAAc,EAAE;AAC7C,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;;AAEnE,kDAAkD,mBAAmB,EAAE;AACvE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB\",\"sourcesContent\":[\"/* Based on Sublime Text's Monokai theme */\\n\\n.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }\\n.cm-s-monokai div.CodeMirror-selected { background: #49483E; }\\n.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }\\n.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }\\n.cm-s-monokai .CodeMirror-guttermarker { color: white; }\\n.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }\\n\\n.cm-s-monokai span.cm-comment { color: #75715e; }\\n.cm-s-monokai span.cm-atom { color: #ae81ff; }\\n.cm-s-monokai span.cm-number { color: #ae81ff; }\\n\\n.cm-s-monokai span.cm-comment.cm-attribute { color: #97b757; }\\n.cm-s-monokai span.cm-comment.cm-def { color: #bc9262; }\\n.cm-s-monokai span.cm-comment.cm-tag { color: #bc6283; }\\n.cm-s-monokai span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }\\n.cm-s-monokai span.cm-keyword { color: #f92672; }\\n.cm-s-monokai span.cm-builtin { color: #66d9ef; }\\n.cm-s-monokai span.cm-string { color: #e6db74; }\\n\\n.cm-s-monokai span.cm-variable { color: #f8f8f2; }\\n.cm-s-monokai span.cm-variable-2 { color: #9effff; }\\n.cm-s-monokai span.cm-variable-3, .cm-s-monokai span.cm-type { color: #66d9ef; }\\n.cm-s-monokai span.cm-def { color: #fd971f; }\\n.cm-s-monokai span.cm-bracket { color: #f8f8f2; }\\n.cm-s-monokai span.cm-tag { color: #f92672; }\\n.cm-s-monokai span.cm-header { color: #ae81ff; }\\n.cm-s-monokai span.cm-link { color: #ae81ff; }\\n.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }\\n\\n.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }\\n.cm-s-monokai .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./monokai.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./monokai.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4856.2d7415f.js b/_static/build/4856.2d7415f.js new file mode 100644 index 0000000..c6fe500 --- /dev/null +++ b/_static/build/4856.2d7415f.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4856],{74856:(e,t,a)=>{a.r(t),a.d(t,{default:()=>N,toggleHeader:()=>$});var n,o,s=a(67504),r=a(2814),i=a(55941),l=a(15786),c=a(63050),d=a(4265),u=a(59674),p=a(26169),m=a(43231),g=a(61313),h=a(43892),y=a(72867),v=a(94519);!function(e){e.activate="apputils:activate-command-palette"}(n||(n={}));class f{constructor(e,t){this.translator=t||d.nullTranslator;const a=this.translator.load("jupyterlab");this._palette=e,this._palette.title.label="",this._palette.title.caption=a.__("Command Palette")}set placeholder(e){this._palette.inputNode.placeholder=e}get placeholder(){return this._palette.inputNode.placeholder}activate(){this._palette.activate()}addItem(e){const t=this._palette.addItem(e);return new m.DisposableDelegate((()=>{this._palette.removeItem(t)}))}}!function(e){e.activate=function(t,a,s){const{commands:i,shell:l}=t,c=a.load("jupyterlab"),d=o.createPalette(t,a),u=new r.ModalCommandPalette({commandPalette:d});let p=!1;if(d.node.setAttribute("role","region"),d.node.setAttribute("aria-label",c.__("Command Palette Section")),l.add(d,"left",{rank:300}),s){const e=s.load("@jupyterlab/apputils-extension:palette"),a=e=>{const t=e.get("modal").composite;p&&!t?(d.parent=null,u.detach(),l.add(d,"left",{rank:300})):!p&&t&&(d.parent=null,u.palette=d,d.show(),u.attach()),p=t};Promise.all([e,t.restored]).then((([e])=>{a(e),e.changed.connect((e=>{a(e)}))})).catch((e=>{console.error(e.message)}))}const m=()=>{const e=(0,h.find)(t.commands.keyBindings,(e=>e.command===n.activate));if(e){const t=e.keys.map(y.CommandRegistry.formatKeystroke).join(", ");d.title.caption=c.__("Commands (%1)",t)}else d.title.caption=c.__("Commands")};return m(),t.commands.keyBindingChanged.connect((()=>{m()})),i.addCommand(n.activate,{execute:()=>{p?u.activate():l.activateById(d.id)},label:c.__("Activate Command Palette")}),d.inputNode.placeholder=c.__("SEARCH"),new e(d,a)},e.restore=function(e,t,a){const n=o.createPalette(e,a);t.add(n,"command-palette")}}(f||(f={})),function(e){let t;e.createPalette=function(e,a){if(!t){t=new v.CommandPalette({commands:e.commands,renderer:u.CommandPaletteSvg.defaultRenderer}),t.id="command-palette",t.title.icon=u.paletteIcon;const n=a.load("jupyterlab");t.title.label=n.__("Commands")}return t}}(o||(o={}));class b extends c.DataConnector{constructor(e){super(),this._throttlers=Object.create(null),this._connector=e}fetch(e){const t=this._throttlers;return e in t||(t[e]=new g.Throttler((()=>this._connector.fetch(e)),100)),t[e].invoke()}async list(e="all"){const{isDeferred:t,isDisabled:a}=i.PageConfig.Extension,{ids:n,values:o}=await this._connector.list();return"all"===e?{ids:n,values:o}:{ids:n.filter((e=>!t(e)&&!a(e))),values:o.filter((({id:e})=>!t(e)&&!a(e)))}}async save(e,t){await this._connector.save(e,t)}}const w={id:"@jupyterlab/apputils-extension:settings",activate:async e=>{const{isDisabled:t}=i.PageConfig.Extension,a=new b(e.serviceManager.settings),n=new l.SettingRegistry({connector:a,plugins:(await a.list("active")).values});return e.restored.then((async()=>{const e=await a.list("all");e.ids.forEach((async(a,o)=>{if(!t(a)&&!(a in n.plugins))try{await n.load(a)}catch(t){console.warn(`Settings failed to load for (${a})`,t),e.values[o].schema["jupyter.lab.transform"]&&console.warn(`This may happen if {autoStart: false} in (${a}) or if it is one of the deferredExtensions in page config.`)}}))})),n},autoStart:!0,provides:l.ISettingRegistry};var _,S=a(49005);!function(e){e.changeTheme="apputils:change-theme",e.themeScrollbars="apputils:theme-scrollbars",e.changeFont="apputils:change-font",e.incrFontSize="apputils:incr-font-size",e.decrFontSize="apputils:decr-font-size"}(_||(_={}));const k={id:"@jupyterlab/apputils-extension:themes",requires:[l.ISettingRegistry,s.JupyterFrontEnd.IPaths,d.ITranslator],optional:[r.ISplashScreen],activate:(e,t,a,n,o)=>{const s=n.load("jupyterlab"),l=e.shell,c=e.commands,d=i.URLExt.join(i.PageConfig.getBaseUrl(),a.urls.themes),u=k.id,p=new r.ThemeManager({key:u,host:l,settings:t,splash:null!=o?o:void 0,url:d});let m;return p.themeChanged.connect(((e,t)=>{m=t.newValue,document.body.dataset.jpThemeLight=String(p.isLight(m)),document.body.dataset.jpThemeName=m,document.body.dataset.jpThemeScrollbars!==String(p.themeScrollbars(m))&&(document.body.dataset.jpThemeScrollbars=String(p.themeScrollbars(m))),c.notifyCommandChanged(_.changeTheme)})),c.addCommand(_.changeTheme,{label:e=>{const t=e.theme,a=p.getDisplayName(t);return e.isPalette?s.__("Use Theme: %1",a):a},isToggled:e=>e.theme===m,execute:e=>{const t=e.theme;if(t!==p.theme)return p.setTheme(t)}}),c.addCommand(_.themeScrollbars,{label:s.__("Theme Scrollbars"),isToggled:()=>p.isToggledThemeScrollbars(),execute:()=>p.toggleThemeScrollbars()}),c.addCommand(_.changeFont,{label:e=>e.enabled?`${e.font}`:s.__("waiting for fonts"),isEnabled:e=>e.enabled,isToggled:e=>p.getCSS(e.key)===e.font,execute:e=>p.setCSSOverride(e.key,e.font)}),c.addCommand(_.incrFontSize,{label:e=>{switch(e.key){case"code-font-size":return s.__("Increase Code Font Size");case"content-font-size1":return s.__("Increase Content Font Size");case"ui-font-size1":return s.__("Increase UI Font Size");default:return s.__("Increase Font Size")}},execute:e=>p.incrFontSize(e.key)}),c.addCommand(_.decrFontSize,{label:e=>{switch(e.key){case"code-font-size":return s.__("Decrease Code Font Size");case"content-font-size1":return s.__("Decrease Content Font Size");case"ui-font-size1":return s.__("Decrease UI Font Size");default:return s.__("Decrease Font Size")}},execute:e=>p.decrFontSize(e.key)}),p},autoStart:!0,provides:r.IThemeManager},C={id:"@jupyterlab/apputils-extension:themes-palette-menu",requires:[r.IThemeManager,d.ITranslator],optional:[r.ICommandPalette,S.IMainMenu],activate:(e,t,a,n,o)=>{const s=a.load("jupyterlab");o&&e.restored.then((()=>{var e;const a=null===(e=o.settingsMenu.items.find((e=>{var t;return"submenu"===e.type&&"jp-mainmenu-settings-apputilstheme"===(null===(t=e.submenu)||void 0===t?void 0:t.id)})))||void 0===e?void 0:e.submenu;a&&t.themes.forEach(((e,t)=>{a.insertItem(t,{command:_.changeTheme,args:{isPalette:!1,theme:e}})}))})),n&&e.restored.then((()=>{const e=s.__("Theme"),a=_.changeTheme;t.themes.forEach((t=>{n.addItem({command:a,args:{isPalette:!0,theme:t},category:e})})),n.addItem({command:_.themeScrollbars,category:e}),n.addItem({command:_.incrFontSize,args:{key:"code-font-size"},category:e}),n.addItem({command:_.decrFontSize,args:{key:"code-font-size"},category:e}),n.addItem({command:_.incrFontSize,args:{key:"content-font-size1"},category:e}),n.addItem({command:_.decrFontSize,args:{key:"content-font-size1"},category:e}),n.addItem({command:_.incrFontSize,args:{key:"ui-font-size1"},category:e}),n.addItem({command:_.decrFontSize,args:{key:"ui-font-size1"},category:e})}))},autoStart:!0},I={id:"@jupyterlab/apputils-extension:toolbar-registry",autoStart:!0,provides:r.IToolbarWidgetRegistry,activate:e=>new r.ToolbarWidgetRegistry({defaultFactory:(0,r.createDefaultFactory)(e.commands)})};var x,T=a(985),j=a(84920);!function(e){e.saveWorkspace="workspace-ui:save",e.saveWorkspaceAs="workspace-ui:save-as"}(x||(x={}));const E="jupyterlab-workspace",F="."+E,P="workspace-ui:lastSave",W={id:"@jupyterlab/apputils-extension:workspaces",autoStart:!0,requires:[j.IFileBrowserFactory,r.IWindowResolver,c.IStateDB,d.ITranslator,s.JupyterFrontEnd.IPaths],optional:[s.IRouter],activate:(e,t,a,n,o,s,r)=>{const i=new R.WorkspaceFactory({workspaces:e.serviceManager.workspaces,router:r,state:n,translator:o,paths:s}),l=o.load("jupyterlab");e.docRegistry.addFileType({name:E,contentType:"file",fileFormat:"text",displayName:l.__("JupyterLab workspace File"),extensions:[F],mimeTypes:["text/json"],iconClass:"jp-JupyterIcon"}),e.docRegistry.addWidgetFactory(i),e.commands.addCommand(x.saveWorkspaceAs,{label:l.__("Save Current Workspace As…"),execute:async()=>{const s=e.serviceManager.workspaces.fetch(a.name);await R.saveAs(t.defaultBrowser,e.serviceManager.contents,s,n,o)}}),e.commands.addCommand(x.saveWorkspace,{label:l.__("Save Current Workspace"),execute:async()=>{const{contents:s}=e.serviceManager,r=e.serviceManager.workspaces.fetch(a.name),i=await n.fetch(P);void 0===i?await R.saveAs(t.defaultBrowser,s,r,n,o):await R.save(i,s,r,n)}})}};var R,z;!function(e){async function t(e,t,a,n){let o=e.split("/").pop();void 0!==o&&o.includes(".")?o=o.split(".")[0]:e+=F,await n.save(P,e);const s=await a;s.metadata.id=`${o}`,await t.save(e,{type:"file",format:"text",content:JSON.stringify(s)})}e.save=t,e.saveAs=async function(e,a,o,s,i){var l;i=i||d.nullTranslator;const c=await s.fetch(P);let u;u=void 0===c?"new-workspace":null===(l=c.split("/").pop())||void 0===l?void 0:l.split(".")[0];const p=e.model.path+"/"+u+F,m=await async function(e,t){const a=(t=t||d.nullTranslator).load("jupyterlab"),o=r.Dialog.okButton({label:a.__("Save")}),s=await(0,r.showDialog)({title:a.__("Save Current Workspace As…"),body:new n(e),buttons:[r.Dialog.cancelButton({label:a.__("Cancel")}),o]});return s.button.label===a.__("Save")?s.value:null}(p,i);m&&await t(m,a,o,s)};class a extends T.ABCWidgetFactory{constructor(e){super({name:(e.translator||d.nullTranslator).load("jupyterlab").__("Workspace loader"),fileTypes:[E],defaultFor:[E],readOnly:!0}),this._application=e.paths.urls.app,this._router=e.router,this._state=e.state,this._workspaces=e.workspaces}createNewWidget(e){return e.ready.then((async()=>{const t=e.model.toJSON(),a=e.path,n=t.metadata.id;await this._workspaces.save(n,t),await this._state.save(P,a);const o=i.URLExt.join(this._application,"workspaces",n);this._router?this._router.navigate(o,{hard:!0}):document.location.href=o})),function(e){const t=new T.DocumentWidget({content:new v.Widget,context:e});return t.content.dispose(),t}(e)}}e.WorkspaceFactory=a;class n extends v.Widget{constructor(e){super({node:o(e)})}getValue(){return this.node.value}}function o(e){const t=document.createElement("input");return t.value=e,t}}(R||(R={})),function(e){e.loadState="apputils:load-statedb",e.print="apputils:print",e.reset="apputils:reset",e.resetOnLoad="apputils:reset-on-load",e.runFirstEnabled="apputils:run-first-enabled",e.runAllEnabled="apputils:run-all-enabled",e.toggleHeader="apputils:toggle-header"}(z||(z={}));const D={id:"@jupyterlab/apputils-extension:palette",autoStart:!0,requires:[d.ITranslator],provides:r.ICommandPalette,optional:[l.ISettingRegistry],activate:(e,t,a)=>f.activate(e,t,a)},A={id:"@jupyterlab/apputils-extension:palette-restorer",autoStart:!0,requires:[s.ILayoutRestorer,d.ITranslator],activate:(e,t,a)=>{f.restore(e,t,a)}},L={id:"@jupyterlab/apputils-extension:resolver",autoStart:!0,provides:r.IWindowResolver,requires:[s.JupyterFrontEnd.IPaths,s.IRouter],activate:async(e,t,a)=>{const{hash:n,search:o}=a.current,s=i.URLExt.queryStringToObject(o||""),l=new r.WindowResolver,c=i.PageConfig.getOption("workspace"),d=i.PageConfig.getOption("treePath"),u="multiple-document"===i.PageConfig.getOption("mode")?"lab":"doc",p=c||i.PageConfig.defaultWorkspace,m=d?i.URLExt.join("tree",d):"";try{return await l.resolve(p),l}catch(e){return new Promise((()=>{const{base:e}=t.urls,o="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",r=o[Math.floor(Math.random()*o.length)];let l=i.URLExt.join(e,u,"workspaces",`auto-${r}`);l=m?i.URLExt.join(l,i.URLExt.encodeParts(m)):l,s.reset="";const c=l+i.URLExt.objectToQueryString(s)+(n||"");a.navigate(c,{hard:!0})}))}}},O={id:"@jupyterlab/apputils-extension:splash",autoStart:!0,requires:[d.ITranslator],provides:r.ISplashScreen,activate:(e,t)=>{const a=t.load("jupyterlab"),{commands:n,restored:o}=e,s=document.createElement("div"),i=document.createElement("div"),l=document.createElement("div");let c;s.id="jupyterlab-splash",i.id="galaxy",l.id="main-logo",u.jupyterFaviconIcon.element({container:l,stylesheet:"splash"}),i.appendChild(l),["1","2","3"].forEach((e=>{const t=document.createElement("div"),a=document.createElement("div");t.id=`moon${e}`,t.className="moon orbit",a.id=`planet${e}`,a.className="planet",t.appendChild(a),i.appendChild(t)})),s.appendChild(i);const d=new g.Throttler((async()=>{if(!c){c=new r.Dialog({title:a.__("Loading…"),body:a.__("The loading screen is taking a long time.\nWould you like to clear the workspace or keep waiting?"),buttons:[r.Dialog.cancelButton({label:a.__("Keep Waiting")}),r.Dialog.warnButton({label:a.__("Clear Workspace")})]});try{const e=await c.launch();if(c.dispose(),c=null,e.button.accept&&n.hasCommand(z.reset))return n.execute(z.reset);requestAnimationFrame((()=>{d.invoke().catch((e=>{}))}))}catch(e){}}}),{limit:12e3,edge:"trailing"});let p=0;return{show:(e=!0)=>(s.classList.remove("splash-fade"),s.classList.toggle("light",e),s.classList.toggle("dark",!e),p++,document.body.appendChild(s),d.invoke().catch((e=>{})),new m.DisposableDelegate((async()=>{await o,0==--p&&(d.stop(),c&&(c.dispose(),c=null),s.classList.add("splash-fade"),window.setTimeout((()=>{document.body.removeChild(s)}),200))})))}}},U={id:"@jupyterlab/apputils-extension:print",autoStart:!0,requires:[d.ITranslator],activate:(e,t)=>{const a=t.load("jupyterlab");e.commands.addCommand(z.print,{label:a.__("Print…"),isEnabled:()=>{const t=e.shell.currentWidget;return null!==r.Printing.getPrintFunction(t)},execute:async()=>{const t=e.shell.currentWidget,a=r.Printing.getPrintFunction(t);a&&await a()}})}},$={id:"@jupyterlab/apputils-extension:toggle-header",autoStart:!0,requires:[d.ITranslator],optional:[r.ICommandPalette],activate:(e,t,a)=>{const n=t.load("jupyterlab"),o=n.__("Main Area");e.commands.addCommand(z.toggleHeader,{label:n.__("Show Header Above Content"),isEnabled:()=>e.shell.currentWidget instanceof r.MainAreaWidget&&e.shell.currentWidget.contentHeader.widgets.length>0,isToggled:()=>{const t=e.shell.currentWidget;return t instanceof r.MainAreaWidget&&!t.contentHeader.isHidden},execute:async()=>{const t=e.shell.currentWidget;t instanceof r.MainAreaWidget&&t.contentHeader.setHidden(!t.contentHeader.isHidden)}}),a&&a.addItem({command:z.toggleHeader,category:o})}},M={id:"@jupyterlab/apputils-extension:state",autoStart:!0,provides:c.IStateDB,requires:[s.JupyterFrontEnd.IPaths,s.IRouter,d.ITranslator],optional:[r.IWindowResolver],activate:(e,t,a,n,o)=>{const s=n.load("jupyterlab");if(null===o)return new c.StateDB;let r=!1;const{commands:l,name:d,serviceManager:u}=e,{workspaces:m}=u,h=o.name,y=new p.PromiseDelegate,v=new c.StateDB({transform:y.promise}),f=new g.Debouncer((async()=>{const e=h,t={id:e},a=await v.toJSON();await m.save(e,{data:a,metadata:t})}));return v.changed.connect((()=>{f.invoke()}),v),v.changed.connect((()=>async function(e,t,a){var n,o;const s=await t.toJSON();if(void 0===(null===(o=null===(n=s["layout-restorer:data"])||void 0===n?void 0:n.main)||void 0===o?void 0:o.current))document.title=`${i.PageConfig.getOption("appName")||"JupyterLab"}${e.startsWith("auto-")?` (${e})`:""}`;else{let t=i.PathExt.basename(window.location.href);t=t.length>15?t.slice(0,12).concat("…"):t;const n=Object.keys(s).filter((e=>e.startsWith("notebook")||e.startsWith("editor"))).length;e.startsWith("auto-")?document.title=`${t} (${e}${n>1?` : ${n}`:""}) - ${a}`:document.title=`${t}${n>1?` (${n})`:""} - ${a}`}}(h,v,d))),l.addCommand(z.loadState,{execute:async e=>{if(r)return;const{hash:t,path:n,search:o}=e,s=i.URLExt.queryStringToObject(o||""),l="string"==typeof s.clone?""===s.clone?i.PageConfig.defaultWorkspace:s.clone:null,c=l||h||null;if(null!==c){try{const e=await m.fetch(c);r||(r=!0,y.resolve({type:"overwrite",contents:e.data}))}catch({message:e}){console.warn(`Fetching workspace "${h}" failed.`,e),r||(r=!0,y.resolve({type:"cancel",contents:null}))}if(c===l){delete s.clone;const e=n+i.URLExt.objectToQueryString(s)+t,o=f.invoke().then((()=>a.stop));return o.then((()=>{a.navigate(e)})),o}await f.invoke()}else console.error(`${z.loadState} cannot load null workspace.`)}}),l.addCommand(z.reset,{label:s.__("Reset Application State"),execute:async({reload:e})=>{await v.clear(),await f.invoke(),e&&a.reload()}}),l.addCommand(z.resetOnLoad,{execute:e=>{const{hash:t,path:n,search:o}=e,s=i.URLExt.queryStringToObject(o||""),l="clone"in s;if(!("reset"in s))return;if(r)return a.reload();r=!0,y.resolve({type:"clear",contents:null}),delete s.reset;const c=n+i.URLExt.objectToQueryString(s)+t,d=v.clear().then((()=>f.invoke()));return l?d.then((()=>{a.navigate(c,{hard:!0})})):d.then((()=>{a.navigate(c)})),d}}),a.register({command:z.loadState,pattern:/.?/,rank:30}),a.register({command:z.resetOnLoad,pattern:/(\?reset|\&reset)($|&)/,rank:20}),v}},B={id:"@jupyterlab/apputils-extension:sessionDialogs",provides:r.ISessionContextDialogs,autoStart:!0,activate:()=>r.sessionContextDialogs},q={id:"@jupyterlab/apputils-extension:utilityCommands",requires:[d.ITranslator],autoStart:!0,activate:(e,t)=>{const a=t.load("jupyterlab"),{commands:n}=e;n.addCommand(z.runFirstEnabled,{label:a.__("Run First Enabled Command"),execute:t=>{const a=t.commands,n=t.args,o=Array.isArray(t);for(let t=0;t{const a=t.commands,n=t.args,o=Array.isArray(t),s=t.errorIfNotEnabled;for(let t=0;tr.defaultSanitizer},w,M,O,B,k,C,$,I,q,W]}}]); +//# sourceMappingURL=4856.2d7415f.js.map \ No newline at end of file diff --git a/_static/build/4856.2d7415f.js.map b/_static/build/4856.2d7415f.js.map new file mode 100644 index 0000000..dcc016b --- /dev/null +++ b/_static/build/4856.2d7415f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4856.2d7415f.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/palette.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/settingconnector.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/settingsplugin.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/themesplugins.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/toolbarregistryplugin.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/workspacesplugin.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4875.375150e.js b/_static/build/4875.375150e.js new file mode 100644 index 0000000..ce69fa4 --- /dev/null +++ b/_static/build/4875.375150e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4875],{94206:(e,t,o)=>{o.r(t),o.d(t,{commandEditItem:()=>L,default:()=>q,executionIndicator:()=>D,exportPlugin:()=>P,notebookTrustItem:()=>W});var n=o(67504),l=o(2814),a=o(69590),r=o(84853),s=o(55941),c=o(42422),d=o(22437),i=o(84920),u=o(44761),b=o(49005),m=o(33079),g=o(4020),p=o(20040),C=o(15786),k=o(63050),x=o(16725),_=o(4265),A=o(59674),h=o(43892),f=o(26169),w=o(43231),v=o(14064),y=o(94519),N=o(52538),S=o(20435);const E={activate:function(e,t,o){function n(e){function t(t,n,l){if(S.KernelMessage.isDisplayDataMsg(t)||S.KernelMessage.isStreamMsg(t)||S.KernelMessage.isErrorMsg(t)||S.KernelMessage.isExecuteResultMsg(t)){const a=o.getLogger(e.context.path);a.rendermime=e.content.rendermime;const r=Object.assign(Object.assign({},t.content),{output_type:t.header.msg_type});let s=n;(S.KernelMessage.isErrorMsg(t)||S.KernelMessage.isStreamMsg(t)&&"stderr"===t.content.name)&&(s=l),a.log({type:"output",data:r,level:s})}}e.context.sessionContext.iopubMessage.connect(((e,o)=>t(o,"info","info"))),e.context.sessionContext.unhandledMessage.connect(((e,o)=>t(o,"warning","error")))}o&&(t.forEach((e=>n(e))),t.widgetAdded.connect(((e,t)=>n(t))))},id:"@jupyterlab/notebook-extension:log-output",requires:[m.INotebookTracker],optional:[N.ILoggerRegistry],autoStart:!0};var I;!function(e){e.createNew="notebook:create-new",e.interrupt="notebook:interrupt-kernel",e.restart="notebook:restart-kernel",e.restartClear="notebook:restart-clear-output",e.restartAndRunToSelected="notebook:restart-and-run-to-selected",e.restartRunAll="notebook:restart-run-all",e.reconnectToKernel="notebook:reconnect-to-kernel",e.changeKernel="notebook:change-kernel",e.createConsole="notebook:create-console",e.createOutputView="notebook:create-output-view",e.clearAllOutputs="notebook:clear-all-cell-outputs",e.closeAndShutdown="notebook:close-and-shutdown",e.trust="notebook:trust",e.exportToFormat="notebook:export-to-format",e.run="notebook:run-cell",e.runAndAdvance="notebook:run-cell-and-select-next",e.runAndInsert="notebook:run-cell-and-insert-below",e.runInConsole="notebook:run-in-console",e.runAll="notebook:run-all-cells",e.runAllAbove="notebook:run-all-above",e.runAllBelow="notebook:run-all-below",e.renderAllMarkdown="notebook:render-all-markdown",e.toCode="notebook:change-cell-to-code",e.toMarkdown="notebook:change-cell-to-markdown",e.toRaw="notebook:change-cell-to-raw",e.cut="notebook:cut-cell",e.copy="notebook:copy-cell",e.pasteAbove="notebook:paste-cell-above",e.pasteBelow="notebook:paste-cell-below",e.duplicateBelow="notebook:duplicate-below",e.pasteAndReplace="notebook:paste-and-replace-cell",e.moveUp="notebook:move-cell-up",e.moveDown="notebook:move-cell-down",e.clearOutputs="notebook:clear-cell-output",e.deleteCell="notebook:delete-cell",e.insertAbove="notebook:insert-cell-above",e.insertBelow="notebook:insert-cell-below",e.selectAbove="notebook:move-cursor-up",e.selectBelow="notebook:move-cursor-down",e.extendAbove="notebook:extend-marked-cells-above",e.extendTop="notebook:extend-marked-cells-top",e.extendBelow="notebook:extend-marked-cells-below",e.extendBottom="notebook:extend-marked-cells-bottom",e.selectAll="notebook:select-all",e.deselectAll="notebook:deselect-all",e.editMode="notebook:enter-edit-mode",e.merge="notebook:merge-cells",e.mergeAbove="notebook:merge-cell-above",e.mergeBelow="notebook:merge-cell-below",e.split="notebook:split-cell-at-cursor",e.commandMode="notebook:enter-command-mode",e.toggleAllLines="notebook:toggle-all-cell-line-numbers",e.undoCellAction="notebook:undo-cell-action",e.redoCellAction="notebook:redo-cell-action",e.markdown1="notebook:change-cell-to-heading-1",e.markdown2="notebook:change-cell-to-heading-2",e.markdown3="notebook:change-cell-to-heading-3",e.markdown4="notebook:change-cell-to-heading-4",e.markdown5="notebook:change-cell-to-heading-5",e.markdown6="notebook:change-cell-to-heading-6",e.hideCode="notebook:hide-cell-code",e.showCode="notebook:show-cell-code",e.hideAllCode="notebook:hide-all-cell-code",e.showAllCode="notebook:show-all-cell-code",e.hideOutput="notebook:hide-cell-outputs",e.showOutput="notebook:show-cell-outputs",e.hideAllOutputs="notebook:hide-all-cell-outputs",e.showAllOutputs="notebook:show-all-cell-outputs",e.toggleRenderSideBySideCurrentNotebook="notebook:toggle-render-side-by-side-current",e.setSideBySideRatio="notebook:set-side-by-side-ratio",e.enableOutputScrolling="notebook:enable-output-scrolling",e.disableOutputScrolling="notebook:disable-output-scrolling",e.selectLastRunCell="notebook:select-last-run-cell",e.replaceSelection="notebook:replace-selection",e.autoClosingBrackets="notebook:toggle-autoclosing-brackets",e.toggleCollapseCmd="Collapsible_Headings:Toggle_Collapse",e.collapseAllCmd="Collapsible_Headings:Collapse_All",e.expandAllCmd="Collapsible_Headings:Expand_All",e.copyToClipboard="notebook:copy-to-clipboard"}(I||(I={}));const O="Notebook",T=["notebook","python","custom"],R="jp-NotebookExtension-sideBySideMargins",B={id:"@jupyterlab/notebook-extension:tracker",provides:m.INotebookTracker,requires:[m.INotebookWidgetFactory,_.ITranslator],optional:[l.ICommandPalette,i.IFileBrowserFactory,u.ILauncher,n.ILayoutRestorer,b.IMainMenu,C.ISettingRegistry,l.ISessionContextDialogs],activate:function(e,t,o,n,r,s,c,d,i,u){const b=o.load("jupyterlab"),g=e.serviceManager,{commands:p}=e,C=new m.NotebookTracker({namespace:"notebook"}),k=e=>document.documentElement.style.setProperty("--jp-side-by-side-output-size",`${e}fr`);(i?i.load(B.id):Promise.reject(new Error(`No setting registry for ${B.id}`))).then((e=>{N(e),e.changed.connect((()=>{N(e)})),p.addCommand(I.autoClosingBrackets,{execute:t=>{var o;const n=e.get("codeCellConfig").composite,l=e.get("markdownCellConfig").composite,a=e.get("rawCellConfig").composite,r=n.autoClosingBrackets||l.autoClosingBrackets||a.autoClosingBrackets,s=!!(null!==(o=t.force)&&void 0!==o?o:!r);[n.autoClosingBrackets,l.autoClosingBrackets,a.autoClosingBrackets]=[s,s,s],e.set("codeCellConfig",n),e.set("markdownCellConfig",l),e.set("rawCellConfig",a)},label:b.__("Auto Close Brackets for All Notebook Cell Types"),isToggled:()=>["codeCellConfig","markdownCellConfig","rawCellConfig"].some((t=>e.get(t).composite.autoClosingBrackets))}),p.addCommand(I.setSideBySideRatio,{label:b.__("Set side-by-side ratio"),execute:t=>{l.InputDialog.getNumber({title:b.__("Width of the output in side-by-side mode"),value:e.get("sideBySideOutputRatio").composite}).then((t=>{k(t.value),t.value&&e.set("sideBySideOutputRatio",t.value)})).catch(console.error)}})})).catch((e=>{console.warn(e.message),y({editorConfig:t.editorConfig,notebookConfig:t.notebookConfig,kernelShutdown:t.shutdownOnClose})})),c&&c.restore(C,{command:"docmanager:open",args:e=>({path:e.context.path,factory:O}),name:e=>e.context.path,when:g.ready});const x=e.docRegistry,_=new m.NotebookModelFactory({disableDocumentWideUndoRedo:t.notebookConfig.disableDocumentWideUndoRedo});x.addModelFactory(_),function(e,t,o,n){const r=o.load("jupyterlab"),{commands:s,shell:c}=e;n=null!=n?n:l.sessionContextDialogs;const d=()=>$.isEnabled(c,t),i=()=>$.isEnabledAndSingleSelected(c,t);t.currentChanged.connect(((e,t)=>{var o,n;(null===(n=null===(o=null==t?void 0:t.content)||void 0===o?void 0:o.model)||void 0===n?void 0:n.cells)&&(t.content.model.cells.changed.connect(((e,o)=>{(e=>{var t,o;for(const n of e.widgets)n instanceof a.MarkdownCell&&n.headingCollapsed&&m.NotebookActions.setHeadingCollapse(n,!0,e),n.model.id===(null===(o=null===(t=e.activeCell)||void 0===t?void 0:t.model)||void 0===o?void 0:o.id)&&m.NotebookActions.expandParent(n,e)})(t.content)})),t.content.activeCellChanged.connect(((e,t)=>{m.NotebookActions.expandParent(t,e)})))})),s.addCommand(I.runAndAdvance,{label:r.__("Run Selected Cells"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAndAdvance(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.run,{label:r.__("Run Selected Cells and Don't Advance"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.run(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.runAndInsert,{label:r.__("Run Selected Cells and Insert Below"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAndInsert(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.runAll,{label:r.__("Run All Cells"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAll(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.runAllAbove,{label:r.__("Run All Above Selected Cell"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAllAbove(t,e.sessionContext)}},isEnabled:()=>i()&&0!==t.currentWidget.content.activeCellIndex}),s.addCommand(I.runAllBelow,{label:r.__("Run Selected Cell and All Below"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.runAllBelow(t,e.sessionContext)}},isEnabled:()=>i()&&t.currentWidget.content.activeCellIndex!==t.currentWidget.content.widgets.length-1}),s.addCommand(I.renderAllMarkdown,{label:r.__("Render All Markdown Cells"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.renderAllMarkdown(t,e.sessionContext)}},isEnabled:d}),s.addCommand(I.restart,{label:r.__("Restart Kernel…"),execute:e=>{const l=V(t,c,e);if(l)return n.restart(l.sessionContext,o)},isEnabled:d}),s.addCommand(I.closeAndShutdown,{label:r.__("Close and Shut Down"),execute:e=>{const o=V(t,c,e);if(!o)return;const n=o.title.label;return(0,l.showDialog)({title:r.__("Shut down the notebook?"),body:r.__('Are you sure you want to close "%1"?',n),buttons:[l.Dialog.cancelButton(),l.Dialog.warnButton()]}).then((e=>{if(e.button.accept)return o.context.sessionContext.shutdown().then((()=>{o.dispose()}))}))},isEnabled:d}),s.addCommand(I.trust,{label:()=>r.__("Trust Notebook"),execute:e=>{const o=V(t,c,e);if(o){const{context:e,content:t}=o;return m.NotebookActions.trust(t).then((()=>e.save()))}},isEnabled:d}),s.addCommand(I.restartClear,{label:r.__("Restart Kernel and Clear All Outputs…"),execute:e=>{const l=V(t,c,e);if(l){const{content:e,sessionContext:t}=l;return n.restart(t,o).then((()=>{m.NotebookActions.clearAllOutputs(e)}))}},isEnabled:d}),s.addCommand(I.restartAndRunToSelected,{label:r.__("Restart Kernel and Run up to Selected Cell…"),execute:e=>{const l=V(t,c,e);if(l){const{context:e,content:t}=l;return n.restart(l.sessionContext,o).then((o=>{o&&m.NotebookActions.runAllAbove(t,e.sessionContext).then((o=>{(o||0===t.activeCellIndex)&&m.NotebookActions.run(t,e.sessionContext)}))}))}},isEnabled:i}),s.addCommand(I.restartRunAll,{label:r.__("Restart Kernel and Run All Cells…"),execute:e=>{const l=V(t,c,e);if(l){const{context:e,content:t,sessionContext:a}=l;return n.restart(a,o).then((o=>(o&&m.NotebookActions.runAll(t,e.sessionContext),o)))}},isEnabled:d}),s.addCommand(I.clearAllOutputs,{label:r.__("Clear All Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.clearAllOutputs(o.content)},isEnabled:d}),s.addCommand(I.clearOutputs,{label:r.__("Clear Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.clearOutputs(o.content)},isEnabled:d}),s.addCommand(I.interrupt,{label:r.__("Interrupt Kernel"),execute:e=>{var o;const n=V(t,c,e);if(!n)return;const l=null===(o=n.context.sessionContext.session)||void 0===o?void 0:o.kernel;return l?l.interrupt():void 0},isEnabled:d}),s.addCommand(I.toCode,{label:r.__("Change to Code Cell Type"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.changeCellType(o.content,"code")},isEnabled:d}),s.addCommand(I.toMarkdown,{label:r.__("Change to Markdown Cell Type"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.changeCellType(o.content,"markdown")},isEnabled:d}),s.addCommand(I.toRaw,{label:r.__("Change to Raw Cell Type"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.changeCellType(o.content,"raw")},isEnabled:d}),s.addCommand(I.cut,{label:r.__("Cut Cells"),caption:r.__("Cut the selected cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.cut(o.content)},icon:e=>e.toolbar?A.cutIcon:void 0,isEnabled:d}),s.addCommand(I.copy,{label:r.__("Copy Cells"),caption:r.__("Copy the selected cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.copy(o.content)},icon:e=>e.toolbar?A.copyIcon:"",isEnabled:d}),s.addCommand(I.pasteBelow,{label:r.__("Paste Cells Below"),caption:r.__("Paste cells from the clipboard"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.paste(o.content,"below")},icon:e=>e.toolbar?A.pasteIcon:void 0,isEnabled:d}),s.addCommand(I.pasteAbove,{label:r.__("Paste Cells Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.paste(o.content,"above")},isEnabled:d}),s.addCommand(I.duplicateBelow,{label:r.__("Duplicate Cells Below"),caption:r.__("Copy the selected cells and paste them below the selection"),execute:e=>{const o=V(t,c,e);o&&m.NotebookActions.duplicate(o.content,"belowSelected")},icon:e=>e.toolbar?A.duplicateIcon:"",isEnabled:d}),s.addCommand(I.pasteAndReplace,{label:r.__("Paste Cells and Replace"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.paste(o.content,"replace")},isEnabled:d}),s.addCommand(I.deleteCell,{label:r.__("Delete Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.deleteCells(o.content)},isEnabled:d}),s.addCommand(I.split,{label:r.__("Split Cell"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.splitCell(o.content)},isEnabled:d}),s.addCommand(I.merge,{label:r.__("Merge Selected Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.mergeCells(o.content)},isEnabled:d}),s.addCommand(I.mergeAbove,{label:r.__("Merge Cell Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.mergeCells(o.content,!0)},isEnabled:d}),s.addCommand(I.mergeBelow,{label:r.__("Merge Cell Below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.mergeCells(o.content,!1)},isEnabled:d}),s.addCommand(I.insertAbove,{label:r.__("Insert Cell Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.insertAbove(o.content)},icon:e=>e.toolbar?A.addAboveIcon:void 0,isEnabled:d}),s.addCommand(I.insertBelow,{label:r.__("Insert Cell Below"),caption:r.__("Insert a cell below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.insertBelow(o.content)},icon:e=>e.toolbar?A.addBelowIcon:void 0,isEnabled:d}),s.addCommand(I.selectAbove,{label:r.__("Select Cell Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectAbove(o.content)},isEnabled:d}),s.addCommand(I.selectBelow,{label:r.__("Select Cell Below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectBelow(o.content)},isEnabled:d}),s.addCommand(I.extendAbove,{label:r.__("Extend Selection Above"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionAbove(o.content)},isEnabled:d}),s.addCommand(I.extendTop,{label:r.__("Extend Selection to Top"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionAbove(o.content,!0)},isEnabled:d}),s.addCommand(I.extendBelow,{label:r.__("Extend Selection Below"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionBelow(o.content)},isEnabled:d}),s.addCommand(I.extendBottom,{label:r.__("Extend Selection to Bottom"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.extendSelectionBelow(o.content,!0)},isEnabled:d}),s.addCommand(I.selectAll,{label:r.__("Select All Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectAll(o.content)},isEnabled:d}),s.addCommand(I.deselectAll,{label:r.__("Deselect All Cells"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.deselectAll(o.content)},isEnabled:d}),s.addCommand(I.moveUp,{label:r.__("Move Cells Up"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.moveUp(o.content)},isEnabled:d,icon:e=>e.toolbar?A.moveUpIcon:void 0}),s.addCommand(I.moveDown,{label:r.__("Move Cells Down"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.moveDown(o.content)},isEnabled:d,icon:e=>e.toolbar?A.moveDownIcon:void 0}),s.addCommand(I.toggleAllLines,{label:r.__("Toggle All Line Numbers"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.toggleAllLineNumbers(o.content)},isEnabled:d}),s.addCommand(I.commandMode,{label:r.__("Enter Command Mode"),execute:e=>{const o=V(t,c,e);o&&(o.content.mode="command")},isEnabled:d}),s.addCommand(I.editMode,{label:r.__("Enter Edit Mode"),execute:e=>{const o=V(t,c,e);o&&(o.content.mode="edit")},isEnabled:d}),s.addCommand(I.undoCellAction,{label:r.__("Undo Cell Operation"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.undo(o.content)},isEnabled:d}),s.addCommand(I.redoCellAction,{label:r.__("Redo Cell Operation"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.redo(o.content)},isEnabled:d}),s.addCommand(I.changeKernel,{label:r.__("Change Kernel…"),execute:e=>{const l=V(t,c,e);if(l)return n.selectKernel(l.context.sessionContext,o)},isEnabled:d}),s.addCommand(I.reconnectToKernel,{label:r.__("Reconnect To Kernel"),execute:e=>{var o;const n=V(t,c,e);if(!n)return;const l=null===(o=n.context.sessionContext.session)||void 0===o?void 0:o.kernel;return l?l.reconnect():void 0},isEnabled:d}),s.addCommand(I.markdown1,{label:r.__("Change to Heading 1"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,1)},isEnabled:d}),s.addCommand(I.markdown2,{label:r.__("Change to Heading 2"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,2)},isEnabled:d}),s.addCommand(I.markdown3,{label:r.__("Change to Heading 3"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,3)},isEnabled:d}),s.addCommand(I.markdown4,{label:r.__("Change to Heading 4"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,4)},isEnabled:d}),s.addCommand(I.markdown5,{label:r.__("Change to Heading 5"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,5)},isEnabled:d}),s.addCommand(I.markdown6,{label:r.__("Change to Heading 6"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.setMarkdownHeader(o.content,6)},isEnabled:d}),s.addCommand(I.hideCode,{label:r.__("Collapse Selected Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideCode(o.content)},isEnabled:d}),s.addCommand(I.showCode,{label:r.__("Expand Selected Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showCode(o.content)},isEnabled:d}),s.addCommand(I.hideAllCode,{label:r.__("Collapse All Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideAllCode(o.content)},isEnabled:d}),s.addCommand(I.showAllCode,{label:r.__("Expand All Code"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showAllCode(o.content)},isEnabled:d}),s.addCommand(I.hideOutput,{label:r.__("Collapse Selected Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideOutput(o.content)},isEnabled:d}),s.addCommand(I.showOutput,{label:r.__("Expand Selected Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showOutput(o.content)},isEnabled:d}),s.addCommand(I.hideAllOutputs,{label:r.__("Collapse All Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.hideAllOutputs(o.content)},isEnabled:d}),s.addCommand(I.toggleRenderSideBySideCurrentNotebook,{label:r.__("Render Side-by-Side"),execute:e=>{const o=V(t,c,e);if(o)return"side-by-side"===o.content.renderingLayout?m.NotebookActions.renderDefault(o.content):m.NotebookActions.renderSideBySide(o.content)},isEnabled:d,isToggled:e=>{const o=V(t,c,Object.assign(Object.assign({},e),{activate:!1}));return!!o&&"side-by-side"===o.content.renderingLayout}}),s.addCommand(I.showAllOutputs,{label:r.__("Expand All Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.showAllOutputs(o.content)},isEnabled:d}),s.addCommand(I.enableOutputScrolling,{label:r.__("Enable Scrolling for Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.enableOutputScrolling(o.content)},isEnabled:d}),s.addCommand(I.disableOutputScrolling,{label:r.__("Disable Scrolling for Outputs"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.disableOutputScrolling(o.content)},isEnabled:d}),s.addCommand(I.selectLastRunCell,{label:r.__("Select current running or last run cell"),execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.selectLastRunCell(o.content)},isEnabled:d}),s.addCommand(I.replaceSelection,{label:r.__("Replace Selection in Notebook Cell"),execute:e=>{const o=V(t,c,e),n=e.text||"";if(o)return m.NotebookActions.replaceSelection(o.content,n)},isEnabled:d}),s.addCommand(I.toggleCollapseCmd,{label:"Toggle Collapse Notebook Heading",execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.toggleCurrentHeadingCollapse(o.content)},isEnabled:()=>$.isEnabledAndHeadingSelected(c,t)}),s.addCommand(I.collapseAllCmd,{label:"Collapse All Cells",execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.collapseAll(o.content)}}),s.addCommand(I.expandAllCmd,{label:"Expand All Headings",execute:e=>{const o=V(t,c,e);if(o)return m.NotebookActions.expandAllHeadings(o.content)}})}(e,C,o,u),n&&function(e,t){const o=t.load("jupyterlab");let n=o.__("Notebook Operations");[I.interrupt,I.restart,I.restartClear,I.restartRunAll,I.runAll,I.renderAllMarkdown,I.runAllAbove,I.runAllBelow,I.restartAndRunToSelected,I.selectAll,I.deselectAll,I.clearAllOutputs,I.toggleAllLines,I.editMode,I.commandMode,I.changeKernel,I.reconnectToKernel,I.createConsole,I.closeAndShutdown,I.trust,I.toggleCollapseCmd,I.collapseAllCmd,I.expandAllCmd].forEach((t=>{e.addItem({command:t,category:n})})),e.addItem({command:I.createNew,category:n,args:{isPalette:!0}}),n=o.__("Notebook Cell Operations"),[I.run,I.runAndAdvance,I.runAndInsert,I.runInConsole,I.clearOutputs,I.toCode,I.toMarkdown,I.toRaw,I.cut,I.copy,I.pasteBelow,I.pasteAbove,I.pasteAndReplace,I.deleteCell,I.split,I.merge,I.mergeAbove,I.mergeBelow,I.insertAbove,I.insertBelow,I.selectAbove,I.selectBelow,I.extendAbove,I.extendTop,I.extendBelow,I.extendBottom,I.moveDown,I.moveUp,I.undoCellAction,I.redoCellAction,I.markdown1,I.markdown2,I.markdown3,I.markdown4,I.markdown5,I.markdown6,I.hideCode,I.showCode,I.hideAllCode,I.showAllCode,I.hideOutput,I.showOutput,I.hideAllOutputs,I.showAllOutputs,I.toggleRenderSideBySideCurrentNotebook,I.setSideBySideRatio,I.enableOutputScrolling,I.disableOutputScrolling].forEach((t=>{e.addItem({command:t,category:n})}))}(n,o);let h=0;const v=e.docRegistry.getFileType("notebook");function y(e){C.forEach((t=>{t.setConfig(e)}))}function N(e){const o=Object.assign(Object.assign({},m.StaticNotebook.defaultEditorConfig.code),e.get("codeCellConfig").composite),n=Object.assign(Object.assign({},m.StaticNotebook.defaultEditorConfig.markdown),e.get("markdownCellConfig").composite),l=Object.assign(Object.assign({},m.StaticNotebook.defaultEditorConfig.raw),e.get("rawCellConfig").composite);t.editorConfig={code:o,markdown:n,raw:l},t.notebookConfig={scrollPastEnd:e.get("scrollPastEnd").composite,defaultCell:e.get("defaultCell").composite,recordTiming:e.get("recordTiming").composite,numberCellsToRenderDirectly:e.get("numberCellsToRenderDirectly").composite,remainingTimeBeforeRescheduling:e.get("remainingTimeBeforeRescheduling").composite,renderCellOnIdle:e.get("renderCellOnIdle").composite,observedTopMargin:e.get("observedTopMargin").composite,observedBottomMargin:e.get("observedBottomMargin").composite,maxNumberOutputs:e.get("maxNumberOutputs").composite,showEditorForReadOnlyMarkdown:e.get("showEditorForReadOnlyMarkdown").composite,disableDocumentWideUndoRedo:e.get("experimentalDisableDocumentWideUndoRedo").composite,renderingLayout:e.get("renderingLayout").composite,sideBySideLeftMarginOverride:e.get("sideBySideLeftMarginOverride").composite,sideBySideRightMarginOverride:e.get("sideBySideRightMarginOverride").composite,sideBySideOutputRatio:e.get("sideBySideOutputRatio").composite},k(t.notebookConfig.sideBySideOutputRatio);const a=`.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell { \n margin-left: ${t.notebookConfig.sideBySideLeftMarginOverride} !important;\n margin-right: ${t.notebookConfig.sideBySideRightMarginOverride} !important;`,r=document.getElementById(R);r?r.innerText=a:document.head.insertAdjacentHTML("beforeend",``),t.shutdownOnClose=e.get("kernelShutdown").composite,_.disableDocumentWideUndoRedo=e.get("experimentalDisableDocumentWideUndoRedo").composite,y({editorConfig:t.editorConfig,notebookConfig:t.notebookConfig,kernelShutdown:t.shutdownOnClose})}return t.widgetCreated.connect(((e,t)=>{var o,n;t.id=t.id||"notebook-"+ ++h,t.title.icon=null==v?void 0:v.icon,t.title.iconClass=null!==(o=null==v?void 0:v.iconClass)&&void 0!==o?o:"",t.title.iconLabel=null!==(n=null==v?void 0:v.iconLabel)&&void 0!==n?n:"",t.context.pathChanged.connect((()=>{C.save(t)})),C.add(t)})),d&&function(e,t,o,n,a){const r=n.load("jupyterlab"),{commands:s}=e;a=a||l.sessionContextDialogs,t.editMenu.undoers.add({tracker:o,undo:e=>{var t;null===(t=e.content.activeCell)||void 0===t||t.editor.undo()},redo:e=>{var t;null===(t=e.content.activeCell)||void 0===t||t.editor.redo()}}),t.editMenu.clearers.add({tracker:o,clearCurrentLabel:e=>r.__("Clear Output"),clearAllLabel:e=>r.__("Clear All Outputs"),clearCurrent:e=>m.NotebookActions.clearOutputs(e.content),clearAll:e=>m.NotebookActions.clearAllOutputs(e.content)}),t.fileMenu.closeAndCleaners.add({tracker:o,closeAndCleanupLabel:e=>r.__("Close and Shutdown Notebook"),closeAndCleanup:e=>{const t=e.title.label;return(0,l.showDialog)({title:r.__("Shut down the Notebook?"),body:r.__('Are you sure you want to close "%1"?',t),buttons:[l.Dialog.cancelButton(),l.Dialog.warnButton()]}).then((t=>{if(t.button.accept)return e.context.sessionContext.shutdown().then((()=>{e.dispose()}))}))}}),t.kernelMenu.kernelUsers.add({tracker:o,interruptKernel:e=>{var t;const o=null===(t=e.sessionContext.session)||void 0===t?void 0:t.kernel;return o?o.interrupt():Promise.resolve(void 0)},reconnectToKernel:e=>{var t;const o=null===(t=e.sessionContext.session)||void 0===t?void 0:t.kernel;return o?o.reconnect():Promise.resolve(void 0)},restartKernelAndClearLabel:e=>r.__("Restart Kernel and Clear All Outputs…"),restartKernel:e=>a.restart(e.sessionContext,n),restartKernelAndClear:e=>a.restart(e.sessionContext,n).then((t=>(t&&m.NotebookActions.clearAllOutputs(e.content),t))),changeKernel:e=>a.selectKernel(e.sessionContext,n),shutdownKernel:e=>e.sessionContext.shutdown()}),t.fileMenu.consoleCreators.add({tracker:o,createConsoleLabel:e=>r.__("New Console for Notebook"),createConsole:e=>$.createConsole(s,e,!0)}),t.viewMenu.editorViewers.add({tracker:o,toggleLineNumbers:e=>{m.NotebookActions.toggleAllLineNumbers(e.content)},lineNumbersToggled:e=>{const t=e.content.editorConfig;return!!(t.code.lineNumbers&&t.markdown.lineNumbers&&t.raw.lineNumbers)}}),t.runMenu.codeRunners.add({tracker:o,runLabel:e=>r.__("Run Selected Cells"),runCaption:e=>r.__("Run the selected cells and advance"),runAllLabel:e=>r.__("Run All Cells"),runAllCaption:e=>r.__("Run the all notebook cells"),restartAndRunAllLabel:e=>r.__("Restart Kernel and Run All Cells…"),restartAndRunAllCaption:e=>r.__("Restart the kernel, then re-run the whole notebook"),run:e=>{const{context:t,content:o}=e;return m.NotebookActions.runAndAdvance(o,t.sessionContext).then((()=>{}))},runAll:e=>{const{context:t,content:o}=e;return m.NotebookActions.runAll(o,t.sessionContext).then((()=>{}))},restartAndRunAll:e=>{const{context:t,content:o}=e;return a.restart(t.sessionContext,n).then((e=>(e&&m.NotebookActions.runAll(o,t.sessionContext),e)))}}),t.helpMenu.kernelUsers.add({tracker:o,getKernel:e=>{var t;return null===(t=e.sessionContext.session)||void 0===t?void 0:t.kernel}})}(e,d,C,o,u),p.addCommand(I.createNew,{label:e=>{var t,o,n;const l=e.kernelName||"";return e.isLauncher&&e.kernelName&&g.kernelspecs?null!==(n=null===(o=null===(t=g.kernelspecs.specs)||void 0===t?void 0:t.kernelspecs[l])||void 0===o?void 0:o.display_name)&&void 0!==n?n:"":e.isPalette||e.isContextMenu?b.__("New Notebook"):b.__("Notebook")},caption:b.__("Create a new notebook"),icon:e=>e.isPalette?void 0:A.notebookIcon,execute:e=>(async(e,t)=>{const o=await p.execute("docmanager:new-untitled",{path:e,type:"notebook"});if(null!=o){const e=await p.execute("docmanager:open",{path:o.path,factory:O,kernel:{name:t}});return e.isUntitled=!0,e}})(e.cwd||(r?r.defaultBrowser.model.path:""),e.kernelName||"")}),s&&g.ready.then((()=>{let e=null;const t=()=>{e&&(e.dispose(),e=null);const t=g.kernelspecs.specs;if(t){e=new w.DisposableSet;for(const o in t.kernelspecs){const n=o===t.default?0:1/0,l=t.kernelspecs[o],a=l.resources["logo-svg"]||l.resources["logo-64x64"];e.add(s.add({command:I.createNew,args:{isLauncher:!0,kernelName:o},category:b.__("Notebook"),rank:n,kernelIconUrl:a,metadata:{kernel:f.JSONExt.deepCopy(l.metadata||{})}}))}}};t(),g.kernelspecs.specsChanged.connect(t)})),C},autoStart:!0},M={id:"@jupyterlab/notebook-extension:factory",provides:m.NotebookPanel.IContentFactory,requires:[r.IEditorServices],autoStart:!0,activate:(e,t)=>{const o=t.factoryService.newInlineEditor;return new m.NotebookPanel.ContentFactory({editorFactory:o})}},j={activate:function(e,t,o,n,l,a){const r=l.load("jupyterlab"),s="notebook-tools",c=new m.NotebookTools({tracker:t,translator:l}),d=new m.NotebookTools.ActiveCellTool,i=m.NotebookTools.createSlideShowSelector(l),u=o.factoryService.newInlineEditor,b=new m.NotebookTools.CellMetadataEditorTool({editorFactory:u,collapsed:!1,translator:l}),g=new m.NotebookTools.NotebookMetadataEditorTool({editorFactory:u,translator:l});return e.serviceManager.nbconvert.getExportFormats().then((e=>{if(e){const t=["pdf","slides","script","notebook","custom"];let o=[[r.__("PDF"),"pdf"],[r.__("Slides"),"slides"],[r.__("Script"),"script"],[r.__("Notebook"),"notebook"],[r.__("Custom"),"custom"]];const n=Object.keys(e),a=$.getFormatLabels(l);n.forEach((function(n){if(-1===t.indexOf(n)){const t=r.__(n[0].toUpperCase()+n.substr(1)),l=a[n]?a[n]:t,s=e[n].output_mimetype;o.push([l,s])}}));const s=m.NotebookTools.createNBConvertSelector(o,l);c.addItem({tool:s,section:"common",rank:3})}})),c.title.icon=A.buildIcon,c.title.caption=r.__("Notebook Tools"),c.id=s,c.addItem({tool:d,section:"common",rank:1}),c.addItem({tool:i,section:"common",rank:2}),c.addItem({tool:b,section:"advanced",rank:1}),c.addItem({tool:g,section:"advanced",rank:2}),v.MessageLoop.installMessageHook(c,((e,t)=>{switch(t.type){case"activate-request":n.save(s,{open:!0});break;case"after-hide":case"close-request":n.remove(s)}return!0})),a&&t.widgetAdded.connect(((e,t)=>{a.register(t).render(c)})),c},provides:m.INotebookTools,id:"@jupyterlab/notebook-extension:tools",autoStart:!0,requires:[m.INotebookTracker,r.IEditorServices,k.IStateDB,_.ITranslator],optional:[g.IPropertyInspectorProvider]},L={id:"@jupyterlab/notebook-extension:mode-status",autoStart:!0,requires:[m.INotebookTracker,_.ITranslator],optional:[x.IStatusBar],activate:(e,t,o,n)=>{if(!n)return;const{shell:l}=e,a=new m.CommandEditStatus(o);t.currentChanged.connect((()=>{const e=t.currentWidget;a.model.notebook=e&&e.content})),n.registerStatusItem("@jupyterlab/notebook-extension:mode-status",{item:a,align:"right",rank:4,isActive:()=>!!l.currentWidget&&!!t.currentWidget&&l.currentWidget===t.currentWidget})}},D={id:"@jupyterlab/notebook-extension:execution-indicator",autoStart:!0,requires:[m.INotebookTracker,n.ILabShell,_.ITranslator],optional:[x.IStatusBar,C.ISettingRegistry],activate:(e,t,o,n,l,a)=>{let r,s,c;const d=e=>{var a,d;let{showOnToolBar:i,showProgress:u}=e;if(i)c&&(o.currentChanged.disconnect(s),c.dispose());else{if(!l)return;(null==r?void 0:r.model)||(r=new m.ExecutionIndicator(n),s=(e,o)=>{const{newValue:n}=o;if(n&&t.has(n)){const e=n;r.model.attachNotebook({content:e.content,context:e.sessionContext})}},c=l.registerStatusItem("@jupyterlab/notebook-extension:execution-indicator",{item:r,align:"left",rank:3,isActive:()=>{const e=o.currentWidget;return!!e&&t.has(e)}}),r.model.attachNotebook({content:null===(a=t.currentWidget)||void 0===a?void 0:a.content,context:null===(d=t.currentWidget)||void 0===d?void 0:d.sessionContext}),o.currentChanged.connect(s),r.disposed.connect((()=>{o.currentChanged.disconnect(s)}))),r.model.displayOption={showOnToolBar:i,showProgress:u}}};if(a){const t=a.load(B.id);Promise.all([t,e.restored]).then((([e])=>{d(m.ExecutionIndicator.getSettingValue(e)),e.changed.connect((e=>d(m.ExecutionIndicator.getSettingValue(e))))})).catch((e=>{console.error(e.message)}))}}},P={id:"@jupyterlab/notebook-extension:export",autoStart:!0,requires:[_.ITranslator,m.INotebookTracker],optional:[b.IMainMenu,l.ICommandPalette],activate:(e,t,o,n,l)=>{var a;const r=t.load("jupyterlab"),{commands:c,shell:d}=e,i=e.serviceManager;let u;c.addCommand(I.exportToFormat,{label:e=>{const t=e.label;return e.isPalette?r.__("Save and Export Notebook: %1",t):t},execute:e=>{const t=V(o,d,e);if(!t)return;const n=s.PageConfig.getNBConvertURL({format:e.format,download:!0,path:t.context.path}),{context:l}=t;return l.model.dirty&&!l.model.readOnly?l.save().then((()=>{window.open(n,"_blank","noopener")})):new Promise((e=>{window.open(n,"_blank","noopener"),e(void 0)}))},isEnabled:()=>$.isEnabled(d,o)}),n&&(u=null===(a=n.fileMenu.items.find((e=>{var t;return"submenu"===e.type&&"jp-mainmenu-file-notebookexport"===(null===(t=e.submenu)||void 0===t?void 0:t.id)})))||void 0===a?void 0:a.submenu),i.nbconvert.getExportFormats().then((e=>{if(e){const o=$.getFormatLabels(t);Object.keys(e).forEach((function(e){const t=r.__(e[0].toUpperCase()+e.substr(1)),n=o[e]?o[e]:t;let a={format:e,label:n,isPalette:!1};if(-1===T.indexOf(e)&&(u&&u.addItem({command:I.exportToFormat,args:a}),l)){a={format:e,label:n,isPalette:!0};const t=r.__("Notebook Operations");l.addItem({command:I.exportToFormat,category:t,args:a})}}))}}))}},W={id:"@jupyterlab/notebook-extension:trust-status",autoStart:!0,requires:[m.INotebookTracker,_.ITranslator],optional:[x.IStatusBar],activate:(e,t,o,n)=>{if(!n)return;const{shell:l}=e,a=new m.NotebookTrustStatus(o);t.currentChanged.connect((()=>{const e=t.currentWidget;a.model.notebook=e&&e.content})),n.registerStatusItem("@jupyterlab/notebook-extension:trust-status",{item:a,align:"right",rank:3,isActive:()=>!!l.currentWidget&&!!t.currentWidget&&l.currentWidget===t.currentWidget})}},F={id:"@jupyterlab/notebook-extension:widget-factory",provides:m.INotebookWidgetFactory,requires:[m.NotebookPanel.IContentFactory,r.IEditorServices,p.IRenderMimeRegistry,l.ISessionContextDialogs,l.IToolbarWidgetRegistry,_.ITranslator],optional:[C.ISettingRegistry],activate:function(e,t,o,n,a,r,c,i){const u=s.PageConfig.getOption("notebookStartsKernel"),b=""===u||"true"===u.toLowerCase(),{commands:g}=e;let p;r.registerFactory(O,"save",(e=>d.ToolbarItems.createSaveButton(g,e.context.fileChanged))),r.registerFactory(O,"cellType",(e=>m.ToolbarItems.createCellTypeItem(e,c))),r.registerFactory(O,"kernelName",(e=>l.Toolbar.createKernelNameItem(e.sessionContext,a,c))),r.registerFactory(O,"executionProgress",(e=>{const t=null==i?void 0:i.load(B.id),o=m.ExecutionIndicator.createExecutionIndicatorItem(e,c,t);return null==t||t.then((t=>{e.disposed.connect((()=>{t.dispose()}))})),o})),i&&(p=(0,l.createToolbarFactory)(r,i,O,"@jupyterlab/notebook-extension:panel",c));const C=new m.NotebookWidgetFactory({name:O,fileTypes:["notebook"],modelName:"notebook",defaultFor:["notebook"],preferKernel:b,canStartKernel:!0,rendermime:n,contentFactory:t,editorConfig:m.StaticNotebook.defaultEditorConfig,notebookConfig:m.StaticNotebook.defaultNotebookConfig,mimeTypeService:o.mimeTypeService,sessionDialogs:a,toolbarFactory:p,translator:c});return e.docRegistry.addWidgetFactory(C),C},autoStart:!0},K={id:"@jupyterlab/notebook-extension:cloned-outputs",requires:[c.IDocumentManager,m.INotebookTracker,_.ITranslator],optional:[n.ILayoutRestorer],activate:function(e,t,o,n,a){const r=n.load("jupyterlab"),s=new l.WidgetTracker({namespace:"cloned-outputs"});a&&a.restore(s,{command:I.createOutputView,args:e=>({path:e.content.path,index:e.content.index}),name:e=>`${e.content.path}:${e.content.index}`,when:o.restored});const{commands:c,shell:d}=e;c.addCommand(I.createOutputView,{label:r.__("Create New View for Output"),execute:async e=>{var a;let r,c;const d=e.path;let i=e.index;if(d&&null!=i){if(c=t.findWidget(d,O),!c)return}else{if(c=o.currentWidget,!c)return;r=c.content.activeCell,i=c.content.activeCellIndex}const u=new $.ClonedOutputArea({notebook:c,cell:r,index:i,translator:n}),b=new l.MainAreaWidget({content:u});c.context.addSibling(b,{ref:c.id,mode:"split-bottom"});const m=()=>{s.save(b)};c.context.pathChanged.connect(m),null===(a=c.context.model)||void 0===a||a.cells.changed.connect(m),s.add(b),c.content.disposed.connect((()=>{var e;c.context.pathChanged.disconnect(m),null===(e=c.context.model)||void 0===e||e.cells.changed.disconnect(m),b.dispose()}))},isEnabled:()=>$.isEnabledAndSingleSelected(d,o)})},autoStart:!0},U={id:"@jupyterlab/notebook-extension:code-console",requires:[m.INotebookTracker,_.ITranslator],activate:function(e,t,o){const n=o.load("jupyterlab"),{commands:l,shell:a}=e,r=()=>$.isEnabled(a,t);l.addCommand(I.createConsole,{label:n.__("New Console for Notebook"),execute:e=>{const o=t.currentWidget;if(o)return $.createConsole(l,o,e.activate)},isEnabled:r}),l.addCommand(I.runInConsole,{label:n.__("Run Selected Text or Current Line in Console"),execute:async e=>{var o,n;const a=t.currentWidget;if(!a)return;const{context:r,content:s}=a,c=s.activeCell,d=null==c?void 0:c.model.metadata.toJSON(),i=r.path;if(!c||"code"!==c.model.type)return;let u;const b=c.editor,m=b.getSelection(),{start:g,end:p}=m;if(g.column!==p.column||g.line!==p.line){const e=b.getOffsetAt(m.start),t=b.getOffsetAt(m.end);u=b.model.value.text.substring(e,t)}else{const e=b.getCursorPosition(),t=b.model.value.text.split("\n");let l=m.start.line;for(;l0,s=0,c=s+1;for(;;){u=t.slice(s,c).join("\n");const d=await(null===(n=null===(o=a.context.sessionContext.session)||void 0===o?void 0:o.kernel)||void 0===n?void 0:n.requestIsComplete({code:u+"\n\n"}));if("complete"===(null==d?void 0:d.content.status)){if(l{var t;const n=null===(t=o.currentWidget)||void 0===t?void 0:t.content.activeCell;if(null==n)return;const l=n.outputArea.outputTracker.currentWidget;if(null==l)return;const a=l.node.getElementsByClassName("jp-OutputArea-output");a.length>0&&function(e){const t=window.getSelection();if(null==t)return;const o=[];for(let e=0;et.addRange(e)))}(a[0])}}),e.contextMenu.addItem({command:I.copyToClipboard,selector:".jp-OutputArea-child",rank:0})},requires:[_.ITranslator,m.INotebookTracker],autoStart:!0},q=[M,B,D,P,j,L,W,F,E,K,U,H];function V(e,t,o){const n=e.currentWidget;return!1!==o.activate&&n&&t.activateById(n.id),n}var $;!function(e){e.createConsole=function(e,t,o){const n={path:t.context.path,preferredLanguage:t.context.model.defaultKernelLanguage,activate:o,ref:t.id,insertMode:"split-bottom"};return e.execute("console:create",n)},e.isEnabled=function(e,t){return null!==t.currentWidget&&t.currentWidget===e.currentWidget},e.isEnabledAndSingleSelected=function(t,o){if(!e.isEnabled(t,o))return!1;const{content:n}=o.currentWidget,l=n.activeCellIndex;for(let e=0;e{if(this._cell||(this._cell=this._notebook.content.widgets[this._index]),!this._cell||"code"!==this._cell.model.type)return void this.dispose();const e=this._cell.cloneOutputArea();this.addWidget(e)}))}get index(){return this._cell?h.ArrayExt.findFirstIndex(this._notebook.content.widgets,(e=>e===this._cell)):this._index}get path(){return this._notebook.context.path}}e.ClonedOutputArea=t}($||($={}))}}]); +//# sourceMappingURL=4875.375150e.js.map \ No newline at end of file diff --git a/_static/build/4875.375150e.js.map b/_static/build/4875.375150e.js.map new file mode 100644 index 0000000..e3eb0fe --- /dev/null +++ b/_static/build/4875.375150e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4875.375150e.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/nboutput.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/489.b981dea.js b/_static/build/489.b981dea.js new file mode 100644 index 0000000..f87fcec --- /dev/null +++ b/_static/build/489.b981dea.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[489],{36130:(e,n,t)=>{t.d(n,{Z:()=>s});var a=t(34663),r=t.n(a),o=t(7638),c=t.n(o)()(r());c.push([e.id,".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-variable { color: black; }\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\n.cm-s-elegant span.cm-qualifier { color: #555; }\n.cm-s-elegant span.cm-keyword { color: #730; }\n.cm-s-elegant span.cm-builtin { color: #30a; }\n.cm-s-elegant span.cm-link { color: #762; }\n.cm-s-elegant span.cm-error { background-color: #fdd; }\n\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/elegant.css"],names:[],mappings:"AAAA,yFAAyF,WAAW,EAAE;AACtG,gCAAgC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AACnF,6BAA6B,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AAChF,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,WAAW,EAAE;AAChD,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,sBAAsB,EAAE;;AAEtD,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE",sourcesContent:[".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\n.cm-s-elegant span.cm-variable { color: black; }\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\n.cm-s-elegant span.cm-qualifier { color: #555; }\n.cm-s-elegant span.cm-keyword { color: #730; }\n.cm-s-elegant span.cm-builtin { color: #30a; }\n.cm-s-elegant span.cm-link { color: #762; }\n.cm-s-elegant span.cm-error { background-color: #fdd; }\n\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n"],sourceRoot:""}]);const s=c},7638:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",a=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),a&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),a&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,a,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var c={};if(a)for(var s=0;s0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=o),t&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=t):A[2]=t),r&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=r):A[4]="".concat(r)),n.push(A))}},n}},34663:e=>{e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),o="/*# ".concat(r," */"),c=t.sources.map((function(e){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(e," */")}));return[n].concat(c).concat([o]).join("\n")}return[n].join("\n")}},30489:(e,n,t)=>{t.r(n),t.d(n,{default:()=>v});var a=t(1892),r=t.n(a),o=t(95760),c=t.n(o),s=t(38311),i=t.n(s),l=t(58192),A=t.n(l),m=t(38060),u=t.n(m),p=t(54865),d=t.n(p),f=t(36130),g={};g.styleTagTransform=d(),g.setAttributes=A(),g.insert=i().bind(null,"head"),g.domAPI=c(),g.insertStyleElement=u(),r()(f.Z,g);const v=f.Z&&f.Z.locals?f.Z.locals:void 0},1892:e=>{var n=[];function t(e){for(var t=-1,a=0;a{var n={};e.exports=function(e,t){var a=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}},38060:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},58192:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},95760:e=>{e.exports=function(e){var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var a="";t.supports&&(a+="@supports (".concat(t.supports,") {")),t.media&&(a+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(a+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),a+=t.css,r&&(a+="}"),t.media&&(a+="}"),t.supports&&(a+="}");var o=t.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),n.styleTagTransform(a,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},54865:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}}}]); +//# sourceMappingURL=489.b981dea.js.map \ No newline at end of file diff --git a/_static/build/489.b981dea.js.map b/_static/build/489.b981dea.js.map new file mode 100644 index 0000000..03b8fed --- /dev/null +++ b/_static/build/489.b981dea.js.map @@ -0,0 +1 @@ +{"version":3,"file":"489.b981dea.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/elegant.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/elegant.css?6e75","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-variable { color: black; }\\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\\n.cm-s-elegant span.cm-qualifier { color: #555; }\\n.cm-s-elegant span.cm-keyword { color: #730; }\\n.cm-s-elegant span.cm-builtin { color: #30a; }\\n.cm-s-elegant span.cm-link { color: #762; }\\n.cm-s-elegant span.cm-error { background-color: #fdd; }\\n\\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/elegant.css\"],\"names\":[],\"mappings\":\"AAAA,yFAAyF,WAAW,EAAE;AACtG,gCAAgC,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AACnF,6BAA6B,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;AAChF,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,WAAW,EAAE;AAChD,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,sBAAsB,EAAE;;AAEtD,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE\",\"sourcesContent\":[\".cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }\\n.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }\\n.cm-s-elegant span.cm-variable { color: black; }\\n.cm-s-elegant span.cm-variable-2 { color: #b11; }\\n.cm-s-elegant span.cm-qualifier { color: #555; }\\n.cm-s-elegant span.cm-keyword { color: #730; }\\n.cm-s-elegant span.cm-builtin { color: #30a; }\\n.cm-s-elegant span.cm-link { color: #762; }\\n.cm-s-elegant span.cm-error { background-color: #fdd; }\\n\\n.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./elegant.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./elegant.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/490.c2624d4.js b/_static/build/490.c2624d4.js new file mode 100644 index 0000000..534664d --- /dev/null +++ b/_static/build/490.c2624d4.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[490],{80490:(e,t,a)=>{a.r(t),a.d(t,{RenderedPDF:()=>d,default:()=>c,rendererFactory:()=>r});var s=a(26169),o=a(43231),i=a(94519);const n="application/pdf";class d extends i.Widget{constructor(){super(),this._base64="",this._disposable=null,this._ready=new s.PromiseDelegate,this.addClass("jp-PDFContainer");const e=document.createElement("iframe");this.node.appendChild(e),e.onload=()=>{const t=e.contentWindow.document.createElement("body");t.style.margin="0px",e.contentWindow.document.body=t,this._object=e.contentWindow.document.createElement("object"),window.safari||(this._object.type=n),this._object.width="100%",this._object.height="100%",t.appendChild(this._object),this._ready.resolve(void 0)}}async renderModel(e){await this._ready.promise;const t=e.data[n];if(!t||t.length===this._base64.length&&t===this._base64){if(e.metadata.fragment&&this._object.data){const t=this._object.data;this._object.data=`${t.split("#")[0]}${e.metadata.fragment}`}return l.IS_FIREFOX&&(this._object.data=this._object.data),Promise.resolve(void 0)}this._base64=t;const a=l.b64toBlob(t,n);this._disposable&&this._disposable.dispose();let s=URL.createObjectURL(a);e.metadata.fragment&&(s+=e.metadata.fragment),this._object.data=s,this._disposable=new o.DisposableDelegate((()=>{try{URL.revokeObjectURL(s)}catch(e){}}))}onBeforeHide(){l.IS_FIREFOX&&(this._object.data=this._object.data.split("#")[0])}dispose(){this._disposable&&this._disposable.dispose(),super.dispose()}}const r={safe:!1,mimeTypes:[n],defaultRank:100,createRenderer:e=>new d},c=[{id:"@jupyterlab/pdf-extension:factory",rendererFactory:r,dataType:"string",documentWidgetFactoryOptions:{name:"PDF",modelName:"base64",primaryFileType:"PDF",fileTypes:["PDF"],defaultFor:["PDF"]}}];var l;!function(e){e.IS_FIREFOX=/Firefox/.test(navigator.userAgent),e.b64toBlob=function(e,t="",a=512){const s=atob(e),o=[];for(let e=0;e{i.r(t),i.d(t,{ISingleWidgetShell:()=>p,SingleWidgetApp:()=>u,SingleWidgetShell:()=>d});var n=i(67504),s=i(61280),g=i(69207),a=i(55941),o=i(43892),r=i(26169),l=i(70942),h=i(94519);const p=new r.Token("@jupyterlite/application:ISingleWidgetShell");class d extends h.Widget{constructor(){super(),this._currentChanged=new l.Signal(this),this.id="main";const e=new h.PanelLayout;this._main=new h.Panel,this._main.id="single-widget-panel",e.addWidget(this._main),this.layout=e}get currentChanged(){return this._currentChanged}get currentWidget(){var e;return null!==(e=this._main.widgets[0])&&void 0!==e?e:null}activateById(e){const t=(0,o.find)(this.widgets("main"),(t=>t.id===e));t&&t.activate()}add(e,t,i){if("main"===t||void 0===t){if(this._main.widgets.length>0)return;this._main.addWidget(e),this._main.update(),this._currentChanged.emit(void 0)}}widgets(e){if("main"===(null!=e?e:"main"))return(0,o.iter)(this._main.widgets);throw new Error(`Invalid area: ${e}`)}}class u extends n.JupyterFrontEnd{constructor(e={shell:new d}){var t,i;if(super({...e,shell:null!==(t=e.shell)&&void 0!==t?t:new d}),this.name="Single Widget Application",this.namespace=this.name,this.status=new g.J(this),this.version=null!==(i=a.PageConfig.getOption("appVersion"))&&void 0!==i?i:"unknown",e.mimeExtensions)for(const t of(0,s.as)(e.mimeExtensions))this.registerPlugin(t)}get paths(){return{urls:{base:a.PageConfig.getOption("baseUrl"),notFound:a.PageConfig.getOption("notFoundUrl"),app:a.PageConfig.getOption("appUrl"),static:a.PageConfig.getOption("staticUrl"),settings:a.PageConfig.getOption("settingsUrl"),themes:a.PageConfig.getOption("themesUrl"),doc:a.PageConfig.getOption("docUrl"),translations:a.PageConfig.getOption("translationsApiUrl"),hubHost:a.PageConfig.getOption("hubHost")||void 0,hubPrefix:a.PageConfig.getOption("hubPrefix")||void 0,hubUser:a.PageConfig.getOption("hubUser")||void 0,hubServerName:a.PageConfig.getOption("hubServerName")||void 0},directories:{appSettings:a.PageConfig.getOption("appSettingsDir"),schemas:a.PageConfig.getOption("schemasDir"),static:a.PageConfig.getOption("staticDir"),templates:a.PageConfig.getOption("templatesDir"),themes:a.PageConfig.getOption("themesDir"),userSettings:a.PageConfig.getOption("userSettingsDir"),serverRoot:a.PageConfig.getOption("serverRoot"),workspaces:a.PageConfig.getOption("workspacesDir")}}}registerPluginModule(e){let t=e.default;Object.prototype.hasOwnProperty.call(e,"__esModule")||(t=e),Array.isArray(t)||(t=[t]),t.forEach((e=>{try{this.registerPlugin(e)}catch(e){console.error(e)}}))}registerPluginModules(e){e.forEach((e=>{this.registerPluginModule(e)}))}}}}]); +//# sourceMappingURL=4905.667bf33.js.map \ No newline at end of file diff --git a/_static/build/4905.667bf33.js.map b/_static/build/4905.667bf33.js.map new file mode 100644 index 0000000..9c23cb0 --- /dev/null +++ b/_static/build/4905.667bf33.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4905.667bf33.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application/src/singleWidgetShell.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application/src/singleWidgetApp.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { JupyterFrontEnd } from '@jupyterlab/application';\n\nimport { DocumentRegistry } from '@jupyterlab/docregistry';\n\nimport { find, IIterator, iter } from '@lumino/algorithm';\n\nimport { Token } from '@lumino/coreutils';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Panel, Widget, PanelLayout } from '@lumino/widgets';\n\n/**\n * The single widget application shell token.\n */\nexport const ISingleWidgetShell = new Token(\n '@jupyterlite/application:ISingleWidgetShell'\n);\n\n/**\n * The single widget application shell interface.\n */\nexport interface ISingleWidgetShell extends SingleWidgetShell {}\n\n/**\n * The application shell.\n */\nexport class SingleWidgetShell extends Widget implements JupyterFrontEnd.IShell {\n constructor() {\n super();\n this.id = 'main';\n\n const rootLayout = new PanelLayout();\n this._main = new Panel();\n this._main.id = 'single-widget-panel';\n rootLayout.addWidget(this._main);\n this.layout = rootLayout;\n }\n\n /**\n * A signal emitted when the current widget changes.\n */\n get currentChanged(): ISignal {\n return this._currentChanged;\n }\n\n /**\n * The current widget in the shell's main area.\n */\n get currentWidget(): Widget | null {\n return this._main.widgets[0] ?? null;\n }\n\n /**\n * Activate a widget in its area.\n */\n activateById(id: string): void {\n const widget = find(this.widgets('main'), (w) => w.id === id);\n if (widget) {\n widget.activate();\n }\n }\n\n /**\n * Add a widget to the application shell.\n *\n * @param widget - The widget being added.\n *\n * @param area - Optional region in the shell into which the widget should\n * be added.\n *\n * @param options - Optional open options.\n *\n */\n add(\n widget: Widget,\n area?: Shell.Area,\n options?: DocumentRegistry.IOpenOptions\n ): void {\n if (area === 'main' || area === undefined) {\n if (this._main.widgets.length > 0) {\n // do not add the widget if there is already one\n return;\n }\n this._main.addWidget(widget);\n this._main.update();\n this._currentChanged.emit(void 0);\n }\n }\n\n /**\n * Return the list of widgets for the given area.\n *\n * @param area The area\n */\n widgets(area: Shell.Area): IIterator {\n switch (area ?? 'main') {\n case 'main':\n return iter(this._main.widgets);\n default:\n throw new Error(`Invalid area: ${area}`);\n }\n }\n\n private _main: Panel;\n private _currentChanged = new Signal(this);\n}\n\n/**\n * A namespace for Shell statics\n */\nexport namespace Shell {\n /**\n * The areas of the application shell where widgets can reside.\n */\n export type Area = 'main';\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application';\n\nimport { createRendermimePlugins } from '@jupyterlab/application/lib/mimerenderers';\n\nimport { LabStatus } from '@jupyterlab/application/lib/status';\n\nimport { PageConfig } from '@jupyterlab/coreutils';\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { ISingleWidgetShell, SingleWidgetShell } from './singleWidgetShell';\n\n/**\n * App is the main application class. It is instantiated once and shared.\n */\nexport class SingleWidgetApp extends JupyterFrontEnd {\n /**\n * Construct a new SingleWidgetApp object.\n *\n * @param options The instantiation options for an application.\n */\n constructor(options: SingleWidgetApp.IOptions = { shell: new SingleWidgetShell() }) {\n super({\n ...options,\n shell: options.shell ?? new SingleWidgetShell(),\n });\n if (options.mimeExtensions) {\n for (const plugin of createRendermimePlugins(options.mimeExtensions)) {\n this.registerPlugin(plugin);\n }\n }\n }\n\n /**\n * The name of the application.\n */\n readonly name = 'Single Widget Application';\n\n /**\n * A namespace/prefix plugins may use to denote their provenance.\n */\n readonly namespace = this.name;\n\n /**\n * The application busy and dirty status signals and flags.\n */\n readonly status = new LabStatus(this);\n\n /**\n * The version of the application.\n */\n readonly version = PageConfig.getOption('appVersion') ?? 'unknown';\n\n /**\n * The JupyterLab application paths dictionary.\n */\n get paths(): JupyterFrontEnd.IPaths {\n return {\n urls: {\n base: PageConfig.getOption('baseUrl'),\n notFound: PageConfig.getOption('notFoundUrl'),\n app: PageConfig.getOption('appUrl'),\n static: PageConfig.getOption('staticUrl'),\n settings: PageConfig.getOption('settingsUrl'),\n themes: PageConfig.getOption('themesUrl'),\n doc: PageConfig.getOption('docUrl'),\n translations: PageConfig.getOption('translationsApiUrl'),\n hubHost: PageConfig.getOption('hubHost') || undefined,\n hubPrefix: PageConfig.getOption('hubPrefix') || undefined,\n hubUser: PageConfig.getOption('hubUser') || undefined,\n hubServerName: PageConfig.getOption('hubServerName') || undefined,\n },\n directories: {\n appSettings: PageConfig.getOption('appSettingsDir'),\n schemas: PageConfig.getOption('schemasDir'),\n static: PageConfig.getOption('staticDir'),\n templates: PageConfig.getOption('templatesDir'),\n themes: PageConfig.getOption('themesDir'),\n userSettings: PageConfig.getOption('userSettingsDir'),\n serverRoot: PageConfig.getOption('serverRoot'),\n workspaces: PageConfig.getOption('workspacesDir'),\n },\n };\n }\n\n /**\n * Register plugins from a plugin module.\n *\n * @param mod - The plugin module to register.\n */\n registerPluginModule(mod: SingleWidgetApp.IPluginModule): void {\n let data = mod.default;\n // Handle commonjs exports.\n if (!Object.prototype.hasOwnProperty.call(mod, '__esModule')) {\n data = mod as any;\n }\n if (!Array.isArray(data)) {\n data = [data];\n }\n data.forEach((item) => {\n try {\n this.registerPlugin(item);\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * Register the plugins from multiple plugin modules.\n *\n * @param mods - The plugin modules to register.\n */\n registerPluginModules(mods: SingleWidgetApp.IPluginModule[]): void {\n mods.forEach((mod) => {\n this.registerPluginModule(mod);\n });\n }\n}\n\n/**\n * A namespace for App statics.\n */\nexport namespace SingleWidgetApp {\n /**\n * The instantiation options for an App application.\n */\n export interface IOptions\n extends JupyterFrontEnd.IOptions,\n Partial {}\n\n /**\n * The information about a Jupyter Notebook application.\n */\n export interface IInfo {\n /**\n * The mime renderer extensions.\n */\n readonly mimeExtensions: IRenderMime.IExtensionModule[];\n }\n\n /**\n * The interface for a module that exports a plugin or plugins as\n * the default value.\n */\n export interface IPluginModule {\n /**\n * The default export.\n */\n default: JupyterFrontEndPlugin | JupyterFrontEndPlugin[];\n }\n}\n"],"names":["ISingleWidgetShell","Token","SingleWidgetShell","Widget","constructor","super","_currentChanged","Signal","this","id","rootLayout","PanelLayout","_main","Panel","addWidget","layout","currentChanged","currentWidget","widgets","activateById","widget","find","w","activate","add","area","options","undefined","length","update","emit","iter","Error","SingleWidgetApp","JupyterFrontEnd","shell","name","namespace","status","version","PageConfig","mimeExtensions","plugin","registerPlugin","paths","urls","base","notFound","app","static","settings","themes","doc","translations","hubHost","hubPrefix","hubUser","hubServerName","directories","appSettings","schemas","templates","userSettings","serverRoot","workspaces","registerPluginModule","mod","data","default","Object","prototype","hasOwnProperty","call","Array","isArray","forEach","item","error","console","registerPluginModules","mods"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4931.c1705a1.js b/_static/build/4931.c1705a1.js new file mode 100644 index 0000000..98e9609 --- /dev/null +++ b/_static/build/4931.c1705a1.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4931,8732],{24931:(e,t,s)=>{s.r(t),s.d(t,{default:()=>O});var n=s(55941),r=s(58272),a=s(86580),o=s(45853),i=s(69471),c=s(62155),u=s(20313),l=s(2382),p=s(30176),g=s(29440),y=s.n(g);const w={id:"@jupyterlite/server-extension:localforage",autoStart:!0,provides:p.ILocalForage,activate:e=>({localforage:y()})},v={id:"@jupyterlite/server-extension:localforage-memory-storage",autoStart:!0,requires:[p.ILocalForage],activate:async(e,t)=>{JSON.parse(n.PageConfig.getOption("enableMemoryStorage")||"false")&&(console.warn("Memory storage fallback enabled: contents and settings may not be saved"),await(0,p.ensureMemoryStorage)(t.localforage))}},d={id:"@jupyterlite/server-extension:contents",requires:[p.ILocalForage],autoStart:!0,provides:r.IContents,activate:(e,t)=>{const s=n.PageConfig.getOption("contentsStorageName"),a=JSON.parse(n.PageConfig.getOption("contentsStorageDrivers")||"null"),{localforage:o}=t,i=new r.Contents({storageName:s,storageDrivers:a,localforage:o});return e.started.then((()=>i.initialize().catch(console.warn))),i}},S={id:"@jupyterlite/server-extension:contents-routes",autoStart:!0,requires:[r.IContents],activate:(e,t)=>{e.router.get("/api/contents/(.+)/checkpoints",(async(e,s)=>{const n=await t.listCheckpoints(s);return new Response(JSON.stringify(n))})),e.router.post("/api/contents/(.+)/checkpoints/(.*)",(async(e,s,n)=>{const r=await t.restoreCheckpoint(s,n);return new Response(JSON.stringify(r),{status:204})})),e.router.post("/api/contents/(.+)/checkpoints",(async(e,s)=>{const n=await t.createCheckpoint(s);return new Response(JSON.stringify(n),{status:201})})),e.router.delete("/api/contents/(.+)/checkpoints/(.*)",(async(e,s,n)=>{const r=await t.deleteCheckpoint(s,n);return new Response(JSON.stringify(r),{status:204})})),e.router.get("/api/contents(.*)",(async(e,s)=>{var n;const r={content:"1"===(null===(n=e.query)||void 0===n?void 0:n.content)},a=await t.get(s,r);return a?new Response(JSON.stringify(a)):new Response(null,{status:404})})),e.router.post("/api/contents(.*)",(async(e,s)=>{const n=e.body,r=null==n?void 0:n.copy_from;let a;return a=r?await t.copy(r,s):await t.newUntitled(n),a?new Response(JSON.stringify(a),{status:201}):new Response(null,{status:400})})),e.router.patch("/api/contents(.*)",(async(e,s)=>{var n,r;const a=null!==(r=null===(n=e.body)||void 0===n?void 0:n.path)&&void 0!==r?r:"";s="/"===s[0]?s.slice(1):s;const o=await t.rename(s,a);return new Response(JSON.stringify(o))})),e.router.put("/api/contents/(.+)",(async(e,s)=>{const n=e.body,r=await t.save(s,n);return new Response(JSON.stringify(r))})),e.router.delete("/api/contents/(.+)",(async(e,s)=>(await t.delete(s),new Response(null,{status:204}))))}},f={id:"@jupyterlite/server-extension:service-worker",autoStart:!0,provides:i.IServiceWorkerManager,activate:e=>new i.ServiceWorkerManager},O=[d,S,{id:"@jupyterlite/server-extension:emscripten-filesystem",autoStart:!0,optional:[i.IServiceWorkerManager],provides:r.IBroadcastChannelWrapper,activate:(e,t)=>{const{contents:s}=e.serviceManager,n=new r.BroadcastChannelWrapper({contents:s}),a="Kernel filesystem and JupyterLite contents";function o(e,t){t&&console.warn(t),e&&console.warn(e),t||e?console.warn(`${a} will NOT be synced`):console.info(`${a} will be synced`)}return t?t.ready.then((()=>{n.enable(),o()})).catch((e=>{o("JupyterLite ServiceWorker failed to become available",e)})):o("JupyterLite ServiceWorker not available"),n}},{id:"@jupyterlite/server-extension:kernels",autoStart:!0,provides:a.IKernels,requires:[a.IKernelSpecs],activate:(e,t)=>new a.Kernels({kernelspecs:t})},{id:"@jupyterlite/server-extension:kernels-routes",autoStart:!0,requires:[a.IKernels],activate:(e,t)=>{e.router.post("/api/kernels/(.*)/restart",(async(e,s)=>{const n=await t.restart(s);return new Response(JSON.stringify(n))})),e.router.delete("/api/kernels/(.*)",(async(e,s)=>{const n=await t.shutdown(s);return new Response(JSON.stringify(n),{status:204})}))}},{id:"@jupyterlite/server-extension:kernelspec",autoStart:!0,provides:a.IKernelSpecs,activate:e=>new a.KernelSpecs},{id:"@jupyterlite/server-extension:kernelspec-routes",autoStart:!0,requires:[a.IKernelSpecs],activate:(e,t)=>{e.router.get("/api/kernelspecs",(async e=>{const{specs:s}=t;if(!s)return new Response(null);const n={},r=s.kernelspecs;Object.keys(r).forEach((e=>{const t=r[e],{resources:s}=null!=t?t:{};n[e]={name:e,spec:t,resources:s}}));const a={default:s.default,kernelspecs:n};return new Response(JSON.stringify(a))}))}},{id:"@jupyterlite/server-extension:licenses",autoStart:!0,provides:o.ILicenses,activate:e=>new o.Licenses},{id:"@jupyterlite/server-extension:licenses-routes",autoStart:!0,requires:[o.ILicenses],activate(e,t){e.router.get("/api/licenses",(async e=>{const s=await t.get();return new Response(JSON.stringify(s))}))}},v,w,{id:"@jupyterlite/server-extension:nbconvert-routes",autoStart:!0,activate:e=>{e.router.get("/api/nbconvert",(async e=>new Response(JSON.stringify({}))))}},f,{id:"@jupyterlite/server-extension:sessions",autoStart:!0,provides:c.ISessions,requires:[a.IKernels],activate:(e,t)=>new c.Sessions({kernels:t})},{id:"@jupyterlite/server-extension:sessions-routes",autoStart:!0,requires:[c.ISessions],activate:(e,t)=>{e.router.get("/api/sessions/(.+)",(async(e,s)=>{const n=await t.get(s);return new Response(JSON.stringify(n),{status:200})})),e.router.get("/api/sessions",(async e=>{const s=await t.list();return new Response(JSON.stringify(s),{status:200})})),e.router.patch("/api/sessions(.*)",(async(e,s)=>{const n=e.body,r=await t.patch(n);return new Response(JSON.stringify(r),{status:200})})),e.router.delete("/api/sessions/(.+)",(async(e,s)=>(await t.shutdown(s),new Response(null,{status:204})))),e.router.post("/api/sessions",(async e=>{const s=e.body,n=await t.startNew(s);return new Response(JSON.stringify(n),{status:201})}))}},{id:"@jupyterlite/server-extension:settings",autoStart:!0,requires:[p.ILocalForage],provides:u.ISettings,activate:(e,t)=>{const s=n.PageConfig.getOption("settingsStorageName"),r=JSON.parse(n.PageConfig.getOption("settingsStorageDrivers")||"null"),{localforage:a}=t,o=new u.Settings({storageName:s,storageDrivers:r,localforage:a});return e.started.then((()=>o.initialize().catch(console.warn))),o}},{id:"@jupyterlite/server-extension:settings-routes",autoStart:!0,requires:[u.ISettings],activate:(e,t)=>{const s="/api/settings/((?:@([^/]+?)[/])?([^/]+?):([^:]+))$";e.router.get(s,(async(e,s)=>{const n=await t.get(s);return new Response(JSON.stringify(n))})),e.router.put(s,(async(e,s)=>{const n=e.body,{raw:r}=n;return await t.save(s,r),new Response(null,{status:204})})),e.router.get("/api/settings",(async e=>{const s=await t.getAll();return new Response(JSON.stringify(s))}))}},{id:"@jupyterlite/server-extension:translation",autoStart:!0,provides:l.ITranslation,activate:e=>{const t=new l.Translation;return e.router.get("/api/translations/?(.*)",(async(e,s)=>{const n=await t.get(s||"all");return new Response(JSON.stringify(n))})),t}},{id:"@jupyterlite/server-extension:translation-routes",autoStart:!0,requires:[l.ITranslation],activate:(e,t)=>{e.router.get("/api/translations/?(.*)",(async(e,s)=>{const n=await t.get(s||"all");return new Response(JSON.stringify(n))}))}}]}}]); +//# sourceMappingURL=4931.c1705a1.js.map \ No newline at end of file diff --git a/_static/build/4931.c1705a1.js.map b/_static/build/4931.c1705a1.js.map new file mode 100644 index 0000000..5012d4e --- /dev/null +++ b/_static/build/4931.c1705a1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4931.c1705a1.js","mappings":"gSAuCA,MAAMA,EAA2D,CAC/DC,GAAI,4CACJC,WAAW,EACXC,SAAU,EAAAC,aACVC,SAAWC,IACF,CAAEC,YAAW,OAOlBC,EAAyD,CAC7DP,GAAI,2DACJC,WAAW,EACXO,SAAU,CAAC,EAAAL,cACXC,SAAUK,MAAOJ,EAAwBK,KACnCC,KAAKC,MAAM,EAAAC,WAAA,UAAqB,wBAA0B,WAC5DC,QAAQC,KACN,iFAEI,IAAAC,qBAAoBN,EAAOJ,a,GAQjCW,EAAqD,CACzDjB,GAAI,yCACJQ,SAAU,CAAC,EAAAL,cACXF,WAAW,EACXC,SAAU,EAAAgB,UACVd,SAAU,CAACC,EAAwBK,KACjC,MAAMS,EAAc,EAAAN,WAAA,UAAqB,uBACnCO,EAAiBT,KAAKC,MAC1B,EAAAC,WAAA,UAAqB,2BAA6B,SAE9C,YAAEP,GAAgBI,EAClBW,EAAW,IAAI,EAAAC,SAAS,CAC5BH,cACAC,iBACAd,gBAGF,OADAD,EAAIkB,QAAQC,MAAK,IAAMH,EAASI,aAAaC,MAAMZ,QAAQC,QACpDM,CAAQ,GAObM,EAAsD,CAC1D3B,GAAI,gDACJC,WAAW,EACXO,SAAU,CAAC,EAAAU,WACXd,SAAU,CAACC,EAAwBgB,KAEjChB,EAAIuB,OAAOC,IACT,kCACApB,MAAOqB,EAAsBC,KAC3B,MAAMC,QAAYX,EAASY,gBAAgBF,GAC3C,OAAO,IAAIG,SAASvB,KAAKwB,UAAUH,GAAK,IAK5C3B,EAAIuB,OAAOQ,KACT,uCACA3B,MAAOqB,EAAsBC,EAAkBM,KAC7C,MAAML,QAAYX,EAASiB,kBAAkBP,EAAUM,GACvD,OAAO,IAAIH,SAASvB,KAAKwB,UAAUH,GAAM,CAAEO,OAAQ,KAAM,IAK7DlC,EAAIuB,OAAOQ,KACT,kCACA3B,MAAOqB,EAAsBC,KAC3B,MAAMC,QAAYX,EAASmB,iBAAiBT,GAC5C,OAAO,IAAIG,SAASvB,KAAKwB,UAAUH,GAAM,CAAEO,OAAQ,KAAM,IAK7DlC,EAAIuB,OAAOa,OACT,uCACAhC,MAAOqB,EAAsBC,EAAkBM,KAC7C,MAAML,QAAYX,EAASqB,iBAAiBX,EAAUM,GACtD,OAAO,IAAIH,SAASvB,KAAKwB,UAAUH,GAAM,CAAEO,OAAQ,KAAM,IAK7DlC,EAAIuB,OAAOC,IACT,qBACApB,MAAOqB,EAAsBC,K,MAC3B,MAAMY,EAAwC,CAC5CC,QAAgC,OAAd,QAAT,EAAAd,EAAIe,aAAK,eAAED,UAEhBE,QAAWzB,EAASQ,IAAIE,EAAUY,GACxC,OAAKG,EAGE,IAAIZ,SAASvB,KAAKwB,UAAUW,IAF1B,IAAIZ,SAAS,KAAM,CAAEK,OAAQ,KAEC,IAK3ClC,EAAIuB,OAAOQ,KAAK,qBAAqB3B,MAAOqB,EAAsBiB,KAChE,MAAMJ,EAAUb,EAAIkB,KACdC,EAAWN,aAAO,EAAPA,EAASO,UAC1B,IAAIC,EAMJ,OAJEA,EADEF,QACW5B,EAAS+B,KAAKH,EAAUF,SAExB1B,EAASgC,YAAYV,GAE/BQ,EAGE,IAAIjB,SAASvB,KAAKwB,UAAUgB,GAAO,CAAEZ,OAAQ,MAF3C,IAAIL,SAAS,KAAM,CAAEK,OAAQ,KAEoB,IAI5DlC,EAAIuB,OAAO0B,MACT,qBACA7C,MAAOqB,EAAsBC,K,QAC3B,MAAMwB,EAAoC,QAAzB,EAAQ,QAAR,EAAAzB,EAAIkB,YAAI,eAAED,YAAe,QAAI,GAC9ChB,EAA2B,MAAhBA,EAAS,GAAaA,EAASyB,MAAM,GAAKzB,EACrD,MAAMe,QAAWzB,EAASoC,OAAO1B,EAAUwB,GAC3C,OAAO,IAAIrB,SAASvB,KAAKwB,UAAUW,GAAI,IAK3CzC,EAAIuB,OAAO8B,IACT,sBACAjD,MAAOqB,EAAsBC,KAC3B,MAAMiB,EAAOlB,EAAIkB,KACXF,QAAWzB,EAASsC,KAAK5B,EAAUiB,GACzC,OAAO,IAAId,SAASvB,KAAKwB,UAAUW,GAAI,IAK3CzC,EAAIuB,OAAOa,OACT,sBACAhC,MAAOqB,EAAsBC,WACrBV,EAASoB,OAAOV,GACf,IAAIG,SAAS,KAAM,CAAEK,OAAQ,QAEvC,GAOCqB,EAAsE,CAC1E5D,GAAI,+CACJC,WAAW,EACXC,SAAU,EAAA2D,sBACVzD,SAAWC,GACF,IAAI,EAAAyD,sBAoWf,EAtBgD,CAC9C7C,EACAU,EAzUoF,CACpF3B,GAAI,sDACJC,WAAW,EACX8D,SAAU,CAAC,EAAAF,uBACX3D,SAAU,EAAA8D,yBACV5D,SAAU,CACRC,EACA4D,KAEA,MAAM,SAAE5C,GAAahB,EAAI6D,eACnBC,EAAc,IAAI,EAAAC,wBAAwB,CAAE/C,aAC5CgD,EAAO,6CAEb,SAASC,EAAUC,EAAcC,GAC3BA,GACF1D,QAAQC,KAAKyD,GAEXD,GACFzD,QAAQC,KAAKwD,GAEXC,GAAOD,EACTzD,QAAQC,KAAK,GAAGsD,wBAEhBvD,QAAQ2D,KAAK,GAAGJ,mBAEpB,CAeA,OAbKJ,EAGHA,EAAiCS,MAC9BlD,MAAK,KACJ2C,EAAYQ,SACZL,GAAW,IAEZ5C,OAAO8C,IACNF,EAAU,uDAAwDE,EAAI,IAR1EF,EAAU,2CAYLH,CAAW,GAOmC,CACvDnE,GAAI,wCACJC,WAAW,EACXC,SAAU,EAAA0E,SACVpE,SAAU,CAAC,EAAAqE,cACXzE,SAAU,CAACC,EAAwByE,IAC1B,IAAI,EAAAC,QAAQ,CAAED,iBAOkC,CACzD9E,GAAI,+CACJC,WAAW,EACXO,SAAU,CAAC,EAAAoE,UACXxE,SAAU,CAACC,EAAwB2E,KAEjC3E,EAAIuB,OAAOQ,KACT,6BACA3B,MAAOqB,EAAsBmD,KAC3B,MAAMjD,QAAYgD,EAAQE,QAAQD,GAClC,OAAO,IAAI/C,SAASvB,KAAKwB,UAAUH,GAAK,IAK5C3B,EAAIuB,OAAOa,OACT,qBACAhC,MAAOqB,EAAsBmD,KAC3B,MAAMjD,QAAYgD,EAAQG,SAASF,GACnC,OAAO,IAAI/C,SAASvB,KAAKwB,UAAUH,GAAM,CAAEO,OAAQ,KAAM,GAE5D,GAO2D,CAC9DvC,GAAI,2CACJC,WAAW,EACXC,SAAU,EAAA2E,aACVzE,SAAWC,GACF,IAAI,EAAA+E,aAO+C,CAC5DpF,GAAI,kDACJC,WAAW,EACXO,SAAU,CAAC,EAAAqE,cACXzE,SAAU,CAACC,EAAwByE,KACjCzE,EAAIuB,OAAOC,IAAI,oBAAoBpB,MAAOqB,IACxC,MAAM,MAAEuD,GAAUP,EAClB,IAAKO,EACH,OAAO,IAAInD,SAAS,MAGtB,MAAMoD,EAMF,CAAC,EACCC,EAAWF,EAAMP,YACvBU,OAAOC,KAAKF,GAAUG,SAASC,IAC7B,MAAMC,EAAOL,EAASI,IAChB,UAAEE,GAAcD,QAAAA,EAAQ,CAAC,EAC/BN,EAAeK,GAAQ,CACrBA,OACAC,OACAC,YACD,IAEH,MAAM7D,EAAM,CACV8D,QAAST,EAAMS,QACfhB,YAAaQ,GAEf,OAAO,IAAIpD,SAASvB,KAAKwB,UAAUH,GAAK,GACxC,GAOqD,CACzDhC,GAAI,yCACJC,WAAW,EACXC,SAAU,EAAA6F,UACV3F,SAAWC,GACF,IAAI,EAAA2F,UAO6C,CAC1DhG,GAAI,gDACJC,WAAW,EACXO,SAAU,CAAC,EAAAuF,WACX3F,SAASC,EAAwB4F,GAC/B5F,EAAIuB,OAAOC,IAAI,iBAAiBpB,MAAOqB,IACrC,MAAME,QAAYiE,EAASpE,MAC3B,OAAO,IAAIK,SAASvB,KAAKwB,UAAUH,GAAK,GAE5C,GAgLAzB,EACAR,EA1K2D,CAC3DC,GAAI,iDACJC,WAAW,EACXG,SAAWC,IACTA,EAAIuB,OAAOC,IAAI,kBAAkBpB,MAAOqB,GAC/B,IAAII,SAASvB,KAAKwB,UAAU,CAAC,KACpC,GAsKJyB,EA/JyD,CACzD5D,GAAI,yCACJC,WAAW,EACXC,SAAU,EAAAgG,UACV1F,SAAU,CAAC,EAAAoE,UACXxE,SAAU,CAACC,EAAwB2E,IAC1B,IAAI,EAAAmB,SAAS,CAAEnB,aAOkC,CAC1DhF,GAAI,gDACJC,WAAW,EACXO,SAAU,CAAC,EAAA0F,WACX9F,SAAU,CAACC,EAAwB+F,KAEjC/F,EAAIuB,OAAOC,IAAI,sBAAsBpB,MAAOqB,EAAsB9B,KAChE,MAAMqG,QAAgBD,EAASvE,IAAI7B,GACnC,OAAO,IAAIkC,SAASvB,KAAKwB,UAAUkE,GAAU,CAAE9D,OAAQ,KAAM,IAI/DlC,EAAIuB,OAAOC,IAAI,iBAAiBpB,MAAOqB,IACrC,MAAMwE,QAAaF,EAASE,OAC5B,OAAO,IAAIpE,SAASvB,KAAKwB,UAAUmE,GAAO,CAAE/D,OAAQ,KAAM,IAI5DlC,EAAIuB,OAAO0B,MAAM,qBAAqB7C,MAAOqB,EAAsB9B,KACjE,MAAM2C,EAAUb,EAAIkB,KACdqD,QAAgBD,EAAS9C,MAAMX,GACrC,OAAO,IAAIT,SAASvB,KAAKwB,UAAUkE,GAAU,CAAE9D,OAAQ,KAAM,IAI/DlC,EAAIuB,OAAOa,OACT,sBACAhC,MAAOqB,EAAsB9B,WACrBoG,EAASjB,SAASnF,GACjB,IAAIkC,SAAS,KAAM,CAAEK,OAAQ,SAKxClC,EAAIuB,OAAOQ,KAAK,iBAAiB3B,MAAOqB,IACtC,MAAMa,EAAUb,EAAIkB,KACdqD,QAAgBD,EAASG,SAAS5D,GACxC,OAAO,IAAIT,SAASvB,KAAKwB,UAAUkE,GAAU,CAAE9D,OAAQ,KAAM,GAC7D,GAOqD,CACzDvC,GAAI,yCACJC,WAAW,EACXO,SAAU,CAAC,EAAAL,cACXD,SAAU,EAAAsG,UACVpG,SAAU,CAACC,EAAwBK,KACjC,MAAMS,EAAc,EAAAN,WAAA,UAAqB,uBACnCO,EAAiBT,KAAKC,MAC1B,EAAAC,WAAA,UAAqB,2BAA6B,SAE9C,YAAEP,GAAgBI,EAClB+F,EAAW,IAAI,EAAAC,SAAS,CAAEvF,cAAaC,iBAAgBd,gBAE7D,OADAD,EAAIkB,QAAQC,MAAK,IAAMiF,EAAShF,aAAaC,MAAMZ,QAAQC,QACpD0F,CAAQ,GAOyC,CAC1DzG,GAAI,gDACJC,WAAW,EACXO,SAAU,CAAC,EAAAgG,WACXpG,SAAU,CAACC,EAAwBoG,KAGjC,MAAME,EAAgB,qDAEtBtG,EAAIuB,OAAOC,IAAI8E,GAAelG,MAAOqB,EAAsB8E,KACzD,MAAMC,QAAgBJ,EAAS5E,IAAI+E,GACnC,OAAO,IAAI1E,SAASvB,KAAKwB,UAAU0E,GAAS,IAG9CxG,EAAIuB,OAAO8B,IAAIiD,GAAelG,MAAOqB,EAAsB8E,KACzD,MAAM5D,EAAOlB,EAAIkB,MACX,IAAE8D,GAAQ9D,EAEhB,aADMyD,EAAS9C,KAAKiD,EAAUE,GACvB,IAAI5E,SAAS,KAAM,CAAEK,OAAQ,KAAM,IAG5ClC,EAAIuB,OAAOC,IAAI,iBAAiBpB,MAAOqB,IACrC,MAAMiF,QAAgBN,EAASO,SAC/B,OAAO,IAAI9E,SAASvB,KAAKwB,UAAU4E,GAAS,GAC5C,GAO2D,CAC/D/G,GAAI,4CACJC,WAAW,EACXC,SAAU,EAAA+G,aACV7G,SAAWC,IACT,MAAM6G,EAAc,IAAI,EAAAC,YAUxB,OARA9G,EAAIuB,OAAOC,IACT,2BACApB,MAAOqB,EAAsBsF,KAC3B,MAAMC,QAAaH,EAAYrF,IAAIuF,GAAU,OAC7C,OAAO,IAAIlF,SAASvB,KAAKwB,UAAUkF,GAAM,IAItCH,CAAW,GAOyC,CAC7DlH,GAAI,mDACJC,WAAW,EACXO,SAAU,CAAC,EAAAyG,cACX7G,SAAU,CAACC,EAAwB6G,KACjC7G,EAAIuB,OAAOC,IACT,2BACApB,MAAOqB,EAAsBsF,KAC3B,MAAMC,QAAaH,EAAYrF,IAAIuF,GAAU,OAC7C,OAAO,IAAIlF,SAASvB,KAAKwB,UAAUkF,GAAM,GAE5C,G","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server-extension/src/index.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { PageConfig } from '@jupyterlab/coreutils';\n\nimport { Contents as ServerContents, KernelSpec } from '@jupyterlab/services';\n\nimport {\n BroadcastChannelWrapper,\n Contents,\n IContents,\n IBroadcastChannelWrapper,\n} from '@jupyterlite/contents';\n\nimport { IKernels, Kernels, IKernelSpecs, KernelSpecs } from '@jupyterlite/kernel';\n\nimport { ILicenses, Licenses } from '@jupyterlite/licenses';\n\nimport {\n JupyterLiteServer,\n JupyterLiteServerPlugin,\n Router,\n IServiceWorkerManager,\n ServiceWorkerManager,\n} from '@jupyterlite/server';\n\nimport { ISessions, Sessions } from '@jupyterlite/session';\n\nimport { ISettings, Settings } from '@jupyterlite/settings';\n\nimport { ITranslation, Translation } from '@jupyterlite/translation';\n\nimport { ILocalForage, ensureMemoryStorage } from '@jupyterlite/localforage';\n\nimport localforage from 'localforage';\n\n/**\n * The localforage plugin\n */\nconst localforagePlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:localforage',\n autoStart: true,\n provides: ILocalForage,\n activate: (app: JupyterLiteServer) => {\n return { localforage };\n },\n};\n\n/**\n * The volatile localforage memory plugin\n */\nconst localforageMemoryPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:localforage-memory-storage',\n autoStart: true,\n requires: [ILocalForage],\n activate: async (app: JupyterLiteServer, forage: ILocalForage) => {\n if (JSON.parse(PageConfig.getOption('enableMemoryStorage') || 'false')) {\n console.warn(\n 'Memory storage fallback enabled: contents and settings may not be saved'\n );\n await ensureMemoryStorage(forage.localforage);\n }\n },\n};\n\n/**\n * The contents service plugin.\n */\nconst contentsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:contents',\n requires: [ILocalForage],\n autoStart: true,\n provides: IContents,\n activate: (app: JupyterLiteServer, forage: ILocalForage) => {\n const storageName = PageConfig.getOption('contentsStorageName');\n const storageDrivers = JSON.parse(\n PageConfig.getOption('contentsStorageDrivers') || 'null'\n );\n const { localforage } = forage;\n const contents = new Contents({\n storageName,\n storageDrivers,\n localforage,\n });\n app.started.then(() => contents.initialize().catch(console.warn));\n return contents;\n },\n};\n\n/**\n * A plugin providing the routes for the contents service.\n */\nconst contentsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:contents-routes',\n autoStart: true,\n requires: [IContents],\n activate: (app: JupyterLiteServer, contents: IContents) => {\n // GET /api/contents/{path}/checkpoints - Get a list of checkpoints for a file\n app.router.get(\n '/api/contents/(.+)/checkpoints',\n async (req: Router.IRequest, filename: string) => {\n const res = await contents.listCheckpoints(filename);\n return new Response(JSON.stringify(res));\n }\n );\n\n // POST /api/contents/{path}/checkpoints/{checkpoint_id} - Restore a file to a particular checkpointed state\n app.router.post(\n '/api/contents/(.+)/checkpoints/(.*)',\n async (req: Router.IRequest, filename: string, checkpoint: string) => {\n const res = await contents.restoreCheckpoint(filename, checkpoint);\n return new Response(JSON.stringify(res), { status: 204 });\n }\n );\n\n // POST /api/contents/{path}/checkpoints - Create a new checkpoint for a file\n app.router.post(\n '/api/contents/(.+)/checkpoints',\n async (req: Router.IRequest, filename: string) => {\n const res = await contents.createCheckpoint(filename);\n return new Response(JSON.stringify(res), { status: 201 });\n }\n );\n\n // DELETE /api/contents/{path}/checkpoints/{checkpoint_id} - Delete a checkpoint\n app.router.delete(\n '/api/contents/(.+)/checkpoints/(.*)',\n async (req: Router.IRequest, filename: string, checkpoint: string) => {\n const res = await contents.deleteCheckpoint(filename, checkpoint);\n return new Response(JSON.stringify(res), { status: 204 });\n }\n );\n\n // GET /api/contents/{path} - Get contents of file or directory\n app.router.get(\n '/api/contents(.*)',\n async (req: Router.IRequest, filename: string) => {\n const options: ServerContents.IFetchOptions = {\n content: req.query?.content === '1',\n };\n const nb = await contents.get(filename, options);\n if (!nb) {\n return new Response(null, { status: 404 });\n }\n return new Response(JSON.stringify(nb));\n }\n );\n\n // POST /api/contents/{path} - Create a new file in the specified path\n app.router.post('/api/contents(.*)', async (req: Router.IRequest, path: string) => {\n const options = req.body;\n const copyFrom = options?.copy_from as string;\n let file: ServerContents.IModel | null;\n if (copyFrom) {\n file = await contents.copy(copyFrom, path);\n } else {\n file = await contents.newUntitled(options);\n }\n if (!file) {\n return new Response(null, { status: 400 });\n }\n return new Response(JSON.stringify(file), { status: 201 });\n });\n\n // PATCH /api/contents/{path} - Rename a file or directory without re-uploading content\n app.router.patch(\n '/api/contents(.*)',\n async (req: Router.IRequest, filename: string) => {\n const newPath = (req.body?.path as string) ?? '';\n filename = filename[0] === '/' ? filename.slice(1) : filename;\n const nb = await contents.rename(filename, newPath);\n return new Response(JSON.stringify(nb));\n }\n );\n\n // PUT /api/contents/{path} - Save or upload a file\n app.router.put(\n '/api/contents/(.+)',\n async (req: Router.IRequest, filename: string) => {\n const body = req.body;\n const nb = await contents.save(filename, body);\n return new Response(JSON.stringify(nb));\n }\n );\n\n // DELETE /api/contents/{path} - Delete a file in the given path\n app.router.delete(\n '/api/contents/(.+)',\n async (req: Router.IRequest, filename: string) => {\n await contents.delete(filename);\n return new Response(null, { status: 204 });\n }\n );\n },\n};\n\n/**\n * A plugin installing the service worker.\n */\nconst serviceWorkerPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:service-worker',\n autoStart: true,\n provides: IServiceWorkerManager,\n activate: (app: JupyterLiteServer) => {\n return new ServiceWorkerManager();\n },\n};\n\n/**\n * A plugin for handling communication with the Emscpriten file system.\n */\nconst emscriptenFileSystemPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:emscripten-filesystem',\n autoStart: true,\n optional: [IServiceWorkerManager],\n provides: IBroadcastChannelWrapper,\n activate: (\n app: JupyterLiteServer,\n serviceWorkerRegistrationWrapper?: IServiceWorkerManager\n ): IBroadcastChannelWrapper => {\n const { contents } = app.serviceManager;\n const broadcaster = new BroadcastChannelWrapper({ contents });\n const what = 'Kernel filesystem and JupyterLite contents';\n\n function logStatus(msg?: string, err?: any) {\n if (err) {\n console.warn(err);\n }\n if (msg) {\n console.warn(msg);\n }\n if (err || msg) {\n console.warn(`${what} will NOT be synced`);\n } else {\n console.info(`${what} will be synced`);\n }\n }\n\n if (!serviceWorkerRegistrationWrapper) {\n logStatus('JupyterLite ServiceWorker not available');\n } else {\n serviceWorkerRegistrationWrapper.ready\n .then(() => {\n broadcaster.enable();\n logStatus();\n })\n .catch((err: any) => {\n logStatus('JupyterLite ServiceWorker failed to become available', err);\n });\n }\n\n return broadcaster;\n },\n};\n\n/**\n * The kernels service plugin.\n */\nconst kernelsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernels',\n autoStart: true,\n provides: IKernels,\n requires: [IKernelSpecs],\n activate: (app: JupyterLiteServer, kernelspecs: IKernelSpecs) => {\n return new Kernels({ kernelspecs });\n },\n};\n\n/**\n * A plugin providing the routes for the kernels service\n */\nconst kernelsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernels-routes',\n autoStart: true,\n requires: [IKernels],\n activate: (app: JupyterLiteServer, kernels: IKernels) => {\n // POST /api/kernels/{kernel_id} - Restart a kernel\n app.router.post(\n '/api/kernels/(.*)/restart',\n async (req: Router.IRequest, kernelId: string) => {\n const res = await kernels.restart(kernelId);\n return new Response(JSON.stringify(res));\n }\n );\n\n // DELETE /api/kernels/{kernel_id} - Kill a kernel and delete the kernel id\n app.router.delete(\n '/api/kernels/(.*)',\n async (req: Router.IRequest, kernelId: string) => {\n const res = await kernels.shutdown(kernelId);\n return new Response(JSON.stringify(res), { status: 204 });\n }\n );\n },\n};\n\n/**\n * The kernel spec service plugin.\n */\nconst kernelSpecPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernelspec',\n autoStart: true,\n provides: IKernelSpecs,\n activate: (app: JupyterLiteServer) => {\n return new KernelSpecs();\n },\n};\n\n/**\n * A plugin providing the routes for the kernelspec service.\n */\nconst kernelSpecRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:kernelspec-routes',\n autoStart: true,\n requires: [IKernelSpecs],\n activate: (app: JupyterLiteServer, kernelspecs: IKernelSpecs) => {\n app.router.get('/api/kernelspecs', async (req: Router.IRequest) => {\n const { specs } = kernelspecs;\n if (!specs) {\n return new Response(null);\n }\n // follow the same format as in Jupyter Server\n const allKernelSpecs: {\n [name: string]: {\n name: string;\n spec: KernelSpec.ISpecModel | undefined;\n resources: { [name: string]: string } | undefined;\n };\n } = {};\n const allSpecs = specs.kernelspecs;\n Object.keys(allSpecs).forEach((name) => {\n const spec = allSpecs[name];\n const { resources } = spec ?? {};\n allKernelSpecs[name] = {\n name,\n spec,\n resources,\n };\n });\n const res = {\n default: specs.default,\n kernelspecs: allKernelSpecs,\n };\n return new Response(JSON.stringify(res));\n });\n },\n};\n\n/**\n * The licenses service plugin\n */\nconst licensesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:licenses',\n autoStart: true,\n provides: ILicenses,\n activate: (app: JupyterLiteServer) => {\n return new Licenses();\n },\n};\n\n/**\n * A plugin providing the routes for the licenses service.\n */\nconst licensesRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:licenses-routes',\n autoStart: true,\n requires: [ILicenses],\n activate(app: JupyterLiteServer, licenses: ILicenses) {\n app.router.get('/api/licenses', async (req: Router.IRequest) => {\n const res = await licenses.get();\n return new Response(JSON.stringify(res));\n });\n },\n};\n\n/**\n * A plugin providing the routes for the nbconvert service.\n * TODO: provide the service in a separate plugin?\n */\nconst nbconvertRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:nbconvert-routes',\n autoStart: true,\n activate: (app: JupyterLiteServer) => {\n app.router.get('/api/nbconvert', async (req: Router.IRequest) => {\n return new Response(JSON.stringify({}));\n });\n },\n};\n\n/**\n * The sessions service plugin.\n */\nconst sessionsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:sessions',\n autoStart: true,\n provides: ISessions,\n requires: [IKernels],\n activate: (app: JupyterLiteServer, kernels: IKernels) => {\n return new Sessions({ kernels });\n },\n};\n\n/**\n * A plugin providing the routes for the session service.\n */\nconst sessionsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:sessions-routes',\n autoStart: true,\n requires: [ISessions],\n activate: (app: JupyterLiteServer, sessions: ISessions) => {\n // GET /api/sessions/{session} - Get session\n app.router.get('/api/sessions/(.+)', async (req: Router.IRequest, id: string) => {\n const session = await sessions.get(id);\n return new Response(JSON.stringify(session), { status: 200 });\n });\n\n // GET /api/sessions - List available sessions\n app.router.get('/api/sessions', async (req: Router.IRequest) => {\n const list = await sessions.list();\n return new Response(JSON.stringify(list), { status: 200 });\n });\n\n // PATCH /api/sessions/{session} - This can be used to rename a session\n app.router.patch('/api/sessions(.*)', async (req: Router.IRequest, id: string) => {\n const options = req.body as any;\n const session = await sessions.patch(options);\n return new Response(JSON.stringify(session), { status: 200 });\n });\n\n // DELETE /api/sessions/{session} - Delete a session\n app.router.delete(\n '/api/sessions/(.+)',\n async (req: Router.IRequest, id: string) => {\n await sessions.shutdown(id);\n return new Response(null, { status: 204 });\n }\n );\n\n // POST /api/sessions - Create a new session or return an existing session if a session of the same name already exists\n app.router.post('/api/sessions', async (req: Router.IRequest) => {\n const options = req.body as any;\n const session = await sessions.startNew(options);\n return new Response(JSON.stringify(session), { status: 201 });\n });\n },\n};\n\n/**\n * The settings service plugin.\n */\nconst settingsPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:settings',\n autoStart: true,\n requires: [ILocalForage],\n provides: ISettings,\n activate: (app: JupyterLiteServer, forage: ILocalForage) => {\n const storageName = PageConfig.getOption('settingsStorageName');\n const storageDrivers = JSON.parse(\n PageConfig.getOption('settingsStorageDrivers') || 'null'\n );\n const { localforage } = forage;\n const settings = new Settings({ storageName, storageDrivers, localforage });\n app.started.then(() => settings.initialize().catch(console.warn));\n return settings;\n },\n};\n\n/**\n * A plugin providing the routes for the settings service.\n */\nconst settingsRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:settings-routes',\n autoStart: true,\n requires: [ISettings],\n activate: (app: JupyterLiteServer, settings: ISettings) => {\n // TODO: improve the regex\n // const pluginPattern = new RegExp(/(?:@([^/]+?)[/])?([^/]+?):(\\w+)/);\n const pluginPattern = '/api/settings/((?:@([^/]+?)[/])?([^/]+?):([^:]+))$';\n\n app.router.get(pluginPattern, async (req: Router.IRequest, pluginId: string) => {\n const setting = await settings.get(pluginId);\n return new Response(JSON.stringify(setting));\n });\n\n app.router.put(pluginPattern, async (req: Router.IRequest, pluginId: string) => {\n const body = req.body as any;\n const { raw } = body;\n await settings.save(pluginId, raw);\n return new Response(null, { status: 204 });\n });\n\n app.router.get('/api/settings', async (req: Router.IRequest) => {\n const plugins = await settings.getAll();\n return new Response(JSON.stringify(plugins));\n });\n },\n};\n\n/**\n * The translation service plugin.\n */\nconst translationPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:translation',\n autoStart: true,\n provides: ITranslation,\n activate: (app: JupyterLiteServer) => {\n const translation = new Translation();\n\n app.router.get(\n '/api/translations/?(.*)',\n async (req: Router.IRequest, locale: string) => {\n const data = await translation.get(locale || 'all');\n return new Response(JSON.stringify(data));\n }\n );\n\n return translation;\n },\n};\n\n/**\n * A plugin providing the routes for the translation service.\n */\nconst translationRoutesPlugin: JupyterLiteServerPlugin = {\n id: '@jupyterlite/server-extension:translation-routes',\n autoStart: true,\n requires: [ITranslation],\n activate: (app: JupyterLiteServer, translation: ITranslation) => {\n app.router.get(\n '/api/translations/?(.*)',\n async (req: Router.IRequest, locale: string) => {\n const data = await translation.get(locale || 'all');\n return new Response(JSON.stringify(data));\n }\n );\n },\n};\n\nconst plugins: JupyterLiteServerPlugin[] = [\n contentsPlugin,\n contentsRoutesPlugin,\n emscriptenFileSystemPlugin,\n kernelsPlugin,\n kernelsRoutesPlugin,\n kernelSpecPlugin,\n kernelSpecRoutesPlugin,\n licensesPlugin,\n licensesRoutesPlugin,\n localforageMemoryPlugin,\n localforagePlugin,\n nbconvertRoutesPlugin,\n serviceWorkerPlugin,\n sessionsPlugin,\n sessionsRoutesPlugin,\n settingsPlugin,\n settingsRoutesPlugin,\n translationPlugin,\n translationRoutesPlugin,\n];\n\nexport default plugins;\n"],"names":["localforagePlugin","id","autoStart","provides","ILocalForage","activate","app","localforage","localforageMemoryPlugin","requires","async","forage","JSON","parse","PageConfig","console","warn","ensureMemoryStorage","contentsPlugin","IContents","storageName","storageDrivers","contents","Contents","started","then","initialize","catch","contentsRoutesPlugin","router","get","req","filename","res","listCheckpoints","Response","stringify","post","checkpoint","restoreCheckpoint","status","createCheckpoint","delete","deleteCheckpoint","options","content","query","nb","path","body","copyFrom","copy_from","file","copy","newUntitled","patch","newPath","slice","rename","put","save","serviceWorkerPlugin","IServiceWorkerManager","ServiceWorkerManager","optional","IBroadcastChannelWrapper","serviceWorkerRegistrationWrapper","serviceManager","broadcaster","BroadcastChannelWrapper","what","logStatus","msg","err","info","ready","enable","IKernels","IKernelSpecs","kernelspecs","Kernels","kernels","kernelId","restart","shutdown","KernelSpecs","specs","allKernelSpecs","allSpecs","Object","keys","forEach","name","spec","resources","default","ILicenses","Licenses","licenses","ISessions","Sessions","sessions","session","list","startNew","ISettings","settings","Settings","pluginPattern","pluginId","setting","raw","plugins","getAll","ITranslation","translation","Translation","locale","data"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/4942.b96c164.js b/_static/build/4942.b96c164.js new file mode 100644 index 0000000..e9d9623 --- /dev/null +++ b/_static/build/4942.b96c164.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[4942,2099],{2099:(e,t,o)=>{o.r(t),o.d(t,{default:()=>w});var n=o(2814),a=o(55941),s=o(42422),r=o(49005),l=o(33079),c=o(15786),d=o(4265),i=o(95191),u=o(61313),m=o(94519);const p="jp-RetroKernelStatus-error",k="jp-RetroKernelStatus-warn",g="jp-RetroKernelStatus-info",h="jp-RetroKernelStatus-fade",C={id:"@retrolab/notebook-extension:checkpoints",autoStart:!0,requires:[s.IDocumentManager,d.ITranslator],optional:[i.IRetroShell],activate:(e,t,o,s)=>{const{shell:r}=e,l=o.load("retrolab"),c=new m.Widget;c.id=n.DOMUtils.createDomID(),c.addClass("jp-RetroCheckpoint"),e.shell.add(c,"top",{rank:100});const d=async()=>{const e=r.currentWidget;if(!e)return;const o=t.contextForWidget(e);null==o||o.fileChanged.disconnect(d),null==o||o.fileChanged.connect(d);const n=await(null==o?void 0:o.listCheckpoints());if(!n)return;const s=n[n.length-1];c.node.textContent=l.__("Last Checkpoint: %1",a.Time.formatHuman(new Date(s.last_modified)))};s&&s.currentChanged.connect(d),new u.Poll({auto:!0,factory:()=>d(),frequency:{interval:2e3,backoff:!1},standby:"when-hidden"})}},b={id:"@retrolab/notebook-extension:kernel-logo",autoStart:!0,requires:[i.IRetroShell],activate:(e,t)=>{const{serviceManager:o}=e;let n;const a=async()=>{var s,r,c,d,i;n&&(n.dispose(),n.parent=null);const u=t.currentWidget;if(!(u instanceof l.NotebookPanel))return;await u.sessionContext.ready,u.sessionContext.kernelChanged.disconnect(a),u.sessionContext.kernelChanged.connect(a);const p=null!==(c=null===(r=null===(s=u.sessionContext.session)||void 0===s?void 0:s.kernel)||void 0===r?void 0:r.name)&&void 0!==c?c:"",k=null===(i=null===(d=o.kernelspecs)||void 0===d?void 0:d.specs)||void 0===i?void 0:i.kernelspecs[p];if(!k)return;const g=k.resources["logo-64x64"];if(!g)return;const h=document.createElement("div"),C=document.createElement("img");C.src=g,C.title=k.display_name,h.appendChild(C),n=new m.Widget({node:h}),n.addClass("jp-RetroKernelLogo"),e.shell.add(n,"top",{rank:10010})};e.started.then((()=>{t.currentChanged.connect(a)}))}},f={id:"@retrolab/notebook-extension:kernel-status",autoStart:!0,requires:[i.IRetroShell,d.ITranslator],activate:(e,t,o)=>{const n=o.load("retrolab"),s=new m.Widget;s.addClass("jp-RetroKernelStatus"),e.shell.add(s,"menu",{rank:10010});const r=e=>{const t=e.kernelDisplayStatus;let o=`Kernel ${a.Text.titleCase(t)}`;switch(s.removeClass(p),s.removeClass(k),s.removeClass(g),s.removeClass(h),t){case"busy":case"idle":o="",s.addClass(h);break;case"dead":case"terminating":s.addClass(p);break;case"unknown":s.addClass(k);break;default:s.addClass(g),s.addClass(h)}s.node.textContent=n.__(o)};t.currentChanged.connect((async()=>{const e=t.currentWidget;e instanceof l.NotebookPanel&&e.sessionContext.statusChanged.connect(r)}))}},v={id:"@retrolab/notebook-extension:menu-plugin",autoStart:!0,requires:[r.IMainMenu,d.ITranslator],activate:(e,t,o)=>{const{commands:n}=e,a=o.load("retrolab"),s=new m.Menu({commands:n});s.title.label=a._p("menu","Cell Type"),["notebook:change-cell-to-code","notebook:change-cell-to-markdown","notebook:change-cell-to-raw"].forEach((e=>{s.addItem({command:e})})),t.runMenu.addItem({type:"separator",rank:1e3}),t.runMenu.addItem({type:"submenu",submenu:s,rank:1010})}},y={id:"@retrolab/notebook-extension:scroll-output",autoStart:!0,requires:[l.INotebookTracker],optional:[c.ISettingRegistry],activate:async(e,t,o)=>{let n=!0;const a=e=>{if(!n)return;const{outputArea:t}=e;if(void 0!==e.model.metadata.get("scrolled"))return;const{node:o}=t,a=o.scrollHeight>1.3*(parseFloat(o.style.fontSize.replace("px",""))||14)*100;e.toggleClass("jp-mod-outputsScrolled",a)};if(t.widgetAdded.connect(((e,t)=>{var o;null===(o=t.model)||void 0===o||o.cells.changed.connect(((e,o)=>{if("add"!==o.type)return;const[n]=o.newValues;t.content.widgets.forEach((e=>{if(e.model.id===n.id&&"code"===e.model.type){const t=e;t.outputArea.model.changed.connect((()=>a(t)))}}))})),t.sessionContext.ready.then((()=>{t.content.widgets.forEach((e=>{"code"===e.model.type&&a(e)}))}))})),o){const t=o.load(y.id),a=e=>{n=e.get("autoScrollOutputs").composite};Promise.all([t,e.restored]).then((([e])=>{a(e),e.changed.connect((e=>{a(e)}))})).catch((e=>{console.error(e.message)}))}}},w=[C,b,f,v,{id:"@retrolab/notebook-extension:run-shortcut",autoStart:!0,activate:e=>{e.commands.addKeyBinding({command:"notebook:run-cell",keys:["Accel Enter"],selector:".jp-Notebook:focus"}),e.commands.addKeyBinding({command:"notebook:run-cell",keys:["Accel Enter"],selector:".jp-Notebook.jp-mod-editMode"})}},y]}}]); +//# sourceMappingURL=4942.b96c164.js.map \ No newline at end of file diff --git a/_static/build/4942.b96c164.js.map b/_static/build/4942.b96c164.js.map new file mode 100644 index 0000000..1a9dc4e --- /dev/null +++ b/_static/build/4942.b96c164.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4942.b96c164.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@retrolab/notebook-extension/lib/index.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { DOMUtils } from '@jupyterlab/apputils';\nimport { Text, Time } from '@jupyterlab/coreutils';\nimport { IDocumentManager } from '@jupyterlab/docmanager';\nimport { IMainMenu } from '@jupyterlab/mainmenu';\nimport { NotebookPanel, INotebookTracker } from '@jupyterlab/notebook';\nimport { ISettingRegistry } from '@jupyterlab/settingregistry';\nimport { ITranslator } from '@jupyterlab/translation';\nimport { IRetroShell } from '@retrolab/application';\nimport { Poll } from '@lumino/polling';\nimport { Menu, Widget } from '@lumino/widgets';\n/**\n * The class for kernel status errors.\n */\nconst KERNEL_STATUS_ERROR_CLASS = 'jp-RetroKernelStatus-error';\n/**\n * The class for kernel status warnings.\n */\nconst KERNEL_STATUS_WARN_CLASS = 'jp-RetroKernelStatus-warn';\n/**\n * The class for kernel status infos.\n */\nconst KERNEL_STATUS_INFO_CLASS = 'jp-RetroKernelStatus-info';\n/**\n * The class to fade out the kernel status.\n */\nconst KERNEL_STATUS_FADE_OUT_CLASS = 'jp-RetroKernelStatus-fade';\n/**\n * The class for scrolled outputs\n */\nconst SCROLLED_OUTPUTS_CLASS = 'jp-mod-outputsScrolled';\n/**\n * A plugin for the checkpoint indicator\n */\nconst checkpoints = {\n id: '@retrolab/notebook-extension:checkpoints',\n autoStart: true,\n requires: [IDocumentManager, ITranslator],\n optional: [IRetroShell],\n activate: (app, docManager, translator, retroShell) => {\n const { shell } = app;\n const trans = translator.load('retrolab');\n const widget = new Widget();\n widget.id = DOMUtils.createDomID();\n widget.addClass('jp-RetroCheckpoint');\n app.shell.add(widget, 'top', { rank: 100 });\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!current) {\n return;\n }\n const context = docManager.contextForWidget(current);\n context === null || context === void 0 ? void 0 : context.fileChanged.disconnect(onChange);\n context === null || context === void 0 ? void 0 : context.fileChanged.connect(onChange);\n const checkpoints = await (context === null || context === void 0 ? void 0 : context.listCheckpoints());\n if (!checkpoints) {\n return;\n }\n const checkpoint = checkpoints[checkpoints.length - 1];\n widget.node.textContent = trans.__('Last Checkpoint: %1', Time.formatHuman(new Date(checkpoint.last_modified)));\n };\n if (retroShell) {\n retroShell.currentChanged.connect(onChange);\n }\n new Poll({\n auto: true,\n factory: () => onChange(),\n frequency: {\n interval: 2000,\n backoff: false\n },\n standby: 'when-hidden'\n });\n }\n};\n/**\n * The kernel logo plugin.\n */\nconst kernelLogo = {\n id: '@retrolab/notebook-extension:kernel-logo',\n autoStart: true,\n requires: [IRetroShell],\n activate: (app, shell) => {\n const { serviceManager } = app;\n let widget;\n const onChange = async () => {\n var _a, _b, _c, _d, _e;\n if (widget) {\n widget.dispose();\n widget.parent = null;\n }\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n await current.sessionContext.ready;\n current.sessionContext.kernelChanged.disconnect(onChange);\n current.sessionContext.kernelChanged.connect(onChange);\n const name = (_c = (_b = (_a = current.sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '';\n const spec = (_e = (_d = serviceManager.kernelspecs) === null || _d === void 0 ? void 0 : _d.specs) === null || _e === void 0 ? void 0 : _e.kernelspecs[name];\n if (!spec) {\n return;\n }\n const kernelIconUrl = spec.resources['logo-64x64'];\n if (!kernelIconUrl) {\n return;\n }\n const node = document.createElement('div');\n const img = document.createElement('img');\n img.src = kernelIconUrl;\n img.title = spec.display_name;\n node.appendChild(img);\n widget = new Widget({ node });\n widget.addClass('jp-RetroKernelLogo');\n app.shell.add(widget, 'top', { rank: 10010 });\n };\n app.started.then(() => {\n shell.currentChanged.connect(onChange);\n });\n }\n};\n/**\n * A plugin to display the kernel status;\n */\nconst kernelStatus = {\n id: '@retrolab/notebook-extension:kernel-status',\n autoStart: true,\n requires: [IRetroShell, ITranslator],\n activate: (app, shell, translator) => {\n const trans = translator.load('retrolab');\n const widget = new Widget();\n widget.addClass('jp-RetroKernelStatus');\n app.shell.add(widget, 'menu', { rank: 10010 });\n const removeClasses = () => {\n widget.removeClass(KERNEL_STATUS_ERROR_CLASS);\n widget.removeClass(KERNEL_STATUS_WARN_CLASS);\n widget.removeClass(KERNEL_STATUS_INFO_CLASS);\n widget.removeClass(KERNEL_STATUS_FADE_OUT_CLASS);\n };\n const onStatusChanged = (sessionContext) => {\n const status = sessionContext.kernelDisplayStatus;\n let text = `Kernel ${Text.titleCase(status)}`;\n removeClasses();\n switch (status) {\n case 'busy':\n case 'idle':\n text = '';\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n case 'dead':\n case 'terminating':\n widget.addClass(KERNEL_STATUS_ERROR_CLASS);\n break;\n case 'unknown':\n widget.addClass(KERNEL_STATUS_WARN_CLASS);\n break;\n default:\n widget.addClass(KERNEL_STATUS_INFO_CLASS);\n widget.addClass(KERNEL_STATUS_FADE_OUT_CLASS);\n break;\n }\n widget.node.textContent = trans.__(text);\n };\n const onChange = async () => {\n const current = shell.currentWidget;\n if (!(current instanceof NotebookPanel)) {\n return;\n }\n const sessionContext = current.sessionContext;\n sessionContext.statusChanged.connect(onStatusChanged);\n };\n shell.currentChanged.connect(onChange);\n }\n};\n/**\n * A plugin to customize notebook related menu entries\n * TODO: switch to settings define menus when fixed upstream: https://github.com/jupyterlab/jupyterlab/issues/11754\n */\nconst menuPlugin = {\n id: '@retrolab/notebook-extension:menu-plugin',\n autoStart: true,\n requires: [IMainMenu, ITranslator],\n activate: (app, mainMenu, translator) => {\n const { commands } = app;\n const trans = translator.load('retrolab');\n const cellTypeSubmenu = new Menu({ commands });\n cellTypeSubmenu.title.label = trans._p('menu', 'Cell Type');\n [\n 'notebook:change-cell-to-code',\n 'notebook:change-cell-to-markdown',\n 'notebook:change-cell-to-raw'\n ].forEach(command => {\n cellTypeSubmenu.addItem({\n command\n });\n });\n mainMenu.runMenu.addItem({ type: 'separator', rank: 1000 });\n mainMenu.runMenu.addItem({\n type: 'submenu',\n submenu: cellTypeSubmenu,\n rank: 1010\n });\n }\n};\n/**\n * A plugin to add an extra shortcut to execute a cell in place via Cmd-Enter on Mac.\n * TODO: switch to settings define menus when fixed upstream: https://github.com/jupyterlab/jupyterlab/issues/11754\n */\nconst runShortcut = {\n id: '@retrolab/notebook-extension:run-shortcut',\n autoStart: true,\n activate: (app) => {\n app.commands.addKeyBinding({\n command: 'notebook:run-cell',\n keys: ['Accel Enter'],\n selector: '.jp-Notebook:focus'\n });\n app.commands.addKeyBinding({\n command: 'notebook:run-cell',\n keys: ['Accel Enter'],\n selector: '.jp-Notebook.jp-mod-editMode'\n });\n }\n};\n/**\n * A plugin to enable scrolling for outputs by default.\n * Mimic the logic from the classic notebook, as found here:\n * https://github.com/jupyter/notebook/blob/a9a31c096eeffe1bff4e9164c6a0442e0e13cdb3/notebook/static/notebook/js/outputarea.js#L96-L120\n */\nconst scrollOutput = {\n id: '@retrolab/notebook-extension:scroll-output',\n autoStart: true,\n requires: [INotebookTracker],\n optional: [ISettingRegistry],\n activate: async (app, tracker, settingRegistry) => {\n const autoScrollThreshold = 100;\n let autoScrollOutputs = true;\n // decide whether to scroll the output of the cell based on some heuristics\n const autoScroll = (cell) => {\n if (!autoScrollOutputs) {\n // bail if disabled via the settings\n return;\n }\n const { outputArea } = cell;\n // respect cells with an explicit scrolled state\n const scrolled = cell.model.metadata.get('scrolled');\n if (scrolled !== undefined) {\n return;\n }\n const { node } = outputArea;\n const height = node.scrollHeight;\n const fontSize = parseFloat(node.style.fontSize.replace('px', ''));\n const lineHeight = (fontSize || 14) * 1.3;\n // do not set via cell.outputScrolled = true, as this would\n // otherwise synchronize the scrolled state to the notebook metadata\n const scroll = height > lineHeight * autoScrollThreshold;\n cell.toggleClass(SCROLLED_OUTPUTS_CLASS, scroll);\n };\n tracker.widgetAdded.connect((sender, notebook) => {\n var _a;\n (_a = notebook.model) === null || _a === void 0 ? void 0 : _a.cells.changed.connect((sender, changed) => {\n // process new cells only\n if (!(changed.type === 'add')) {\n return;\n }\n const [cellModel] = changed.newValues;\n notebook.content.widgets.forEach(cell => {\n if (cell.model.id === cellModel.id && cell.model.type === 'code') {\n const codeCell = cell;\n codeCell.outputArea.model.changed.connect(() => autoScroll(codeCell));\n }\n });\n });\n // when the notebook widget is created, process all the cells\n // TODO: investigate why notebook.content.fullyRendered is not enough\n notebook.sessionContext.ready.then(() => {\n notebook.content.widgets.forEach(cell => {\n if (cell.model.type === 'code') {\n autoScroll(cell);\n }\n });\n });\n });\n if (settingRegistry) {\n const loadSettings = settingRegistry.load(scrollOutput.id);\n const updateSettings = (settings) => {\n autoScrollOutputs = settings.get('autoScrollOutputs')\n .composite;\n };\n Promise.all([loadSettings, app.restored])\n .then(([settings]) => {\n updateSettings(settings);\n settings.changed.connect(settings => {\n updateSettings(settings);\n });\n })\n .catch((reason) => {\n console.error(reason.message);\n });\n }\n }\n};\n/**\n * Export the plugins as default.\n */\nconst plugins = [\n checkpoints,\n kernelLogo,\n kernelStatus,\n menuPlugin,\n runShortcut,\n scrollOutput\n];\nexport default plugins;\n"],"names":["KERNEL_STATUS_ERROR_CLASS","KERNEL_STATUS_WARN_CLASS","KERNEL_STATUS_INFO_CLASS","KERNEL_STATUS_FADE_OUT_CLASS","checkpoints","id","autoStart","requires","IDocumentManager","ITranslator","optional","IRetroShell","activate","app","docManager","translator","retroShell","shell","trans","load","widget","Widget","DOMUtils","addClass","add","rank","onChange","async","current","currentWidget","context","contextForWidget","fileChanged","disconnect","connect","listCheckpoints","checkpoint","length","node","textContent","__","Time","Date","last_modified","currentChanged","Poll","auto","factory","frequency","interval","backoff","standby","kernelLogo","serviceManager","_a","_b","_c","_d","_e","dispose","parent","NotebookPanel","sessionContext","ready","kernelChanged","name","session","kernel","spec","kernelspecs","specs","kernelIconUrl","resources","document","createElement","img","src","title","display_name","appendChild","started","then","kernelStatus","onStatusChanged","status","kernelDisplayStatus","text","Text","removeClass","statusChanged","menuPlugin","IMainMenu","mainMenu","commands","cellTypeSubmenu","Menu","label","_p","forEach","command","addItem","runMenu","type","submenu","scrollOutput","INotebookTracker","ISettingRegistry","tracker","settingRegistry","autoScrollOutputs","autoScroll","cell","outputArea","undefined","model","metadata","get","scroll","scrollHeight","parseFloat","style","fontSize","replace","toggleClass","widgetAdded","sender","notebook","cells","changed","cellModel","newValues","content","widgets","codeCell","loadSettings","updateSettings","settings","composite","Promise","all","restored","catch","reason","console","error","message","addKeyBinding","keys","selector"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5016.dd2fe83.js b/_static/build/5016.dd2fe83.js new file mode 100644 index 0000000..8380a3d --- /dev/null +++ b/_static/build/5016.dd2fe83.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5016,9128],{9128:(t,e,s)=>{s.r(e),s.d(e,{AttachmentsModel:()=>h,AttachmentsResolver:()=>r});var a=s(92877),i=s(20040),n=s(70942);class h{constructor(t={}){if(this._map=new a.ObservableMap,this._isDisposed=!1,this._stateChanged=new n.Signal(this),this._changed=new n.Signal(this),this._modelDB=null,this._serialized=null,this._changeGuard=!1,this.contentFactory=t.contentFactory||h.defaultContentFactory,t.values)for(const e of Object.keys(t.values))void 0!==t.values[e]&&this.set(e,t.values[e]);this._map.changed.connect(this._onMapChanged,this),t.modelDB&&(this._modelDB=t.modelDB,this._serialized=this._modelDB.createValue("attachments"),this._serialized.get()?this.fromJSON(this._serialized.get()):this._serialized.set(this.toJSON()),this._serialized.changed.connect(this._onSerializedChanged,this))}get stateChanged(){return this._stateChanged}get changed(){return this._changed}get keys(){return this._map.keys()}get length(){return this._map.keys().length}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._map.dispose(),n.Signal.clearData(this))}has(t){return this._map.has(t)}get(t){return this._map.get(t)}set(t,e){const s=this._createItem({value:e});this._map.set(t,s)}remove(t){this._map.delete(t)}clear(){this._map.values().forEach((t=>{t.dispose()})),this._map.clear()}fromJSON(t){this.clear(),Object.keys(t).forEach((e=>{void 0!==t[e]&&this.set(e,t[e])}))}toJSON(){const t={};for(const e of this._map.keys())t[e]=this._map.get(e).toJSON();return t}_createItem(t){const e=this.contentFactory.createAttachmentModel(t);return e.changed.connect(this._onGenericChange,this),e}_onMapChanged(t,e){this._serialized&&!this._changeGuard&&(this._changeGuard=!0,this._serialized.set(this.toJSON()),this._changeGuard=!1),this._changed.emit(e),this._stateChanged.emit(void 0)}_onSerializedChanged(t,e){this._changeGuard||(this._changeGuard=!0,this.fromJSON(e.newValue),this._changeGuard=!1)}_onGenericChange(){this._stateChanged.emit(void 0)}}!function(t){class e{createAttachmentModel(t){return new i.AttachmentModel(t)}}t.ContentFactory=e,t.defaultContentFactory=new e}(h||(h={}));class r{constructor(t){this._parent=t.parent||null,this._model=t.model}async resolveUrl(t){return this._parent&&!t.startsWith("attachment:")?this._parent.resolveUrl(t):t}async getDownloadUrl(t){if(this._parent&&!t.startsWith("attachment:"))return this._parent.getDownloadUrl(t);const e=t.slice("attachment:".length),s=this._model.get(e);if(void 0===s)return t;const{data:a}=s,n=Object.keys(a)[0];if(void 0===n||-1===i.imageRendererFactory.mimeTypes.indexOf(n))throw new Error(`Cannot render unknown image mime type "${n}".`);return`data:${n};base64,${a[n]}`}isLocal(t){var e,s,a;return!(this._parent&&!t.startsWith("attachment:"))||null===(a=null===(s=(e=this._parent).isLocal)||void 0===s?void 0:s.call(e,t))||void 0===a||a}}}}]); +//# sourceMappingURL=5016.dd2fe83.js.map \ No newline at end of file diff --git a/_static/build/5016.dd2fe83.js.map b/_static/build/5016.dd2fe83.js.map new file mode 100644 index 0000000..d2b759c --- /dev/null +++ b/_static/build/5016.dd2fe83.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5016.dd2fe83.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/model.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5072.733a1b5.js b/_static/build/5072.733a1b5.js new file mode 100644 index 0000000..85b459d --- /dev/null +++ b/_static/build/5072.733a1b5.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5072],{55072:(e,n,s)=>{s.r(n),s.d(n,{EditMenu:()=>a,FileMenu:()=>d,HelpMenu:()=>o,IJupyterLabMenu:()=>t.IRankedMenu,IMainMenu:()=>_,JupyterLabMenu:()=>t.RankedMenu,KernelMenu:()=>M,MainMenu:()=>p,RunMenu:()=>m,SettingsMenu:()=>c,TabsMenu:()=>l,ViewMenu:()=>h});var r,t=s(59674),i=s(43892),u=s(94519);class a extends t.RankedMenu{constructor(e){super(e),this.undoers=new Set,this.clearers=new Set,this.goToLiners=new Set}dispose(){this.undoers.clear(),this.clearers.clear(),super.dispose()}}class d extends t.RankedMenu{constructor(e){super(e),this.quitEntry=!1,this.closeAndCleaners=new Set,this.consoleCreators=new Set}get newMenu(){var e,n;return this._newMenu||(this._newMenu=null!==(n=null===(e=(0,i.find)(this.items,(e=>{var n;return"jp-mainmenu-file-new"===(null===(n=e.submenu)||void 0===n?void 0:n.id)})))||void 0===e?void 0:e.submenu)&&void 0!==n?n:new t.RankedMenu({commands:this.commands})),this._newMenu}dispose(){var e;null===(e=this._newMenu)||void 0===e||e.dispose(),this.consoleCreators.clear(),super.dispose()}}class o extends t.RankedMenu{constructor(e){super(e),this.kernelUsers=new Set}}class M extends t.RankedMenu{constructor(e){super(e),this.kernelUsers=new Set}dispose(){this.kernelUsers.clear(),super.dispose()}}class m extends t.RankedMenu{constructor(e){super(e),this.codeRunners=new Set}dispose(){this.codeRunners.clear(),super.dispose()}}class c extends t.RankedMenu{constructor(e){super(e)}}class l extends t.RankedMenu{constructor(e){super(e)}}class h extends t.RankedMenu{constructor(e){super(e),this.editorViewers=new Set}dispose(){this.editorViewers.clear(),super.dispose()}}class p extends u.MenuBar{constructor(e){super({forceItemsPosition:{forceX:!1,forceY:!0}}),this._items=[],this._commands=e}get editMenu(){return this._editMenu||(this._editMenu=new a({commands:this._commands,rank:2,renderer:t.MenuSvg.defaultRenderer})),this._editMenu}get fileMenu(){return this._fileMenu||(this._fileMenu=new d({commands:this._commands,rank:1,renderer:t.MenuSvg.defaultRenderer})),this._fileMenu}get helpMenu(){return this._helpMenu||(this._helpMenu=new o({commands:this._commands,rank:1e3,renderer:t.MenuSvg.defaultRenderer})),this._helpMenu}get kernelMenu(){return this._kernelMenu||(this._kernelMenu=new M({commands:this._commands,rank:5,renderer:t.MenuSvg.defaultRenderer})),this._kernelMenu}get runMenu(){return this._runMenu||(this._runMenu=new m({commands:this._commands,rank:4,renderer:t.MenuSvg.defaultRenderer})),this._runMenu}get settingsMenu(){return this._settingsMenu||(this._settingsMenu=new c({commands:this._commands,rank:999,renderer:t.MenuSvg.defaultRenderer})),this._settingsMenu}get viewMenu(){return this._viewMenu||(this._viewMenu=new h({commands:this._commands,rank:3,renderer:t.MenuSvg.defaultRenderer})),this._viewMenu}get tabsMenu(){return this._tabsMenu||(this._tabsMenu=new l({commands:this._commands,rank:500,renderer:t.MenuSvg.defaultRenderer})),this._tabsMenu}addMenu(e,n={}){if(i.ArrayExt.firstIndexOf(this.menus,e)>-1)return;t.MenuSvg.overrideDefaultRenderer(e);const s={menu:e,rank:"rank"in n?n.rank:"rank"in e?e.rank:t.IRankedMenu.DEFAULT_RANK},u=i.ArrayExt.upperBound(this._items,s,r.itemCmp);switch(e.disposed.connect(this._onMenuDisposed,this),i.ArrayExt.insert(this._items,u,s),this.insertMenu(u,e),e.id){case"jp-mainmenu-file":!this._fileMenu&&e instanceof d&&(this._fileMenu=e);break;case"jp-mainmenu-edit":!this._editMenu&&e instanceof a&&(this._editMenu=e);break;case"jp-mainmenu-view":!this._viewMenu&&e instanceof h&&(this._viewMenu=e);break;case"jp-mainmenu-run":!this._runMenu&&e instanceof m&&(this._runMenu=e);break;case"jp-mainmenu-kernel":!this._kernelMenu&&e instanceof M&&(this._kernelMenu=e);break;case"jp-mainmenu-tabs":!this._tabsMenu&&e instanceof l&&(this._tabsMenu=e);break;case"jp-mainmenu-settings":!this._settingsMenu&&e instanceof c&&(this._settingsMenu=e);break;case"jp-mainmenu-help":!this._helpMenu&&e instanceof o&&(this._helpMenu=e)}}dispose(){var e,n,s,r,t,i,u,a;null===(e=this._editMenu)||void 0===e||e.dispose(),null===(n=this._fileMenu)||void 0===n||n.dispose(),null===(s=this._helpMenu)||void 0===s||s.dispose(),null===(r=this._kernelMenu)||void 0===r||r.dispose(),null===(t=this._runMenu)||void 0===t||t.dispose(),null===(i=this._settingsMenu)||void 0===i||i.dispose(),null===(u=this._viewMenu)||void 0===u||u.dispose(),null===(a=this._tabsMenu)||void 0===a||a.dispose(),super.dispose()}static generateMenu(e,n,s){let r;const{id:i,label:u,rank:p}=n;switch(i){case"jp-mainmenu-file":r=new d({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-edit":r=new a({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-view":r=new h({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-run":r=new m({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-kernel":r=new M({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-tabs":r=new l({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-settings":r=new c({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;case"jp-mainmenu-help":r=new o({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer});break;default:r=new t.RankedMenu({commands:e,rank:p,renderer:t.MenuSvg.defaultRenderer})}return u&&(r.title.label=s._p("menu",u)),r}_onMenuDisposed(e){this.removeMenu(e);const n=i.ArrayExt.findFirstIndex(this._items,(n=>n.menu===e));-1!==n&&i.ArrayExt.removeAt(this._items,n)}}!function(e){e.itemCmp=function(e,n){return e.rank-n.rank}}(r||(r={}));const _=new(s(26169).Token)("@jupyterlab/mainmenu:IMainMenu")}}]); +//# sourceMappingURL=5072.733a1b5.js.map \ No newline at end of file diff --git a/_static/build/5072.733a1b5.js.map b/_static/build/5072.733a1b5.js.map new file mode 100644 index 0000000..7eb587b --- /dev/null +++ b/_static/build/5072.733a1b5.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5072.733a1b5.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mainmenu.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/edit.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/file.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/help.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/kernel.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/run.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/settings.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tabs.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/view.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/509.6448878.js b/_static/build/509.6448878.js new file mode 100644 index 0000000..5534ff1 --- /dev/null +++ b/_static/build/509.6448878.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[509,1507],{11507:(t,e,o)=>{o.r(e),o.d(e,{ITooltipManager:()=>s,Tooltip:()=>a});const s=new(o(26169).Token)("@jupyterlab/tooltip:ITooltipManager");var i=o(2814),n=o(20040),r=o(94519);const d="jp-mod-tooltip",h=!0;class a extends r.Widget{constructor(t){super(),this._content=null;const e=this.layout=new r.PanelLayout,o=new n.MimeModel({data:t.bundle});this.anchor=t.anchor,this.addClass("jp-Tooltip"),this.hide(),this._editor=t.editor,this._position=t.position,this._rendermime=t.rendermime;const s=this._rendermime.preferredMimeType(t.bundle,"any");s&&(this._content=this._rendermime.createRenderer(s),this._content.renderModel(o).then((()=>this._setGeometry())).catch((t=>console.error("tooltip rendering failed",t))),this._content.addClass("jp-Tooltip-content"),e.addWidget(this._content))}dispose(){this._content&&(this._content.dispose(),this._content=null),super.dispose()}handleEvent(t){if(this.isHidden||this.isDisposed)return;const{node:e}=this,o=t.target;switch(t.type){case"keydown":if(e.contains(o))return;this.dispose();break;case"mousedown":if(e.contains(o))return void this.activate();this.dispose();break;case"scroll":this._evtScroll(t)}}onActivateRequest(t){this.node.tabIndex=0,this.node.focus()}onAfterAttach(t){document.body.classList.add(d),document.addEventListener("keydown",this,h),document.addEventListener("mousedown",this,h),this.anchor.node.addEventListener("scroll",this,h),this.update()}onBeforeDetach(t){document.body.classList.remove(d),document.removeEventListener("keydown",this,h),document.removeEventListener("mousedown",this,h),this.anchor.node.removeEventListener("scroll",this,h)}onUpdateRequest(t){this.isHidden&&this.show(),this._setGeometry(),super.onUpdateRequest(t)}_evtScroll(t){this.node.contains(t.target)||this.update()}_getTokenPosition(){const t=this._editor,e=t.getCursorPosition(),o=t.getOffsetAt(e),s=t.getLine(e.line);if(!s)return;const i=s.substring(0,o).split(/\W+/),n=i[i.length-1],r=n?o-n.length:o;return t.getPositionAt(r)}_setGeometry(){const t=this._position?this._position:this._getTokenPosition();if(!t)return;const e=this._editor,o=e.getCoordinateForPosition(t),s=window.getComputedStyle(this.node),n=parseInt(s.paddingLeft,10)||0,r=e.host.closest(".jp-MainAreaWidget > .lm-Widget")||e.host;i.HoverBox.setGeometry({anchor:o,host:r,maxHeight:250,minHeight:20,node:this.node,offset:{horizontal:-1*n},privilege:"below",outOfViewDisplay:{top:"stick-inside",bottom:"stick-inside"},style:s})}}}}]); +//# sourceMappingURL=509.6448878.js.map \ No newline at end of file diff --git a/_static/build/509.6448878.js.map b/_static/build/509.6448878.js.map new file mode 100644 index 0000000..f3f4c59 --- /dev/null +++ b/_static/build/509.6448878.js.map @@ -0,0 +1 @@ +{"version":3,"file":"509.6448878.js","mappings":"2LAaO,MAAM,EAAkB,I,SAAI,OACjC,uC,oCCGF,MAUM,EAAa,iBAeb,GAAc,EAKd,MAAO,UAAgB,SAI3B,YAAY,GACV,QAkMM,cAAyC,KAhM/C,MAAM,EAAU,KAAK,OAAS,IAAI,cAC5B,EAAQ,IAAI,YAAU,CAAE,KAAM,EAAQ,SAE5C,KAAK,OAAS,EAAQ,OACtB,KAAK,SAzCa,cA0ClB,KAAK,OACL,KAAK,QAAU,EAAQ,OACvB,KAAK,UAAY,EAAQ,SACzB,KAAK,YAAc,EAAQ,WAE3B,MAAM,EAAW,KAAK,YAAY,kBAAkB,EAAQ,OAAQ,OAE/D,IAIL,KAAK,SAAW,KAAK,YAAY,eAAe,GAChD,KAAK,SACF,YAAY,GACZ,MAAK,IAAM,KAAK,iBAChB,OAAM,GAAS,QAAQ,MAAM,2BAA4B,KAC5D,KAAK,SAAS,SArDI,sBAsDlB,EAAO,UAAU,KAAK,UACxB,CAUA,UACM,KAAK,WACP,KAAK,SAAS,UACd,KAAK,SAAW,MAElB,MAAM,SACR,CAYA,YAAY,GACV,GAAI,KAAK,UAAY,KAAK,WACxB,OAGF,MAAM,KAAE,GAAS,KACX,EAAS,EAAM,OAErB,OAAQ,EAAM,MACZ,IAAK,UACH,GAAI,EAAK,SAAS,GAChB,OAEF,KAAK,UACL,MACF,IAAK,YACH,GAAI,EAAK,SAAS,GAEhB,YADA,KAAK,WAGP,KAAK,UACL,MACF,IAAK,SACH,KAAK,WAAW,GAKtB,CAKU,kBAAkB,GAC1B,KAAK,KAAK,SAAW,EACrB,KAAK,KAAK,OACZ,CAKU,cAAc,GACtB,SAAS,KAAK,UAAU,IAAI,GAC5B,SAAS,iBAAiB,UAAW,KAAM,GAC3C,SAAS,iBAAiB,YAAa,KAAM,GAC7C,KAAK,OAAO,KAAK,iBAAiB,SAAU,KAAM,GAClD,KAAK,QACP,CAKU,eAAe,GACvB,SAAS,KAAK,UAAU,OAAO,GAC/B,SAAS,oBAAoB,UAAW,KAAM,GAC9C,SAAS,oBAAoB,YAAa,KAAM,GAChD,KAAK,OAAO,KAAK,oBAAoB,SAAU,KAAM,EACvD,CAKU,gBAAgB,GACpB,KAAK,UACP,KAAK,OAEP,KAAK,eACL,MAAM,gBAAgB,EACxB,CAKQ,WAAW,GAIb,KAAK,KAAK,SAAS,EAAM,SAI7B,KAAK,QACP,CAKQ,oBACN,MAAM,EAAS,KAAK,QACd,EAAS,EAAO,oBAChB,EAAM,EAAO,YAAY,GACzB,EAAO,EAAO,QAAQ,EAAO,MAEnC,IAAK,EACH,OAGF,MAAM,EAAS,EAAK,UAAU,EAAG,GAAK,MAAM,OACtC,EAAO,EAAO,EAAO,OAAS,GAC9B,EAAQ,EAAO,EAAM,EAAK,OAAS,EACzC,OAAO,EAAO,cAAc,EAC9B,CAKQ,eAEN,MAAM,EAAW,KAAK,UAAY,KAAK,UAAY,KAAK,oBAExD,IAAK,EACH,OAGF,MAAM,EAAS,KAAK,QAEd,EAAS,EAAO,yBAAyB,GACzC,EAAQ,OAAO,iBAAiB,KAAK,MACrC,EAAc,SAAS,EAAM,YAAc,KAAO,EAElD,EACH,EAAO,KAAK,QAAQ,oCACrB,EAAO,KAGT,uBAAqB,CACnB,SACA,OACA,UApMa,IAqMb,UA1Ma,GA2Mb,KAAM,KAAK,KACX,OAAQ,CAAE,YAAa,EAAI,GAC3B,UAAW,QACX,iBAAkB,CAChB,IAAK,eACL,OAAQ,gBAEV,MAAO,GAEX,E","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5096.8ed0d8e.js b/_static/build/5096.8ed0d8e.js new file mode 100644 index 0000000..ea111ce --- /dev/null +++ b/_static/build/5096.8ed0d8e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5096,5971],{15971:(e,t,r)=>{r.r(t),r.d(t,{default:()=>v});var n=r(67504),a=r(2814),o=r(17543),c=r(60192),i=r(49005),s=r(15786),l=r(4265),d=r(90901),g=r(985),h=r(70942);class u{constructor(){this.matches=[],this.currentMatchIndex=null,this.isReadOnly=!0,this._changed=new h.Signal(this)}static canSearchOn(e){return e instanceof g.DocumentWidget&&e.content instanceof o.CSVViewer}getInitialQuery(e){return null}async startQuery(e,t){return this._target=t,this._query=e,t.content.searchService.find(e),this.matches}async endQuery(){this._target.content.searchService.clear()}async endSearch(){this._target.content.searchService.clear()}async highlightNext(){this._target.content.searchService.find(this._query)}async highlightPrevious(){this._target.content.searchService.find(this._query,!0)}async replaceCurrentMatch(e){return!1}async replaceAllMatches(e){return!1}get changed(){return this._changed}}const T="CSVTable",y="TSVTable",C={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(T,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,T,C.id,t)));const g=new o.CSVViewerFactory({name:T,fileTypes:["csv"],defaultFor:["csv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"csvviewer"});let y=L.LIGHT_STYLE,_=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:T}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("csv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=y,t.content.rendererConfig=_}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);y=e?L.LIGHT_STYLE:L.DARK_STYLE,_=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=y,e.content.rendererConfig=_}))})),c&&F(c,h,t),i&&i.register("csv",u)},id:"@jupyterlab/csvviewer-extension:csv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0},_={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(y,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,y,_.id,t)));const g=new o.TSVViewerFactory({name:y,fileTypes:["tsv"],defaultFor:["tsv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"tsvviewer"});let T=L.LIGHT_STYLE,C=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:y}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("tsv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=T,t.content.rendererConfig=C}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);T=e?L.LIGHT_STYLE:L.DARK_STYLE,C=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=T,e.content.rendererConfig=C}))})),c&&F(c,h,t),i&&i.register("tsv",u)},id:"@jupyterlab/csvviewer-extension:tsv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0};function F(e,t,r){const n=r.load("jupyterlab");e.editMenu.goToLiners.add({tracker:t,goToLine:e=>a.InputDialog.getNumber({title:n.__("Go to Line"),value:0}).then((t=>{t.button.accept&&null!==t.value&&e.content.goToLine(t.value)}))})}const v=[C,_];var L;!function(e){e.LIGHT_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"#F3F3F3",backgroundColor:"white",headerBackgroundColor:"#EEEEEE",gridLineColor:"rgba(20, 20, 20, 0.15)",headerGridLineColor:"rgba(20, 20, 20, 0.25)",rowBackgroundColor:e=>e%2==0?"#F5F5F5":"white"}),e.DARK_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"black",backgroundColor:"#111111",headerBackgroundColor:"#424242",gridLineColor:"rgba(235, 235, 235, 0.15)",headerGridLineColor:"rgba(235, 235, 235, 0.25)",rowBackgroundColor:e=>e%2==0?"#212121":"#111111"}),e.LIGHT_TEXT_CONFIG={textColor:"#111111",matchBackgroundColor:"#FFFFE0",currentMatchBackgroundColor:"#FFFF00",horizontalAlignment:"right"},e.DARK_TEXT_CONFIG={textColor:"#F5F5F5",matchBackgroundColor:"#838423",currentMatchBackgroundColor:"#A3807A",horizontalAlignment:"right"}}(L||(L={}))}}]); +//# sourceMappingURL=5096.8ed0d8e.js.map \ No newline at end of file diff --git a/_static/build/5096.8ed0d8e.js.map b/_static/build/5096.8ed0d8e.js.map new file mode 100644 index 0000000..0a8c59a --- /dev/null +++ b/_static/build/5096.8ed0d8e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5096.8ed0d8e.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/searchprovider.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5126.eecad7a.js b/_static/build/5126.eecad7a.js new file mode 100644 index 0000000..9026c9d --- /dev/null +++ b/_static/build/5126.eecad7a.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5126],{95126:(s,j,e)=>{var n={"./af":75436,"./af.js":75436,"./ar":27662,"./ar-dz":73578,"./ar-dz.js":73578,"./ar-kw":79535,"./ar-kw.js":79535,"./ar-ly":45801,"./ar-ly.js":45801,"./ar-ma":64784,"./ar-ma.js":64784,"./ar-sa":59050,"./ar-sa.js":59050,"./ar-tn":62042,"./ar-tn.js":62042,"./ar.js":27662,"./az":11071,"./az.js":11071,"./be":48369,"./be.js":48369,"./bg":37874,"./bg.js":37874,"./bm":88393,"./bm.js":88393,"./bn":92722,"./bn-bd":70643,"./bn-bd.js":70643,"./bn.js":92722,"./bo":85165,"./bo.js":85165,"./br":96645,"./br.js":96645,"./bs":15870,"./bs.js":15870,"./ca":3993,"./ca.js":3993,"./cs":3627,"./cs.js":3627,"./cv":58957,"./cv.js":58957,"./cy":55770,"./cy.js":55770,"./da":54649,"./da.js":54649,"./de":89084,"./de-at":28709,"./de-at.js":28709,"./de-ch":21320,"./de-ch.js":21320,"./de.js":89084,"./dv":63575,"./dv.js":63575,"./el":56395,"./el.js":56395,"./en-au":93826,"./en-au.js":93826,"./en-ca":13769,"./en-ca.js":13769,"./en-gb":24155,"./en-gb.js":24155,"./en-ie":1518,"./en-ie.js":1518,"./en-il":24043,"./en-il.js":24043,"./en-in":18404,"./en-in.js":18404,"./en-nz":79220,"./en-nz.js":79220,"./en-sg":29133,"./en-sg.js":29133,"./eo":48648,"./eo.js":48648,"./es":68465,"./es-do":16734,"./es-do.js":16734,"./es-mx":31910,"./es-mx.js":31910,"./es-us":67093,"./es-us.js":67093,"./es.js":68465,"./et":53742,"./et.js":53742,"./eu":41088,"./eu.js":41088,"./fa":13554,"./fa.js":13554,"./fi":3996,"./fi.js":3996,"./fil":20368,"./fil.js":20368,"./fo":36132,"./fo.js":36132,"./fr":71265,"./fr-ca":31467,"./fr-ca.js":31467,"./fr-ch":98279,"./fr-ch.js":98279,"./fr.js":71265,"./fy":88841,"./fy.js":88841,"./ga":65254,"./ga.js":65254,"./gd":72520,"./gd.js":72520,"./gl":94898,"./gl.js":94898,"./gom-deva":35171,"./gom-deva.js":35171,"./gom-latn":63681,"./gom-latn.js":63681,"./gu":32613,"./gu.js":32613,"./he":42716,"./he.js":42716,"./hi":71315,"./hi.js":71315,"./hr":14577,"./hr.js":14577,"./hu":26736,"./hu.js":26736,"./hy-am":3417,"./hy-am.js":3417,"./id":18890,"./id.js":18890,"./is":14468,"./is.js":14468,"./it":45652,"./it-ch":80981,"./it-ch.js":80981,"./it.js":45652,"./ja":44511,"./ja.js":44511,"./jv":63069,"./jv.js":63069,"./ka":75258,"./ka.js":75258,"./kk":77086,"./kk.js":77086,"./km":84125,"./km.js":84125,"./kn":37197,"./kn.js":37197,"./ko":65508,"./ko.js":65508,"./ku":18195,"./ku.js":18195,"./ky":83971,"./ky.js":83971,"./lb":79651,"./lb.js":79651,"./lo":58072,"./lo.js":58072,"./lt":62146,"./lt.js":62146,"./lv":84824,"./lv.js":84824,"./me":49674,"./me.js":49674,"./mi":56500,"./mi.js":56500,"./mk":85111,"./mk.js":85111,"./ml":55597,"./ml.js":55597,"./mn":83610,"./mn.js":83610,"./mr":47565,"./mr.js":47565,"./ms":7918,"./ms-my":64736,"./ms-my.js":64736,"./ms.js":7918,"./mt":5947,"./mt.js":5947,"./my":55624,"./my.js":55624,"./nb":98607,"./nb.js":98607,"./ne":85457,"./ne.js":85457,"./nl":54041,"./nl-be":3439,"./nl-be.js":3439,"./nl.js":54041,"./nn":82457,"./nn.js":82457,"./oc-lnc":26236,"./oc-lnc.js":26236,"./pa-in":38772,"./pa-in.js":38772,"./pl":43219,"./pl.js":43219,"./pt":31071,"./pt-br":10376,"./pt-br.js":10376,"./pt.js":31071,"./ro":43551,"./ro.js":43551,"./ru":878,"./ru.js":878,"./sd":93332,"./sd.js":93332,"./se":55268,"./se.js":55268,"./si":87050,"./si.js":87050,"./sk":46201,"./sk.js":46201,"./sl":96675,"./sl.js":96675,"./sq":27632,"./sq.js":27632,"./sr":83419,"./sr-cyrl":40617,"./sr-cyrl.js":40617,"./sr.js":83419,"./ss":65321,"./ss.js":65321,"./sv":52765,"./sv.js":52765,"./sw":32831,"./sw.js":32831,"./ta":77530,"./ta.js":77530,"./te":26726,"./te.js":26726,"./tet":78172,"./tet.js":78172,"./tg":48165,"./tg.js":48165,"./th":99496,"./th.js":99496,"./tk":58573,"./tk.js":58573,"./tl-ph":74742,"./tl-ph.js":74742,"./tlh":24780,"./tlh.js":24780,"./tr":80835,"./tr.js":80835,"./tzl":2840,"./tzl.js":2840,"./tzm":66757,"./tzm-latn":70442,"./tzm-latn.js":70442,"./tzm.js":66757,"./ug-cn":64413,"./ug-cn.js":64413,"./uk":64800,"./uk.js":64800,"./ur":61809,"./ur.js":61809,"./uz":37448,"./uz-latn":63337,"./uz-latn.js":63337,"./uz.js":37448,"./vi":83528,"./vi.js":83528,"./x-pseudo":581,"./x-pseudo.js":581,"./yo":7658,"./yo.js":7658,"./zh-cn":55526,"./zh-cn.js":55526,"./zh-hk":32809,"./zh-hk.js":32809,"./zh-mo":57892,"./zh-mo.js":57892,"./zh-tw":79204,"./zh-tw.js":79204};function a(s){var j=t(s);return e(j)}function t(s){if(!e.o(n,s)){var j=new Error("Cannot find module '"+s+"'");throw j.code="MODULE_NOT_FOUND",j}return n[s]}a.keys=function(){return Object.keys(n)},a.resolve=t,s.exports=a,a.id=95126}}]); +//# sourceMappingURL=5126.eecad7a.js.map \ No newline at end of file diff --git a/_static/build/5126.eecad7a.js.map b/_static/build/5126.eecad7a.js.map new file mode 100644 index 0000000..ff64586 --- /dev/null +++ b/_static/build/5126.eecad7a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5126.eecad7a.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["var map = {\n\t\"./af\": 75436,\n\t\"./af.js\": 75436,\n\t\"./ar\": 27662,\n\t\"./ar-dz\": 73578,\n\t\"./ar-dz.js\": 73578,\n\t\"./ar-kw\": 79535,\n\t\"./ar-kw.js\": 79535,\n\t\"./ar-ly\": 45801,\n\t\"./ar-ly.js\": 45801,\n\t\"./ar-ma\": 64784,\n\t\"./ar-ma.js\": 64784,\n\t\"./ar-sa\": 59050,\n\t\"./ar-sa.js\": 59050,\n\t\"./ar-tn\": 62042,\n\t\"./ar-tn.js\": 62042,\n\t\"./ar.js\": 27662,\n\t\"./az\": 11071,\n\t\"./az.js\": 11071,\n\t\"./be\": 48369,\n\t\"./be.js\": 48369,\n\t\"./bg\": 37874,\n\t\"./bg.js\": 37874,\n\t\"./bm\": 88393,\n\t\"./bm.js\": 88393,\n\t\"./bn\": 92722,\n\t\"./bn-bd\": 70643,\n\t\"./bn-bd.js\": 70643,\n\t\"./bn.js\": 92722,\n\t\"./bo\": 85165,\n\t\"./bo.js\": 85165,\n\t\"./br\": 96645,\n\t\"./br.js\": 96645,\n\t\"./bs\": 15870,\n\t\"./bs.js\": 15870,\n\t\"./ca\": 3993,\n\t\"./ca.js\": 3993,\n\t\"./cs\": 3627,\n\t\"./cs.js\": 3627,\n\t\"./cv\": 58957,\n\t\"./cv.js\": 58957,\n\t\"./cy\": 55770,\n\t\"./cy.js\": 55770,\n\t\"./da\": 54649,\n\t\"./da.js\": 54649,\n\t\"./de\": 89084,\n\t\"./de-at\": 28709,\n\t\"./de-at.js\": 28709,\n\t\"./de-ch\": 21320,\n\t\"./de-ch.js\": 21320,\n\t\"./de.js\": 89084,\n\t\"./dv\": 63575,\n\t\"./dv.js\": 63575,\n\t\"./el\": 56395,\n\t\"./el.js\": 56395,\n\t\"./en-au\": 93826,\n\t\"./en-au.js\": 93826,\n\t\"./en-ca\": 13769,\n\t\"./en-ca.js\": 13769,\n\t\"./en-gb\": 24155,\n\t\"./en-gb.js\": 24155,\n\t\"./en-ie\": 1518,\n\t\"./en-ie.js\": 1518,\n\t\"./en-il\": 24043,\n\t\"./en-il.js\": 24043,\n\t\"./en-in\": 18404,\n\t\"./en-in.js\": 18404,\n\t\"./en-nz\": 79220,\n\t\"./en-nz.js\": 79220,\n\t\"./en-sg\": 29133,\n\t\"./en-sg.js\": 29133,\n\t\"./eo\": 48648,\n\t\"./eo.js\": 48648,\n\t\"./es\": 68465,\n\t\"./es-do\": 16734,\n\t\"./es-do.js\": 16734,\n\t\"./es-mx\": 31910,\n\t\"./es-mx.js\": 31910,\n\t\"./es-us\": 67093,\n\t\"./es-us.js\": 67093,\n\t\"./es.js\": 68465,\n\t\"./et\": 53742,\n\t\"./et.js\": 53742,\n\t\"./eu\": 41088,\n\t\"./eu.js\": 41088,\n\t\"./fa\": 13554,\n\t\"./fa.js\": 13554,\n\t\"./fi\": 3996,\n\t\"./fi.js\": 3996,\n\t\"./fil\": 20368,\n\t\"./fil.js\": 20368,\n\t\"./fo\": 36132,\n\t\"./fo.js\": 36132,\n\t\"./fr\": 71265,\n\t\"./fr-ca\": 31467,\n\t\"./fr-ca.js\": 31467,\n\t\"./fr-ch\": 98279,\n\t\"./fr-ch.js\": 98279,\n\t\"./fr.js\": 71265,\n\t\"./fy\": 88841,\n\t\"./fy.js\": 88841,\n\t\"./ga\": 65254,\n\t\"./ga.js\": 65254,\n\t\"./gd\": 72520,\n\t\"./gd.js\": 72520,\n\t\"./gl\": 94898,\n\t\"./gl.js\": 94898,\n\t\"./gom-deva\": 35171,\n\t\"./gom-deva.js\": 35171,\n\t\"./gom-latn\": 63681,\n\t\"./gom-latn.js\": 63681,\n\t\"./gu\": 32613,\n\t\"./gu.js\": 32613,\n\t\"./he\": 42716,\n\t\"./he.js\": 42716,\n\t\"./hi\": 71315,\n\t\"./hi.js\": 71315,\n\t\"./hr\": 14577,\n\t\"./hr.js\": 14577,\n\t\"./hu\": 26736,\n\t\"./hu.js\": 26736,\n\t\"./hy-am\": 3417,\n\t\"./hy-am.js\": 3417,\n\t\"./id\": 18890,\n\t\"./id.js\": 18890,\n\t\"./is\": 14468,\n\t\"./is.js\": 14468,\n\t\"./it\": 45652,\n\t\"./it-ch\": 80981,\n\t\"./it-ch.js\": 80981,\n\t\"./it.js\": 45652,\n\t\"./ja\": 44511,\n\t\"./ja.js\": 44511,\n\t\"./jv\": 63069,\n\t\"./jv.js\": 63069,\n\t\"./ka\": 75258,\n\t\"./ka.js\": 75258,\n\t\"./kk\": 77086,\n\t\"./kk.js\": 77086,\n\t\"./km\": 84125,\n\t\"./km.js\": 84125,\n\t\"./kn\": 37197,\n\t\"./kn.js\": 37197,\n\t\"./ko\": 65508,\n\t\"./ko.js\": 65508,\n\t\"./ku\": 18195,\n\t\"./ku.js\": 18195,\n\t\"./ky\": 83971,\n\t\"./ky.js\": 83971,\n\t\"./lb\": 79651,\n\t\"./lb.js\": 79651,\n\t\"./lo\": 58072,\n\t\"./lo.js\": 58072,\n\t\"./lt\": 62146,\n\t\"./lt.js\": 62146,\n\t\"./lv\": 84824,\n\t\"./lv.js\": 84824,\n\t\"./me\": 49674,\n\t\"./me.js\": 49674,\n\t\"./mi\": 56500,\n\t\"./mi.js\": 56500,\n\t\"./mk\": 85111,\n\t\"./mk.js\": 85111,\n\t\"./ml\": 55597,\n\t\"./ml.js\": 55597,\n\t\"./mn\": 83610,\n\t\"./mn.js\": 83610,\n\t\"./mr\": 47565,\n\t\"./mr.js\": 47565,\n\t\"./ms\": 7918,\n\t\"./ms-my\": 64736,\n\t\"./ms-my.js\": 64736,\n\t\"./ms.js\": 7918,\n\t\"./mt\": 5947,\n\t\"./mt.js\": 5947,\n\t\"./my\": 55624,\n\t\"./my.js\": 55624,\n\t\"./nb\": 98607,\n\t\"./nb.js\": 98607,\n\t\"./ne\": 85457,\n\t\"./ne.js\": 85457,\n\t\"./nl\": 54041,\n\t\"./nl-be\": 3439,\n\t\"./nl-be.js\": 3439,\n\t\"./nl.js\": 54041,\n\t\"./nn\": 82457,\n\t\"./nn.js\": 82457,\n\t\"./oc-lnc\": 26236,\n\t\"./oc-lnc.js\": 26236,\n\t\"./pa-in\": 38772,\n\t\"./pa-in.js\": 38772,\n\t\"./pl\": 43219,\n\t\"./pl.js\": 43219,\n\t\"./pt\": 31071,\n\t\"./pt-br\": 10376,\n\t\"./pt-br.js\": 10376,\n\t\"./pt.js\": 31071,\n\t\"./ro\": 43551,\n\t\"./ro.js\": 43551,\n\t\"./ru\": 878,\n\t\"./ru.js\": 878,\n\t\"./sd\": 93332,\n\t\"./sd.js\": 93332,\n\t\"./se\": 55268,\n\t\"./se.js\": 55268,\n\t\"./si\": 87050,\n\t\"./si.js\": 87050,\n\t\"./sk\": 46201,\n\t\"./sk.js\": 46201,\n\t\"./sl\": 96675,\n\t\"./sl.js\": 96675,\n\t\"./sq\": 27632,\n\t\"./sq.js\": 27632,\n\t\"./sr\": 83419,\n\t\"./sr-cyrl\": 40617,\n\t\"./sr-cyrl.js\": 40617,\n\t\"./sr.js\": 83419,\n\t\"./ss\": 65321,\n\t\"./ss.js\": 65321,\n\t\"./sv\": 52765,\n\t\"./sv.js\": 52765,\n\t\"./sw\": 32831,\n\t\"./sw.js\": 32831,\n\t\"./ta\": 77530,\n\t\"./ta.js\": 77530,\n\t\"./te\": 26726,\n\t\"./te.js\": 26726,\n\t\"./tet\": 78172,\n\t\"./tet.js\": 78172,\n\t\"./tg\": 48165,\n\t\"./tg.js\": 48165,\n\t\"./th\": 99496,\n\t\"./th.js\": 99496,\n\t\"./tk\": 58573,\n\t\"./tk.js\": 58573,\n\t\"./tl-ph\": 74742,\n\t\"./tl-ph.js\": 74742,\n\t\"./tlh\": 24780,\n\t\"./tlh.js\": 24780,\n\t\"./tr\": 80835,\n\t\"./tr.js\": 80835,\n\t\"./tzl\": 2840,\n\t\"./tzl.js\": 2840,\n\t\"./tzm\": 66757,\n\t\"./tzm-latn\": 70442,\n\t\"./tzm-latn.js\": 70442,\n\t\"./tzm.js\": 66757,\n\t\"./ug-cn\": 64413,\n\t\"./ug-cn.js\": 64413,\n\t\"./uk\": 64800,\n\t\"./uk.js\": 64800,\n\t\"./ur\": 61809,\n\t\"./ur.js\": 61809,\n\t\"./uz\": 37448,\n\t\"./uz-latn\": 63337,\n\t\"./uz-latn.js\": 63337,\n\t\"./uz.js\": 37448,\n\t\"./vi\": 83528,\n\t\"./vi.js\": 83528,\n\t\"./x-pseudo\": 581,\n\t\"./x-pseudo.js\": 581,\n\t\"./yo\": 7658,\n\t\"./yo.js\": 7658,\n\t\"./zh-cn\": 55526,\n\t\"./zh-cn.js\": 55526,\n\t\"./zh-hk\": 32809,\n\t\"./zh-hk.js\": 32809,\n\t\"./zh-mo\": 57892,\n\t\"./zh-mo.js\": 57892,\n\t\"./zh-tw\": 79204,\n\t\"./zh-tw.js\": 79204\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 95126;"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5129.1ba4763.js b/_static/build/5129.1ba4763.js new file mode 100644 index 0000000..4c2b338 --- /dev/null +++ b/_static/build/5129.1ba4763.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5129,1290],{25129:(e,t,o)=>{o.r(t),o.d(t,{addCommands:()=>v,default:()=>g});var i,a=o(67504),n=o(2814),r=o(58033),l=o(4265);!function(e){e.resetImage="imageviewer:reset-image",e.zoomIn="imageviewer:zoom-in",e.zoomOut="imageviewer:zoom-out",e.flipHorizontal="imageviewer:flip-horizontal",e.flipVertical="imageviewer:flip-vertical",e.rotateClockwise="imageviewer:rotate-clockwise",e.rotateCounterclockwise="imageviewer:rotate-counterclockwise",e.invertColors="imageviewer:invert-colors"}(i||(i={}));const c=["png","gif","jpeg","bmp","ico","tiff"],d="Image",s="Image (Text)",m=["svg","xbm"],u=new RegExp(`[.](${m.join("|")})$`),g={activate:function(e,t,o,a){const l=t.load("jupyterlab");function g(t,o){var i,a;o.context.pathChanged.connect((()=>{w.save(o)})),w.add(o);const n=e.docRegistry.getFileTypesForPath(o.context.path);n.length>0&&(o.title.icon=n[0].icon,o.title.iconClass=null!==(i=n[0].iconClass)&&void 0!==i?i:"",o.title.iconLabel=null!==(a=n[0].iconLabel)&&void 0!==a?a:"")}[new r.ImageViewerFactory({name:d,modelName:"base64",fileTypes:[...c,...m],defaultFor:c,readOnly:!0}),new r.ImageViewerFactory({name:s,modelName:"text",fileTypes:m,defaultFor:m,readOnly:!0})].forEach((t=>{e.docRegistry.addWidgetFactory(t),t.widgetCreated.connect(g)}));const w=new n.WidgetTracker({namespace:"image-widget"});if(a&&a.restore(w,{command:"docmanager:open",args:e=>({path:e.context.path,factory:u.test(e.context.path)?s:d}),name:e=>e.context.path}),v(e,w,t),o){const e=l.__("Image Viewer");[i.zoomIn,i.zoomOut,i.resetImage,i.rotateClockwise,i.rotateCounterclockwise,i.flipHorizontal,i.flipVertical,i.invertColors].forEach((t=>{o.addItem({command:t,category:e})}))}return w},id:"@jupyterlab/imageviewer-extension:plugin",provides:r.IImageTracker,requires:[l.ITranslator],optional:[n.ICommandPalette,a.ILayoutRestorer],autoStart:!0};function v(e,t,o){const i=o.load("jupyterlab"),{commands:a,shell:n}=e;function r(){return null!==t.currentWidget&&t.currentWidget===n.currentWidget}a.addCommand("imageviewer:zoom-in",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.scale=o.scale>1?o.scale+.5:2*o.scale)},label:i.__("Zoom In"),isEnabled:r}),a.addCommand("imageviewer:zoom-out",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.scale=o.scale>1?o.scale-.5:o.scale/2)},label:i.__("Zoom Out"),isEnabled:r}),a.addCommand("imageviewer:reset-image",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.scale=1,o.colorinversion=0,o.resetRotationFlip())},label:i.__("Reset Image"),isEnabled:r}),a.addCommand("imageviewer:rotate-clockwise",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.rotateClockwise()},label:i.__("Rotate Clockwise"),isEnabled:r}),a.addCommand("imageviewer:rotate-counterclockwise",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.rotateCounterclockwise()},label:i.__("Rotate Counterclockwise"),isEnabled:r}),a.addCommand("imageviewer:flip-horizontal",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.flipHorizontal()},label:i.__("Flip image horizontally"),isEnabled:r}),a.addCommand("imageviewer:flip-vertical",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&o.flipVertical()},label:i.__("Flip image vertically"),isEnabled:r}),a.addCommand("imageviewer:invert-colors",{execute:function(){var e;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.content;o&&(o.colorinversion+=1,o.colorinversion%=2)},label:i.__("Invert Colors"),isEnabled:r})}}}]); +//# sourceMappingURL=5129.1ba4763.js.map \ No newline at end of file diff --git a/_static/build/5129.1ba4763.js.map b/_static/build/5129.1ba4763.js.map new file mode 100644 index 0000000..329477e --- /dev/null +++ b/_static/build/5129.1ba4763.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5129.1ba4763.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5153.763d8fa.js b/_static/build/5153.763d8fa.js new file mode 100644 index 0000000..b9f535a --- /dev/null +++ b/_static/build/5153.763d8fa.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5153],{12091:(s,n,e)=>{e.d(n,{Z:()=>a});var r=e(34663),o=e.n(r),c=e(7638),t=e.n(c)()(o());t.push([s.id,".cm-s-ssms span.cm-keyword { color: blue; }\n.cm-s-ssms span.cm-comment { color: darkgreen; }\n.cm-s-ssms span.cm-string { color: red; }\n.cm-s-ssms span.cm-def { color: black; }\n.cm-s-ssms span.cm-variable { color: black; }\n.cm-s-ssms span.cm-variable-2 { color: black; }\n.cm-s-ssms span.cm-atom { color: darkgray; }\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\n.cm-s-ssms span.cm-operator, \n.cm-s-ssms span.cm-bracket, \n.cm-s-ssms span.cm-punctuation { color: darkgray; }\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\n\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ssms.css"],names:[],mappings:"AAAA,6BAA6B,WAAW,EAAE;AAC1C,6BAA6B,gBAAgB,EAAE;AAC/C,4BAA4B,UAAU,EAAE;AACxC,yBAAyB,YAAY,EAAE;AACvC,8BAA8B,YAAY,EAAE;AAC5C,gCAAgC,YAAY,EAAE;AAC9C,0BAA0B,eAAe,EAAE;AAC3C,oCAAoC,WAAW,EAAE;AACjD,+CAA+C,mBAAmB,EAAE;AACpE,8BAA8B,cAAc,EAAE;AAC9C;;iCAEiC,eAAe,EAAE;AAClD,iCAAiC,+BAA+B,EAAE,yBAAyB,EAAE;AAC7F,qCAAqC,mBAAmB,EAAE",sourcesContent:[".cm-s-ssms span.cm-keyword { color: blue; }\n.cm-s-ssms span.cm-comment { color: darkgreen; }\n.cm-s-ssms span.cm-string { color: red; }\n.cm-s-ssms span.cm-def { color: black; }\n.cm-s-ssms span.cm-variable { color: black; }\n.cm-s-ssms span.cm-variable-2 { color: black; }\n.cm-s-ssms span.cm-atom { color: darkgray; }\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\n.cm-s-ssms span.cm-operator, \n.cm-s-ssms span.cm-bracket, \n.cm-s-ssms span.cm-punctuation { color: darkgray; }\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\n\n"],sourceRoot:""}]);const a=t},7638:s=>{s.exports=function(s){var n=[];return n.toString=function(){return this.map((function(n){var e="",r=void 0!==n[5];return n[4]&&(e+="@supports (".concat(n[4],") {")),n[2]&&(e+="@media ".concat(n[2]," {")),r&&(e+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),e+=s(n),r&&(e+="}"),n[2]&&(e+="}"),n[4]&&(e+="}"),e})).join("")},n.i=function(s,e,r,o,c){"string"==typeof s&&(s=[[null,s,void 0]]);var t={};if(r)for(var a=0;a0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=c),e&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=e):A[2]=e),o&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=o):A[4]="".concat(o)),n.push(A))}},n}},34663:s=>{s.exports=function(s){var n=s[1],e=s[3];if(!e)return n;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),c="/*# ".concat(o," */"),t=e.sources.map((function(s){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(s," */")}));return[n].concat(t).concat([c]).join("\n")}return[n].join("\n")}},45153:(s,n,e)=>{e.r(n),e.d(n,{default:()=>C});var r=e(1892),o=e.n(r),c=e(95760),t=e.n(c),a=e(38311),i=e.n(a),m=e(58192),A=e.n(m),u=e(38060),l=e.n(u),p=e(54865),d=e.n(p),f=e(12091),v={};v.styleTagTransform=d(),v.setAttributes=A(),v.insert=i().bind(null,"head"),v.domAPI=t(),v.insertStyleElement=l(),o()(f.Z,v);const C=f.Z&&f.Z.locals?f.Z.locals:void 0},1892:s=>{var n=[];function e(s){for(var e=-1,r=0;r{var n={};s.exports=function(s,e){var r=function(s){if(void 0===n[s]){var e=document.querySelector(s);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(s){e=null}n[s]=e}return n[s]}(s);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(e)}},38060:s=>{s.exports=function(s){var n=document.createElement("style");return s.setAttributes(n,s.attributes),s.insert(n,s.options),n}},58192:(s,n,e)=>{s.exports=function(s){var n=e.nc;n&&s.setAttribute("nonce",n)}},95760:s=>{s.exports=function(s){var n=s.insertStyleElement(s);return{update:function(e){!function(s,n,e){var r="";e.supports&&(r+="@supports (".concat(e.supports,") {")),e.media&&(r+="@media ".concat(e.media," {"));var o=void 0!==e.layer;o&&(r+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),r+=e.css,o&&(r+="}"),e.media&&(r+="}"),e.supports&&(r+="}");var c=e.sourceMap;c&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(c))))," */")),n.styleTagTransform(r,s,n.options)}(n,s,e)},remove:function(){!function(s){if(null===s.parentNode)return!1;s.parentNode.removeChild(s)}(n)}}}},54865:s=>{s.exports=function(s,n){if(n.styleSheet)n.styleSheet.cssText=s;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(s))}}}}]); +//# sourceMappingURL=5153.763d8fa.js.map \ No newline at end of file diff --git a/_static/build/5153.763d8fa.js.map b/_static/build/5153.763d8fa.js.map new file mode 100644 index 0000000..6d4b720 --- /dev/null +++ b/_static/build/5153.763d8fa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5153.763d8fa.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ssms.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ssms.css?f494","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-ssms span.cm-keyword { color: blue; }\\n.cm-s-ssms span.cm-comment { color: darkgreen; }\\n.cm-s-ssms span.cm-string { color: red; }\\n.cm-s-ssms span.cm-def { color: black; }\\n.cm-s-ssms span.cm-variable { color: black; }\\n.cm-s-ssms span.cm-variable-2 { color: black; }\\n.cm-s-ssms span.cm-atom { color: darkgray; }\\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\\n.cm-s-ssms span.cm-operator, \\n.cm-s-ssms span.cm-bracket, \\n.cm-s-ssms span.cm-punctuation { color: darkgray; }\\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\\n\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ssms.css\"],\"names\":[],\"mappings\":\"AAAA,6BAA6B,WAAW,EAAE;AAC1C,6BAA6B,gBAAgB,EAAE;AAC/C,4BAA4B,UAAU,EAAE;AACxC,yBAAyB,YAAY,EAAE;AACvC,8BAA8B,YAAY,EAAE;AAC5C,gCAAgC,YAAY,EAAE;AAC9C,0BAA0B,eAAe,EAAE;AAC3C,oCAAoC,WAAW,EAAE;AACjD,+CAA+C,mBAAmB,EAAE;AACpE,8BAA8B,cAAc,EAAE;AAC9C;;iCAEiC,eAAe,EAAE;AAClD,iCAAiC,+BAA+B,EAAE,yBAAyB,EAAE;AAC7F,qCAAqC,mBAAmB,EAAE\",\"sourcesContent\":[\".cm-s-ssms span.cm-keyword { color: blue; }\\n.cm-s-ssms span.cm-comment { color: darkgreen; }\\n.cm-s-ssms span.cm-string { color: red; }\\n.cm-s-ssms span.cm-def { color: black; }\\n.cm-s-ssms span.cm-variable { color: black; }\\n.cm-s-ssms span.cm-variable-2 { color: black; }\\n.cm-s-ssms span.cm-atom { color: darkgray; }\\n.cm-s-ssms .CodeMirror-linenumber { color: teal; }\\n.cm-s-ssms .CodeMirror-activeline-background { background: #ffffff; }\\n.cm-s-ssms span.cm-string-2 { color: #FF00FF; }\\n.cm-s-ssms span.cm-operator, \\n.cm-s-ssms span.cm-bracket, \\n.cm-s-ssms span.cm-punctuation { color: darkgray; }\\n.cm-s-ssms .CodeMirror-gutters { border-right: 3px solid #ffee62; background-color: #ffffff; }\\n.cm-s-ssms div.CodeMirror-selected { background: #ADD6FF; }\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ssms.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ssms.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5155.06b4ea9.js b/_static/build/5155.06b4ea9.js new file mode 100644 index 0000000..7113a88 --- /dev/null +++ b/_static/build/5155.06b4ea9.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5155],{15155:(t,e,a)=>{a.r(e),a.d(e,{default:()=>i});var o=a(15786),n=a(718),l=a(2814),r=a(4265);const s={id:"@jupyterlab/cell-toolbar-extension:plugin",autoStart:!0,activate:async(t,e,a,o)=>{const i=e&&a?(0,l.createToolbarFactory)(a,e,n.CellBarExtension.FACTORY_NAME,s.id,null!=o?o:r.nullTranslator):void 0;t.docRegistry.addWidgetExtension("Notebook",new n.CellBarExtension(t.commands,i))},optional:[o.ISettingRegistry,l.IToolbarWidgetRegistry,r.ITranslator]},i=s}}]); +//# sourceMappingURL=5155.06b4ea9.js.map \ No newline at end of file diff --git a/_static/build/5155.06b4ea9.js.map b/_static/build/5155.06b4ea9.js.map new file mode 100644 index 0000000..e9b68ab --- /dev/null +++ b/_static/build/5155.06b4ea9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5155.06b4ea9.js","mappings":"6MAqBA,MAAM,EAA2C,CAC/C,GAAI,4CACJ,WAAW,EACX,SAAU,MACR,EACA,EACA,EACA,KAEA,MAAM,EACJ,GAAmB,GACf,0BACE,EACA,EACA,gCACA,EAAY,GACZ,UAAc,uBAEhB,EAEN,EAAI,YAAY,mBACd,WACA,IAAI,mBAAiB,EAAI,SAAU,GACpC,EAEH,SAAU,CAAC,mBAAkB,yBAAwB,gBAGvD,G","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5193.e9f6866.js b/_static/build/5193.e9f6866.js new file mode 100644 index 0000000..d5a4989 --- /dev/null +++ b/_static/build/5193.e9f6866.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5193],{75193:(e,t,s)=>{s.r(t),s.d(t,{AttachmentsCell:()=>ie,AttachmentsCellModel:()=>I,Cell:()=>ae,CellDragUtils:()=>u,CellFooter:()=>v,CellHeader:()=>y,CellModel:()=>F,CodeCell:()=>ne,CodeCellModel:()=>W,Collapser:()=>m,InputArea:()=>x,InputCollapser:()=>g,InputPlaceholder:()=>U,InputPrompt:()=>O,MARKDOWN_HEADING_COLLAPSED:()=>K,MarkdownCell:()=>oe,MarkdownCellModel:()=>H,OutputCollapser:()=>C,OutputPlaceholder:()=>T,Placeholder:()=>L,RawCell:()=>de,RawCellModel:()=>P,isCodeCellModel:()=>M,isMarkdownCellModel:()=>N,isRawCellModel:()=>A});var a=s(43892),n=s(93383);const i="jp-dragImage",o="jp-dragImage-singlePrompt",d="jp-dragImage-content",r="jp-dragImage-prompt",l="jp-dragImage-multipleBack";var u;!function(e){e.findCell=function(e,t,s){let n=-1;for(;e&&e.parentElement;){if(s(e)){(0,a.each)(t,((t,s)=>{if(t.node===e)return n=s,!1}));break}e=e.parentElement}return n},e.detectTargetArea=function(e,t){let s;return s=e?e.editorWidget.node.contains(t)?"input":e.promptNode.contains(t)?"prompt":"cell":"unknown",s},e.shouldStartDrag=function(e,t,s,a){const n=Math.abs(s-e),i=Math.abs(a-t);return n>=5||i>=5},e.createCellDragImage=function(e,t){const s=t.length;let a;if("code"===e.model.type){const t=e.model.executionCount;a=" ",t&&(a=t.toString())}else a="";const u=e.model.value.text.split("\n")[0].slice(0,26);return s>1?""!==a?n.VirtualDOM.realize(n.h.div(n.h.div({className:i},n.h.span({className:r},"["+a+"]:"),n.h.span({className:d},u)),n.h.div({className:l},""))):n.VirtualDOM.realize(n.h.div(n.h.div({className:i},n.h.span({className:r}),n.h.span({className:d},u)),n.h.div({className:l},""))):""!==a?n.VirtualDOM.realize(n.h.div(n.h.div({className:`${i} ${o}`},n.h.span({className:r},"["+a+"]:"),n.h.span({className:d},u)))):n.VirtualDOM.realize(n.h.div(n.h.div({className:`${i} ${o}`},n.h.span({className:r}),n.h.span({className:d},u))))}}(u||(u={}));var h=s(2814),c=s(33349),p=s(62471);class m extends h.ReactWidget{constructor(){super(),this.addClass("jp-Collapser")}get collapsed(){return!1}render(){return p.createElement("div",{className:"jp-Collapser-child",onClick:e=>this.handleClick(e)})}}class g extends m{constructor(){super(),this.addClass("jp-InputCollapser")}get collapsed(){var e;const t=null===(e=this.parent)||void 0===e?void 0:e.parent;return!!t&&t.inputHidden}handleClick(e){var t;const s=null===(t=this.parent)||void 0===t?void 0:t.parent;s&&(s.inputHidden=!s.inputHidden),this.update()}}class C extends m{constructor(){super(),this.addClass("jp-OutputCollapser")}get collapsed(){var e;const t=null===(e=this.parent)||void 0===e?void 0:e.parent;return!!t&&t.outputHidden}handleClick(e){var t,s;const a=null===(t=this.parent)||void 0===t?void 0:t.parent;if(a&&(a.outputHidden=!a.outputHidden,a.outputHidden)){let e=null===(s=a.parent)||void 0===s?void 0:s.node;e&&c.ElementExt.scrollIntoViewIfNeeded(e,a.node)}this.update()}}var _=s(94519);class y extends _.Widget{constructor(){super(),this.addClass("jp-CellHeader")}}class v extends _.Widget{constructor(){super(),this.addClass("jp-CellFooter")}}var w=s(84853),f=s(23059);class x extends _.Widget{constructor(e){super(),this.addClass("jp-InputArea");const t=this.model=e.model,s=this.contentFactory=e.contentFactory||x.defaultContentFactory,a=this._prompt=s.createInputPrompt();a.addClass("jp-InputArea-prompt");const n={model:t,factory:s.editorFactory,updateOnShow:e.updateOnShow},i=this._editor=new w.CodeEditorWrapper(n);i.addClass("jp-InputArea-editor");const o=this.layout=new _.PanelLayout;o.addWidget(a),e.placeholder||o.addWidget(i)}get editorWidget(){return this._editor}get editor(){return this._editor.editor}get promptNode(){return this._prompt.node}get renderedInput(){return this._rendered}renderInput(e){const t=this.layout;this._rendered&&(this._rendered.parent=null),this._editor.hide(),this._rendered=e,t.addWidget(e)}showEditor(){this._rendered&&(this._rendered.parent=null),this._editor.show()}setPrompt(e){this._prompt.executionCount=e}dispose(){this.isDisposed||(this._prompt=null,this._editor=null,this._rendered=null,super.dispose())}}!function(e){class t{constructor(t={}){this._editor=t.editorFactory||e.defaultEditorFactory}get editorFactory(){return this._editor}createInputPrompt(){return new O}}e.ContentFactory=t,e.defaultEditorFactory=(new f.CodeMirrorEditorFactory).newInlineEditor,e.defaultContentFactory=new t({})}(x||(x={}));class O extends _.Widget{constructor(){super(),this._executionCount=null,this.addClass("jp-InputPrompt")}get executionCount(){return this._executionCount}set executionCount(e){this._executionCount=e,this.node.textContent=null===e?" ":`[${e||" "}]:`}}var S=s(26169),b=s(70942),E=s(56531),k=s(56274),D=s(80178);const j=k.createMutex();function M(e){return"code"===e.type}function N(e){return"markdown"===e.type}function A(e){return"raw"===e.type}class F extends w.CodeEditor.Model{constructor(e){var t;super({modelDB:e.modelDB,id:e.id||(null===(t=e.cell)||void 0===t?void 0:t.id)||S.UUID.uuid4()}),this.contentChanged=new b.Signal(this),this.stateChanged=new b.Signal(this),this.value.changed.connect(this.onGenericChange,this),this.modelDB.createValue("type").set(this.type);const s=this.modelDB.createMap("metadata");s.changed.connect(this.onModelDBMetadataChange,this),s.changed.connect(this.onGenericChange,this);const a=e.cell,n=this.modelDB.createValue("trusted");if(n.changed.connect(this.onTrustedChanged,this),!a)return void n.set(!1);n.set(!!a.metadata.trusted),delete a.metadata.trusted,Array.isArray(a.source)?this.value.text=a.source.map((e=>e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"))).join(""):this.value.text=a.source.replace(/\r\n/g,"\n").replace(/\r/g,"\n");const i=S.JSONExt.deepCopy(a.metadata);"raw"!==this.type&&delete i.format,"code"!==this.type&&(delete i.collapsed,delete i.scrolled);for(const e in i)s.set(e,i[e])}get type(){return"raw"}get id(){return this.sharedModel.getId()}get metadata(){return this.modelDB.get("metadata")}get trusted(){return this.modelDB.getValue("trusted")}set trusted(e){this.trusted!==e&&this.modelDB.setValue("trusted",e)}toJSON(){const e=Object.create(null);for(const t of this.metadata.keys()){const s=JSON.parse(JSON.stringify(this.metadata.get(t)));e[t]=s}return this.trusted&&(e.trusted=!0),{cell_type:this.type,source:this.value.text,metadata:e}}onTrustedChanged(e,t){}switchSharedModel(e,t){if(t){const t=e.getMetadata();t&&this._updateModelDBMetadata(t)}super.switchSharedModel(e,t)}onModelDBMetadataChange(e,t){const s=this.sharedModel.getMetadata();j((()=>{switch(t.type){case"add":case"change":this._changeCellMetadata(s,t);break;case"remove":delete s[t.key];break;default:throw new Error(`Invalid event type: ${t.type}`)}this.sharedModel.setMetadata(s)}))}_changeCellMetadata(e,t){switch(t.key){case"jupyter":e.jupyter=t.newValue;break;case"collapsed":e.collapsed=t.newValue;break;case"name":e.name=t.newValue;break;case"scrolled":e.scrolled=t.newValue;break;case"tags":e.tags=t.newValue;break;case"trusted":e.trusted=t.newValue;break;default:e[t.key]=t.newValue}}_onSharedModelChanged(e,t){super._onSharedModelChanged(e,t),j((()=>{var e;if(t.metadataChange){const s=null===(e=t.metadataChange)||void 0===e?void 0:e.newValue;s&&this._updateModelDBMetadata(s)}}))}_updateModelDBMetadata(e){Object.keys(e).map((t=>{switch(t){case"collapsed":this.metadata.set("collapsed",e.jupyter);break;case"jupyter":this.metadata.set("jupyter",e.jupyter);break;case"name":this.metadata.set("name",e.name);break;case"scrolled":this.metadata.set("scrolled",e.scrolled);break;case"tags":this.metadata.set("tags",e.tags);break;case"trusted":this.metadata.set("trusted",e.trusted);break;default:this.metadata.set(t,e[t])}}))}onGenericChange(){this.contentChanged.emit(void 0)}}class I extends F{constructor(e){super(e);const t=e.contentFactory||I.defaultContentFactory;let s;const a=e.cell;!a||"raw"!==a.cell_type&&"markdown"!==a.cell_type||(s=a.attachments),this._attachments=t.createAttachmentsModel({values:s,modelDB:this.modelDB}),this._attachments.stateChanged.connect(this.onGenericChange,this)}get attachments(){return this._attachments}toJSON(){const e=super.toJSON();return this.attachments.length&&(e.attachments=this.attachments.toJSON()),e}}!function(e){class t{createAttachmentsModel(e){return new E.AttachmentsModel(e)}}e.ContentFactory=t,e.defaultContentFactory=new t}(I||(I={}));class P extends I{get type(){return"raw"}toJSON(){const e=super.toJSON();return e.id=this.id,e}}class H extends I{constructor(e){super(e),this.mimeType="text/x-ipythongfm"}get type(){return"markdown"}toJSON(){const e=super.toJSON();return e.id=this.id,e}}class W extends F{constructor(e){var t;super(e),this._executedCode="",this._isDirty=!1;const s=e.contentFactory||W.defaultContentFactory,a=this.trusted,n=e.cell;let i=[];const o=this.modelDB.createValue("executionCount");if(o.get()||(n&&"code"===n.cell_type?(o.set(n.execution_count||null),i=null!==(t=n.outputs)&&void 0!==t?t:[],null!=n.execution_count&&(this._executedCode=this.value.text.trim())):o.set(null)),this.value.changed.connect(this._onValueChanged,this),o.changed.connect(this._onExecutionCountChanged,this),j((()=>{this.sharedModel.setOutputs(i)})),this._outputs=s.createOutputArea({trusted:a,values:i}),this._outputs.changed.connect(this.onGenericChange,this),this._outputs.changed.connect(this.onModelDBOutputsChange,this),this.metadata.changed.connect(V.collapseChanged,this),this.metadata.has("collapsed")){const e=this.metadata.get("collapsed");V.collapseChanged(this.metadata,{type:"change",key:"collapsed",oldValue:e,newValue:e})}else if(this.metadata.has("jupyter")){const e=this.metadata.get("jupyter");e.hasOwnProperty("outputs_hidden")&&V.collapseChanged(this.metadata,{type:"change",key:"jupyter",oldValue:e,newValue:e})}}switchSharedModel(e,t){t&&(this.clearExecution(),e.getOutputs().forEach((e=>this._outputs.add(e)))),super.switchSharedModel(e,t)}get type(){return"code"}get executionCount(){return this.modelDB.has("executionCount")?this.modelDB.getValue("executionCount"):null}set executionCount(e){e!==this.executionCount&&this.modelDB.setValue("executionCount",e||null)}get isDirty(){return this._isDirty}_setDirty(e){e!==this._isDirty&&(e||(this._executedCode=this.value.text.trim()),this._isDirty=e,this.stateChanged.emit({name:"isDirty",oldValue:!e,newValue:e}))}clearExecution(){this.outputs.clear(),this.executionCount=null,this._setDirty(!1),this.metadata.delete("execution")}get outputs(){return this._outputs}dispose(){this.isDisposed||(this._outputs.dispose(),this._outputs=null,super.dispose())}toJSON(){const e=super.toJSON();return e.execution_count=this.executionCount||null,e.outputs=this.outputs.toJSON(),e.id=this.id,e}onTrustedChanged(e,t){this._outputs&&(this._outputs.trusted=t.newValue),this.stateChanged.emit({name:"trusted",oldValue:t.oldValue,newValue:t.newValue})}onModelDBOutputsChange(e,t){const s=this.sharedModel;j((()=>{switch(t.type){case"add":{const e=t.newValues.map((e=>e.toJSON()));s.updateOutputs(t.newIndex,t.newIndex+e.length,e);break}case"set":{const e=t.newValues.map((e=>e.toJSON()));s.updateOutputs(t.oldIndex,t.oldIndex+e.length,e);break}case"remove":s.updateOutputs(t.oldIndex,t.oldValues.length);break;default:throw new Error(`Invalid event type: ${t.type}`)}}))}_onValueChanged(){null!==this.executionCount&&this._setDirty(this._executedCode!==this.value.text.trim())}_onSharedModelChanged(e,t){super._onSharedModelChanged(e,t),j((()=>{t.outputsChange&&(this.clearExecution(),e.getOutputs().forEach((e=>this._outputs.add(e)))),t.executionCountChange&&(this.executionCount=t.executionCountChange.newValue?t.executionCountChange.newValue:null)}))}_onExecutionCountChanged(e,t){const s=this.sharedModel;j((()=>{s.execution_count=t.newValue?t.newValue:null})),this.contentChanged.emit(void 0),this.stateChanged.emit({name:"executionCount",oldValue:t.oldValue,newValue:t.newValue}),t.newValue&&this.isDirty&&this._setDirty(!1)}}var V;!function(e){class t{createOutputArea(e){return new D.OutputAreaModel(e)}}e.ContentFactory=t,e.defaultContentFactory=new t}(W||(W={})),function(e){e.collapseChanged=function(e,t){if("collapsed"===t.key){const s=e.get("jupyter")||{},{outputs_hidden:a}=s,n=function(e,t){var s={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(s[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(a=Object.getOwnPropertySymbols(e);nthis.handleClick(e),key:"content"},p.createElement(R.ellipsesIcon.react,{className:"jp-MoreHorizIcon",elementPosition:"center",height:"auto",width:"32px"}))]}}class T extends L{constructor(e){super(e),this.addClass("jp-OutputPlaceholder")}render(){return[p.createElement("div",{className:"jp-Placeholder-prompt jp-OutputPrompt",key:"output"}),p.createElement("div",{className:B,onClick:e=>this.handleClick(e),key:"content"},p.createElement(R.ellipsesIcon.react,{className:"jp-MoreHorizIcon",elementPosition:"center",height:"auto",width:"32px"}))]}}var $=s(21520),J=s(55941),z=s(20040),G=s(61313);const q="jp-mod-resizedCell";class X extends _.Widget{constructor(e){super(),this.targetNode=e,this._isActive=!1,this._isDragging=!1,this._protectedWidth=10,this.addClass("jp-CellResizeHandle")}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("dblclick",this),this.node.addEventListener("mousedown",this)}onAfterDetach(e){super.onAfterAttach(e),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("mousedown",this)}handleEvent(e){var t,s;switch(e.type){case"dblclick":null===(t=this.targetNode.parentNode)||void 0===t||t.childNodes.forEach((e=>{e.classList.remove(q)})),document.documentElement.style.setProperty("--jp-side-by-side-output-size","1fr"),this._isActive=!1;break;case"mousedown":this._isDragging=!0,this._isActive||(null===(s=this.targetNode.parentNode)||void 0===s||s.childNodes.forEach((e=>{e.classList.add(q)})),this._isActive=!0),window.addEventListener("mousemove",this),window.addEventListener("mouseup",this);break;case"mousemove":{if(!this._isActive||!this._isDragging)return;const t=this.targetNode.getBoundingClientRect(),s=(t.width-2*this._protectedWidth)/(e.clientX-t.x-this._protectedWidth)-1;document.documentElement.style.setProperty("--jp-side-by-side-output-size",`${s}fr`);break}case"mouseup":this._isDragging=!1,window.removeEventListener("mousemove",this),window.removeEventListener("mouseup",this)}}}const Y="jp-mod-dirty",K="jp-MarkdownHeadingCollapsed",Q="jp-collapseHeadingButton",Z="jp-showHiddenCellsButton",ee="jp-mod-rendered",te="jp-mod-noOutputs",se="application/x-jupyter-icontentsrich";class ae extends _.Widget{constructor(e){super(),this._displayChanged=new b.Signal(this),this._readOnly=!1,this._inputHidden=!1,this._syncCollapse=!1,this._syncEditable=!1,this._resizeDebouncer=new G.Debouncer((()=>{this._displayChanged.emit()}),0),this.addClass("jp-Cell");const t=this._model=e.model,s=this.contentFactory=e.contentFactory||ae.defaultContentFactory;this.layout=new _.PanelLayout;const a=s.createCellHeader();a.addClass("jp-Cell-header"),this.layout.addWidget(a);const n=this._inputWrapper=new _.Panel;n.addClass("jp-Cell-inputWrapper");const i=new g;i.addClass("jp-Cell-inputCollapser");const o=this._input=new x({model:t,contentFactory:s,updateOnShow:e.updateEditorOnShow,placeholder:e.placeholder});o.addClass("jp-Cell-inputArea"),n.addWidget(i),n.addWidget(o),this.layout.addWidget(n),this._inputPlaceholder=new U((()=>{this.inputHidden=!this.inputHidden}));const d=this.contentFactory.createCellFooter();d.addClass("jp-Cell-footer"),this.layout.addWidget(d),e.editorConfig&&this.editor.setOptions(Object.assign({},e.editorConfig)),t.metadata.changed.connect(this.onMetadataChanged,this)}initializeState(){return this.loadCollapseState(),this.loadEditableState(),this}get displayChanged(){return this._displayChanged}get promptNode(){return this._inputHidden?this._inputPlaceholder.node.firstElementChild:this._input.promptNode}get editorWidget(){return this._input.editorWidget}get editor(){return this._input.editor}get model(){return this._model}get inputArea(){return this._input}get readOnly(){return this._readOnly}set readOnly(e){e!==this._readOnly&&(this._readOnly=e,this.syncEditable&&this.saveEditableState(),this.update())}saveEditableState(){const{metadata:e}=this.model,t=e.get("editable");this.readOnly&&!1===t||!this.readOnly&&void 0===t||(this.readOnly?this.model.metadata.set("editable",!1):this.model.metadata.delete("editable"))}loadEditableState(){this.readOnly=!1===this.model.metadata.get("editable")}get ready(){return Promise.resolve(void 0)}setPrompt(e){this._input.setPrompt(e)}get inputHidden(){return this._inputHidden}set inputHidden(e){if(this._inputHidden===e)return;const t=this._inputWrapper.layout;e?(this._input.parent=null,t.addWidget(this._inputPlaceholder)):(this._inputPlaceholder.parent=null,t.addWidget(this._input)),this._inputHidden=e,this.syncCollapse&&this.saveCollapseState(),this.handleInputHidden(e)}saveCollapseState(){const e=Object.assign({},this.model.metadata.get("jupyter"));this.inputHidden&&!0===e.source_hidden||!this.inputHidden&&void 0===e.source_hidden||(this.inputHidden?e.source_hidden=!0:delete e.source_hidden,0===Object.keys(e).length?this.model.metadata.delete("jupyter"):this.model.metadata.set("jupyter",e))}loadCollapseState(){const e=this.model.metadata.get("jupyter")||{};this.inputHidden=!!e.source_hidden}handleInputHidden(e){}get syncCollapse(){return this._syncCollapse}set syncCollapse(e){this._syncCollapse!==e&&(this._syncCollapse=e,e&&this.loadCollapseState())}get syncEditable(){return this._syncEditable}set syncEditable(e){this._syncEditable!==e&&(this._syncEditable=e,e&&this.loadEditableState())}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,placeholder:!1})}dispose(){this.isDisposed||(this._resizeDebouncer.dispose(),this._input=null,this._model=null,this._inputWrapper=null,this._inputPlaceholder=null,super.dispose())}onAfterAttach(e){this.update()}onActivateRequest(e){this.editor.focus()}onFitRequest(e){this.editor.refresh()}onResize(e){this._resizeDebouncer.invoke()}onUpdateRequest(e){this._model&&this.editor.getOption("readOnly")!==this._readOnly&&(this.editor.setOption("readOnly",this._readOnly),this.toggleClass("jp-mod-readOnly",this._readOnly))}onMetadataChanged(e,t){switch(t.key){case"jupyter":this.syncCollapse&&this.loadCollapseState();break;case"editable":this.syncEditable&&this.loadEditableState()}}}!function(e){class t{constructor(e={}){this._editorFactory=e.editorFactory||x.defaultEditorFactory}get editorFactory(){return this._editorFactory}createCellHeader(){return new y}createCellFooter(){return new v}createInputPrompt(){return new O}createOutputPrompt(){return new D.OutputPrompt}createStdin(e){return new D.Stdin(e)}}e.ContentFactory=t,e.defaultContentFactory=new t}(ae||(ae={}));class ne extends ae{constructor(e){super(e),this._outputHidden=!1,this._syncScrolled=!1,this._savingMetadata=!1,this.addClass("jp-CodeCell");const t=this._rendermime=e.rendermime,s=this.contentFactory,a=this.model;if(!e.placeholder){const n=this._outputWrapper=new _.Panel;n.addClass("jp-Cell-outputWrapper");const i=new C;i.addClass("jp-Cell-outputCollapser");const o=this._output=new D.OutputArea({model:a.outputs,rendermime:t,contentFactory:s,maxNumberOutputs:e.maxNumberOutputs});o.addClass("jp-Cell-outputArea"),0===a.outputs.length&&this.addClass(te),o.outputLengthChanged.connect(this._outputLengthHandler,this),n.addWidget(i),n.addWidget(o),this.layout.insertWidget(2,new X(this.node)),this.layout.insertWidget(3,n),a.isDirty&&this.addClass(Y),this._outputPlaceholder=new T((()=>{this.outputHidden=!this.outputHidden}))}a.stateChanged.connect(this.onStateChanged,this)}initializeState(){return super.initializeState(),this.loadScrolledState(),this.setPrompt(`${this.model.executionCount||""}`),this}get outputArea(){return this._output}get outputHidden(){return this._outputHidden}set outputHidden(e){if(this._outputHidden===e)return;const t=this._outputWrapper.layout;e?(t.removeWidget(this._output),t.addWidget(this._outputPlaceholder),this.inputHidden&&!this._outputWrapper.isHidden&&this._outputWrapper.hide()):(this._outputWrapper.isHidden&&this._outputWrapper.show(),t.removeWidget(this._outputPlaceholder),t.addWidget(this._output)),this._outputHidden=e,this.syncCollapse&&this.saveCollapseState()}saveCollapseState(){this._savingMetadata=!0;try{super.saveCollapseState();const e=this.model.metadata,t=this.model.metadata.get("collapsed");if(this.outputHidden&&!0===t||!this.outputHidden&&void 0===t)return;this.outputHidden?e.set("collapsed",!0):e.delete("collapsed")}finally{this._savingMetadata=!1}}loadCollapseState(){super.loadCollapseState(),this.outputHidden=!!this.model.metadata.get("collapsed")}get outputsScrolled(){return this._outputsScrolled}set outputsScrolled(e){this.toggleClass("jp-mod-outputsScrolled",e),this._outputsScrolled=e,this.syncScrolled&&this.saveScrolledState()}saveScrolledState(){const{metadata:e}=this.model,t=e.get("scrolled");this.outputsScrolled&&!0===t||!this.outputsScrolled&&void 0===t||(this.outputsScrolled?e.set("scrolled",!0):e.delete("scrolled"))}loadScrolledState(){const e=this.model.metadata;"auto"===e.get("scrolled")?this.outputsScrolled=!1:this.outputsScrolled=!!e.get("scrolled")}get syncScrolled(){return this._syncScrolled}set syncScrolled(e){this._syncScrolled!==e&&(this._syncScrolled=e,e&&this.loadScrolledState())}handleInputHidden(e){!e&&this._outputWrapper.isHidden?this._outputWrapper.show():e&&!this._outputWrapper.isHidden&&this._outputHidden&&this._outputWrapper.hide()}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,rendermime:this._rendermime,placeholder:!1})}cloneOutputArea(){return new D.SimplifiedOutputArea({model:this.model.outputs,contentFactory:this.contentFactory,rendermime:this._rendermime})}dispose(){this.isDisposed||(this._output.outputLengthChanged.disconnect(this._outputLengthHandler,this),this._rendermime=null,this._output=null,this._outputWrapper=null,this._outputPlaceholder=null,super.dispose())}onStateChanged(e,t){switch(t.name){case"executionCount":this.setPrompt(`${e.executionCount||""}`);break;case"isDirty":e.isDirty?this.addClass(Y):this.removeClass(Y)}}onMetadataChanged(e,t){if(!this._savingMetadata){switch(t.key){case"scrolled":this.syncScrolled&&this.loadScrolledState();break;case"collapsed":this.syncCollapse&&this.loadCollapseState()}super.onMetadataChanged(e,t)}}_outputLengthHandler(e,t){const s=0===t;this.toggleClass(te,s)}}!function(e){e.execute=async function(e,t,s){var a;const n=e.model,i=n.value.text;if(!i.trim()||!(null===(a=t.session)||void 0===a?void 0:a.kernel))return void n.clearExecution();const o={cellId:n.id};s=Object.assign(Object.assign(Object.assign({},n.metadata.toJSON()),s),o);const{recordTiming:d}=s;let r;n.clearExecution(),e.outputHidden=!1,e.setPrompt("*"),n.trusted=!0;try{const a=D.OutputArea.execute(i,e.outputArea,t,s);if(d){const t=e=>{let t;switch(e.header.msg_type){case"status":t=`status.${e.content.execution_state}`;break;case"execute_input":t="execute_input";break;default:return!0}const s=e.header.date||(new Date).toISOString(),a=Object.assign({},n.metadata.get("execution"));return a[`iopub.${t}`]=s,n.metadata.set("execution",a),!0};e.outputArea.future.registerMessageHook(t)}else n.metadata.delete("execution");r=e.outputArea.future;const o=await a;if(n.executionCount=o.content.execution_count,d){const e=Object.assign({},n.metadata.get("execution")),t=o.metadata.started;t&&(e["shell.execute_reply.started"]=t);const s=o.header.date;e["shell.execute_reply"]=s||(new Date).toISOString(),n.metadata.set("execution",e)}return o}catch(t){throw r&&!e.isDisposed&&e.outputArea.future===r&&e.setPrompt(""),t}}}(ne||(ne={}));class ie extends ae{handleEvent(e){switch(e.type){case"paste":this._evtPaste(e);break;case"dragenter":case"dragover":e.preventDefault();break;case"drop":this._evtNativeDrop(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e)}}onAfterAttach(e){super.onAfterAttach(e);const t=this.node;t.addEventListener("lm-dragover",this),t.addEventListener("lm-drop",this),t.addEventListener("dragenter",this),t.addEventListener("dragover",this),t.addEventListener("drop",this),t.addEventListener("paste",this)}onBeforeDetach(e){const t=this.node;t.removeEventListener("drop",this),t.removeEventListener("dragover",this),t.removeEventListener("dragenter",this),t.removeEventListener("paste",this),t.removeEventListener("lm-dragover",this),t.removeEventListener("lm-drop",this)}_evtDragOver(e){(0,a.some)(z.imageRendererFactory.mimeTypes,(t=>!!e.mimeData.hasData(se)&&e.mimeData.getData(se).model.mimetype===t))&&(e.preventDefault(),e.stopPropagation(),e.dropAction=e.proposedAction)}_evtPaste(e){if(e.clipboardData){const t=e.clipboardData.items;for(let s=0;s{var t,s;null===(s=(t=this.editor).replaceSelection)||void 0===s||s.call(t,e)}))}this._attachFiles(e.clipboardData.items)}}e.preventDefault()}_evtNativeDrop(e){e.dataTransfer&&this._attachFiles(e.dataTransfer.items),e.preventDefault()}_evtDrop(e){const t=(0,a.toArray)((0,a.filter)(e.mimeData.types(),(t=>{if(t===se){const t=e.mimeData.getData(se);return-1!==z.imageRendererFactory.mimeTypes.indexOf(t.model.mimetype)}return-1!==z.imageRendererFactory.mimeTypes.indexOf(t)})));if(0!==t.length)if(e.preventDefault(),e.stopPropagation(),"none"!==e.proposedAction){e.dropAction="copy";for(const s of t)if(s===se){const{model:t,withContent:s}=e.mimeData.getData(se);if("file"===t.type){const e=this._generateURI(t.name);this.updateCellSourceWithAttachment(t.name,e),s().then((t=>{this.model.attachments.set(e,{[t.mimetype]:t.content})}))}}else{const t=this._generateURI();this.model.attachments.set(t,{[s]:e.mimeData.getData(s)}),this.updateCellSourceWithAttachment(t,t)}}else e.dropAction="none"}_attachFiles(e){for(let t=0;t{const{href:a,protocol:n}=J.URLExt.parse(t.result);if("data:"!==n)return;const i=/([\w+\/\+]+)?(?:;(charset=[\w\d-]*|base64))?,(.*)/.exec(a);if(!i||4!==i.length)return;const o=i[1],d={[o]:i[3]},r=this._generateURI(e.name);o.startsWith("image/")&&(this.model.attachments.set(r,d),this.updateCellSourceWithAttachment(e.name,r))},t.onerror=t=>{console.error(`Failed to attach ${e.name}`+t)},t.readAsDataURL(e)}_generateURI(e=""){const t=e.lastIndexOf(".");return-1!==t?S.UUID.uuid4().concat(e.substring(t)):S.UUID.uuid4()}}class oe extends ie{constructor(e){var t,s,a;super(e),this._toggleCollapsedSignal=new b.Signal(this),this._renderer=null,this._rendered=!0,this._prevText="",this._ready=new S.PromiseDelegate,this._showEditorForReadOnlyMarkdown=!0,this.addClass("jp-MarkdownCell"),this._rendermime=e.rendermime.clone({resolver:new E.AttachmentsResolver({parent:null!==(t=e.rendermime.resolver)&&void 0!==t?t:void 0,model:this.model.attachments})}),this.editor.setOption("handlePaste",!1),this._headingCollapsed=null!==(s=this.model.metadata.get(K))&&void 0!==s&&s,this._monitor=new J.ActivityMonitor({signal:this.model.contentChanged,timeout:1e3}),this._monitor.activityStopped.connect((()=>{this._rendered&&this.update()}),this),this._updateRenderedInput().then((()=>{this._ready.resolve(void 0)})),this.renderCollapseButtons(this._renderer),this.renderInput(this._renderer),this._showEditorForReadOnlyMarkdown=null!==(a=e.showEditorForReadOnlyMarkdown)&&void 0!==a?a:oe.defaultShowEditorForReadOnlyMarkdown}get ready(){return this._ready.promise}get headingInfo(){let e=this.model.value.text;const t=$.TU.lexer(e);let s;for(s of t){if("heading"===s.type)return{text:s.text,level:s.depth};if("html"===s.type){let e=s.raw.match(/(.*?)<\/h\1>/);return(null==e?void 0:e[3])?{text:e[3],level:parseInt(e[1])}:{text:"",level:-1}}}return{text:"",level:-1}}get headingCollapsed(){return this._headingCollapsed}set headingCollapsed(e){this._headingCollapsed=e,e?this.model.metadata.set(K,e):this.model.metadata.has(K)&&this.model.metadata.delete(K);const t=this.inputArea.promptNode.getElementsByClassName(Q)[0];t&&(e?t.classList.add("jp-mod-collapsed"):t.classList.remove("jp-mod-collapsed")),this.renderCollapseButtons(this._renderer)}get numberChildNodes(){return this._numberChildNodes}set numberChildNodes(e){this._numberChildNodes=e,this.renderCollapseButtons(this._renderer)}get toggleCollapsedSignal(){return this._toggleCollapsedSignal}get rendered(){return this._rendered}set rendered(e){this.readOnly&&!1===this._showEditorForReadOnlyMarkdown&&(e=!0),e!==this._rendered&&(this._rendered=e,this._handleRendered(),this._rendered||this.editor.refresh(),this._displayChanged.emit())}get showEditorForReadOnly(){return this._showEditorForReadOnlyMarkdown}set showEditorForReadOnly(e){this._showEditorForReadOnlyMarkdown=e,!1===e&&(this.rendered=!0)}dispose(){this.isDisposed||(this._monitor.dispose(),super.dispose())}maybeCreateCollapseButton(){if(this.headingInfo.level>0&&0==this.inputArea.promptNode.getElementsByClassName(Q).length){let e=this.inputArea.promptNode.appendChild(document.createElement("button"));e.className=`jp-Button ${Q}`,e.setAttribute("data-heading-level",this.headingInfo.level.toString()),this._headingCollapsed?e.classList.add("jp-mod-collapsed"):e.classList.remove("jp-mod-collapsed"),e.onclick=e=>{this.headingCollapsed=!this.headingCollapsed,this._toggleCollapsedSignal.emit(this._headingCollapsed)}}}maybeCreateOrUpdateExpandButton(){var e,t;const s=this.node.getElementsByClassName(Z);if(this.headingCollapsed&&0===s.length&&this._numberChildNodes>0){const e=document.createElement("button");e.className=`bp3-button bp3-minimal jp-Button ${Z}`,R.addIcon.render(e);const t=document.createElement("div");t.nodeValue=`${this._numberChildNodes} cell${this._numberChildNodes>1?"s":""} hidden`,e.appendChild(t),e.onclick=()=>{this.headingCollapsed=!1,this._toggleCollapsedSignal.emit(this._headingCollapsed)},this.node.appendChild(e)}else if((null===(t=null===(e=null==s?void 0:s[0])||void 0===e?void 0:e.childNodes)||void 0===t?void 0:t.length)>1)if(this._headingCollapsed)s[0].childNodes[1].textContent=`${this._numberChildNodes} cell${this._numberChildNodes>1?"s":""} hidden`;else for(const e of s)this.node.removeChild(e)}renderCollapseButtons(e){this.node.classList.toggle(K,this._headingCollapsed),this.maybeCreateCollapseButton(),this.maybeCreateOrUpdateExpandButton()}renderInput(e){this.addClass(ee),this.renderCollapseButtons(e),this.inputArea.renderInput(e)}showEditor(){this.removeClass(ee),this.inputArea.showEditor()}onUpdateRequest(e){this._handleRendered(),super.onUpdateRequest(e)}updateCellSourceWithAttachment(e,t){var s,a;const n=`![${e}](attachment:${null!=t?t:e})`;null===(a=(s=this.editor).replaceSelection)||void 0===a||a.call(s,n)}_handleRendered(){this._rendered?(this._updateRenderedInput(),this.renderInput(this._renderer)):this.showEditor()}_updateRenderedInput(){const e=this.model,t=e&&e.value.text||"Type Markdown and LaTeX: $ α^2 $";if(t!==this._prevText){const e=new z.MimeModel({data:{"text/markdown":t}});return this._renderer||(this._renderer=this._rendermime.createRenderer("text/markdown"),this._renderer.addClass("jp-MarkdownOutput")),this._prevText=t,this._renderer.renderModel(e)}return Promise.resolve(void 0)}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,rendermime:this._rendermime,placeholder:!1})}}!function(e){e.defaultShowEditorForReadOnlyMarkdown=!0}(oe||(oe={}));class de extends ae{constructor(e){super(e),this.addClass("jp-RawCell")}clone(){return new(0,this.constructor)({model:this.model,contentFactory:this.contentFactory,placeholder:!1})}}}}]); +//# sourceMappingURL=5193.e9f6866.js.map \ No newline at end of file diff --git a/_static/build/5193.e9f6866.js.map b/_static/build/5193.e9f6866.js.map new file mode 100644 index 0000000..a0691a8 --- /dev/null +++ b/_static/build/5193.e9f6866.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5193.e9f6866.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/celldragutils.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/collapser.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/headerfooter.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/inputarea.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/model.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/placeholder.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/resizeHandle.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5213.3e1a360.js b/_static/build/5213.3e1a360.js new file mode 100644 index 0000000..9db9a7c --- /dev/null +++ b/_static/build/5213.3e1a360.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5213],{50725:(r,a,c)=>{c.d(a,{Z:()=>A});var n=c(34663),o=c.n(n),e=c(7638),t=c.n(e)()(o());t.push([r.id,"/* Based on https://github.com/dempfi/ayu */\n\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\n\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \n\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ayu-dark.css"],names:[],mappings:"AAAA,2CAA2C;;AAE3C,4BAA4B,mBAAmB,EAAE,cAAc,EAAE;AACjE,yCAAyC,mBAAmB,EAAE;AAC9D,0JAA0J,gCAAgC,EAAE;AAC5L,yKAAyK,gCAAgC,EAAE;AAC3M,qCAAqC,mBAAmB,EAAE,iBAAiB,EAAE;AAC7E,0CAA0C,YAAY,EAAE;AACxD,iDAAiD,cAAc,EAAE;AACjE,wCAAwC,cAAc,EAAE;AACxD,oCAAoC,8BAA8B,EAAE;;AAEpE,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;;AAEhD,8CAA8C,cAAc,EAAE;AAC9D,wCAAwC,6BAA6B,EAAE;AACvE,wCAAwC,cAAc,EAAE;AACxD,yCAAyC,cAAc,EAAE;;AAEzD,oEAAoE,cAAc,EAAE;AACpF,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,gCAAgC,cAAc,EAAE;;AAEhD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,oCAAoC,cAAc,EAAE;AACpD,8BAA8B,cAAc,EAAE;AAC9C,6BAA6B,cAAc,EAAE;AAC7C,iCAAiC,cAAc,EAAE;AACjD,6BAA6B,6BAA6B,EAAE;AAC5D,gCAAgC,cAAc,EAAE;AAChD,8BAA8B,cAAc,EAAE;AAC9C,+BAA+B,cAAc,EAAE;;AAE/C,mDAAmD,mBAAmB,EAAE;AACxE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB",sourcesContent:["/* Based on https://github.com/dempfi/ayu */\n\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\n\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\n\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\n\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \n\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}\n"],sourceRoot:""}]);const A=t},7638:r=>{r.exports=function(r){var a=[];return a.toString=function(){return this.map((function(a){var c="",n=void 0!==a[5];return a[4]&&(c+="@supports (".concat(a[4],") {")),a[2]&&(c+="@media ".concat(a[2]," {")),n&&(c+="@layer".concat(a[5].length>0?" ".concat(a[5]):""," {")),c+=r(a),n&&(c+="}"),a[2]&&(c+="}"),a[4]&&(c+="}"),c})).join("")},a.i=function(r,c,n,o,e){"string"==typeof r&&(r=[[null,r,void 0]]);var t={};if(n)for(var A=0;A0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=e),c&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=c):d[2]=c),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),a.push(d))}},a}},34663:r=>{r.exports=function(r){var a=r[1],c=r[3];if(!c)return a;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(c)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),e="/*# ".concat(o," */"),t=c.sources.map((function(r){return"/*# sourceURL=".concat(c.sourceRoot||"").concat(r," */")}));return[a].concat(t).concat([e]).join("\n")}return[a].join("\n")}},5213:(r,a,c)=>{c.r(a),c.d(a,{default:()=>f});var n=c(1892),o=c.n(n),e=c(95760),t=c.n(e),A=c(38311),s=c.n(A),i=c(58192),d=c.n(i),m=c(38060),u=c.n(m),l=c(54865),p=c.n(l),C=c(50725),y={};y.styleTagTransform=p(),y.setAttributes=d(),y.insert=s().bind(null,"head"),y.domAPI=t(),y.insertStyleElement=u(),o()(C.Z,y);const f=C.Z&&C.Z.locals?C.Z.locals:void 0},1892:r=>{var a=[];function c(r){for(var c=-1,n=0;n{var a={};r.exports=function(r,c){var n=function(r){if(void 0===a[r]){var c=document.querySelector(r);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(r){c=null}a[r]=c}return a[r]}(r);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(c)}},38060:r=>{r.exports=function(r){var a=document.createElement("style");return r.setAttributes(a,r.attributes),r.insert(a,r.options),a}},58192:(r,a,c)=>{r.exports=function(r){var a=c.nc;a&&r.setAttribute("nonce",a)}},95760:r=>{r.exports=function(r){var a=r.insertStyleElement(r);return{update:function(c){!function(r,a,c){var n="";c.supports&&(n+="@supports (".concat(c.supports,") {")),c.media&&(n+="@media ".concat(c.media," {"));var o=void 0!==c.layer;o&&(n+="@layer".concat(c.layer.length>0?" ".concat(c.layer):""," {")),n+=c.css,o&&(n+="}"),c.media&&(n+="}"),c.supports&&(n+="}");var e=c.sourceMap;e&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(e))))," */")),a.styleTagTransform(n,r,a.options)}(a,r,c)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(a)}}}},54865:r=>{r.exports=function(r,a){if(a.styleSheet)a.styleSheet.cssText=r;else{for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=5213.3e1a360.js.map \ No newline at end of file diff --git a/_static/build/5213.3e1a360.js.map b/_static/build/5213.3e1a360.js.map new file mode 100644 index 0000000..bce1693 --- /dev/null +++ b/_static/build/5213.3e1a360.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5213.3e1a360.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ayu-dark.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ayu-dark.css?3404","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Based on https://github.com/dempfi/ayu */\\n\\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \\n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \\n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\\n\\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \\n\\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ayu-dark.css\"],\"names\":[],\"mappings\":\"AAAA,2CAA2C;;AAE3C,4BAA4B,mBAAmB,EAAE,cAAc,EAAE;AACjE,yCAAyC,mBAAmB,EAAE;AAC9D,0JAA0J,gCAAgC,EAAE;AAC5L,yKAAyK,gCAAgC,EAAE;AAC3M,qCAAqC,mBAAmB,EAAE,iBAAiB,EAAE;AAC7E,0CAA0C,YAAY,EAAE;AACxD,iDAAiD,cAAc,EAAE;AACjE,wCAAwC,cAAc,EAAE;AACxD,oCAAoC,8BAA8B,EAAE;;AAEpE,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;;AAEhD,8CAA8C,cAAc,EAAE;AAC9D,wCAAwC,6BAA6B,EAAE;AACvE,wCAAwC,cAAc,EAAE;AACxD,yCAAyC,cAAc,EAAE;;AAEzD,oEAAoE,cAAc,EAAE;AACpF,iCAAiC,cAAc,EAAE;AACjD,iCAAiC,cAAc,EAAE;AACjD,gCAAgC,cAAc,EAAE;;AAEhD,kCAAkC,cAAc,EAAE;AAClD,oCAAoC,cAAc,EAAE;AACpD,oCAAoC,cAAc,EAAE;AACpD,8BAA8B,cAAc,EAAE;AAC9C,6BAA6B,cAAc,EAAE;AAC7C,iCAAiC,cAAc,EAAE;AACjD,6BAA6B,6BAA6B,EAAE;AAC5D,gCAAgC,cAAc,EAAE;AAChD,8BAA8B,cAAc,EAAE;AAC9C,+BAA+B,cAAc,EAAE;;AAE/C,mDAAmD,mBAAmB,EAAE;AACxE;EACE,0BAA0B;EAC1B,uBAAuB;AACzB\",\"sourcesContent\":[\"/* Based on https://github.com/dempfi/ayu */\\n\\n.cm-s-ayu-dark.CodeMirror { background: #0a0e14; color: #b3b1ad; }\\n.cm-s-ayu-dark div.CodeMirror-selected { background: #273747; }\\n.cm-s-ayu-dark .CodeMirror-line::selection, .cm-s-ayu-dark .CodeMirror-line > span::selection, .cm-s-ayu-dark .CodeMirror-line > span > span::selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-line::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span::-moz-selection, .cm-s-ayu-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 55, 71, 99); }\\n.cm-s-ayu-dark .CodeMirror-gutters { background: #0a0e14; border-right: 0px; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker { color: white; }\\n.cm-s-ayu-dark .CodeMirror-guttermarker-subtle { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-linenumber { color: #3d424d; }\\n.cm-s-ayu-dark .CodeMirror-cursor { border-left: 1px solid #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment { color: #626a73; }\\n.cm-s-ayu-dark span.cm-atom { color: #ae81ff; }\\n.cm-s-ayu-dark span.cm-number { color: #e6b450; }\\n\\n.cm-s-ayu-dark span.cm-comment.cm-attribute { color: #ffb454; }\\n.cm-s-ayu-dark span.cm-comment.cm-def { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-comment.cm-tag { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-comment.cm-type { color: #5998a6; }\\n\\n.cm-s-ayu-dark span.cm-property, .cm-s-ayu-dark span.cm-attribute { color: #ffb454; } \\n.cm-s-ayu-dark span.cm-keyword { color: #ff8f40; } \\n.cm-s-ayu-dark span.cm-builtin { color: #e6b450; }\\n.cm-s-ayu-dark span.cm-string { color: #c2d94c; }\\n\\n.cm-s-ayu-dark span.cm-variable { color: #b3b1ad; }\\n.cm-s-ayu-dark span.cm-variable-2 { color: #f07178; }\\n.cm-s-ayu-dark span.cm-variable-3 { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-type { color: #ff8f40; }\\n.cm-s-ayu-dark span.cm-def { color: #ffee99; }\\n.cm-s-ayu-dark span.cm-bracket { color: #f8f8f2; }\\n.cm-s-ayu-dark span.cm-tag { color: rgba(57, 186, 230, 80); }\\n.cm-s-ayu-dark span.cm-header { color: #c2d94c; }\\n.cm-s-ayu-dark span.cm-link { color: #39bae6; }\\n.cm-s-ayu-dark span.cm-error { color: #ff3333; } \\n\\n.cm-s-ayu-dark .CodeMirror-activeline-background { background: #01060e; }\\n.cm-s-ayu-dark .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ayu-dark.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ayu-dark.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5227.8c8acd8.js b/_static/build/5227.8c8acd8.js new file mode 100644 index 0000000..f36f6ca --- /dev/null +++ b/_static/build/5227.8c8acd8.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5227],{11213:(o,c,r)=>{r.d(c,{Z:()=>s});var e=r(34663),n=r.n(e),t=r(7638),a=r.n(t)()(n());a.push([o.id,".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-cobalt span.cm-comment { color: #08f; }\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\n.cm-s-cobalt span.cm-string { color: #3ad900; }\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\n.cm-s-cobalt span.cm-link { color: #845dc4; }\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\n\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/cobalt.css"],names:[],mappings:"AAAA,0BAA0B,mBAAmB,EAAE,YAAY,EAAE;AAC7D,uCAAuC,mBAAmB,EAAE;AAC5D,oJAAoJ,mCAAmC,EAAE;AACzL,mKAAmK,mCAAmC,EAAE;AACxM,mCAAmC,mBAAmB,EAAE,4BAA4B,EAAE;AACtF,wCAAwC,cAAc,EAAE;AACxD,+CAA+C,cAAc,EAAE;AAC/D,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,4BAA4B,EAAE;;AAEhE,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,cAAc,EAAE;AAC5C,8DAA8D,cAAc,EAAE;AAC9E,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,4BAA4B,cAAc,EAAE;AAC5C,4DAA4D,cAAc,EAAE;AAC5E,mFAAmF,YAAY,EAAE;AACjG,+BAA+B,cAAc,EAAE;AAC/C,6DAA6D,cAAc,EAAE;AAC7E,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,cAAc,EAAE;;AAE7C,iDAAiD,mBAAmB,EAAE;AACtE,2CAA2C,sBAAsB,CAAC,sBAAsB,EAAE",sourcesContent:[".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\n\n.cm-s-cobalt span.cm-comment { color: #08f; }\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\n.cm-s-cobalt span.cm-string { color: #3ad900; }\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\n.cm-s-cobalt span.cm-link { color: #845dc4; }\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\n\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n"],sourceRoot:""}]);const s=a},7638:o=>{o.exports=function(o){var c=[];return c.toString=function(){return this.map((function(c){var r="",e=void 0!==c[5];return c[4]&&(r+="@supports (".concat(c[4],") {")),c[2]&&(r+="@media ".concat(c[2]," {")),e&&(r+="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {")),r+=o(c),e&&(r+="}"),c[2]&&(r+="}"),c[4]&&(r+="}"),r})).join("")},c.i=function(o,r,e,n,t){"string"==typeof o&&(o=[[null,o,void 0]]);var a={};if(e)for(var s=0;s0?" ".concat(A[5]):""," {").concat(A[1],"}")),A[5]=t),r&&(A[2]?(A[1]="@media ".concat(A[2]," {").concat(A[1],"}"),A[2]=r):A[2]=r),n&&(A[4]?(A[1]="@supports (".concat(A[4],") {").concat(A[1],"}"),A[4]=n):A[4]="".concat(n)),c.push(A))}},c}},34663:o=>{o.exports=function(o){var c=o[1],r=o[3];if(!r)return c;if("function"==typeof btoa){var e=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),n="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(e),t="/*# ".concat(n," */"),a=r.sources.map((function(o){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(o," */")}));return[c].concat(a).concat([t]).join("\n")}return[c].join("\n")}},15227:(o,c,r)=>{r.r(c),r.d(c,{default:()=>C});var e=r(1892),n=r.n(e),t=r(95760),a=r.n(t),s=r(38311),l=r.n(s),i=r(58192),A=r.n(i),m=r(38060),d=r.n(m),u=r(54865),p=r.n(u),b=r(11213),f={};f.styleTagTransform=p(),f.setAttributes=A(),f.insert=l().bind(null,"head"),f.domAPI=a(),f.insertStyleElement=d(),n()(b.Z,f);const C=b.Z&&b.Z.locals?b.Z.locals:void 0},1892:o=>{var c=[];function r(o){for(var r=-1,e=0;e{var c={};o.exports=function(o,r){var e=function(o){if(void 0===c[o]){var r=document.querySelector(o);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(o){r=null}c[o]=r}return c[o]}(o);if(!e)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");e.appendChild(r)}},38060:o=>{o.exports=function(o){var c=document.createElement("style");return o.setAttributes(c,o.attributes),o.insert(c,o.options),c}},58192:(o,c,r)=>{o.exports=function(o){var c=r.nc;c&&o.setAttribute("nonce",c)}},95760:o=>{o.exports=function(o){var c=o.insertStyleElement(o);return{update:function(r){!function(o,c,r){var e="";r.supports&&(e+="@supports (".concat(r.supports,") {")),r.media&&(e+="@media ".concat(r.media," {"));var n=void 0!==r.layer;n&&(e+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),e+=r.css,n&&(e+="}"),r.media&&(e+="}"),r.supports&&(e+="}");var t=r.sourceMap;t&&"undefined"!=typeof btoa&&(e+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(t))))," */")),c.styleTagTransform(e,o,c.options)}(c,o,r)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(c)}}}},54865:o=>{o.exports=function(o,c){if(c.styleSheet)c.styleSheet.cssText=o;else{for(;c.firstChild;)c.removeChild(c.firstChild);c.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=5227.8c8acd8.js.map \ No newline at end of file diff --git a/_static/build/5227.8c8acd8.js.map b/_static/build/5227.8c8acd8.js.map new file mode 100644 index 0000000..f5e8cd8 --- /dev/null +++ b/_static/build/5227.8c8acd8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5227.8c8acd8.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/cobalt.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/cobalt.css?9fe1","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\\n\\n.cm-s-cobalt span.cm-comment { color: #08f; }\\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\\n.cm-s-cobalt span.cm-string { color: #3ad900; }\\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\\n.cm-s-cobalt span.cm-link { color: #845dc4; }\\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\\n\\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/cobalt.css\"],\"names\":[],\"mappings\":\"AAAA,0BAA0B,mBAAmB,EAAE,YAAY,EAAE;AAC7D,uCAAuC,mBAAmB,EAAE;AAC5D,oJAAoJ,mCAAmC,EAAE;AACzL,mKAAmK,mCAAmC,EAAE;AACxM,mCAAmC,mBAAmB,EAAE,4BAA4B,EAAE;AACtF,wCAAwC,cAAc,EAAE;AACxD,+CAA+C,cAAc,EAAE;AAC/D,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,4BAA4B,EAAE;;AAEhE,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,cAAc,EAAE;AAC5C,8DAA8D,cAAc,EAAE;AAC9E,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,4BAA4B,cAAc,EAAE;AAC5C,4DAA4D,cAAc,EAAE;AAC5E,mFAAmF,YAAY,EAAE;AACjG,+BAA+B,cAAc,EAAE;AAC/C,6DAA6D,cAAc,EAAE;AAC7E,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,cAAc,EAAE;;AAE7C,iDAAiD,mBAAmB,EAAE;AACtE,2CAA2C,sBAAsB,CAAC,sBAAsB,EAAE\",\"sourcesContent\":[\".cm-s-cobalt.CodeMirror { background: #002240; color: white; }\\n.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }\\n.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }\\n.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }\\n.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }\\n.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }\\n.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }\\n\\n.cm-s-cobalt span.cm-comment { color: #08f; }\\n.cm-s-cobalt span.cm-atom { color: #845dc4; }\\n.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; }\\n.cm-s-cobalt span.cm-keyword { color: #ffee80; }\\n.cm-s-cobalt span.cm-string { color: #3ad900; }\\n.cm-s-cobalt span.cm-meta { color: #ff9d00; }\\n.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }\\n.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def, .cm-s-cobalt .cm-type { color: white; }\\n.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }\\n.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }\\n.cm-s-cobalt span.cm-link { color: #845dc4; }\\n.cm-s-cobalt span.cm-error { color: #9d1e15; }\\n\\n.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }\\n.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./cobalt.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./cobalt.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5238.02db84e.js b/_static/build/5238.02db84e.js new file mode 100644 index 0000000..43a072e --- /dev/null +++ b/_static/build/5238.02db84e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5238],{12563:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n","",{version:3,sources:["webpack://./../packages/application-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n"],sourceRoot:""}]);const a=r},59988:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-IFrameContainer iframe,\n.jp-IFrameContainer body {\n margin: 0;\n padding: 0;\n overflow: hidden;\n border: none;\n}\n","",{version:3,sources:["webpack://./../packages/iframe-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E;;AAE9E;;EAEE,SAAS;EACT,UAAU;EACV,gBAAgB;EAChB,YAAY;AACd",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n.jp-IFrameContainer iframe,\n.jp-IFrameContainer body {\n margin: 0;\n padding: 0;\n overflow: hidden;\n border: none;\n}\n"],sourceRoot:""}]);const a=r},228:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n","",{version:3,sources:["webpack://./../packages/retro-application-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n"],sourceRoot:""}]);const a=r},94298:(e,t,n)=>{n.d(t,{Z:()=>a});var i=n(34663),o=n.n(i),s=n(7638),r=n.n(s)()(o());r.push([e.id,"/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n","",{version:3,sources:["webpack://./../packages/server-extension/style/base.css"],names:[],mappings:"AAAA;;;8EAG8E",sourcesContent:["/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n"],sourceRoot:""}]);const a=r},77600:(e,t,n)=>{n.r(t),n.d(t,{main:()=>A});var i=n(69471),o=n(55941);n(4436);const s=[n.e(4740).then(n.t.bind(n,64740,23))],r=[n.e(4202).then(n.t.bind(n,94202,23)),n.e(3946).then(n.t.bind(n,23946,23)),n.e(9265).then(n.t.bind(n,29265,23)),n.e(126).then(n.t.bind(n,30126,23))];async function a(e,t){try{return(await window._JUPYTERLAB[e].get(t))()}catch(n){throw console.warn(`Failed to create module: package: ${e}; module: ${t}`),n}}async function A(){const e=await Promise.all(r);let t=[n(54809),n(69081),n(88394).default.filter((({id:e})=>!["@retrolab/application-extension:logo","@retrolab/application-extension:opener"].includes(e))),n(31161),n(61474),n(29507).default.filter((({id:e})=>["@jupyterlab/application-extension:commands","@jupyterlab/application-extension:context-menu","@jupyterlab/application-extension:faviconbusy"].includes(e))),n(10310).default.filter((({id:e})=>["@jupyterlab/apputils-extension:palette","@jupyterlab/apputils-extension:settings","@jupyterlab/apputils-extension:state","@jupyterlab/apputils-extension:themes","@jupyterlab/apputils-extension:themes-palette-menu","@jupyterlab/apputils-extension:toolbar-registry"].includes(e))),n(15802).default.filter((({id:e})=>["@jupyterlab/codemirror-extension:services","@jupyterlab/codemirror-extension:codemirror"].includes(e))),n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:manager"].includes(e))),n(78042),n(22437).default.filter((({id:e})=>["@jupyterlab/docmanager-extension:plugin","@jupyterlab/docmanager-extension:manager"].includes(e))),n(64948).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:factory"].includes(e))),n(46813),n(53516),n(62570).default.filter((({id:e})=>["@jupyterlab/notebook-extension:factory","@jupyterlab/notebook-extension:tracker","@jupyterlab/notebook-extension:widget-factory"].includes(e))),n(99256),n(89985),n(78036),n(85687),n(73624)];switch(o.PageConfig.getOption("retroPage")){case"tree":t=t.concat([n(64948).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:browser","@jupyterlab/filebrowser-extension:file-upload-status","@jupyterlab/filebrowser-extension:open-with"].includes(e))),n(24918).default.filter((({id:e})=>"@retrolab/tree-extension:new-terminal"!==e))]);break;case"notebooks":t=t.concat([n(48218),n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:notebooks"].includes(e))),n(66325).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:notebooks"].includes(e)))]);break;case"consoles":t=t.concat([n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:consoles"].includes(e))),n(66325).default.filter((({id:e})=>["@jupyterlab/tooltip-extension:manager","@jupyterlab/tooltip-extension:consoles"].includes(e)))]);break;case"edit":t=t.concat([n(65540).default.filter((({id:e})=>["@jupyterlab/completer-extension:files"].includes(e))),n(19656).default.filter((({id:e})=>["@jupyterlab/fileeditor-extension:plugin"].includes(e))),n(64948).default.filter((({id:e})=>["@jupyterlab/filebrowser-extension:browser"].includes(e)))])}const A=[],l=[],d=[],c=[],p=[],u=[],f=JSON.parse(o.PageConfig.getOption("federated_extensions")),m=new Set;function*g(e){let t;t=e.hasOwnProperty("__esModule")?e.default:e;let n=Array.isArray(t)?t:[t];for(let e of n)o.PageConfig.Extension.isDisabled(e.id)||(yield e)}f.forEach((e=>{e.liteExtension?u.push(a(e.name,e.extension)):(e.extension&&(m.add(e.name),l.push(a(e.name,e.extension))),e.mimeExtension&&(m.add(e.name),d.push(a(e.name,e.mimeExtension))),e.style&&c.push(a(e.name,e.style)))})),(await Promise.all(t)).forEach((e=>{for(let t of g(e))A.push(t)})),(await Promise.allSettled(d)).forEach((t=>{if("fulfilled"===t.status)for(let n of g(t.value))e.push(n);else console.error(t.reason)})),(await Promise.allSettled(l)).forEach((e=>{if("fulfilled"===e.status)for(let t of g(e.value))A.push(t);else console.error(e.reason)})),(await Promise.all(s)).forEach((e=>{for(let t of g(e))p.push(t)})),(await Promise.allSettled(u)).forEach((e=>{if("fulfilled"===e.status)for(let t of g(e.value))p.push(t);else console.error(e.reason)}));const b=new i.JupyterLiteServer({});b.registerPluginModules(p),await b.start();const{serviceManager:y}=b,{RetroApp:h}=n(95191),w=new h({serviceManager:y,mimeExtensions:e});w.name=o.PageConfig.getOption("appName")||"RetroLite",w.registerPluginModules(A),"true"===(o.PageConfig.getOption("exposeAppInBrowser")||"").toLowerCase()&&(window.jupyterapp=w),await w.start(),await w.restored}},4436:(e,t,n)=>{n.r(t),n(49336),n(51642),n(91778),n(40705),n(63505),n(44697),n(9123),n(45010),n(38786),n(47867),n(76294),n(70453),n(53974),n(10389),n(84396),n(88005),n(38016),n(83608),n(91487),n(74101);var i=n(1892),o=n.n(i),s=n(95760),r=n.n(s),a=n(38311),A=n.n(a),l=n(58192),d=n.n(l),c=n(38060),p=n.n(c),u=n(54865),f=n.n(u),m=n(12563),g={};g.styleTagTransform=f(),g.setAttributes=d(),g.insert=A().bind(null,"head"),g.domAPI=r(),g.insertStyleElement=p(),o()(m.Z,g),m.Z&&m.Z.locals&&m.Z.locals,n(47317);var b=n(59988),y={};y.styleTagTransform=f(),y.setAttributes=d(),y.insert=A().bind(null,"head"),y.domAPI=r(),y.insertStyleElement=p(),o()(b.Z,y),b.Z&&b.Z.locals&&b.Z.locals;var h=n(228),w={};w.styleTagTransform=f(),w.setAttributes=d(),w.insert=A().bind(null,"head"),w.domAPI=r(),w.insertStyleElement=p(),o()(h.Z,w),h.Z&&h.Z.locals&&h.Z.locals;var x=n(94298),v={};v.styleTagTransform=f(),v.setAttributes=d(),v.insert=A().bind(null,"head"),v.domAPI=r(),v.insertStyleElement=p(),o()(x.Z,v),x.Z&&x.Z.locals&&x.Z.locals,n(72073),n(96587),n(90381),n(28586),n(40250)},7413:e=>{e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII="},6196:e=>{e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII="},65767:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cg fill=%27%235C7080%27%3e%3ccircle cx=%272%27 cy=%278.03%27 r=%272%27/%3e%3ccircle cx=%2714%27 cy=%278.03%27 r=%272%27/%3e%3ccircle cx=%278%27 cy=%278.03%27 r=%272%27/%3e%3c/g%3e%3c/svg%3e"},91116:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z%27 fill=%27%235C7080%27/%3e%3c/svg%3e"},83678:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z%27 fill=%27white%27/%3e%3c/svg%3e"},79080:e=>{e.exports="data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z%27 fill=%27white%27/%3e%3c/svg%3e"}}]); +//# sourceMappingURL=5238.02db84e.js.map \ No newline at end of file diff --git a/_static/build/5238.02db84e.js.map b/_static/build/5238.02db84e.js.map new file mode 100644 index 0000000..98b410c --- /dev/null +++ b/_static/build/5238.02db84e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5238.02db84e.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/iframe-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/retro-application-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server-extension/style/base.css","webpack://_JUPYTERLAB.CORE_OUTPUT/./retro/build/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/application-extension/style/base.css?cd6d","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/iframe-extension/style/base.css?2b6b","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/retro-application-extension/style/base.css?bd44","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/server-extension/style/base.css?6b81"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/application-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n.jp-IFrameContainer iframe,\\n.jp-IFrameContainer body {\\n margin: 0;\\n padding: 0;\\n overflow: hidden;\\n border: none;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/iframe-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E;;AAE9E;;EAEE,SAAS;EACT,UAAU;EACV,gBAAgB;EAChB,YAAY;AACd\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\\n.jp-IFrameContainer iframe,\\n.jp-IFrameContainer body {\\n margin: 0;\\n padding: 0;\\n overflow: hidden;\\n border: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/retro-application-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../packages/server-extension/style/base.css\"],\"names\":[],\"mappings\":\"AAAA;;;8EAG8E\",\"sourcesContent\":[\"/*-----------------------------------------------------------------------------\\n| Copyright (c) Jupyter Development Team.\\n| Distributed under the terms of the Modified BSD License.\\n|----------------------------------------------------------------------------*/\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { JupyterLiteServer } from '@jupyterlite/server';\n\n// The webpack public path needs to be set before loading the CSS assets.\nimport { PageConfig } from '@jupyterlab/coreutils';\n\nrequire('./style.js');\n\nconst serverExtensions = [\n import('@jupyterlite/server-extension')\n];\n\nconst mimeExtensionsMods = [\n import('@jupyterlite/iframe-extension'),\n import('@jupyterlab/javascript-extension'),\n import('@jupyterlab/json-extension'),\n import('@jupyterlab/vega5-extension')\n];\n\nasync function createModule(scope, module) {\n try {\n const factory = await window._JUPYTERLAB[scope].get(module);\n return factory();\n } catch (e) {\n console.warn(`Failed to create module: package: ${scope}; module: ${module}`);\n throw e;\n }\n}\n\n/**\n * The main entry point for the application.\n */\nexport async function main() {\n const mimeExtensions = await Promise.all(mimeExtensionsMods);\n\n let baseMods = [\n // @jupyterlite plugins\n require('@jupyterlite/application-extension'),\n require('@jupyterlite/retro-application-extension'),\n // @retrolab plugins\n // do not enable the document opener from RetroLab\n require('@retrolab/application-extension').default.filter(\n ({ id }) => ![\n '@retrolab/application-extension:logo',\n '@retrolab/application-extension:opener'\n ].includes(id)\n ),\n require('@retrolab/help-extension'),\n require('@retrolab/notebook-extension'),\n\n // @jupyterlab plugins\n require('@jupyterlab/application-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/application-extension:commands',\n '@jupyterlab/application-extension:context-menu',\n '@jupyterlab/application-extension:faviconbusy'\n ].includes(id)\n ),\n require('@jupyterlab/apputils-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/apputils-extension:palette',\n '@jupyterlab/apputils-extension:settings',\n '@jupyterlab/apputils-extension:state',\n '@jupyterlab/apputils-extension:themes',\n '@jupyterlab/apputils-extension:themes-palette-menu',\n '@jupyterlab/apputils-extension:toolbar-registry'\n ].includes(id)\n ),\n require('@jupyterlab/codemirror-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/codemirror-extension:services',\n '@jupyterlab/codemirror-extension:codemirror'\n ].includes(id)\n ),\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:manager'].includes(id)\n ),\n require('@jupyterlab/console-extension'),\n require('@jupyterlab/docmanager-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/docmanager-extension:plugin',\n '@jupyterlab/docmanager-extension:manager'\n ].includes(id)\n ),\n require('@jupyterlab/filebrowser-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/filebrowser-extension:factory'\n ].includes(id)\n ),\n require('@jupyterlab/mainmenu-extension'),\n require('@jupyterlab/mathjax2-extension'),\n require('@jupyterlab/notebook-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/notebook-extension:factory',\n '@jupyterlab/notebook-extension:tracker',\n '@jupyterlab/notebook-extension:widget-factory'\n ].includes(id)\n ),\n require('@jupyterlab/rendermime-extension'),\n require('@jupyterlab/shortcuts-extension'),\n require('@jupyterlab/theme-light-extension'),\n require('@jupyterlab/theme-dark-extension'),\n require('@jupyterlab/translation-extension')\n ];\n\n // The motivation here is to only load a specific set of plugins dependending on\n // the current page\n const page = PageConfig.getOption('retroPage');\n switch (page) {\n case 'tree': {\n baseMods = baseMods.concat([\n require('@jupyterlab/filebrowser-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/filebrowser-extension:browser',\n '@jupyterlab/filebrowser-extension:file-upload-status',\n '@jupyterlab/filebrowser-extension:open-with',\n ].includes(id)\n ),\n // do not enable the new terminal button from RetroLab\n require('@retrolab/tree-extension').default.filter(\n ({ id }) => id !== '@retrolab/tree-extension:new-terminal'\n )\n ]);\n break;\n }\n case 'notebooks': {\n baseMods = baseMods.concat([\n require('@jupyterlab/cell-toolbar-extension'),\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:notebooks'].includes(id)\n ),\n require('@jupyterlab/tooltip-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/tooltip-extension:manager',\n '@jupyterlab/tooltip-extension:notebooks'\n ].includes(id)\n )\n ]);\n break;\n }\n case 'consoles': {\n baseMods = baseMods.concat([\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:consoles'].includes(id)\n ),\n require('@jupyterlab/tooltip-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/tooltip-extension:manager',\n '@jupyterlab/tooltip-extension:consoles'\n ].includes(id)\n )\n ]);\n break;\n }\n case 'edit': {\n baseMods = baseMods.concat([\n require('@jupyterlab/completer-extension').default.filter(({ id }) =>\n ['@jupyterlab/completer-extension:files'].includes(id)\n ),\n require('@jupyterlab/fileeditor-extension').default.filter(({ id }) =>\n ['@jupyterlab/fileeditor-extension:plugin'].includes(id)\n ),\n require('@jupyterlab/filebrowser-extension').default.filter(({ id }) =>\n [\n '@jupyterlab/filebrowser-extension:browser'\n ].includes(id)\n ),\n ]);\n break;\n }\n }\n\n const mods = [];\n const federatedExtensionPromises = [];\n const federatedMimeExtensionPromises = [];\n const federatedStylePromises = [];\n const litePluginsToRegister = [];\n const liteExtensionPromises = [];\n\n // This is all the data needed to load and activate plugins. This should be\n // gathered by the server and put onto the initial page template.\n const extensions = JSON.parse(\n PageConfig.getOption('federated_extensions')\n );\n\n // The set of federated extension names.\n const federatedExtensionNames = new Set();\n\n extensions.forEach(data => {\n if (data.liteExtension) {\n liteExtensionPromises.push(createModule(data.name, data.extension));\n return;\n }\n if (data.extension) {\n federatedExtensionNames.add(data.name);\n federatedExtensionPromises.push(createModule(data.name, data.extension));\n }\n if (data.mimeExtension) {\n federatedExtensionNames.add(data.name);\n federatedMimeExtensionPromises.push(createModule(data.name, data.mimeExtension));\n }\n if (data.style) {\n federatedStylePromises.push(createModule(data.name, data.style));\n }\n });\n\n /**\n * Iterate over active plugins in an extension.\n */\n function* activePlugins(extension) {\n // Handle commonjs or es2015 modules\n let exports;\n if (extension.hasOwnProperty('__esModule')) {\n exports = extension.default;\n } else {\n // CommonJS exports.\n exports = extension;\n }\n\n let plugins = Array.isArray(exports) ? exports : [exports];\n for (let plugin of plugins) {\n if (PageConfig.Extension.isDisabled(plugin.id)) {\n continue;\n }\n yield plugin;\n }\n }\n\n // Add the base frontend extensions\n const baseFrontendMods = await Promise.all(baseMods);\n baseFrontendMods.forEach(p => {\n for (let plugin of activePlugins(p)) {\n mods.push(plugin);\n }\n });\n\n // Add the federated mime extensions.\n const federatedMimeExtensions = await Promise.allSettled(federatedMimeExtensionPromises);\n federatedMimeExtensions.forEach(p => {\n if (p.status === \"fulfilled\") {\n for (let plugin of activePlugins(p.value)) {\n mimeExtensions.push(plugin);\n }\n } else {\n console.error(p.reason);\n }\n });\n\n // Add the federated extensions.\n const federatedExtensions = await Promise.allSettled(federatedExtensionPromises);\n federatedExtensions.forEach(p => {\n if (p.status === \"fulfilled\") {\n for (let plugin of activePlugins(p.value)) {\n mods.push(plugin);\n }\n } else {\n console.error(p.reason);\n }\n });\n\n // Add the base serverlite extensions\n const baseServerExtensions = await Promise.all(serverExtensions);\n baseServerExtensions.forEach(p => {\n for (let plugin of activePlugins(p)) {\n litePluginsToRegister.push(plugin);\n }\n });\n\n // Add the serverlite federated extensions.\n const federatedLiteExtensions = await Promise.allSettled(liteExtensionPromises);\n federatedLiteExtensions.forEach(p => {\n if (p.status === \"fulfilled\") {\n for (let plugin of activePlugins(p.value)) {\n litePluginsToRegister.push(plugin);\n }\n } else {\n console.error(p.reason);\n }\n });\n\n // create the in-browser JupyterLite Server\n const jupyterLiteServer = new JupyterLiteServer({});\n jupyterLiteServer.registerPluginModules(litePluginsToRegister);\n // start the server\n await jupyterLiteServer.start();\n\n // retrieve the custom service manager from the server app\n const { serviceManager } = jupyterLiteServer;\n\n // create a RetroLab frontend\n const { RetroApp } = require('@retrolab/application');\n const app = new RetroApp({ serviceManager, mimeExtensions });\n\n app.name = PageConfig.getOption('appName') || 'RetroLite';\n\n app.registerPluginModules(mods);\n\n // Expose global app instance when in dev mode or when toggled explicitly.\n const exposeAppInBrowser =\n (PageConfig.getOption('exposeAppInBrowser') || '').toLowerCase() === 'true';\n\n if (exposeAppInBrowser) {\n window.jupyterapp = app;\n }\n\n await app.start();\n await app.restored;\n}\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!./base.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","serverExtensions","mimeExtensionsMods","async","createModule","scope","window","_JUPYTERLAB","get","e","console","warn","main","mimeExtensions","Promise","all","baseMods","includes","PageConfig","concat","mods","federatedExtensionPromises","federatedMimeExtensionPromises","federatedStylePromises","litePluginsToRegister","liteExtensionPromises","extensions","JSON","parse","federatedExtensionNames","Set","activePlugins","extension","exports","hasOwnProperty","default","plugins","Array","isArray","plugin","forEach","data","liteExtension","name","add","mimeExtension","style","p","allSettled","status","value","error","reason","jupyterLiteServer","JupyterLiteServer","registerPluginModules","start","serviceManager","RetroApp","app","toLowerCase","jupyterapp","restored","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/528.2262cb0.js b/_static/build/528.2262cb0.js new file mode 100644 index 0000000..3244d86 --- /dev/null +++ b/_static/build/528.2262cb0.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[528,4535],{77608:(t,e,s)=>{s.d(e,{$m:()=>l,Dp:()=>a,Z$:()=>r,kJ:()=>o,s7:()=>n});const r=t=>t[t.length-1],n=(t,e)=>{for(let s=0;s{return t.length===e.length&&(s=(t,s)=>t===e[s],t.every(s));var s},o=Array.isArray},12904:(t,e,s)=>{s.d(e,{Hi:()=>o,PP:()=>a,UV:()=>l,gB:()=>c});var r=s(77608),n=s(41042);const a=(t,e,s=0)=>{try{for(;st===e||null!=t&&null!=e&&t.constructor===e.constructor&&(t instanceof Array&&r.$m(t,e)||"object"==typeof t&&n.$m(t,e)),o=(t,e)=>{if(null==t||null==e)return((t,e)=>t===e)(t,e);if(t.constructor!==e.constructor)return!1;if(t===e)return!0;switch(t.constructor){case ArrayBuffer:t=new Uint8Array(t),e=new Uint8Array(e);case Uint8Array:if(t.byteLength!==e.byteLength)return!1;for(let s=0;se.includes(t)},31234:(t,e,s)=>{s.d(e,{JG:()=>n,UI:()=>l,Ue:()=>r,Yj:()=>o,Yu:()=>a});const r=()=>new Map,n=t=>{const e=r();return t.forEach(((t,s)=>{e.set(s,t)})),e},a=(t,e,s)=>{let r=t.get(e);return void 0===r&&t.set(e,r=s()),r},l=(t,e)=>{const s=[];for(const[r,n]of t)s.push(e(n,r));return s},o=(t,e)=>{for(const[s,r]of t)if(e(r,s))return!0;return!1}},41865:(t,e,s)=>{s.d(e,{Fp:()=>o,GR:()=>i,GW:()=>r,IH:()=>a,VV:()=>l,Wn:()=>n,sQ:()=>c});const r=Math.floor,n=(Math.ceil,Math.abs),a=(Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(t,e)=>t+e),l=(t,e)=>tt>e?t:e,c=(Number.isNaN,Math.pow),i=(Math.sign,t=>0!==t?t<0:1/t<0)},41042:(t,e,s)=>{s.d(e,{$m:()=>o,UI:()=>n,kE:()=>a,l$:()=>l}),Object.assign;const r=Object.keys,n=(t,e)=>{const s=[];for(const r in t)s.push(e(t[r],r));return s},a=t=>r(t).length,l=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o=(t,e)=>t===e||a(t)===a(e)&&((t,e)=>{for(const s in t)if(!e(t[s],s))return!1;return!0})(t,((t,s)=>(void 0!==t||l(e,s))&&e[s]===t))},32549:(t,e,s)=>{s.d(e,{y:()=>l});var r=s(31234),n=s(64064),a=s(77608);class l{constructor(){this._observers=r.Ue()}on(t,e){r.Yu(this._observers,t,n.Ue).add(e)}once(t,e){const s=(...r)=>{this.off(t,s),e(...r)};this.on(t,s)}off(t,e){const s=this._observers.get(t);void 0!==s&&(s.delete(e),0===s.size&&this._observers.delete(t))}emit(t,e){return a.Dp((this._observers.get(t)||r.Ue()).values()).forEach((t=>t(...e)))}destroy(){this._observers=r.Ue()}}},64064:(t,e,s)=>{s.d(e,{Ue:()=>r});const r=()=>new Set},70528:(t,e,s)=>{s.d(e,{Ag:()=>h,GL:()=>i,oy:()=>d,xq:()=>u});var r=s(44918),n=s(27164),a=s(9817),l=s(41865),o=s(32549),c=s(12904);s(79915);class i extends o.y{constructor(t){super(),this.doc=t,this.clientID=t.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const t=a.ZG();null!==this.getLocalState()&&15e3<=t-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const e=[];this.meta.forEach(((s,r)=>{r!==this.clientID&&3e4<=t-s.lastUpdated&&this.states.has(r)&&e.push(r)})),e.length>0&&h(this,e,"timeout")}),l.GW(3e3)),t.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(t){const e=this.clientID,s=this.meta.get(e),r=void 0===s?0:s.clock+1,n=this.states.get(e);null===t?this.states.delete(e):this.states.set(e,t),this.meta.set(e,{clock:r,lastUpdated:a.ZG()});const l=[],o=[],i=[],h=[];null===t?h.push(e):null==n?null!=t&&l.push(e):(o.push(e),c.Hi(n,t)||i.push(e)),(l.length>0||i.length>0||h.length>0)&&this.emit("change",[{added:l,updated:i,removed:h},"local"]),this.emit("update",[{added:l,updated:o,removed:h},"local"])}setLocalStateField(t,e){const s=this.getLocalState();null!==s&&this.setLocalState({...s,[t]:e})}getStates(){return this.states}}const h=(t,e,s)=>{const r=[];for(let s=0;s0&&(t.emit("change",[{added:[],updated:[],removed:r},s]),t.emit("update",[{added:[],updated:[],removed:r},s]))},u=(t,e,s=t.states)=>{const n=e.length,a=r.Mf();r.uE(a,n);for(let l=0;l{const r=n.l1(e),l=a.ZG(),o=[],i=[],h=[],u=[],d=n.yg(r);for(let e=0;e0||h.length>0||u.length>0)&&t.emit("change",[{added:o,updated:h,removed:u},s]),(o.length>0||i.length>0||u.length>0)&&t.emit("update",[{added:o,updated:i,removed:u},s])}}}]); +//# sourceMappingURL=528.2262cb0.js.map \ No newline at end of file diff --git a/_static/build/528.2262cb0.js.map b/_static/build/528.2262cb0.js.map new file mode 100644 index 0000000..29571db --- /dev/null +++ b/_static/build/528.2262cb0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"528.2262cb0.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/array.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/function.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/map.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/math.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/object.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/observable.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/set.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/y-protocols/awareness.js"],"sourcesContent":["/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {Array} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n *\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set => {\n return set.values().next().value || undefined\n}\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => {\n return new Set(entries)\n}\n","/**\n * @module awareness-protocol\n */\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as time from 'lib0/time'\nimport * as math from 'lib0/math'\nimport { Observable } from 'lib0/observable'\nimport * as f from 'lib0/function'\nimport * as Y from 'yjs' // eslint-disable-line\n\nexport const outdatedTimeout = 30000\n\n/**\n * @typedef {Object} MetaClientState\n * @property {number} MetaClientState.clock\n * @property {number} MetaClientState.lastUpdated unix timestamp\n */\n\n/**\n * The Awareness class implements a simple shared state protocol that can be used for non-persistent data like awareness information\n * (cursor, username, status, ..). Each client can update its own local state and listen to state changes of\n * remote clients. Every client may set a state of a remote peer to `null` to mark the client as offline.\n *\n * Each client is identified by a unique client id (something we borrow from `doc.clientID`). A client can override\n * its own state by propagating a message with an increasing timestamp (`clock`). If such a message is received, it is\n * applied if the known state of that client is older than the new state (`clock < newClock`). If a client thinks that\n * a remote client is offline, it may propagate a message with\n * `{ clock: currentClientClock, state: null, client: remoteClient }`. If such a\n * message is received, and the known clock of that client equals the received clock, it will override the state with `null`.\n *\n * Before a client disconnects, it should propagate a `null` state with an updated clock.\n *\n * Awareness states must be updated every 30 seconds. Otherwise the Awareness instance will delete the client state.\n *\n * @extends {Observable}\n */\nexport class Awareness extends Observable {\n /**\n * @param {Y.Doc} doc\n */\n constructor (doc) {\n super()\n this.doc = doc\n /**\n * @type {number}\n */\n this.clientID = doc.clientID\n /**\n * Maps from client id to client state\n * @type {Map>}\n */\n this.states = new Map()\n /**\n * @type {Map}\n */\n this.meta = new Map()\n this._checkInterval = /** @type {any} */ (setInterval(() => {\n const now = time.getUnixTime()\n if (this.getLocalState() !== null && (outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */ (this.meta.get(this.clientID)).lastUpdated)) {\n // renew local clock\n this.setLocalState(this.getLocalState())\n }\n /**\n * @type {Array}\n */\n const remove = []\n this.meta.forEach((meta, clientid) => {\n if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {\n remove.push(clientid)\n }\n })\n if (remove.length > 0) {\n removeAwarenessStates(this, remove, 'timeout')\n }\n }, math.floor(outdatedTimeout / 10)))\n doc.on('destroy', () => {\n this.destroy()\n })\n this.setLocalState({})\n }\n\n destroy () {\n this.emit('destroy', [this])\n this.setLocalState(null)\n super.destroy()\n clearInterval(this._checkInterval)\n }\n\n /**\n * @return {Object|null}\n */\n getLocalState () {\n return this.states.get(this.clientID) || null\n }\n\n /**\n * @param {Object|null} state\n */\n setLocalState (state) {\n const clientID = this.clientID\n const currLocalMeta = this.meta.get(clientID)\n const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1\n const prevState = this.states.get(clientID)\n if (state === null) {\n this.states.delete(clientID)\n } else {\n this.states.set(clientID, state)\n }\n this.meta.set(clientID, {\n clock,\n lastUpdated: time.getUnixTime()\n })\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n if (state === null) {\n removed.push(clientID)\n } else if (prevState == null) {\n if (state != null) {\n added.push(clientID)\n }\n } else {\n updated.push(clientID)\n if (!f.equalityDeep(prevState, state)) {\n filteredUpdated.push(clientID)\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n this.emit('change', [{ added, updated: filteredUpdated, removed }, 'local'])\n }\n this.emit('update', [{ added, updated, removed }, 'local'])\n }\n\n /**\n * @param {string} field\n * @param {any} value\n */\n setLocalStateField (field, value) {\n const state = this.getLocalState()\n if (state !== null) {\n this.setLocalState({\n ...state,\n [field]: value\n })\n }\n }\n\n /**\n * @return {Map>}\n */\n getStates () {\n return this.states\n }\n}\n\n/**\n * Mark (remote) clients as inactive and remove them from the list of active peers.\n * This change will be propagated to remote clients.\n *\n * @param {Awareness} awareness\n * @param {Array} clients\n * @param {any} origin\n */\nexport const removeAwarenessStates = (awareness, clients, origin) => {\n const removed = []\n for (let i = 0; i < clients.length; i++) {\n const clientID = clients[i]\n if (awareness.states.has(clientID)) {\n awareness.states.delete(clientID)\n if (clientID === awareness.clientID) {\n const curMeta = /** @type {MetaClientState} */ (awareness.meta.get(clientID))\n awareness.meta.set(clientID, {\n clock: curMeta.clock + 1,\n lastUpdated: time.getUnixTime()\n })\n }\n removed.push(clientID)\n }\n }\n if (removed.length > 0) {\n awareness.emit('change', [{ added: [], updated: [], removed }, origin])\n awareness.emit('update', [{ added: [], updated: [], removed }, origin])\n }\n}\n\n/**\n * @param {Awareness} awareness\n * @param {Array} clients\n * @return {Uint8Array}\n */\nexport const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {\n const len = clients.length\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = clients[i]\n const state = states.get(clientID) || null\n const clock = /** @type {MetaClientState} */ (awareness.meta.get(clientID)).clock\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(state))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * Modify the content of an awareness update before re-encoding it to an awareness update.\n *\n * This might be useful when you have a central server that wants to ensure that clients\n * cant hijack somebody elses identity.\n *\n * @param {Uint8Array} update\n * @param {function(any):any} modify\n * @return {Uint8Array}\n */\nexport const modifyAwarenessUpdate = (update, modify) => {\n const decoder = decoding.createDecoder(update)\n const encoder = encoding.createEncoder()\n const len = decoding.readVarUint(decoder)\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n const clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const modifiedState = modify(state)\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(modifiedState))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * @param {Awareness} awareness\n * @param {Uint8Array} update\n * @param {any} origin This will be added to the emitted change event\n */\nexport const applyAwarenessUpdate = (awareness, update, origin) => {\n const decoder = decoding.createDecoder(update)\n const timestamp = time.getUnixTime()\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n const len = decoding.readVarUint(decoder)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n let clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const clientMeta = awareness.meta.get(clientID)\n const prevState = awareness.states.get(clientID)\n const currClock = clientMeta === undefined ? 0 : clientMeta.clock\n if (currClock < clock || (currClock === clock && state === null && awareness.states.has(clientID))) {\n if (state === null) {\n // never let a remote client remove this local state\n if (clientID === awareness.clientID && awareness.getLocalState() != null) {\n // remote client removed the local state. Do not remote state. Broadcast a message indicating\n // that this client still exists by increasing the clock\n clock++\n } else {\n awareness.states.delete(clientID)\n }\n } else {\n awareness.states.set(clientID, state)\n }\n awareness.meta.set(clientID, {\n clock,\n lastUpdated: timestamp\n })\n if (clientMeta === undefined && state !== null) {\n added.push(clientID)\n } else if (clientMeta !== undefined && state === null) {\n removed.push(clientID)\n } else if (state !== null) {\n if (!f.equalityDeep(state, prevState)) {\n filteredUpdated.push(clientID)\n }\n updated.push(clientID)\n }\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n awareness.emit('change', [{\n added, updated: filteredUpdated, removed\n }, origin])\n }\n if (added.length > 0 || updated.length > 0 || removed.length > 0) {\n awareness.emit('update', [{\n added, updated, removed\n }, origin])\n }\n}\n"],"names":["last","arr","length","appendTo","dest","src","i","push","from","Array","equalFlat","a","b","f","item","index","every","isArray","callAll","fs","args","equalityFlat","constructor","equalityDeep","equalityStrict","ArrayBuffer","Uint8Array","byteLength","Set","size","value","has","Map","key","keys","get","Object","isOneOf","options","includes","create","copy","m","r","forEach","v","k","set","setIfUndefined","map","createT","undefined","res","any","floor","Math","abs","ceil","add","imul","round","log10","log2","log","sqrt","min","max","pow","Number","isNaN","isNegativeZero","sign","n","assign","obj","results","hasProperty","prototype","hasOwnProperty","call","val","Observable","this","_observers","on","name","once","_f","off","observers","delete","emit","values","destroy","Awareness","doc","super","clientID","states","meta","_checkInterval","setInterval","now","getLocalState","outdatedTimeout","lastUpdated","setLocalState","remove","clientid","removeAwarenessStates","clearInterval","state","currLocalMeta","clock","prevState","added","updated","filteredUpdated","removed","setLocalStateField","field","getStates","awareness","clients","origin","curMeta","encodeAwarenessUpdate","len","encoder","JSON","stringify","applyAwarenessUpdate","update","decoder","timestamp","parse","clientMeta","currClock"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5292.79d4aba.js b/_static/build/5292.79d4aba.js new file mode 100644 index 0000000..5bb15c6 --- /dev/null +++ b/_static/build/5292.79d4aba.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5292,6997],{96997:(t,e,s)=>{s.r(e),s.d(e,{AddWidget:()=>d,TagTool:()=>c,TagWidget:()=>r});var i=s(4265),a=s(59674),n=s(94519);class d extends n.Widget{constructor(t){super(),this.parent=null,this.input=document.createElement("input"),this.translator=t||i.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.addClass("tag"),this.editing=!1,this.buildTag()}buildTag(){const t=this.input||document.createElement("input");t.value=this._trans.__("Add Tag"),t.contentEditable="true",t.className="add-tag",t.style.width="49px",this.input=t;const e=document.createElement("div");e.className="tag-holder",e.appendChild(t);const s=a.addIcon.element({tag:"span",elementPosition:"center",height:"18px",width:"18px",marginLeft:"3px",marginRight:"-5px"});this.addClass("unapplied-tag"),e.appendChild(s),this.node.appendChild(e)}onAfterAttach(){this.node.addEventListener("mousedown",this),this.input.addEventListener("keydown",this),this.input.addEventListener("focus",this),this.input.addEventListener("blur",this)}onBeforeDetach(){this.node.removeEventListener("mousedown",this),this.input.removeEventListener("keydown",this),this.input.removeEventListener("focus",this),this.input.removeEventListener("blur",this)}handleEvent(t){switch(t.type){case"mousedown":this._evtMouseDown(t);break;case"keydown":this._evtKeyDown(t);break;case"blur":this._evtBlur();break;case"focus":this._evtFocus()}}_evtMouseDown(t){if(this.editing){if(t.target!==this.input&&""!==this.input.value){const t=this.input.value;this.parent.addTag(t),this.input.blur(),this._evtBlur()}}else this.editing=!0,this.input.value="",this.input.focus();t.preventDefault()}_evtFocus(){this.editing||this.input.blur()}_evtKeyDown(t){const e=document.createElement("span");if(e.className="add-tag",e.innerHTML=this.input.value,document.body.appendChild(e),this.input.style.width=e.getBoundingClientRect().width+8+"px",document.body.removeChild(e),13===t.keyCode){const t=this.input.value;this.parent.addTag(t),this.input.blur(),this._evtBlur()}}_evtBlur(){this.editing&&(this.editing=!1,this.input.value=this._trans.__("Add Tag"),this.input.style.width="49px")}}var l=s(33079),o=s(43892),h=s(70942);class r extends n.Widget{constructor(t){super(),this.parent=null,this.applied=!0,this.name=t,this.addClass("tag"),this.buildTag()}buildTag(){const t=document.createElement("span");t.textContent=this.name,t.style.textOverflow="ellipsis";const e=document.createElement("div");e.className="tag-holder",e.appendChild(t);const s=a.checkIcon.element({tag:"span",elementPosition:"center",height:"18px",width:"18px",marginLeft:"5px",marginRight:"-3px"});this.applied?this.addClass("applied-tag"):(this.addClass("unapplied-tag"),s.style.display="none"),e.appendChild(s),this.node.appendChild(e)}onAfterAttach(){this.node.addEventListener("mousedown",this),this.node.addEventListener("mouseover",this),this.node.addEventListener("mouseout",this)}onBeforeDetach(){this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mouseover",this),this.node.removeEventListener("mouseout",this)}handleEvent(t){switch(t.type){case"mousedown":this._evtClick();break;case"mouseover":this._evtMouseOver();break;case"mouseout":this._evtMouseOut()}}onUpdateRequest(){var t;(null===(t=this.parent)||void 0===t?void 0:t.checkApplied(this.name))!==this.applied&&this.toggleApplied()}toggleApplied(){var t,e;this.applied?(this.removeClass("applied-tag"),(null===(t=this.node.firstChild)||void 0===t?void 0:t.lastChild).style.display="none",this.addClass("unapplied-tag")):(this.removeClass("unapplied-tag"),(null===(e=this.node.firstChild)||void 0===e?void 0:e.lastChild).style.display="inline-block",this.addClass("applied-tag")),this.applied=!this.applied}_evtClick(){var t,e;this.applied?null===(t=this.parent)||void 0===t||t.removeTag(this.name):null===(e=this.parent)||void 0===e||e.addTag(this.name),this.toggleApplied()}_evtMouseOver(){this.node.classList.add("tag-hover")}_evtMouseOut(){this.node.classList.remove("tag-hover")}}class c extends l.NotebookTools.Tool{constructor(t,e,s){super(),this.tagList=[],this.label=!1,this.translator=s||i.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.tracker=t,this.layout=new n.PanelLayout,this.createTagInput(),this.addClass("jp-TagTool")}createTagInput(){const t=this.layout,e=new d(this.translator);e.id="add-tag",t.insertWidget(0,e)}checkApplied(t){var e;const s=null===(e=this.tracker)||void 0===e?void 0:e.activeCell;if(s){const e=s.model.metadata.get("tags");if(e)return e.includes(t)}return!1}addTag(t){var e,s;const i=null===(e=this.tracker)||void 0===e?void 0:e.activeCell;if(i){const e=[...null!==(s=i.model.metadata.get("tags"))&&void 0!==s?s:[]];let a=t.split(/[,\s]+/);a=a.filter((t=>""!==t&&!e.includes(t))),i.model.metadata.set("tags",e.concat(a)),this.refreshTags(),this.loadActiveTags()}}removeTag(t){var e,s;const i=null===(e=this.tracker)||void 0===e?void 0:e.activeCell;if(i){let e=[...null!==(s=i.model.metadata.get("tags"))&&void 0!==s?s:[]].filter((e=>e!==t));i.model.metadata.set("tags",e),0===e.length&&i.model.metadata.delete("tags"),this.refreshTags(),this.loadActiveTags()}}loadActiveTags(){const t=this.layout;for(const e of t.widgets)e.update()}pullTags(){var t,e,s;const i=null===(t=this.tracker)||void 0===t?void 0:t.currentWidget,a=null!==(s=null===(e=null==i?void 0:i.model)||void 0===e?void 0:e.cells)&&void 0!==s?s:[],n=(0,o.reduce)(a,((t,e)=>{var s;return[...t,...null!==(s=e.metadata.get("tags"))&&void 0!==s?s:[]]}),[]);this.tagList=[...new Set(n)].filter((t=>""!==t))}refreshTags(){this.pullTags();const t=this.layout,e=t.widgets.filter((t=>"add-tag"!==t.id));e.forEach((t=>{this.tagList.includes(t.name)||t.dispose()}));const s=e.map((t=>t.name));this.tagList.forEach((e=>{if(!s.includes(e)){const s=t.widgets.length-1;t.insertWidget(s,new r(e))}}))}validateTags(t,e){e=e.filter((t=>"string"==typeof t)),e=(0,o.reduce)(e,((t,e)=>[...t,...e.split(/[,\s]+/)]),[]);const s=[...new Set(e)].filter((t=>""!==t));t.model.metadata.set("tags",s),this.refreshTags(),this.loadActiveTags()}onActiveCellChanged(){this.loadActiveTags()}onAfterShow(){this.refreshTags(),this.loadActiveTags()}onAfterAttach(t){if(!this.label){const t=document.createElement("label");t.textContent=this._trans.__("Cell Tags"),t.className="tag-label",this.parent.node.insertBefore(t,this.node),this.label=!0}this.onCurrentChanged(),super.onAfterAttach(t)}onBeforeDetach(t){super.onBeforeDetach(t),h.Signal.disconnectReceiver(this)}onActiveCellMetadataChanged(){const t=this.tracker.activeCell.model.metadata.get("tags");let e=[];t&&("string"==typeof t?e.push(t):e=t),this.validateTags(this.tracker.activeCell,e)}onCurrentChanged(){h.Signal.disconnectReceiver(this),this.tracker.currentChanged.connect(this.onCurrentChanged,this),this.tracker.currentWidget&&(this.tracker.currentWidget.context.ready.then((()=>{this.refresh()})),this.tracker.currentWidget.model.cells.changed.connect(this.refresh,this),this.tracker.currentWidget.content.activeCellChanged.connect(this.refresh,this)),this.refresh()}refresh(){this.refreshTags(),this.loadActiveTags()}}}}]); +//# sourceMappingURL=5292.79d4aba.js.map \ No newline at end of file diff --git a/_static/build/5292.79d4aba.js.map b/_static/build/5292.79d4aba.js.map new file mode 100644 index 0000000..b079cd0 --- /dev/null +++ b/_static/build/5292.79d4aba.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5292.79d4aba.js","mappings":"0OAYM,MAAO,UAAkB,SAI7B,YAAY,GACV,QAkJK,YAAyB,KAExB,WAA0B,SAAS,cAAc,SAnJvD,KAAK,WAAa,GAAc,iBAChC,KAAK,OAAS,KAAK,WAAW,KAAK,cACnC,KAAK,SAAS,OACd,KAAK,SAAU,EACf,KAAK,UACP,CAKA,WACE,MAAM,EAAO,KAAK,OAAS,SAAS,cAAc,SAClD,EAAK,MAAQ,KAAK,OAAO,GAAG,WAC5B,EAAK,gBAAkB,OACvB,EAAK,UAAY,UACjB,EAAK,MAAM,MAAQ,OACnB,KAAK,MAAQ,EACb,MAAM,EAAM,SAAS,cAAc,OACnC,EAAI,UAAY,aAChB,EAAI,YAAY,GAChB,MAAM,EAAgB,kBAAgB,CACpC,IAAK,OACL,gBAAiB,SACjB,OAAQ,OACR,MAAO,OACP,WAAY,MACZ,YAAa,SAEf,KAAK,SAAS,iBACd,EAAI,YAAY,GAChB,KAAK,KAAK,YAAY,EACxB,CAKA,gBACE,KAAK,KAAK,iBAAiB,YAAa,MACxC,KAAK,MAAM,iBAAiB,UAAW,MACvC,KAAK,MAAM,iBAAiB,QAAS,MACrC,KAAK,MAAM,iBAAiB,OAAQ,KACtC,CAKA,iBACE,KAAK,KAAK,oBAAoB,YAAa,MAC3C,KAAK,MAAM,oBAAoB,UAAW,MAC1C,KAAK,MAAM,oBAAoB,QAAS,MACxC,KAAK,MAAM,oBAAoB,OAAQ,KACzC,CAYA,YAAY,GACV,OAAQ,EAAM,MACZ,IAAK,YACH,KAAK,cAAc,GACnB,MACF,IAAK,UACH,KAAK,YAAY,GACjB,MACF,IAAK,OACH,KAAK,WACL,MACF,IAAK,QACH,KAAK,YAKX,CAOQ,cAAc,GACpB,GAAK,KAAK,SAIH,GAAI,EAAM,SAAW,KAAK,OACN,KAArB,KAAK,MAAM,MAAc,CAC3B,MAAM,EAAQ,KAAK,MAAM,MACxB,KAAK,OAAmB,OAAO,GAChC,KAAK,MAAM,OACX,KAAK,U,OARP,KAAK,SAAU,EACf,KAAK,MAAM,MAAQ,GACnB,KAAK,MAAM,QASb,EAAM,gBACR,CAKQ,YACD,KAAK,SACR,KAAK,MAAM,MAEf,CAOQ,YAAY,GAClB,MAAM,EAAM,SAAS,cAAc,QAQnC,GAPA,EAAI,UAAY,UAChB,EAAI,UAAY,KAAK,MAAM,MAE3B,SAAS,KAAK,YAAY,GAC1B,KAAK,MAAM,MAAM,MAAQ,EAAI,wBAAwB,MAAQ,EAAI,KACjE,SAAS,KAAK,YAAY,GAEJ,KAAlB,EAAM,QAAgB,CACxB,MAAM,EAAQ,KAAK,MAAM,MACxB,KAAK,OAAmB,OAAO,GAChC,KAAK,MAAM,OACX,KAAK,U,CAET,CAKQ,WACF,KAAK,UACP,KAAK,SAAU,EACf,KAAK,MAAM,MAAQ,KAAK,OAAO,GAAG,WAClC,KAAK,MAAM,MAAM,MAAQ,OAE7B,E,qCC1JI,MAAO,UAAkB,SAI7B,YAAY,GACV,QAuIK,YAAyB,KAtI9B,KAAK,SAAU,EACf,KAAK,KAAO,EACZ,KAAK,SAAS,OACd,KAAK,UACP,CAKA,WACE,MAAM,EAAO,SAAS,cAAc,QACpC,EAAK,YAAc,KAAK,KACxB,EAAK,MAAM,aAAe,WAC1B,MAAM,EAAM,SAAS,cAAc,OACnC,EAAI,UAAY,aAChB,EAAI,YAAY,GAChB,MAAM,EAAgB,oBAAkB,CACtC,IAAK,OACL,gBAAiB,SACjB,OAAQ,OACR,MAAO,OACP,WAAY,MACZ,YAAa,SAEX,KAAK,QACP,KAAK,SAAS,gBAEd,KAAK,SAAS,iBACd,EAAc,MAAM,QAAU,QAEhC,EAAI,YAAY,GAChB,KAAK,KAAK,YAAY,EACxB,CAKA,gBACE,KAAK,KAAK,iBAAiB,YAAa,MACxC,KAAK,KAAK,iBAAiB,YAAa,MACxC,KAAK,KAAK,iBAAiB,WAAY,KACzC,CAKA,iBACE,KAAK,KAAK,oBAAoB,YAAa,MAC3C,KAAK,KAAK,oBAAoB,YAAa,MAC3C,KAAK,KAAK,oBAAoB,WAAY,KAC5C,CAYA,YAAY,GACV,OAAQ,EAAM,MACZ,IAAK,YACH,KAAK,YACL,MACF,IAAK,YACH,KAAK,gBACL,MACF,IAAK,WACH,KAAK,eAKX,CAKA,kB,OAC6B,QAAd,EAAG,KAAK,cAAM,eAAE,aAAa,KAAK,SAC/B,KAAK,SACnB,KAAK,eAET,CAKA,gB,QACM,KAAK,SACP,KAAK,YAAY,gBACI,QAApB,OAAK,KAAK,kBAAU,eAAE,WAA8B,MAAM,QACzD,OACF,KAAK,SAAS,mBAEd,KAAK,YAAY,kBACI,QAApB,OAAK,KAAK,kBAAU,eAAE,WAA8B,MAAM,QACzD,eACF,KAAK,SAAS,gBAEhB,KAAK,SAAW,KAAK,OACvB,CAKQ,Y,QACF,KAAK,QACI,QAAX,OAAK,cAAM,SAAE,UAAU,KAAK,MAEjB,QAAX,OAAK,cAAM,SAAE,OAAO,KAAK,MAE3B,KAAK,eACP,CAKQ,gBACL,KAAK,KAAqB,UAAU,IAAI,YAC3C,CAKQ,eACL,KAAK,KAAqB,UAAU,OAAO,YAC9C,EC7HI,MAAO,UAAgB,qBAM3B,YACE,EACA,EACA,GAEA,QA4OM,aAAoB,GACpB,YAAiB,EA3OvB,KAAK,WAAa,GAAc,iBAChC,KAAK,OAAS,KAAK,WAAW,KAAK,cACnC,KAAK,QAAU,EACf,KAAK,OAAS,IAAI,cAClB,KAAK,iBACL,KAAK,SAAS,aAChB,CAKA,iBACE,MAAM,EAAS,KAAK,OACd,EAAQ,IAAI,EAAU,KAAK,YACjC,EAAM,GAAK,UACX,EAAO,aAAa,EAAG,EACzB,CASA,aAAa,G,MACX,MAAM,EAAyB,QAAf,EAAG,KAAK,eAAO,eAAE,WACjC,GAAI,EAAY,CACd,MAAM,EAAO,EAAW,MAAM,SAAS,IAAI,QAC3C,GAAI,EACF,OAAO,EAAK,SAAS,E,CAGzB,OAAO,CACT,CAOA,OAAO,G,QACL,MAAM,EAAmB,QAAf,EAAG,KAAK,eAAO,eAAE,WAC3B,GAAI,EAAM,CACR,MAAM,EAAU,IACmC,QAA9C,EAAE,EAAK,MAAM,SAAS,IAAI,eAAoB,QAAI,IAEvD,IAAI,EAAY,EAAK,MAAM,UAC3B,EAAY,EAAU,QAAO,GAAe,KAAR,IAAe,EAAQ,SAAS,KACpE,EAAK,MAAM,SAAS,IAAI,OAAQ,EAAQ,OAAO,IAC/C,KAAK,cACL,KAAK,gB,CAET,CAOA,UAAU,G,QACR,MAAM,EAAmB,QAAf,EAAG,KAAK,eAAO,eAAE,WAC3B,GAAI,EAAM,CAIR,IAAI,EAHY,IACmC,QAA9C,EAAE,EAAK,MAAM,SAAS,IAAI,eAAoB,QAAI,IAEpC,QAAO,GAAO,IAAQ,IACzC,EAAK,MAAM,SAAS,IAAI,OAAQ,GACZ,IAAhB,EAAK,QACP,EAAK,MAAM,SAAS,OAAO,QAE7B,KAAK,cACL,KAAK,gB,CAET,CAMA,iBACE,MAAM,EAAS,KAAK,OACpB,IAAK,MAAM,KAAU,EAAO,QAC1B,EAAO,QAEX,CAMA,W,UACE,MAAM,EAAuB,QAAf,EAAG,KAAK,eAAO,eAAE,cACzB,EAA8B,QAAzB,EAAkB,QAAlB,EAAG,aAAQ,EAAR,EAAU,aAAK,eAAE,aAAK,QAAI,GAClC,GAAU,YACd,GACA,CAAC,EAAmB,K,MAElB,MAAO,IAAI,KADyC,QAA1C,EAAI,EAAK,SAAS,IAAI,eAAoB,QAAI,GAC5B,GAE9B,IAEF,KAAK,QAAU,IAAI,IAAI,IAAI,IAAU,QAAO,GAAe,KAAR,GACrD,CAMA,cACE,KAAK,WACL,MAAM,EAAS,KAAK,OACd,EAAa,EAAO,QAAQ,QAAO,GAAc,YAAT,EAAE,KAChD,EAAW,SAAQ,IACZ,KAAK,QAAQ,SAAU,EAAqB,OAC/C,EAAO,S,IAGX,MAAM,EAAiB,EAAW,KAAI,GAAM,EAAgB,OAC5D,KAAK,QAAQ,SAAQ,IACnB,IAAK,EAAe,SAAS,GAAM,CACjC,MAAM,EAAM,EAAO,QAAQ,OAAS,EACpC,EAAO,aAAa,EAAK,IAAI,EAAU,G,IAG7C,CAMA,aAAa,EAAY,GACvB,EAAO,EAAK,QAAO,GAAsB,iBAAR,IACjC,GAAO,YACL,GACA,CAAC,EAAmB,IACX,IAAI,KAAY,EAAI,MAAM,YAEnC,IAEF,MAAM,EAAY,IAAI,IAAI,IAAI,IAAO,QAAO,GAAe,KAAR,IACnD,EAAK,MAAM,SAAS,IAAI,OAAQ,GAChC,KAAK,cACL,KAAK,gBACP,CAKU,sBACR,KAAK,gBACP,CAKU,cACR,KAAK,cACL,KAAK,gBACP,CAMU,cAAc,GACtB,IAAK,KAAK,MAAO,CACf,MAAM,EAAQ,SAAS,cAAc,SACrC,EAAM,YAAc,KAAK,OAAO,GAAG,aACnC,EAAM,UAAY,YAClB,KAAK,OAAQ,KAAK,aAAa,EAAO,KAAK,MAC3C,KAAK,OAAQ,C,CAEf,KAAK,mBACL,MAAM,cAAc,EACtB,CAKU,eAAe,GACvB,MAAM,eAAe,GACrB,4BAA0B,KAC5B,CAKU,8BACR,MAAM,EAAO,KAAK,QAAQ,WAAY,MAAM,SAAS,IACnD,QAEF,IAAI,EAAoB,GACpB,IACkB,iBAAT,EACT,EAAQ,KAAK,GAEb,EAAU,GAGd,KAAK,aAAa,KAAK,QAAQ,WAAa,EAC9C,CAKU,mBACR,4BAA0B,MAC1B,KAAK,QAAQ,eAAe,QAAQ,KAAK,iBAAkB,MACvD,KAAK,QAAQ,gBACV,KAAK,QAAQ,cAAc,QAAQ,MAAM,MAAK,KACjD,KAAK,SAAS,IAEhB,KAAK,QAAQ,cAAc,MAAO,MAAM,QAAQ,QAC9C,KAAK,QACL,MAEF,KAAK,QAAQ,cAAc,QAAQ,kBAAkB,QACnD,KAAK,QACL,OAGJ,KAAK,SACP,CAKU,UACR,KAAK,cACL,KAAK,gBACP,E","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/addwidget.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tool.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5437.31236f7.js b/_static/build/5437.31236f7.js new file mode 100644 index 0000000..6c24230 --- /dev/null +++ b/_static/build/5437.31236f7.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5437],{75437:(i,t,e)=>{e.r(t),e.d(t,{VirtualDOM:()=>n,VirtualElement:()=>s,VirtualElementPass:()=>b,VirtualText:()=>a,h:()=>v,hpass:()=>l});var n,d,r=e(43892),o=function(i,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,t){i.__proto__=t}||function(i,t){for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(i[e]=t[e])},o(i,t)},a=function(i){this.type="text",this.content=i},s=function(i,t,e,n){this.type="element",this.tag=i,this.attrs=t,this.children=e,this.renderer=n},b=function(i){function t(t,e,n){return i.call(this,t,e,[],n||void 0)||this}return function(i,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function e(){this.constructor=i}o(i,t),i.prototype=null===t?Object.create(t):(e.prototype=t.prototype,new e)}(t,i),t}(s);function v(i){for(var t,e={},n=[],d=1,r=arguments.length;d3)throw new Error("hpass() should be called with 1, 2, or 3 arguments");return new b(i,t,e)}!function(i){i.a=i.bind(void 0,"a"),i.abbr=i.bind(void 0,"abbr"),i.address=i.bind(void 0,"address"),i.area=i.bind(void 0,"area"),i.article=i.bind(void 0,"article"),i.aside=i.bind(void 0,"aside"),i.audio=i.bind(void 0,"audio"),i.b=i.bind(void 0,"b"),i.bdi=i.bind(void 0,"bdi"),i.bdo=i.bind(void 0,"bdo"),i.blockquote=i.bind(void 0,"blockquote"),i.br=i.bind(void 0,"br"),i.button=i.bind(void 0,"button"),i.canvas=i.bind(void 0,"canvas"),i.caption=i.bind(void 0,"caption"),i.cite=i.bind(void 0,"cite"),i.code=i.bind(void 0,"code"),i.col=i.bind(void 0,"col"),i.colgroup=i.bind(void 0,"colgroup"),i.data=i.bind(void 0,"data"),i.datalist=i.bind(void 0,"datalist"),i.dd=i.bind(void 0,"dd"),i.del=i.bind(void 0,"del"),i.dfn=i.bind(void 0,"dfn"),i.div=i.bind(void 0,"div"),i.dl=i.bind(void 0,"dl"),i.dt=i.bind(void 0,"dt"),i.em=i.bind(void 0,"em"),i.embed=i.bind(void 0,"embed"),i.fieldset=i.bind(void 0,"fieldset"),i.figcaption=i.bind(void 0,"figcaption"),i.figure=i.bind(void 0,"figure"),i.footer=i.bind(void 0,"footer"),i.form=i.bind(void 0,"form"),i.h1=i.bind(void 0,"h1"),i.h2=i.bind(void 0,"h2"),i.h3=i.bind(void 0,"h3"),i.h4=i.bind(void 0,"h4"),i.h5=i.bind(void 0,"h5"),i.h6=i.bind(void 0,"h6"),i.header=i.bind(void 0,"header"),i.hr=i.bind(void 0,"hr"),i.i=i.bind(void 0,"i"),i.iframe=i.bind(void 0,"iframe"),i.img=i.bind(void 0,"img"),i.input=i.bind(void 0,"input"),i.ins=i.bind(void 0,"ins"),i.kbd=i.bind(void 0,"kbd"),i.label=i.bind(void 0,"label"),i.legend=i.bind(void 0,"legend"),i.li=i.bind(void 0,"li"),i.main=i.bind(void 0,"main"),i.map=i.bind(void 0,"map"),i.mark=i.bind(void 0,"mark"),i.meter=i.bind(void 0,"meter"),i.nav=i.bind(void 0,"nav"),i.noscript=i.bind(void 0,"noscript"),i.object=i.bind(void 0,"object"),i.ol=i.bind(void 0,"ol"),i.optgroup=i.bind(void 0,"optgroup"),i.option=i.bind(void 0,"option"),i.output=i.bind(void 0,"output"),i.p=i.bind(void 0,"p"),i.param=i.bind(void 0,"param"),i.pre=i.bind(void 0,"pre"),i.progress=i.bind(void 0,"progress"),i.q=i.bind(void 0,"q"),i.rp=i.bind(void 0,"rp"),i.rt=i.bind(void 0,"rt"),i.ruby=i.bind(void 0,"ruby"),i.s=i.bind(void 0,"s"),i.samp=i.bind(void 0,"samp"),i.section=i.bind(void 0,"section"),i.select=i.bind(void 0,"select"),i.small=i.bind(void 0,"small"),i.source=i.bind(void 0,"source"),i.span=i.bind(void 0,"span"),i.strong=i.bind(void 0,"strong"),i.sub=i.bind(void 0,"sub"),i.summary=i.bind(void 0,"summary"),i.sup=i.bind(void 0,"sup"),i.table=i.bind(void 0,"table"),i.tbody=i.bind(void 0,"tbody"),i.td=i.bind(void 0,"td"),i.textarea=i.bind(void 0,"textarea"),i.tfoot=i.bind(void 0,"tfoot"),i.th=i.bind(void 0,"th"),i.thead=i.bind(void 0,"thead"),i.time=i.bind(void 0,"time"),i.title=i.bind(void 0,"title"),i.tr=i.bind(void 0,"tr"),i.track=i.bind(void 0,"track"),i.u=i.bind(void 0,"u"),i.ul=i.bind(void 0,"ul"),i.var_=i.bind(void 0,"var"),i.video=i.bind(void 0,"video"),i.wbr=i.bind(void 0,"wbr")}(v||(v={})),function(i){i.realize=function(i){return d.createDOMNode(i)},i.render=function(i,t){var e=d.hostMap.get(t)||[],n=d.asContentArray(i);d.hostMap.set(t,n),d.updateContent(t,e,n)}}(n||(n={})),function(i){function t(i){var e=arguments[1]||null,n=arguments[2]||null;if(e)e.insertBefore(t(i),n);else{if("text"===i.type)return document.createTextNode(i.content);if(d(e=document.createElement(i.tag),i.attrs),i.renderer)return i.renderer.render(e,{attrs:i.attrs,children:i.children}),e;for(var r=0,o=i.children.length;r=n;--r){var o=t[r],a=d?i.lastChild:i.childNodes[r];"text"===o.type||(o.renderer&&o.renderer.unrender?o.renderer.unrender(a,{attrs:o.attrs,children:o.children}):e(a,o.children,0,!1)),d&&i.removeChild(a)}}i.hostMap=new WeakMap,i.asContentArray=function(i){return i?i instanceof Array?i:[i]:[]},i.createDOMNode=t,i.updateContent=function i(n,d,a){if(d!==a){for(var s=function(i,t){for(var e=i.firstChild,n=Object.create(null),d=0,r=t;d=b.length)t(a[u],n);else{var c=b[u],f=a[u];if(c!==f)if("text"!==c.type||"text"!==f.type)if("text"!==c.type&&"text"!==f.type)if(!c.renderer==!f.renderer){var h=f.attrs.key;if(h&&h in s){var p=s[h];p.vNode!==c&&(r.ArrayExt.move(b,b.indexOf(p.vNode,u+1),u),n.insertBefore(p.element,v),c=p.vNode,v=p.element)}if(c!==f){var m=c.attrs.key;m&&m!==h?(r.ArrayExt.insert(b,u,f),t(f,n,v)):c.tag===f.tag?(o(v,c.attrs,f.attrs),f.renderer?f.renderer.render(v,{attrs:f.attrs,children:f.children}):i(v,c.children,f.children),v=v.nextSibling):(r.ArrayExt.insert(b,u,f),t(f,n,v))}else v=v.nextSibling}else r.ArrayExt.insert(b,u,f),t(f,n,v);else r.ArrayExt.insert(b,u,f),t(f,n,v);else v.textContent!==f.content&&(v.textContent=f.content),v=v.nextSibling;else v=v.nextSibling}e(n,b,l,!0)}};var n={key:!0,className:!0,htmlFor:!0,dataset:!0,style:!0};function d(i,t){for(var e in t)e in n||("on"===e.substr(0,2)?i[e]=t[e]:i.setAttribute(e,t[e]));void 0!==t.className&&i.setAttribute("class",t.className),void 0!==t.htmlFor&&i.setAttribute("for",t.htmlFor),t.dataset&&function(i,t){for(var e in t)i.setAttribute("data-"+e,t[e])}(i,t.dataset),t.style&&function(i,t){var e,n=i.style;for(e in t)n[e]=t[e]}(i,t.style)}function o(i,t,e){if(t!==e){var d;for(d in t)d in n||d in e||("on"===d.substr(0,2)?i[d]=null:i.removeAttribute(d));for(d in e)d in n||t[d]===e[d]||("on"===d.substr(0,2)?i[d]=e[d]:i.setAttribute(d,e[d]));t.className!==e.className&&(void 0!==e.className?i.setAttribute("class",e.className):i.removeAttribute("class")),t.htmlFor!==e.htmlFor&&(void 0!==e.htmlFor?i.setAttribute("for",e.htmlFor):i.removeAttribute("for")),t.dataset!==e.dataset&&function(i,t,e){for(var n in t)n in e||i.removeAttribute("data-"+n);for(var d in e)t[d]!==e[d]&&i.setAttribute("data-"+d,e[d])}(i,t.dataset||{},e.dataset||{}),t.style!==e.style&&function(i,t,e){var n,d=i.style;for(n in t)n in e||(d[n]="");for(n in e)t[n]!==e[n]&&(d[n]=e[n])}(i,t.style||{},e.style||{})}}}(d||(d={}))}}]); +//# sourceMappingURL=5437.31236f7.js.map \ No newline at end of file diff --git a/_static/build/5437.31236f7.js.map b/_static/build/5437.31236f7.js.map new file mode 100644 index 0000000..9cbb031 --- /dev/null +++ b/_static/build/5437.31236f7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5437.31236f7.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/virtualdom/src/index.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/virtualdom/node_modules/tslib/tslib.es6.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\n/**\n * The names of the supported HTML5 DOM element attributes.\n *\n * This list is not all-encompassing, rather it attempts to define the\n * attribute names which are relevant for use in a virtual DOM context.\n * If a standardized or widely supported name is missing, please open\n * an issue to have it added.\n *\n * The attribute names were collected from the following sources:\n * - https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n * - https://www.w3.org/TR/html5/index.html#attributes-1\n * - https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n */\nexport type ElementAttrNames =\n | 'abbr'\n | 'accept'\n | 'accept-charset'\n | 'accesskey'\n | 'action'\n | 'allowfullscreen'\n | 'alt'\n | 'autocomplete'\n | 'autofocus'\n | 'autoplay'\n | 'autosave'\n | 'checked'\n | 'cite'\n | 'cols'\n | 'colspan'\n | 'contenteditable'\n | 'controls'\n | 'coords'\n | 'crossorigin'\n | 'data'\n | 'datetime'\n | 'default'\n | 'dir'\n | 'dirname'\n | 'disabled'\n | 'download'\n | 'draggable'\n | 'dropzone'\n | 'enctype'\n | 'form'\n | 'formaction'\n | 'formenctype'\n | 'formmethod'\n | 'formnovalidate'\n | 'formtarget'\n | 'headers'\n | 'height'\n | 'hidden'\n | 'high'\n | 'href'\n | 'hreflang'\n | 'id'\n | 'inputmode'\n | 'integrity'\n | 'ismap'\n | 'kind'\n | 'label'\n | 'lang'\n | 'list'\n | 'loop'\n | 'low'\n | 'max'\n | 'maxlength'\n | 'media'\n | 'mediagroup'\n | 'method'\n | 'min'\n | 'minlength'\n | 'multiple'\n | 'muted'\n | 'name'\n | 'novalidate'\n | 'optimum'\n | 'pattern'\n | 'placeholder'\n | 'poster'\n | 'preload'\n | 'readonly'\n | 'rel'\n | 'required'\n | 'reversed'\n | 'rows'\n | 'rowspan'\n | 'sandbox'\n | 'scope'\n | 'selected'\n | 'shape'\n | 'size'\n | 'sizes'\n | 'span'\n | 'spellcheck'\n | 'src'\n | 'srcdoc'\n | 'srclang'\n | 'srcset'\n | 'start'\n | 'step'\n | 'tabindex'\n | 'target'\n | 'title'\n | 'type'\n | 'typemustmatch'\n | 'usemap'\n | 'value'\n | 'width'\n | 'wrap';\n\n/**\n * The names of ARIA attributes for HTML elements.\n *\n * The attribute names are collected from\n * https://www.w3.org/TR/html5/infrastructure.html#element-attrdef-aria-role\n */\nexport type ARIAAttrNames =\n | 'aria-activedescendant'\n | 'aria-atomic'\n | 'aria-autocomplete'\n | 'aria-busy'\n | 'aria-checked'\n | 'aria-colcount'\n | 'aria-colindex'\n | 'aria-colspan'\n | 'aria-controls'\n | 'aria-current'\n | 'aria-describedby'\n | 'aria-details'\n | 'aria-dialog'\n | 'aria-disabled'\n | 'aria-dropeffect'\n | 'aria-errormessage'\n | 'aria-expanded'\n | 'aria-flowto'\n | 'aria-grabbed'\n | 'aria-haspopup'\n | 'aria-hidden'\n | 'aria-invalid'\n | 'aria-keyshortcuts'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-level'\n | 'aria-live'\n | 'aria-multiline'\n | 'aria-multiselectable'\n | 'aria-orientation'\n | 'aria-owns'\n | 'aria-placeholder'\n | 'aria-posinset'\n | 'aria-pressed'\n | 'aria-readonly'\n | 'aria-relevant'\n | 'aria-required'\n | 'aria-roledescription'\n | 'aria-rowcount'\n | 'aria-rowindex'\n | 'aria-rowspan'\n | 'aria-selected'\n | 'aria-setsize'\n | 'aria-sort'\n | 'aria-valuemax'\n | 'aria-valuemin'\n | 'aria-valuenow'\n | 'aria-valuetext'\n | 'role';\n\n/**\n * The names of the supported HTML5 CSS property names.\n *\n * If a standardized or widely supported name is missing, please open\n * an issue to have it added.\n *\n * The property names were collected from the following sources:\n * - TypeScript's `lib.dom.d.ts` file\n */\nexport type CSSPropertyNames =\n | 'alignContent'\n | 'alignItems'\n | 'alignSelf'\n | 'alignmentBaseline'\n | 'animation'\n | 'animationDelay'\n | 'animationDirection'\n | 'animationDuration'\n | 'animationFillMode'\n | 'animationIterationCount'\n | 'animationName'\n | 'animationPlayState'\n | 'animationTimingFunction'\n | 'backfaceVisibility'\n | 'background'\n | 'backgroundAttachment'\n | 'backgroundClip'\n | 'backgroundColor'\n | 'backgroundImage'\n | 'backgroundOrigin'\n | 'backgroundPosition'\n | 'backgroundPositionX'\n | 'backgroundPositionY'\n | 'backgroundRepeat'\n | 'backgroundSize'\n | 'baselineShift'\n | 'border'\n | 'borderBottom'\n | 'borderBottomColor'\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderBottomStyle'\n | 'borderBottomWidth'\n | 'borderCollapse'\n | 'borderColor'\n | 'borderImage'\n | 'borderImageOutset'\n | 'borderImageRepeat'\n | 'borderImageSlice'\n | 'borderImageSource'\n | 'borderImageWidth'\n | 'borderLeft'\n | 'borderLeftColor'\n | 'borderLeftStyle'\n | 'borderLeftWidth'\n | 'borderRadius'\n | 'borderRight'\n | 'borderRightColor'\n | 'borderRightStyle'\n | 'borderRightWidth'\n | 'borderSpacing'\n | 'borderStyle'\n | 'borderTop'\n | 'borderTopColor'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderTopStyle'\n | 'borderTopWidth'\n | 'borderWidth'\n | 'bottom'\n | 'boxShadow'\n | 'boxSizing'\n | 'breakAfter'\n | 'breakBefore'\n | 'breakInside'\n | 'captionSide'\n | 'clear'\n | 'clip'\n | 'clipPath'\n | 'clipRule'\n | 'color'\n | 'colorInterpolationFilters'\n | 'columnCount'\n | 'columnFill'\n | 'columnGap'\n | 'columnRule'\n | 'columnRuleColor'\n | 'columnRuleStyle'\n | 'columnRuleWidth'\n | 'columnSpan'\n | 'columnWidth'\n | 'columns'\n | 'content'\n | 'counterIncrement'\n | 'counterReset'\n | 'cssFloat'\n | 'cssText'\n | 'cursor'\n | 'direction'\n | 'display'\n | 'dominantBaseline'\n | 'emptyCells'\n | 'enableBackground'\n | 'fill'\n | 'fillOpacity'\n | 'fillRule'\n | 'filter'\n | 'flex'\n | 'flexBasis'\n | 'flexDirection'\n | 'flexFlow'\n | 'flexGrow'\n | 'flexShrink'\n | 'flexWrap'\n | 'floodColor'\n | 'floodOpacity'\n | 'font'\n | 'fontFamily'\n | 'fontFeatureSettings'\n | 'fontSize'\n | 'fontSizeAdjust'\n | 'fontStretch'\n | 'fontStyle'\n | 'fontVariant'\n | 'fontWeight'\n | 'glyphOrientationHorizontal'\n | 'glyphOrientationVertical'\n | 'height'\n | 'imeMode'\n | 'justifyContent'\n | 'kerning'\n | 'left'\n | 'letterSpacing'\n | 'lightingColor'\n | 'lineHeight'\n | 'listStyle'\n | 'listStyleImage'\n | 'listStylePosition'\n | 'listStyleType'\n | 'margin'\n | 'marginBottom'\n | 'marginLeft'\n | 'marginRight'\n | 'marginTop'\n | 'marker'\n | 'markerEnd'\n | 'markerMid'\n | 'markerStart'\n | 'mask'\n | 'maxHeight'\n | 'maxWidth'\n | 'minHeight'\n | 'minWidth'\n | 'msContentZoomChaining'\n | 'msContentZoomLimit'\n | 'msContentZoomLimitMax'\n | 'msContentZoomLimitMin'\n | 'msContentZoomSnap'\n | 'msContentZoomSnapPoints'\n | 'msContentZoomSnapType'\n | 'msContentZooming'\n | 'msFlowFrom'\n | 'msFlowInto'\n | 'msFontFeatureSettings'\n | 'msGridColumn'\n | 'msGridColumnAlign'\n | 'msGridColumnSpan'\n | 'msGridColumns'\n | 'msGridRow'\n | 'msGridRowAlign'\n | 'msGridRowSpan'\n | 'msGridRows'\n | 'msHighContrastAdjust'\n | 'msHyphenateLimitChars'\n | 'msHyphenateLimitLines'\n | 'msHyphenateLimitZone'\n | 'msHyphens'\n | 'msImeAlign'\n | 'msOverflowStyle'\n | 'msScrollChaining'\n | 'msScrollLimit'\n | 'msScrollLimitXMax'\n | 'msScrollLimitXMin'\n | 'msScrollLimitYMax'\n | 'msScrollLimitYMin'\n | 'msScrollRails'\n | 'msScrollSnapPointsX'\n | 'msScrollSnapPointsY'\n | 'msScrollSnapType'\n | 'msScrollSnapX'\n | 'msScrollSnapY'\n | 'msScrollTranslation'\n | 'msTextCombineHorizontal'\n | 'msTextSizeAdjust'\n | 'msTouchAction'\n | 'msTouchSelect'\n | 'msUserSelect'\n | 'msWrapFlow'\n | 'msWrapMargin'\n | 'msWrapThrough'\n | 'opacity'\n | 'order'\n | 'orphans'\n | 'outline'\n | 'outlineColor'\n | 'outlineStyle'\n | 'outlineWidth'\n | 'overflow'\n | 'overflowX'\n | 'overflowY'\n | 'padding'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingTop'\n | 'pageBreakAfter'\n | 'pageBreakBefore'\n | 'pageBreakInside'\n | 'perspective'\n | 'perspectiveOrigin'\n | 'pointerEvents'\n | 'position'\n | 'quotes'\n | 'resize'\n | 'right'\n | 'rubyAlign'\n | 'rubyOverhang'\n | 'rubyPosition'\n | 'stopColor'\n | 'stopOpacity'\n | 'stroke'\n | 'strokeDasharray'\n | 'strokeDashoffset'\n | 'strokeLinecap'\n | 'strokeLinejoin'\n | 'strokeMiterlimit'\n | 'strokeOpacity'\n | 'strokeWidth'\n | 'tableLayout'\n | 'textAlign'\n | 'textAlignLast'\n | 'textAnchor'\n | 'textDecoration'\n | 'textIndent'\n | 'textJustify'\n | 'textKashida'\n | 'textKashidaSpace'\n | 'textOverflow'\n | 'textShadow'\n | 'textTransform'\n | 'textUnderlinePosition'\n | 'top'\n | 'touchAction'\n | 'transform'\n | 'transformOrigin'\n | 'transformStyle'\n | 'transition'\n | 'transitionDelay'\n | 'transitionDuration'\n | 'transitionProperty'\n | 'transitionTimingFunction'\n | 'unicodeBidi'\n | 'verticalAlign'\n | 'visibility'\n | 'webkitAlignContent'\n | 'webkitAlignItems'\n | 'webkitAlignSelf'\n | 'webkitAnimation'\n | 'webkitAnimationDelay'\n | 'webkitAnimationDirection'\n | 'webkitAnimationDuration'\n | 'webkitAnimationFillMode'\n | 'webkitAnimationIterationCount'\n | 'webkitAnimationName'\n | 'webkitAnimationPlayState'\n | 'webkitAnimationTimingFunction'\n | 'webkitAppearance'\n | 'webkitBackfaceVisibility'\n | 'webkitBackgroundClip'\n | 'webkitBackgroundOrigin'\n | 'webkitBackgroundSize'\n | 'webkitBorderBottomLeftRadius'\n | 'webkitBorderBottomRightRadius'\n | 'webkitBorderImage'\n | 'webkitBorderRadius'\n | 'webkitBorderTopLeftRadius'\n | 'webkitBorderTopRightRadius'\n | 'webkitBoxAlign'\n | 'webkitBoxDirection'\n | 'webkitBoxFlex'\n | 'webkitBoxOrdinalGroup'\n | 'webkitBoxOrient'\n | 'webkitBoxPack'\n | 'webkitBoxSizing'\n | 'webkitColumnBreakAfter'\n | 'webkitColumnBreakBefore'\n | 'webkitColumnBreakInside'\n | 'webkitColumnCount'\n | 'webkitColumnGap'\n | 'webkitColumnRule'\n | 'webkitColumnRuleColor'\n | 'webkitColumnRuleStyle'\n | 'webkitColumnRuleWidth'\n | 'webkitColumnSpan'\n | 'webkitColumnWidth'\n | 'webkitColumns'\n | 'webkitFilter'\n | 'webkitFlex'\n | 'webkitFlexBasis'\n | 'webkitFlexDirection'\n | 'webkitFlexFlow'\n | 'webkitFlexGrow'\n | 'webkitFlexShrink'\n | 'webkitFlexWrap'\n | 'webkitJustifyContent'\n | 'webkitOrder'\n | 'webkitPerspective'\n | 'webkitPerspectiveOrigin'\n | 'webkitTapHighlightColor'\n | 'webkitTextFillColor'\n | 'webkitTextSizeAdjust'\n | 'webkitTransform'\n | 'webkitTransformOrigin'\n | 'webkitTransformStyle'\n | 'webkitTransition'\n | 'webkitTransitionDelay'\n | 'webkitTransitionDuration'\n | 'webkitTransitionProperty'\n | 'webkitTransitionTimingFunction'\n | 'webkitUserModify'\n | 'webkitUserSelect'\n | 'webkitWritingMode'\n | 'whiteSpace'\n | 'widows'\n | 'width'\n | 'wordBreak'\n | 'wordSpacing'\n | 'wordWrap'\n | 'writingMode'\n | 'zIndex'\n | 'zoom';\n\n/**\n * A mapping of inline event name to event object type.\n *\n * This mapping is used to create the event listener properties for\n * the virtual DOM element attributes object. If a standardized or\n * widely supported name is missing, please open an issue to have it\n * added.\n *\n * The event names were collected from the following sources:\n * - TypeScript's `lib.dom.d.ts` file\n * - https://www.w3.org/TR/html5/index.html#attributes-1\n * - https://html.spec.whatwg.org/multipage/webappapis.html#idl-definitions\n */\nexport type ElementEventMap = {\n onabort: UIEvent;\n onauxclick: MouseEvent;\n onblur: FocusEvent;\n oncanplay: Event;\n oncanplaythrough: Event;\n onchange: Event;\n onclick: MouseEvent;\n oncontextmenu: PointerEvent;\n oncopy: ClipboardEvent;\n oncuechange: Event;\n oncut: ClipboardEvent;\n ondblclick: MouseEvent;\n ondrag: DragEvent;\n ondragend: DragEvent;\n ondragenter: DragEvent;\n ondragexit: DragEvent;\n ondragleave: DragEvent;\n ondragover: DragEvent;\n ondragstart: DragEvent;\n ondrop: DragEvent;\n ondurationchange: Event;\n onemptied: Event;\n onended: ErrorEvent;\n onerror: ErrorEvent;\n onfocus: FocusEvent;\n oninput: Event;\n oninvalid: Event;\n onkeydown: KeyboardEvent;\n onkeypress: KeyboardEvent;\n onkeyup: KeyboardEvent;\n onload: Event;\n onloadeddata: Event;\n onloadedmetadata: Event;\n onloadend: Event;\n onloadstart: Event;\n onmousedown: MouseEvent;\n onmouseenter: MouseEvent;\n onmouseleave: MouseEvent;\n onmousemove: MouseEvent;\n onmouseout: MouseEvent;\n onmouseover: MouseEvent;\n onmouseup: MouseEvent;\n onmousewheel: WheelEvent;\n onpaste: ClipboardEvent;\n onpause: Event;\n onplay: Event;\n onplaying: Event;\n onpointercancel: PointerEvent;\n onpointerdown: PointerEvent;\n onpointerenter: PointerEvent;\n onpointerleave: PointerEvent;\n onpointermove: PointerEvent;\n onpointerout: PointerEvent;\n onpointerover: PointerEvent;\n onpointerup: PointerEvent;\n onprogress: ProgressEvent;\n onratechange: Event;\n onreset: Event;\n onscroll: UIEvent;\n onseeked: Event;\n onseeking: Event;\n onselect: UIEvent;\n onselectstart: Event;\n onstalled: Event;\n onsubmit: Event;\n onsuspend: Event;\n ontimeupdate: Event;\n onvolumechange: Event;\n onwaiting: Event;\n};\n\n/**\n * An object which represents a dataset for a virtual DOM element.\n *\n * The names of the dataset properties will be automatically prefixed\n * with `data-` before being added to the node, e.g. `{ thing: '12' }`\n * will be rendered as `data-thing='12'` in the DOM element.\n *\n * Dataset property names should not contain spaces.\n */\nexport type ElementDataset = {\n readonly [name: string]: string;\n};\n\n/**\n * The inline style for for a virtual DOM element.\n *\n * Style attributes use the JS camel-cased property names instead of\n * the CSS hyphenated names for performance and security.\n */\nexport type ElementInlineStyle = {\n readonly [T in CSSPropertyNames]?: string;\n};\n\n/**\n * The ARIA attributes for a virtual element node.\n *\n * These are the attributes which are applied to a real DOM element via\n * `element.setAttribute()`. The supported attribute names are defined\n * by the `ARIAAttrNames` type.\n */\nexport type ElementARIAAttrs = {\n readonly [T in ARIAAttrNames]?: string;\n};\n\n/**\n * The base attributes for a virtual element node.\n *\n * These are the attributes which are applied to a real DOM element via\n * `element.setAttribute()`. The supported attribute names are defined\n * by the `ElementAttrNames` type.\n *\n * Node attributes are specified using the lower-case HTML name instead\n * of the camel-case JS name due to browser inconsistencies in handling\n * the JS versions.\n */\nexport type ElementBaseAttrs = {\n readonly [T in ElementAttrNames]?: string;\n};\n\n/**\n * The inline event listener attributes for a virtual element node.\n *\n * The supported listeners are defined by the `ElementEventMap` type.\n */\nexport type ElementEventAttrs = {\n readonly [T in keyof ElementEventMap]?: (\n this: HTMLElement,\n event: ElementEventMap[T]\n ) => any;\n};\n\n/**\n * The special-cased attributes for a virtual element node.\n */\nexport type ElementSpecialAttrs = {\n /**\n * The key id for the virtual element node.\n *\n * If a node is given a key id, the generated DOM node will not be\n * recreated during a rendering update if it only moves among its\n * siblings in the render tree.\n *\n * In general, reordering child nodes will cause the nodes to be\n * completely re-rendered. Keys allow this to be optimized away.\n *\n * If a key is provided, it must be unique among sibling nodes.\n */\n readonly key?: string;\n\n /**\n * The JS-safe name for the HTML `class` attribute.\n */\n readonly className?: string;\n\n /**\n * The JS-safe name for the HTML `for` attribute.\n */\n readonly htmlFor?: string;\n\n /**\n * The dataset for the rendered DOM element.\n */\n readonly dataset?: ElementDataset;\n\n /**\n * The inline style for the rendered DOM element.\n */\n readonly style?: ElementInlineStyle;\n};\n\n/**\n * The full set of attributes supported by a virtual element node.\n *\n * This is the combination of the base element attributes, the the ARIA attributes,\n * the inline element event listeners, and the special element attributes.\n */\nexport type ElementAttrs = ElementBaseAttrs &\n ElementARIAAttrs &\n ElementEventAttrs &\n ElementSpecialAttrs;\n\n/**\n * A virtual node which represents plain text content.\n *\n * #### Notes\n * User code will not typically create a `VirtualText` node directly.\n * Instead, the `h()` function will be used to create an element tree.\n */\nexport class VirtualText {\n /**\n * The text content for the node.\n */\n readonly content: string;\n\n /**\n * The type of the node.\n *\n * This value can be used as a type guard for discriminating the\n * `VirtualNode` union type.\n */\n readonly type: 'text' = 'text';\n\n /**\n * Construct a new virtual text node.\n *\n * @param content - The text content for the node.\n */\n constructor(content: string) {\n this.content = content;\n }\n}\n\n/**\n * A virtual node which represents an HTML element.\n *\n * #### Notes\n * User code will not typically create a `VirtualElement` node directly.\n * Instead, the `h()` function will be used to create an element tree.\n */\nexport class VirtualElement {\n /**\n * The tag name for the element.\n */\n readonly tag: string;\n\n /**\n * The attributes for the element.\n */\n readonly attrs: ElementAttrs;\n\n /**\n * The children for the element.\n */\n readonly children: ReadonlyArray;\n\n /**\n * An optional custom renderer for the element's children. If set, on render\n * this element's DOM node and it's attrs will be created/updated as normal.\n * At that point the DOM node is handed off to the renderer.\n */\n readonly renderer: VirtualElement.IRenderer | undefined;\n\n /**\n * The type of the node.\n *\n * This value can be used as a type guard for discriminating the\n * `VirtualNode` union type.\n */\n readonly type: 'element' = 'element';\n\n /**\n * Construct a new virtual element node.\n *\n * @param tag - The element tag name.\n *\n * @param attrs - The element attributes.\n *\n * @param children - The element children.\n *\n * @param renderer - An optional custom renderer for the element.\n */\n constructor(\n tag: string,\n attrs: ElementAttrs,\n children: ReadonlyArray,\n renderer?: VirtualElement.IRenderer\n ) {\n this.tag = tag;\n this.attrs = attrs;\n this.children = children;\n\n this.renderer = renderer;\n }\n}\n\nexport namespace VirtualElement {\n /**\n * A type describing a custom element renderer\n */\n export type IRenderer = {\n /**\n * Customize how a DOM node is rendered. If .renderer is set on a given\n * instance of VirtualElement, this function will be called every time\n * that VirtualElement is rendered.\n *\n * @param host - The actual DOM node created for a VirtualElement during\n * rendering.\n *\n * On render, host is created and its attrs are set/updated via\n * the standard routines in updateContent. host is then handed off to this\n * function.\n *\n * The render function is free to modify host. The only restriction is\n * is that render should not modify any attributes set by external\n * routines (ie updateContent), as this may cause thrashing when the\n * virtual element is next rendered.\n *\n * @param options - Will be populated with the .attrs and .children fields\n * set on the VirtualElement being rendered.\n */\n render: (\n host: HTMLElement,\n options?: { attrs?: ElementAttrs; children?: ReadonlyArray }\n ) => void;\n\n /**\n * Optional cleanup function for custom renderers. If the .renderer field\n * of a VirtualELement is set, and if .renderer.unrender is defined, when\n * the element is changed or removed its corresponding DOM element will be\n * passed to this function immediately before it is removed from the DOM.\n *\n * unrender is not required for for simple renderers, such as those\n * implemented using `document.createElement()`. However, for certain\n * rendering techniques explicit cleanup is required in order to avoid\n * resource leaks.\n *\n * For example, if render calls `ReactDOM.render(..., host)`, then\n * there has to also be a corresponding implementation of unrender that\n * calls `ReactDOM.unmountComponentAtNode(host)` in order to prevent\n * a memory leak.\n *\n * @param host - the DOM element to be removed.\n *\n * @param options - Will be populated with the .attrs and .children fields\n * set on the VirtualElement being unrendered.\n */\n unrender?: (\n host: HTMLElement,\n options?: { attrs?: ElementAttrs; children?: ReadonlyArray }\n ) => void;\n };\n}\n\n/**\n * DEPRECATED - use VirtualElement with a defined renderer param instead.\n * This class is provided as a backwards compatibility shim\n *\n * A \"pass thru\" virtual node whose children are managed by a render and an\n * unrender callback. The intent of this flavor of virtual node is to make\n * it easy to blend other kinds of virtualdom (eg React) into Phosphor's\n * virtualdom.\n *\n * #### Notes\n * User code will not typically create a `VirtualElementPass` node directly.\n * Instead, the `hpass()` function will be used to create an element tree.\n */\nexport class VirtualElementPass extends VirtualElement {\n /**\n * DEPRECATED - use VirtualElement with a defined renderer param instead\n *\n * Construct a new virtual element pass thru node.\n *\n * @param tag - the tag of the parent element of this node. Once the parent\n * element is rendered, it will be passed as an argument to\n * renderer.render\n *\n * @param attrs - attributes that will assigned to the\n * parent element\n *\n * @param renderer - an object with render and unrender\n * functions, each of which should take a single argument of type\n * HTMLElement and return nothing. If null, the parent element\n * will be rendered barren without any children.\n */\n constructor(\n tag: string,\n attrs: ElementAttrs,\n renderer: VirtualElementPass.IRenderer | null\n ) {\n super(tag, attrs, [], renderer || undefined);\n }\n}\n\nexport namespace VirtualElementPass {\n /**\n * DEPRECATED - use VirtualElement.IRenderer instead\n *\n * A type describing a custom element renderer\n */\n export type IRenderer = VirtualElement.IRenderer;\n}\n\n/**\n * A type alias for a general virtual node.\n */\nexport type VirtualNode = VirtualElement | VirtualText;\n\n/**\n * Create a new virtual element node.\n *\n * @param tag - The tag name for the element.\n *\n * @param attrs - The attributes for the element, if any.\n *\n * @param renderer - An optional custom renderer for the element.\n *\n * @param children - The children for the element, if any.\n *\n * @returns A new virtual element node for the given parameters.\n *\n * #### Notes\n * The children may be string literals, other virtual nodes, `null`, or\n * an array of those things. Strings are converted into text nodes, and\n * arrays are inlined as if the array contents were given as positional\n * arguments. This makes it simple to build up an array of children by\n * any desired means. `null` child values are simply ignored.\n *\n * A bound function for each HTML tag name is available as a static\n * function attached to the `h()` function. E.g. `h('div', ...)` is\n * equivalent to `h.div(...)`.\n */\nexport function h(tag: string, ...children: h.Child[]): VirtualElement;\nexport function h(\n tag: string,\n attrs: ElementAttrs,\n ...children: h.Child[]\n): VirtualElement;\nexport function h(\n tag: string,\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n): VirtualElement;\nexport function h(\n tag: string,\n attrs: ElementAttrs,\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n): VirtualElement;\nexport function h(tag: string): VirtualElement {\n let attrs: ElementAttrs = {};\n let renderer: VirtualElement.IRenderer | undefined;\n let children: VirtualNode[] = [];\n for (let i = 1, n = arguments.length; i < n; ++i) {\n // eslint-disable-next-line prefer-rest-params\n let arg = arguments[i];\n if (typeof arg === 'string') {\n children.push(new VirtualText(arg));\n } else if (arg instanceof VirtualText) {\n children.push(arg);\n } else if (arg instanceof VirtualElement) {\n children.push(arg);\n } else if (arg instanceof Array) {\n extend(children, arg);\n } else if ((i === 1 || i === 2) && arg && typeof arg === 'object') {\n if ('render' in arg) {\n renderer = arg;\n } else {\n attrs = arg;\n }\n }\n }\n return new VirtualElement(tag, attrs, children, renderer);\n\n function extend(array: VirtualNode[], values: h.Child[]): void {\n for (let child of values) {\n if (typeof child === 'string') {\n array.push(new VirtualText(child));\n } else if (child instanceof VirtualText) {\n array.push(child);\n } else if (child instanceof VirtualElement) {\n array.push(child);\n }\n }\n }\n}\n\n/**\n * The namespace for the `h` function statics.\n */\nexport namespace h {\n /**\n * A type alias for the supported child argument types.\n */\n export type Child =\n | (string | VirtualNode | null)\n | Array;\n\n /**\n * A bound factory function for a specific `h()` tag.\n */\n export interface IFactory {\n (...children: Child[]): VirtualElement;\n (attrs: ElementAttrs, ...children: Child[]): VirtualElement;\n (\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n ): VirtualElement;\n (\n attrs: ElementAttrs,\n renderer: VirtualElement.IRenderer,\n ...children: h.Child[]\n ): VirtualElement;\n }\n\n export const a: IFactory = h.bind(undefined, 'a');\n export const abbr: IFactory = h.bind(undefined, 'abbr');\n export const address: IFactory = h.bind(undefined, 'address');\n export const area: IFactory = h.bind(undefined, 'area');\n export const article: IFactory = h.bind(undefined, 'article');\n export const aside: IFactory = h.bind(undefined, 'aside');\n export const audio: IFactory = h.bind(undefined, 'audio');\n export const b: IFactory = h.bind(undefined, 'b');\n export const bdi: IFactory = h.bind(undefined, 'bdi');\n export const bdo: IFactory = h.bind(undefined, 'bdo');\n export const blockquote: IFactory = h.bind(undefined, 'blockquote');\n export const br: IFactory = h.bind(undefined, 'br');\n export const button: IFactory = h.bind(undefined, 'button');\n export const canvas: IFactory = h.bind(undefined, 'canvas');\n export const caption: IFactory = h.bind(undefined, 'caption');\n export const cite: IFactory = h.bind(undefined, 'cite');\n export const code: IFactory = h.bind(undefined, 'code');\n export const col: IFactory = h.bind(undefined, 'col');\n export const colgroup: IFactory = h.bind(undefined, 'colgroup');\n export const data: IFactory = h.bind(undefined, 'data');\n export const datalist: IFactory = h.bind(undefined, 'datalist');\n export const dd: IFactory = h.bind(undefined, 'dd');\n export const del: IFactory = h.bind(undefined, 'del');\n export const dfn: IFactory = h.bind(undefined, 'dfn');\n export const div: IFactory = h.bind(undefined, 'div');\n export const dl: IFactory = h.bind(undefined, 'dl');\n export const dt: IFactory = h.bind(undefined, 'dt');\n export const em: IFactory = h.bind(undefined, 'em');\n export const embed: IFactory = h.bind(undefined, 'embed');\n export const fieldset: IFactory = h.bind(undefined, 'fieldset');\n export const figcaption: IFactory = h.bind(undefined, 'figcaption');\n export const figure: IFactory = h.bind(undefined, 'figure');\n export const footer: IFactory = h.bind(undefined, 'footer');\n export const form: IFactory = h.bind(undefined, 'form');\n export const h1: IFactory = h.bind(undefined, 'h1');\n export const h2: IFactory = h.bind(undefined, 'h2');\n export const h3: IFactory = h.bind(undefined, 'h3');\n export const h4: IFactory = h.bind(undefined, 'h4');\n export const h5: IFactory = h.bind(undefined, 'h5');\n export const h6: IFactory = h.bind(undefined, 'h6');\n export const header: IFactory = h.bind(undefined, 'header');\n export const hr: IFactory = h.bind(undefined, 'hr');\n export const i: IFactory = h.bind(undefined, 'i');\n export const iframe: IFactory = h.bind(undefined, 'iframe');\n export const img: IFactory = h.bind(undefined, 'img');\n export const input: IFactory = h.bind(undefined, 'input');\n export const ins: IFactory = h.bind(undefined, 'ins');\n export const kbd: IFactory = h.bind(undefined, 'kbd');\n export const label: IFactory = h.bind(undefined, 'label');\n export const legend: IFactory = h.bind(undefined, 'legend');\n export const li: IFactory = h.bind(undefined, 'li');\n export const main: IFactory = h.bind(undefined, 'main');\n export const map: IFactory = h.bind(undefined, 'map');\n export const mark: IFactory = h.bind(undefined, 'mark');\n export const meter: IFactory = h.bind(undefined, 'meter');\n export const nav: IFactory = h.bind(undefined, 'nav');\n export const noscript: IFactory = h.bind(undefined, 'noscript');\n export const object: IFactory = h.bind(undefined, 'object');\n export const ol: IFactory = h.bind(undefined, 'ol');\n export const optgroup: IFactory = h.bind(undefined, 'optgroup');\n export const option: IFactory = h.bind(undefined, 'option');\n export const output: IFactory = h.bind(undefined, 'output');\n export const p: IFactory = h.bind(undefined, 'p');\n export const param: IFactory = h.bind(undefined, 'param');\n export const pre: IFactory = h.bind(undefined, 'pre');\n export const progress: IFactory = h.bind(undefined, 'progress');\n export const q: IFactory = h.bind(undefined, 'q');\n export const rp: IFactory = h.bind(undefined, 'rp');\n export const rt: IFactory = h.bind(undefined, 'rt');\n export const ruby: IFactory = h.bind(undefined, 'ruby');\n export const s: IFactory = h.bind(undefined, 's');\n export const samp: IFactory = h.bind(undefined, 'samp');\n export const section: IFactory = h.bind(undefined, 'section');\n export const select: IFactory = h.bind(undefined, 'select');\n export const small: IFactory = h.bind(undefined, 'small');\n export const source: IFactory = h.bind(undefined, 'source');\n export const span: IFactory = h.bind(undefined, 'span');\n export const strong: IFactory = h.bind(undefined, 'strong');\n export const sub: IFactory = h.bind(undefined, 'sub');\n export const summary: IFactory = h.bind(undefined, 'summary');\n export const sup: IFactory = h.bind(undefined, 'sup');\n export const table: IFactory = h.bind(undefined, 'table');\n export const tbody: IFactory = h.bind(undefined, 'tbody');\n export const td: IFactory = h.bind(undefined, 'td');\n export const textarea: IFactory = h.bind(undefined, 'textarea');\n export const tfoot: IFactory = h.bind(undefined, 'tfoot');\n export const th: IFactory = h.bind(undefined, 'th');\n export const thead: IFactory = h.bind(undefined, 'thead');\n export const time: IFactory = h.bind(undefined, 'time');\n export const title: IFactory = h.bind(undefined, 'title');\n export const tr: IFactory = h.bind(undefined, 'tr');\n export const track: IFactory = h.bind(undefined, 'track');\n export const u: IFactory = h.bind(undefined, 'u');\n export const ul: IFactory = h.bind(undefined, 'ul');\n export const var_: IFactory = h.bind(undefined, 'var');\n export const video: IFactory = h.bind(undefined, 'video');\n export const wbr: IFactory = h.bind(undefined, 'wbr');\n}\n\n/**\n * DEPRECATED - pass the renderer arg to the h function instead\n *\n * Create a new \"pass thru\" virtual element node.\n *\n * @param tag - The tag name for the parent element.\n *\n * @param attrs - The attributes for the parent element, if any.\n *\n * @param renderer - an object with render and unrender functions, if any.\n *\n * @returns A new \"pass thru\" virtual element node for the given parameters.\n *\n */\nexport function hpass(\n tag: string,\n renderer?: VirtualElementPass.IRenderer\n): VirtualElementPass;\nexport function hpass(\n tag: string,\n attrs: ElementAttrs,\n renderer?: VirtualElementPass.IRenderer\n): VirtualElementPass;\nexport function hpass(tag: string): VirtualElementPass {\n let attrs: ElementAttrs = {};\n let renderer: VirtualElementPass.IRenderer | null = null;\n\n if (arguments.length === 2) {\n // eslint-disable-next-line prefer-rest-params\n const arg = arguments[1];\n\n if ('render' in arg) {\n renderer = arg;\n } else {\n attrs = arg;\n }\n } else if (arguments.length === 3) {\n // eslint-disable-next-line prefer-rest-params\n attrs = arguments[1];\n // eslint-disable-next-line prefer-rest-params\n renderer = arguments[2];\n } else if (arguments.length > 3) {\n throw new Error('hpass() should be called with 1, 2, or 3 arguments');\n }\n\n return new VirtualElementPass(tag, attrs, renderer);\n}\n\n/**\n * The namespace for the virtual DOM rendering functions.\n */\nexport namespace VirtualDOM {\n /**\n * Create a real DOM element from a virtual element node.\n *\n * @param node - The virtual element node to realize.\n *\n * @returns A new DOM element for the given virtual element node.\n *\n * #### Notes\n * This creates a brand new *real* DOM element with a structure which\n * matches the given virtual DOM node.\n *\n * If virtual diffing is desired, use the `render` function instead.\n */\n export function realize(node: VirtualText): Text;\n export function realize(node: VirtualElement): HTMLElement;\n export function realize(node: VirtualNode): HTMLElement | Text {\n return Private.createDOMNode(node);\n }\n\n /**\n * Render virtual DOM content into a host element.\n *\n * @param content - The virtual DOM content to render.\n *\n * @param host - The host element for the rendered content.\n *\n * #### Notes\n * This renders the delta from the previous rendering. It assumes that\n * the content of the host element is not manipulated by external code.\n *\n * Providing `null` content will clear the rendering.\n *\n * Externally modifying the provided content or the host element will\n * result in undefined rendering behavior.\n */\n export function render(\n content: VirtualNode | ReadonlyArray | null,\n host: HTMLElement\n ): void {\n let oldContent = Private.hostMap.get(host) || [];\n let newContent = Private.asContentArray(content);\n Private.hostMap.set(host, newContent);\n Private.updateContent(host, oldContent, newContent);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A weak mapping of host element to virtual DOM content.\n */\n export const hostMap = new WeakMap>();\n\n /**\n * Cast a content value to a content array.\n */\n export function asContentArray(\n value: VirtualNode | ReadonlyArray | null\n ): ReadonlyArray {\n if (!value) {\n return [];\n }\n if (value instanceof Array) {\n return value as ReadonlyArray;\n }\n return [value as VirtualNode];\n }\n\n /**\n * Create a new DOM element for a virtual node.\n */\n export function createDOMNode(node: VirtualText): Text;\n export function createDOMNode(node: VirtualElement): HTMLElement;\n export function createDOMNode(node: VirtualNode): HTMLElement | Text;\n export function createDOMNode(\n node: VirtualNode,\n host: HTMLElement | null\n ): HTMLElement | Text;\n export function createDOMNode(\n node: VirtualNode,\n host: HTMLElement | null,\n before: Node | null\n ): HTMLElement | Text;\n export function createDOMNode(node: VirtualNode): HTMLElement | Text {\n // eslint-disable-next-line prefer-rest-params\n let host = arguments[1] || null;\n // eslint-disable-next-line prefer-rest-params\n const before = arguments[2] || null;\n\n if (host) {\n host.insertBefore(createDOMNode(node), before);\n } else {\n // Create a text node for a virtual text node.\n if (node.type === 'text') {\n return document.createTextNode(node.content);\n }\n\n // Create the HTML element with the specified tag.\n host = document.createElement(node.tag);\n\n // Add the attributes for the new element.\n addAttrs(host, node.attrs);\n\n if (node.renderer) {\n node.renderer.render(host, {\n attrs: node.attrs,\n children: node.children\n });\n return host;\n }\n\n // Recursively populate the element with child content.\n for (let i = 0, n = node.children.length; i < n; ++i) {\n createDOMNode(node.children[i], host);\n }\n }\n\n return host;\n }\n\n /**\n * Update a host element with the delta of the virtual content.\n *\n * This is the core \"diff\" algorithm. There is no explicit \"patch\"\n * phase. The host is patched at each step as the diff progresses.\n */\n export function updateContent(\n host: HTMLElement,\n oldContent: ReadonlyArray,\n newContent: ReadonlyArray\n ): void {\n // Bail early if the content is identical.\n if (oldContent === newContent) {\n return;\n }\n\n // Collect the old keyed elems into a mapping.\n let oldKeyed = collectKeys(host, oldContent);\n\n // Create a copy of the old content which can be modified in-place.\n let oldCopy = oldContent.slice();\n\n // Update the host with the new content. The diff always proceeds\n // forward and never modifies a previously visited index. The old\n // copy array is modified in-place to reflect the changes made to\n // the host children. This causes the stale nodes to be pushed to\n // the end of the host node and removed at the end of the loop.\n let currElem = host.firstChild;\n let newCount = newContent.length;\n for (let i = 0; i < newCount; ++i) {\n // If the old content is exhausted, create a new node.\n if (i >= oldCopy.length) {\n createDOMNode(newContent[i], host);\n continue;\n }\n\n // Lookup the old and new virtual nodes.\n let oldVNode = oldCopy[i];\n let newVNode = newContent[i];\n\n // If both elements are identical, there is nothing to do.\n if (oldVNode === newVNode) {\n currElem = currElem!.nextSibling;\n continue;\n }\n\n // Handle the simplest case of in-place text update first.\n if (oldVNode.type === 'text' && newVNode.type === 'text') {\n // Avoid spurious updates for performance.\n if (currElem!.textContent !== newVNode.content) {\n currElem!.textContent = newVNode.content;\n }\n currElem = currElem!.nextSibling;\n continue;\n }\n\n // If the old or new node is a text node, the other node is now\n // known to be an element node, so create and insert a new node.\n if (oldVNode.type === 'text' || newVNode.type === 'text') {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // If the old XOR new node has a custom renderer,\n // create and insert a new node.\n if (!oldVNode.renderer != !newVNode.renderer) {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // At this point, both nodes are known to be element nodes.\n\n // If the new elem is keyed, move an old keyed elem to the proper\n // location before proceeding with the diff. The search can start\n // at the current index, since the unmatched old keyed elems are\n // pushed forward in the old copy array.\n let newKey = newVNode.attrs.key;\n if (newKey && newKey in oldKeyed) {\n let pair = oldKeyed[newKey];\n if (pair.vNode !== oldVNode) {\n ArrayExt.move(oldCopy, oldCopy.indexOf(pair.vNode, i + 1), i);\n host.insertBefore(pair.element, currElem);\n oldVNode = pair.vNode;\n currElem = pair.element;\n }\n }\n\n // If both elements are identical, there is nothing to do.\n if (oldVNode === newVNode) {\n currElem = currElem!.nextSibling;\n continue;\n }\n\n // If the old elem is keyed and does not match the new elem key,\n // create a new node. This is necessary since the old keyed elem\n // may be matched at a later point in the diff.\n let oldKey = oldVNode.attrs.key;\n if (oldKey && oldKey !== newKey) {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // If the tags are different, create a new node.\n if (oldVNode.tag !== newVNode.tag) {\n ArrayExt.insert(oldCopy, i, newVNode);\n createDOMNode(newVNode, host, currElem);\n continue;\n }\n\n // At this point, the element can be updated in-place.\n\n // Update the element attributes.\n updateAttrs(currElem as HTMLElement, oldVNode.attrs, newVNode.attrs);\n\n // Update the element content.\n if (newVNode.renderer) {\n newVNode.renderer.render(currElem as HTMLElement, {\n attrs: newVNode.attrs,\n children: newVNode.children\n });\n } else {\n updateContent(\n currElem as HTMLElement,\n oldVNode.children,\n newVNode.children\n );\n }\n\n // Step to the next sibling element.\n currElem = currElem!.nextSibling;\n }\n\n // Cleanup stale DOM\n removeContent(host, oldCopy, newCount, true);\n }\n\n /**\n * Handle cleanup of stale vdom and its associated DOM. The host node is\n * traversed recursively (in depth-first order), and any explicit cleanup\n * required by a child node is carried out when it is visited (eg if a node\n * has a custom renderer, the renderer.unrender function will be called).\n * Once the subtree beneath each child of host has been completely visited,\n * that child will be removed via a call to host.removeChild.\n */\n function removeContent(\n host: HTMLElement,\n oldContent: ReadonlyArray,\n newCount: number,\n _sentinel: boolean\n ) {\n // Dispose of the old nodes pushed to the end of the host.\n for (let i = oldContent.length - 1; i >= newCount; --i) {\n const oldNode = oldContent[i];\n const child = (_sentinel\n ? host.lastChild\n : host.childNodes[i]) as HTMLElement;\n\n // recursively clean up host children\n if (oldNode.type === 'text') {\n // pass\n } else if (oldNode.renderer && oldNode.renderer.unrender) {\n oldNode.renderer.unrender(child!, {\n attrs: oldNode.attrs,\n children: oldNode.children\n });\n } else {\n removeContent(child!, oldNode.children, 0, false);\n }\n\n if (_sentinel) {\n host.removeChild(child!);\n }\n }\n }\n\n /**\n * A set of special-cased attribute names.\n */\n const specialAttrs = {\n key: true,\n className: true,\n htmlFor: true,\n dataset: true,\n style: true\n };\n\n /**\n * Add element attributes to a newly created HTML element.\n */\n function addAttrs(element: HTMLElement, attrs: ElementAttrs): void {\n // Add the inline event listeners and node attributes.\n for (let name in attrs) {\n if (name in specialAttrs) {\n continue;\n }\n if (name.substr(0, 2) === 'on') {\n (element as any)[name] = (attrs as any)[name];\n } else {\n element.setAttribute(name, (attrs as any)[name]);\n }\n }\n\n // Add the element `class` attribute.\n if (attrs.className !== undefined) {\n element.setAttribute('class', attrs.className);\n }\n\n // Add the element `for` attribute.\n if (attrs.htmlFor !== undefined) {\n element.setAttribute('for', attrs.htmlFor);\n }\n\n // Add the dataset values.\n if (attrs.dataset) {\n addDataset(element, attrs.dataset);\n }\n\n // Add the inline styles.\n if (attrs.style) {\n addStyle(element, attrs.style);\n }\n }\n\n /**\n * Update the element attributes of an HTML element.\n */\n function updateAttrs(\n element: HTMLElement,\n oldAttrs: ElementAttrs,\n newAttrs: ElementAttrs\n ): void {\n // Do nothing if the attrs are the same object.\n if (oldAttrs === newAttrs) {\n return;\n }\n\n // Setup the strongly typed loop variable.\n let name: keyof ElementAttrs;\n\n // Remove attributes and listeners which no longer exist.\n for (name in oldAttrs) {\n if (name in specialAttrs || name in newAttrs) {\n continue;\n }\n if (name.substr(0, 2) === 'on') {\n (element as any)[name] = null;\n } else {\n element.removeAttribute(name);\n }\n }\n\n // Add and update new and existing attributes and listeners.\n for (name in newAttrs) {\n if (name in specialAttrs || oldAttrs[name] === newAttrs[name]) {\n continue;\n }\n if (name.substr(0, 2) === 'on') {\n (element as any)[name] = (newAttrs as any)[name];\n } else {\n element.setAttribute(name, (newAttrs as any)[name]);\n }\n }\n\n // Update the element `class` attribute.\n if (oldAttrs.className !== newAttrs.className) {\n if (newAttrs.className !== undefined) {\n element.setAttribute('class', newAttrs.className);\n } else {\n element.removeAttribute('class');\n }\n }\n\n // Add the element `for` attribute.\n if (oldAttrs.htmlFor !== newAttrs.htmlFor) {\n if (newAttrs.htmlFor !== undefined) {\n element.setAttribute('for', newAttrs.htmlFor);\n } else {\n element.removeAttribute('for');\n }\n }\n\n // Update the dataset values.\n if (oldAttrs.dataset !== newAttrs.dataset) {\n updateDataset(element, oldAttrs.dataset || {}, newAttrs.dataset || {});\n }\n\n // Update the inline styles.\n if (oldAttrs.style !== newAttrs.style) {\n updateStyle(element, oldAttrs.style || {}, newAttrs.style || {});\n }\n }\n\n /**\n * Add dataset values to a newly created HTML element.\n */\n function addDataset(element: HTMLElement, dataset: ElementDataset): void {\n for (let name in dataset) {\n element.setAttribute(`data-${name}`, dataset[name]);\n }\n }\n\n /**\n * Update the dataset values of an HTML element.\n */\n function updateDataset(\n element: HTMLElement,\n oldDataset: ElementDataset,\n newDataset: ElementDataset\n ): void {\n for (let name in oldDataset) {\n if (!(name in newDataset)) {\n element.removeAttribute(`data-${name}`);\n }\n }\n for (let name in newDataset) {\n if (oldDataset[name] !== newDataset[name]) {\n element.setAttribute(`data-${name}`, newDataset[name]);\n }\n }\n }\n\n /**\n * Add inline style values to a newly created HTML element.\n */\n function addStyle(element: HTMLElement, style: ElementInlineStyle): void {\n let elemStyle = element.style;\n let name: keyof ElementInlineStyle;\n for (name in style) {\n (elemStyle as any)[name] = style[name];\n }\n }\n\n /**\n * Update the inline style values of an HTML element.\n */\n function updateStyle(\n element: HTMLElement,\n oldStyle: ElementInlineStyle,\n newStyle: ElementInlineStyle\n ): void {\n let elemStyle = element.style;\n let name: keyof ElementInlineStyle;\n for (name in oldStyle) {\n if (!(name in newStyle)) {\n (elemStyle as any)[name] = '';\n }\n }\n for (name in newStyle) {\n if (oldStyle[name] !== newStyle[name]) {\n (elemStyle as any)[name] = newStyle[name];\n }\n }\n }\n\n /**\n * A mapping of string key to pair of element and rendered node.\n */\n type KeyMap = {\n [key: string]: { vNode: VirtualElement; element: HTMLElement };\n };\n\n /**\n * Collect a mapping of keyed elements for the host content.\n */\n function collectKeys(\n host: HTMLElement,\n content: ReadonlyArray\n ): KeyMap {\n let node = host.firstChild;\n let keyMap: KeyMap = Object.create(null);\n for (let vNode of content) {\n if (vNode.type === 'element' && vNode.attrs.key) {\n keyMap[vNode.attrs.key] = { vNode, element: node as HTMLElement };\n }\n node = node!.nextSibling;\n }\n return keyMap;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n"],"names":["VirtualDOM","Private","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","content","type","this","tag","attrs","children","renderer","undefined","TypeError","String","__","constructor","create","VirtualElement","h","i","n","arguments","length","arg","push","VirtualText","extend","array","values","child","hpass","Error","VirtualElementPass","a","bind","abbr","address","area","article","aside","audio","bdi","bdo","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hr","iframe","img","input","ins","kbd","label","legend","li","main","map","mark","meter","nav","noscript","object","ol","optgroup","option","output","param","pre","progress","q","rp","rt","ruby","s","samp","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var_","video","wbr","realize","node","createDOMNode","render","host","oldContent","hostMap","get","newContent","asContentArray","set","updateContent","before","insertBefore","document","createTextNode","addAttrs","createElement","removeContent","newCount","_sentinel","oldNode","lastChild","childNodes","unrender","removeChild","WeakMap","value","oldKeyed","firstChild","keyMap","vNode","key","element","nextSibling","collectKeys","oldCopy","slice","currElem","oldVNode","newVNode","newKey","pair","ArrayExt","indexOf","oldKey","updateAttrs","textContent","specialAttrs","className","htmlFor","dataset","style","substr","setAttribute","addDataset","name","elemStyle","addStyle","oldAttrs","newAttrs","removeAttribute","oldDataset","newDataset","updateDataset","oldStyle","newStyle","updateStyle"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5489.848a8cf.js b/_static/build/5489.848a8cf.js new file mode 100644 index 0000000..3b0e8d3 --- /dev/null +++ b/_static/build/5489.848a8cf.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5489],{83635:(c,t,n)=>{n.d(t,{Z:()=>s});var o=n(34663),A=n.n(o),e=n(7638),r=n.n(e)()(A());r.push([c.id,".cm-s-ttcn .cm-quote { color: #090; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-link { text-decoration: underline; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\n\n.cm-s-ttcn .cm-atom { color: #219; }\n.cm-s-ttcn .cm-attribute { color: #00c; }\n.cm-s-ttcn .cm-bracket { color: #997; }\n.cm-s-ttcn .cm-comment { color: #333333; }\n.cm-s-ttcn .cm-def { color: #00f; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-error { color: #f00; }\n.cm-s-ttcn .cm-hr { color: #999; }\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\n.cm-s-ttcn .cm-meta { color: #555; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-qualifier { color: #555; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-string { color: #006400; }\n.cm-s-ttcn .cm-string-2 { color: #f50; }\n.cm-s-ttcn .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-tag { color: #170; }\n.cm-s-ttcn .cm-variable { color: #8B2252; }\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\n\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n\n/* ASN */\n.cm-s-ttcn .cm-accessTypes,\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\n.cm-s-ttcn .cm-status { color:#8B4545; }\n.cm-s-ttcn .cm-storage { color:#A020F0; }\n.cm-s-ttcn .cm-tags { color:#006400; }\n\n/* CFG */\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\n\n/* TTCN */\n.cm-s-ttcn .cm-booleanConsts,\n.cm-s-ttcn .cm-otherConsts,\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\n.cm-s-ttcn .cm-configOps,\n.cm-s-ttcn .cm-functionOps,\n.cm-s-ttcn .cm-portOps,\n.cm-s-ttcn .cm-sutOps,\n.cm-s-ttcn .cm-timerOps,\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\n.cm-s-ttcn .cm-preprocessor,\n.cm-s-ttcn .cm-templateMatch,\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/ttcn.css"],names:[],mappings:"AAAA,uBAAuB,WAAW,EAAE;AACpC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,oCAAoC,iBAAiB,EAAE;AACvD,oBAAoB,kBAAkB,EAAE;AACxC,sBAAsB,0BAA0B,EAAE;AAClD,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,WAAW,EAAE,iBAAiB,EAAE;;AAExD,sBAAsB,WAAW,EAAE;AACnC,2BAA2B,WAAW,EAAE;AACxC,yBAAyB,WAAW,EAAE;AACtC,yBAAyB,cAAc,EAAE;AACzC,qBAAqB,WAAW,EAAE;AAClC,oBAAoB,kBAAkB,EAAE;AACxC,uBAAuB,WAAW,EAAE;AACpC,oBAAoB,WAAW,EAAE;AACjC,6BAA6B,WAAW,EAAE;AAC1C,yBAAyB,gBAAgB,EAAE;AAC3C,sBAAsB,WAAW,EAAE,0BAA0B,EAAE;AAC/D,sBAAsB,WAAW,EAAE;AACnC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,2BAA2B,WAAW,EAAE;AACxC,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,cAAc,EAAE;AACxC,0BAA0B,WAAW,EAAE;AACvC,wBAAwB,iBAAiB,EAAE;AAC3C,qBAAqB,WAAW,EAAE;AAClC,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,WAAW,EAAE;AACzC,iDAAiD,WAAW,EAAE;;AAE9D,6BAA6B,WAAW,EAAE;;AAE1C,QAAQ;AACR;8BAC8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,0BAA0B,aAAa,EAAE;AACzC,wBAAwB,aAAa,EAAE;AACvC,yBAAyB,aAAa,EAAE;AACxC,sBAAsB,aAAa,EAAE;;AAErC,QAAQ;AACR,kCAAkC,cAAc,EAAE,gBAAgB,EAAE;AACpE;8BAC8B,cAAc,EAAE,gBAAgB,EAAE;;AAEhE,SAAS;AACT;;+BAE+B,cAAc,EAAE;AAC/C;;;;;4BAK4B,cAAc,EAAE;AAC5C;;6BAE6B,cAAc,EAAE;AAC7C,uBAAuB,cAAc,EAAE,gBAAgB,EAAE;AACzD,qCAAqC,gBAAgB,EAAE",sourcesContent:[".cm-s-ttcn .cm-quote { color: #090; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-link { text-decoration: underline; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\n\n.cm-s-ttcn .cm-atom { color: #219; }\n.cm-s-ttcn .cm-attribute { color: #00c; }\n.cm-s-ttcn .cm-bracket { color: #997; }\n.cm-s-ttcn .cm-comment { color: #333333; }\n.cm-s-ttcn .cm-def { color: #00f; }\n.cm-s-ttcn .cm-em { font-style: italic; }\n.cm-s-ttcn .cm-error { color: #f00; }\n.cm-s-ttcn .cm-hr { color: #999; }\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\n.cm-s-ttcn .cm-meta { color: #555; }\n.cm-s-ttcn .cm-negative { color: #d44; }\n.cm-s-ttcn .cm-positive { color: #292; }\n.cm-s-ttcn .cm-qualifier { color: #555; }\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\n.cm-s-ttcn .cm-string { color: #006400; }\n.cm-s-ttcn .cm-string-2 { color: #f50; }\n.cm-s-ttcn .cm-strong { font-weight: bold; }\n.cm-s-ttcn .cm-tag { color: #170; }\n.cm-s-ttcn .cm-variable { color: #8B2252; }\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\n\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\n\n/* ASN */\n.cm-s-ttcn .cm-accessTypes,\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\n.cm-s-ttcn .cm-status { color:#8B4545; }\n.cm-s-ttcn .cm-storage { color:#A020F0; }\n.cm-s-ttcn .cm-tags { color:#006400; }\n\n/* CFG */\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\n\n/* TTCN */\n.cm-s-ttcn .cm-booleanConsts,\n.cm-s-ttcn .cm-otherConsts,\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\n.cm-s-ttcn .cm-configOps,\n.cm-s-ttcn .cm-functionOps,\n.cm-s-ttcn .cm-portOps,\n.cm-s-ttcn .cm-sutOps,\n.cm-s-ttcn .cm-timerOps,\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\n.cm-s-ttcn .cm-preprocessor,\n.cm-s-ttcn .cm-templateMatch,\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\n"],sourceRoot:""}]);const s=r},7638:c=>{c.exports=function(c){var t=[];return t.toString=function(){return this.map((function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=c(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(c,n,o,A,e){"string"==typeof c&&(c=[[null,c,void 0]]);var r={};if(o)for(var s=0;s0?" ".concat(a[5]):""," {").concat(a[1],"}")),a[5]=e),n&&(a[2]?(a[1]="@media ".concat(a[2]," {").concat(a[1],"}"),a[2]=n):a[2]=n),A&&(a[4]?(a[1]="@supports (".concat(a[4],") {").concat(a[1],"}"),a[4]=A):a[4]="".concat(A)),t.push(a))}},t}},34663:c=>{c.exports=function(c){var t=c[1],n=c[3];if(!n)return t;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),A="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),e="/*# ".concat(A," */"),r=n.sources.map((function(c){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(c," */")}));return[t].concat(r).concat([e]).join("\n")}return[t].join("\n")}},65489:(c,t,n)=>{n.r(t),n.d(t,{default:()=>C});var o=n(1892),A=n.n(o),e=n(95760),r=n.n(e),s=n(38311),m=n.n(s),i=n(58192),a=n.n(i),l=n(38060),B=n.n(l),u=n(54865),E=n.n(u),d=n(83635),p={};p.styleTagTransform=E(),p.setAttributes=a(),p.insert=m().bind(null,"head"),p.domAPI=r(),p.insertStyleElement=B(),A()(d.Z,p);const C=d.Z&&d.Z.locals?d.Z.locals:void 0},1892:c=>{var t=[];function n(c){for(var n=-1,o=0;o{var t={};c.exports=function(c,n){var o=function(c){if(void 0===t[c]){var n=document.querySelector(c);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(c){n=null}t[c]=n}return t[c]}(c);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},38060:c=>{c.exports=function(c){var t=document.createElement("style");return c.setAttributes(t,c.attributes),c.insert(t,c.options),t}},58192:(c,t,n)=>{c.exports=function(c){var t=n.nc;t&&c.setAttribute("nonce",t)}},95760:c=>{c.exports=function(c){var t=c.insertStyleElement(c);return{update:function(n){!function(c,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var A=void 0!==n.layer;A&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,A&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var e=n.sourceMap;e&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(e))))," */")),t.styleTagTransform(o,c,t.options)}(t,c,n)},remove:function(){!function(c){if(null===c.parentNode)return!1;c.parentNode.removeChild(c)}(t)}}}},54865:c=>{c.exports=function(c,t){if(t.styleSheet)t.styleSheet.cssText=c;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(c))}}}}]); +//# sourceMappingURL=5489.848a8cf.js.map \ No newline at end of file diff --git a/_static/build/5489.848a8cf.js.map b/_static/build/5489.848a8cf.js.map new file mode 100644 index 0000000..7a3c27f --- /dev/null +++ b/_static/build/5489.848a8cf.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5489.848a8cf.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ttcn.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ttcn.css?efdb","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-ttcn .cm-quote { color: #090; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-link { text-decoration: underline; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\\n\\n.cm-s-ttcn .cm-atom { color: #219; }\\n.cm-s-ttcn .cm-attribute { color: #00c; }\\n.cm-s-ttcn .cm-bracket { color: #997; }\\n.cm-s-ttcn .cm-comment { color: #333333; }\\n.cm-s-ttcn .cm-def { color: #00f; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-error { color: #f00; }\\n.cm-s-ttcn .cm-hr { color: #999; }\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\\n.cm-s-ttcn .cm-meta { color: #555; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-qualifier { color: #555; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-string { color: #006400; }\\n.cm-s-ttcn .cm-string-2 { color: #f50; }\\n.cm-s-ttcn .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-tag { color: #170; }\\n.cm-s-ttcn .cm-variable { color: #8B2252; }\\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\\n\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n\\n/* ASN */\\n.cm-s-ttcn .cm-accessTypes,\\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\\n.cm-s-ttcn .cm-status { color:#8B4545; }\\n.cm-s-ttcn .cm-storage { color:#A020F0; }\\n.cm-s-ttcn .cm-tags { color:#006400; }\\n\\n/* CFG */\\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\\n\\n/* TTCN */\\n.cm-s-ttcn .cm-booleanConsts,\\n.cm-s-ttcn .cm-otherConsts,\\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\\n.cm-s-ttcn .cm-configOps,\\n.cm-s-ttcn .cm-functionOps,\\n.cm-s-ttcn .cm-portOps,\\n.cm-s-ttcn .cm-sutOps,\\n.cm-s-ttcn .cm-timerOps,\\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\\n.cm-s-ttcn .cm-preprocessor,\\n.cm-s-ttcn .cm-templateMatch,\\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/ttcn.css\"],\"names\":[],\"mappings\":\"AAAA,uBAAuB,WAAW,EAAE;AACpC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,oCAAoC,iBAAiB,EAAE;AACvD,oBAAoB,kBAAkB,EAAE;AACxC,sBAAsB,0BAA0B,EAAE;AAClD,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,WAAW,EAAE,iBAAiB,EAAE;;AAExD,sBAAsB,WAAW,EAAE;AACnC,2BAA2B,WAAW,EAAE;AACxC,yBAAyB,WAAW,EAAE;AACtC,yBAAyB,cAAc,EAAE;AACzC,qBAAqB,WAAW,EAAE;AAClC,oBAAoB,kBAAkB,EAAE;AACxC,uBAAuB,WAAW,EAAE;AACpC,oBAAoB,WAAW,EAAE;AACjC,6BAA6B,WAAW,EAAE;AAC1C,yBAAyB,gBAAgB,EAAE;AAC3C,sBAAsB,WAAW,EAAE,0BAA0B,EAAE;AAC/D,sBAAsB,WAAW,EAAE;AACnC,0BAA0B,WAAW,EAAE;AACvC,0BAA0B,WAAW,EAAE;AACvC,2BAA2B,WAAW,EAAE;AACxC,+BAA+B,6BAA6B,EAAE;AAC9D,wBAAwB,cAAc,EAAE;AACxC,0BAA0B,WAAW,EAAE;AACvC,wBAAwB,iBAAiB,EAAE;AAC3C,qBAAqB,WAAW,EAAE;AAClC,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,WAAW,EAAE;AACzC,iDAAiD,WAAW,EAAE;;AAE9D,6BAA6B,WAAW,EAAE;;AAE1C,QAAQ;AACR;8BAC8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,0BAA0B,aAAa,EAAE;AACzC,wBAAwB,aAAa,EAAE;AACvC,yBAAyB,aAAa,EAAE;AACxC,sBAAsB,aAAa,EAAE;;AAErC,QAAQ;AACR,kCAAkC,cAAc,EAAE,gBAAgB,EAAE;AACpE;8BAC8B,cAAc,EAAE,gBAAgB,EAAE;;AAEhE,SAAS;AACT;;+BAE+B,cAAc,EAAE;AAC/C;;;;;4BAK4B,cAAc,EAAE;AAC5C;;6BAE6B,cAAc,EAAE;AAC7C,uBAAuB,cAAc,EAAE,gBAAgB,EAAE;AACzD,qCAAqC,gBAAgB,EAAE\",\"sourcesContent\":[\".cm-s-ttcn .cm-quote { color: #090; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-link { text-decoration: underline; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }\\n\\n.cm-s-ttcn .cm-atom { color: #219; }\\n.cm-s-ttcn .cm-attribute { color: #00c; }\\n.cm-s-ttcn .cm-bracket { color: #997; }\\n.cm-s-ttcn .cm-comment { color: #333333; }\\n.cm-s-ttcn .cm-def { color: #00f; }\\n.cm-s-ttcn .cm-em { font-style: italic; }\\n.cm-s-ttcn .cm-error { color: #f00; }\\n.cm-s-ttcn .cm-hr { color: #999; }\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n.cm-s-ttcn .cm-keyword { font-weight:bold; }\\n.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }\\n.cm-s-ttcn .cm-meta { color: #555; }\\n.cm-s-ttcn .cm-negative { color: #d44; }\\n.cm-s-ttcn .cm-positive { color: #292; }\\n.cm-s-ttcn .cm-qualifier { color: #555; }\\n.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }\\n.cm-s-ttcn .cm-string { color: #006400; }\\n.cm-s-ttcn .cm-string-2 { color: #f50; }\\n.cm-s-ttcn .cm-strong { font-weight: bold; }\\n.cm-s-ttcn .cm-tag { color: #170; }\\n.cm-s-ttcn .cm-variable { color: #8B2252; }\\n.cm-s-ttcn .cm-variable-2 { color: #05a; }\\n.cm-s-ttcn .cm-variable-3, .cm-s-ttcn .cm-type { color: #085; }\\n\\n.cm-s-ttcn .cm-invalidchar { color: #f00; }\\n\\n/* ASN */\\n.cm-s-ttcn .cm-accessTypes,\\n.cm-s-ttcn .cm-compareTypes { color: #27408B; }\\n.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }\\n.cm-s-ttcn .cm-modifier { color:#D2691E; }\\n.cm-s-ttcn .cm-status { color:#8B4545; }\\n.cm-s-ttcn .cm-storage { color:#A020F0; }\\n.cm-s-ttcn .cm-tags { color:#006400; }\\n\\n/* CFG */\\n.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }\\n.cm-s-ttcn .cm-fileNCtrlMaskOptions,\\n.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }\\n\\n/* TTCN */\\n.cm-s-ttcn .cm-booleanConsts,\\n.cm-s-ttcn .cm-otherConsts,\\n.cm-s-ttcn .cm-verdictConsts { color: #006400; }\\n.cm-s-ttcn .cm-configOps,\\n.cm-s-ttcn .cm-functionOps,\\n.cm-s-ttcn .cm-portOps,\\n.cm-s-ttcn .cm-sutOps,\\n.cm-s-ttcn .cm-timerOps,\\n.cm-s-ttcn .cm-verdictOps { color: #0000FF; }\\n.cm-s-ttcn .cm-preprocessor,\\n.cm-s-ttcn .cm-templateMatch,\\n.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }\\n.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }\\n.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./ttcn.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./ttcn.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5508.317fca3.js b/_static/build/5508.317fca3.js new file mode 100644 index 0000000..72b5472 --- /dev/null +++ b/_static/build/5508.317fca3.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5508,362],{80362:(e,t,o)=>{o.r(t),o.d(t,{CellBarExtension:()=>u,CellToolbarTracker:()=>d});var l=o(2814),n=o(92877),i=o(43892),a=o(70942);const r=["text/plain","application/vnd.jupyter.stdout","application/vnd.jupyter.stderr"],s="jp-cell-toolbar",c="jp-toolbar-overlap";class d{constructor(e,t){this._isDisposed=!1,this._panel=e,this._previousActiveCell=this._panel.content.activeCell,this._toolbar=t,this._onToolbarChanged(),this._toolbar.changed.connect(this._onToolbarChanged,this),e.revealed.then((()=>this._onActiveCellChanged(e.content))),e.content.renderingLayoutChanged.connect(this._onActiveCellChanged,this),e.content.activeCellChanged.connect(this._onActiveCellChanged,this)}_onActiveCellChanged(e){this._previousActiveCell&&this._removeToolbar(this._previousActiveCell.model);const t=e.activeCell;t&&(this._addToolbar(t.model),this._previousActiveCell=t,this._updateCellForToolbarOverlap(t))}get isDisposed(){return this._isDisposed}dispose(){var e;if(this.isDisposed)return;this._isDisposed=!0,this._toolbar.changed.disconnect(this._onToolbarChanged,this);const t=null===(e=this._panel)||void 0===e?void 0:e.context.model.cells;t&&(0,i.each)(t.iter(),(e=>this._removeToolbar(e))),this._panel=null,a.Signal.clearData(this)}_addToolbar(e){const t=this._getCell(e);if(t){const e=new l.Toolbar;e.addClass("jp-cell-menu"),(0,i.toArray)(this._toolbar).forEach((({name:t,widget:o})=>{e.addItem(t,o)})),e.addClass(s),t.layout.insertWidget(0,e),t.displayChanged.connect(this._resizeEventCallback,this),t.model.contentChanged.connect(this._changedEventCallback,this)}}_getCell(e){var t;return null===(t=this._panel)||void 0===t?void 0:t.content.widgets.find((t=>t.model===e))}_findToolbarWidgets(e){return e.layout.widgets.filter((e=>e.hasClass(s)))||[]}_removeToolbar(e){const t=this._getCell(e);t&&(this._findToolbarWidgets(t).forEach((e=>e.dispose())),t.displayChanged.disconnect(this._resizeEventCallback,this)),e.contentChanged.disconnect(this._changedEventCallback,this)}_onToolbarChanged(){var e;const t=null===(e=this._panel)||void 0===e?void 0:e.content.activeCell;t&&(this._removeToolbar(t.model),this._addToolbar(t.model))}_changedEventCallback(){var e;const t=null===(e=this._panel)||void 0===e?void 0:e.content.activeCell;null!=t&&this._updateCellForToolbarOverlap(t)}_resizeEventCallback(){var e;const t=null===(e=this._panel)||void 0===e?void 0:e.content.activeCell;null!=t&&this._updateCellForToolbarOverlap(t)}_updateCellForToolbarOverlap(e){const t=e.node;t.classList.remove(c),this._cellToolbarOverlapsContents(e)&&t.classList.add(c)}_cellToolbarOverlapsContents(e){var t;const o=e.model.type,l=this._cellEditorWidgetLeft(e),n=this._cellEditorWidgetRight(e),i=this._cellToolbarLeft(e);return null!==i&&((l+n)/2>i||("markdown"===o&&e.rendered?this._markdownOverlapsToolbar(e):"default"===(null===(t=this._panel)||void 0===t?void 0:t.content.renderingLayout)?this._codeOverlapsToolbar(e):this._outputOverlapsToolbar(e)))}_markdownOverlapsToolbar(e){const t=e.inputArea.renderedInput.node.firstElementChild;if(null===t)return!1;const o=t.style.maxWidth;t.style.maxWidth="max-content";const l=t.getBoundingClientRect().right;t.style.maxWidth=o;const n=this._cellToolbarLeft(e);return null!==n&&l>n}_outputOverlapsToolbar(e){const t=e.outputArea.node;if(t){const o=t.querySelectorAll("[data-mime-type]"),l=this._cellToolbarRect(e);if(l){const{left:e,bottom:t}=l;return Array.from(o).some((o=>{const l=o.firstElementChild;if(l){const n=new Range;r.includes(o.getAttribute("data-mime-type")||"")?n.selectNodeContents(l):n.selectNode(l);const{right:i,top:a}=n.getBoundingClientRect();return i>e&&an}_cellEditorWidgetLeft(e){return e.editorWidget.node.getBoundingClientRect().left}_cellEditorWidgetRight(e){return e.editorWidget.node.getBoundingClientRect().right}_cellToolbarRect(e){const t=this._findToolbarWidgets(e);return t.length<1?null:t[0].node.getBoundingClientRect()}_cellToolbarLeft(e){var t;return(null===(t=this._cellToolbarRect(e))||void 0===t?void 0:t.left)||null}}const h=[{command:"notebook:duplicate-below",name:"duplicate-cell"},{command:"notebook:move-cell-up",name:"move-cell-up"},{command:"notebook:move-cell-down",name:"move-cell-down"},{command:"notebook:insert-cell-above",name:"insert-cell-above"},{command:"notebook:insert-cell-below",name:"insert-cell-below"},{command:"notebook:delete-cell",name:"delete-cell"}];class u{constructor(e,t){this._commands=e,this._toolbarFactory=null!=t?t:this.defaultToolbarFactory}get defaultToolbarFactory(){const e=(0,l.createDefaultFactory)(this._commands);return t=>new n.ObservableList({values:h.map((o=>({name:o.name,widget:e(u.FACTORY_NAME,t,o)})))})}createNew(e){return new d(e,this._toolbarFactory(e))}}u.FACTORY_NAME="Cell"}}]); +//# sourceMappingURL=5508.317fca3.js.map \ No newline at end of file diff --git a/_static/build/5508.317fca3.js.map b/_static/build/5508.317fca3.js.map new file mode 100644 index 0000000..fb4a540 --- /dev/null +++ b/_static/build/5508.317fca3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5508.317fca3.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/celltoolbartracker.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/554.ac98303.js b/_static/build/554.ac98303.js new file mode 100644 index 0000000..27e443f --- /dev/null +++ b/_static/build/554.ac98303.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[554],{51289:(r,o,c)=>{c.d(o,{Z:()=>t});var e=c(34663),a=c.n(e),n=c(7638),A=c.n(n)()(a());A.push([r.id,"/* Port of TextMate's Blackboard theme */\n\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\n\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\n.cm-s-blackboard .cm-variable { color: #FF6400; }\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\n.cm-s-blackboard .cm-string { color: #61CE3C; }\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\n.cm-s-blackboard .cm-header { color: #FF6400; }\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\n\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/blackboard.css"],names:[],mappings:"AAAA,wCAAwC;;AAExC,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;AACnE,2CAA2C,mBAAmB,EAAE;AAChE,gKAAgK,kCAAkC,EAAE;AACpM,+KAA+K,kCAAkC,EAAE;AACnN,uCAAuC,mBAAmB,EAAE,eAAe,EAAE;AAC7E,4CAA4C,cAAc,EAAE;AAC5D,mDAAmD,WAAW,EAAE;AAChE,0CAA0C,WAAW,EAAE;AACvD,sCAAsC,8BAA8B,EAAE;;AAEtE,+BAA+B,cAAc,EAAE;AAC/C,4BAA4B,cAAc,EAAE;AAC5C,8BAA8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,2BAA2B,cAAc,EAAE;AAC3C,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;;AAElE,qDAAqD,mBAAmB,EAAE;AAC1E,+CAA+C,sBAAsB,CAAC,sBAAsB,EAAE",sourcesContent:["/* Port of TextMate's Blackboard theme */\n\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\n\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\n.cm-s-blackboard .cm-variable { color: #FF6400; }\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\n.cm-s-blackboard .cm-string { color: #61CE3C; }\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\n.cm-s-blackboard .cm-header { color: #FF6400; }\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\n\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\n"],sourceRoot:""}]);const t=A},7638:r=>{r.exports=function(r){var o=[];return o.toString=function(){return this.map((function(o){var c="",e=void 0!==o[5];return o[4]&&(c+="@supports (".concat(o[4],") {")),o[2]&&(c+="@media ".concat(o[2]," {")),e&&(c+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),c+=r(o),e&&(c+="}"),o[2]&&(c+="}"),o[4]&&(c+="}"),c})).join("")},o.i=function(r,c,e,a,n){"string"==typeof r&&(r=[[null,r,void 0]]);var A={};if(e)for(var t=0;t0?" ".concat(i[5]):""," {").concat(i[1],"}")),i[5]=n),c&&(i[2]?(i[1]="@media ".concat(i[2]," {").concat(i[1],"}"),i[2]=c):i[2]=c),a&&(i[4]?(i[1]="@supports (".concat(i[4],") {").concat(i[1],"}"),i[4]=a):i[4]="".concat(a)),o.push(i))}},o}},34663:r=>{r.exports=function(r){var o=r[1],c=r[3];if(!c)return o;if("function"==typeof btoa){var e=btoa(unescape(encodeURIComponent(JSON.stringify(c)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(e),n="/*# ".concat(a," */"),A=c.sources.map((function(r){return"/*# sourceURL=".concat(c.sourceRoot||"").concat(r," */")}));return[o].concat(A).concat([n]).join("\n")}return[o].join("\n")}},20554:(r,o,c)=>{c.r(o),c.d(o,{default:()=>k});var e=c(1892),a=c.n(e),n=c(95760),A=c.n(n),t=c(38311),s=c.n(t),l=c(58192),i=c.n(l),d=c(38060),b=c.n(d),m=c(54865),C=c.n(m),u=c(51289),E={};E.styleTagTransform=C(),E.setAttributes=i(),E.insert=s().bind(null,"head"),E.domAPI=A(),E.insertStyleElement=b(),a()(u.Z,E);const k=u.Z&&u.Z.locals?u.Z.locals:void 0},1892:r=>{var o=[];function c(r){for(var c=-1,e=0;e{var o={};r.exports=function(r,c){var e=function(r){if(void 0===o[r]){var c=document.querySelector(r);if(window.HTMLIFrameElement&&c instanceof window.HTMLIFrameElement)try{c=c.contentDocument.head}catch(r){c=null}o[r]=c}return o[r]}(r);if(!e)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");e.appendChild(c)}},38060:r=>{r.exports=function(r){var o=document.createElement("style");return r.setAttributes(o,r.attributes),r.insert(o,r.options),o}},58192:(r,o,c)=>{r.exports=function(r){var o=c.nc;o&&r.setAttribute("nonce",o)}},95760:r=>{r.exports=function(r){var o=r.insertStyleElement(r);return{update:function(c){!function(r,o,c){var e="";c.supports&&(e+="@supports (".concat(c.supports,") {")),c.media&&(e+="@media ".concat(c.media," {"));var a=void 0!==c.layer;a&&(e+="@layer".concat(c.layer.length>0?" ".concat(c.layer):""," {")),e+=c.css,a&&(e+="}"),c.media&&(e+="}"),c.supports&&(e+="}");var n=c.sourceMap;n&&"undefined"!=typeof btoa&&(e+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n))))," */")),o.styleTagTransform(e,r,o.options)}(o,r,c)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(o)}}}},54865:r=>{r.exports=function(r,o){if(o.styleSheet)o.styleSheet.cssText=r;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=554.ac98303.js.map \ No newline at end of file diff --git a/_static/build/554.ac98303.js.map b/_static/build/554.ac98303.js.map new file mode 100644 index 0000000..69c4165 --- /dev/null +++ b/_static/build/554.ac98303.js.map @@ -0,0 +1 @@ +{"version":3,"file":"554.ac98303.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/blackboard.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/blackboard.css?e17e","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/* Port of TextMate's Blackboard theme */\\n\\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\\n\\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\\n.cm-s-blackboard .cm-variable { color: #FF6400; }\\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\\n.cm-s-blackboard .cm-string { color: #61CE3C; }\\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\\n.cm-s-blackboard .cm-header { color: #FF6400; }\\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\\n\\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/blackboard.css\"],\"names\":[],\"mappings\":\"AAAA,wCAAwC;;AAExC,8BAA8B,mBAAmB,EAAE,cAAc,EAAE;AACnE,2CAA2C,mBAAmB,EAAE;AAChE,gKAAgK,kCAAkC,EAAE;AACpM,+KAA+K,kCAAkC,EAAE;AACnN,uCAAuC,mBAAmB,EAAE,eAAe,EAAE;AAC7E,4CAA4C,cAAc,EAAE;AAC5D,mDAAmD,WAAW,EAAE;AAChE,0CAA0C,WAAW,EAAE;AACvD,sCAAsC,8BAA8B,EAAE;;AAEtE,+BAA+B,cAAc,EAAE;AAC/C,4BAA4B,cAAc,EAAE;AAC5C,8BAA8B,cAAc,EAAE;AAC9C,2BAA2B,cAAc,EAAE;AAC3C,gCAAgC,cAAc,EAAE;AAChD,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,8BAA8B,cAAc,EAAE;AAC9C,gCAAgC,cAAc,EAAE;AAChD,4BAA4B,cAAc,EAAE;AAC5C,+BAA+B,cAAc,EAAE;AAC/C,2BAA2B,cAAc,EAAE;AAC3C,iCAAiC,cAAc,EAAE;AACjD,8BAA8B,cAAc,EAAE;AAC9C,0BAA0B,cAAc,EAAE;AAC1C,4BAA4B,cAAc,EAAE;AAC5C,6BAA6B,mBAAmB,EAAE,cAAc,EAAE;;AAElE,qDAAqD,mBAAmB,EAAE;AAC1E,+CAA+C,sBAAsB,CAAC,sBAAsB,EAAE\",\"sourcesContent\":[\"/* Port of TextMate's Blackboard theme */\\n\\n.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }\\n.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }\\n.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }\\n.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }\\n.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }\\n.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }\\n.cm-s-blackboard .CodeMirror-linenumber { color: #888; }\\n.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }\\n\\n.cm-s-blackboard .cm-keyword { color: #FBDE2D; }\\n.cm-s-blackboard .cm-atom { color: #D8FA3C; }\\n.cm-s-blackboard .cm-number { color: #D8FA3C; }\\n.cm-s-blackboard .cm-def { color: #8DA6CE; }\\n.cm-s-blackboard .cm-variable { color: #FF6400; }\\n.cm-s-blackboard .cm-operator { color: #FBDE2D; }\\n.cm-s-blackboard .cm-comment { color: #AEAEAE; }\\n.cm-s-blackboard .cm-string { color: #61CE3C; }\\n.cm-s-blackboard .cm-string-2 { color: #61CE3C; }\\n.cm-s-blackboard .cm-meta { color: #D8FA3C; }\\n.cm-s-blackboard .cm-builtin { color: #8DA6CE; }\\n.cm-s-blackboard .cm-tag { color: #8DA6CE; }\\n.cm-s-blackboard .cm-attribute { color: #8DA6CE; }\\n.cm-s-blackboard .cm-header { color: #FF6400; }\\n.cm-s-blackboard .cm-hr { color: #AEAEAE; }\\n.cm-s-blackboard .cm-link { color: #8DA6CE; }\\n.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }\\n\\n.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }\\n.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./blackboard.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./blackboard.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/555.2cd31dd.js b/_static/build/555.2cd31dd.js new file mode 100644 index 0000000..4342d02 --- /dev/null +++ b/_static/build/555.2cd31dd.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[555,3151],{53151:(t,e,s)=>{s.r(e),s.d(e,{ISettings:()=>l,Settings:()=>o});var a=s(55941),r=s(7537),i=s(26169);const n="JupyterLite Storage";class o{constructor(t){this._storageName=n,this._storageDrivers=null,this._localforage=t.localforage,this._storageName=t.storageName||n,this._storageDrivers=t.storageDrivers||null,this._ready=new i.PromiseDelegate}get ready(){return this._ready.promise}get storage(){return this.ready.then((()=>this._storage))}async initialize(){await this.initStorage(),this._ready.resolve(void 0)}async initStorage(){this._storage=this.defaultSettingsStorage()}get defaultStorageOptions(){var t;const e=(null===(t=this._storageDrivers)||void 0===t?void 0:t.length)?this._storageDrivers:null;return{version:1,name:this._storageName,...e?{driver:e}:{}}}defaultSettingsStorage(){return this._localforage.createInstance({description:"Offline Storage for Settings",storeName:"settings",...this.defaultStorageOptions})}async get(t){let e=(await this.getAll()).settings.find((e=>e.id===t));return e||(e=await this._getFederated(t)),e}async getAll(){var t;const e=null!==(t=a.PageConfig.getOption("settingsUrl"))&&void 0!==t?t:"/",s=await this.storage,i=await(await fetch(a.URLExt.join(e,"all.json"))).json(),n=await Promise.all(i.map((async t=>{var e;const{id:a}=t,i=null!==(e=await s.getItem(a))&&void 0!==e?e:t.raw;return{...g.override(t),raw:i,settings:r.parse(i)}})));return{settings:n}}async save(t,e){await(await this.storage).setItem(t,e)}async _getFederated(t){var e;const[s,i]=t.split(":");if(!g.isFederated(s))return;const n=a.PageConfig.getOption("fullLabextensionsUrl"),o=a.URLExt.join(n,s,"schemas",s,`${i}.json`),l=a.URLExt.join(n,s,"package.json"),c=await(await fetch(o)).json(),d=await(await fetch(l)).json(),h=null!==(e=await(await this.storage).getItem(t))&&void 0!==e?e:"{}",u=r.parse(h)||{};return g.override({id:t,raw:h,schema:c,settings:u,version:d.version||"3.0.8"})}}var g;!function(t){const e=JSON.parse(a.PageConfig.getOption("settingsOverrides")||"{}");t.isFederated=function(t){let e;try{e=JSON.parse(a.PageConfig.getOption("federated_extensions"))}catch{return!1}for(const{name:s}of e)if(s===t)return!0;return!1},t.override=function(t){if(e[t.id]){t.schema.properties||(t.schema.properties={});for(const[s,a]of Object.entries(e[t.id]||{}))t.schema.properties[s].default=a}return t}}(g||(g={}));const l=new i.Token("@jupyterlite/settings:ISettings")}}]); +//# sourceMappingURL=555.2cd31dd.js.map \ No newline at end of file diff --git a/_static/build/555.2cd31dd.js.map b/_static/build/555.2cd31dd.js.map new file mode 100644 index 0000000..2a99dc7 --- /dev/null +++ b/_static/build/555.2cd31dd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"555.2cd31dd.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/settings/src/settings.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/settings/src/tokens.ts"],"sourcesContent":["import { PageConfig, URLExt } from '@jupyterlab/coreutils';\n\nimport * as json5 from 'json5';\n\nimport type localforage from 'localforage';\n\nimport { IFederatedExtension } from '@jupyterlite/types';\n\nimport { IPlugin, ISettings } from './tokens';\nimport { PromiseDelegate } from '@lumino/coreutils';\n\n/**\n * The name of the local storage.\n */\nconst DEFAULT_STORAGE_NAME = 'JupyterLite Storage';\n\n/**\n * A class to handle requests to /api/settings\n */\nexport class Settings implements ISettings {\n constructor(options: Settings.IOptions) {\n this._localforage = options.localforage;\n this._storageName = options.storageName || DEFAULT_STORAGE_NAME;\n this._storageDrivers = options.storageDrivers || null;\n\n this._ready = new PromiseDelegate();\n }\n\n /**\n * A promise that resolves when the settings storage is fully initialized\n */\n get ready(): Promise {\n return this._ready.promise;\n }\n\n /**\n * A lazy reference to initialized storage\n */\n protected get storage(): Promise {\n return this.ready.then(() => this._storage as LocalForage);\n }\n\n /**\n * Finish any initialization after server has started and all extensions are applied.\n */\n async initialize() {\n await this.initStorage();\n this._ready.resolve(void 0);\n }\n\n /**\n * Prepare the storage\n */\n protected async initStorage() {\n this._storage = this.defaultSettingsStorage();\n }\n\n /**\n * Get default options for localForage instances\n */\n protected get defaultStorageOptions(): LocalForageOptions {\n const driver = this._storageDrivers?.length ? this._storageDrivers : null;\n return {\n version: 1,\n name: this._storageName,\n ...(driver ? { driver } : {}),\n };\n }\n\n /**\n * Create a settings store.\n */\n protected defaultSettingsStorage(): LocalForage {\n return this._localforage.createInstance({\n description: 'Offline Storage for Settings',\n storeName: 'settings',\n ...this.defaultStorageOptions,\n });\n }\n\n /**\n * Get settings by plugin id\n *\n * @param pluginId the id of the plugin\n *\n */\n async get(pluginId: string): Promise {\n const all = await this.getAll();\n const settings = all.settings as IPlugin[];\n let found = settings.find((setting: IPlugin) => {\n return setting.id === pluginId;\n });\n\n if (!found) {\n found = await this._getFederated(pluginId);\n }\n\n return found;\n }\n\n /**\n * Get all the settings\n */\n async getAll(): Promise<{ settings: IPlugin[] }> {\n const settingsUrl = PageConfig.getOption('settingsUrl') ?? '/';\n const storage = await this.storage;\n const all = (await (\n await fetch(URLExt.join(settingsUrl, 'all.json'))\n ).json()) as IPlugin[];\n const settings = await Promise.all(\n all.map(async (plugin) => {\n const { id } = plugin;\n const raw = ((await storage.getItem(id)) as string) ?? plugin.raw;\n return {\n ...Private.override(plugin),\n raw,\n settings: json5.parse(raw),\n };\n })\n );\n return { settings };\n }\n\n /**\n * Save settings for a given plugin id\n *\n * @param pluginId The id of the plugin\n * @param raw The raw settings\n *\n */\n async save(pluginId: string, raw: string): Promise {\n await (await this.storage).setItem(pluginId, raw);\n }\n\n /**\n * Get the settings for a federated extension\n *\n * @param pluginId The id of a plugin\n */\n private async _getFederated(pluginId: string): Promise {\n const [packageName, schemaName] = pluginId.split(':');\n\n if (!Private.isFederated(packageName)) {\n return;\n }\n\n const labExtensionsUrl = PageConfig.getOption('fullLabextensionsUrl');\n const schemaUrl = URLExt.join(\n labExtensionsUrl,\n packageName,\n 'schemas',\n packageName,\n `${schemaName}.json`\n );\n const packageUrl = URLExt.join(labExtensionsUrl, packageName, 'package.json');\n const schema = await (await fetch(schemaUrl)).json();\n const packageJson = await (await fetch(packageUrl)).json();\n const raw = ((await (await this.storage).getItem(pluginId)) as string) ?? '{}';\n const settings = json5.parse(raw) || {};\n return Private.override({\n id: pluginId,\n raw,\n schema,\n settings,\n version: packageJson.version || '3.0.8',\n });\n }\n\n private _storageName: string = DEFAULT_STORAGE_NAME;\n private _storageDrivers: string[] | null = null;\n private _storage: LocalForage | undefined;\n private _localforage: typeof localforage;\n private _ready: PromiseDelegate;\n}\n\n/**\n * A namespace for settings metadata.\n */\nexport namespace Settings {\n /**\n * Initialization options for settings.\n */\n export interface IOptions {\n localforage: typeof localforage;\n storageName?: string | null;\n storageDrivers?: string[] | null;\n }\n}\n\n/**\n * A namespace for private data\n */\nnamespace Private {\n const _overrides: Record = JSON.parse(\n PageConfig.getOption('settingsOverrides') || '{}'\n );\n\n /**\n * Test whether this package is configured in `federated_extensions` in this app\n *\n * @param packageName The npm name of a package\n */\n export function isFederated(packageName: string): boolean {\n let federated: IFederatedExtension[];\n\n try {\n federated = JSON.parse(PageConfig.getOption('federated_extensions'));\n } catch {\n return false;\n }\n\n for (const { name } of federated) {\n if (name === packageName) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Override the defaults of the schema with ones from PageConfig\n *\n * @see https://github.com/jupyterlab/jupyterlab_server/blob/v2.5.2/jupyterlab_server/settings_handler.py#L216-L227\n */\n export function override(plugin: IPlugin): IPlugin {\n if (_overrides[plugin.id]) {\n if (!plugin.schema.properties) {\n // probably malformed, or only provides keyboard shortcuts, etc.\n plugin.schema.properties = {};\n }\n for (const [prop, propDefault] of Object.entries(_overrides[plugin.id] || {})) {\n plugin.schema.properties[prop].default = propDefault;\n }\n }\n return plugin;\n }\n}\n","import { ISettingRegistry } from '@jupyterlab/settingregistry';\n\nimport { JSONObject, PartialJSONObject, Token } from '@lumino/coreutils';\n\n/**\n * The token for the settings service.\n */\nexport const ISettings = new Token('@jupyterlite/settings:ISettings');\n\n/**\n * An interface for the plugin settings.\n */\nexport interface IPlugin extends PartialJSONObject {\n /**\n * The name of the plugin.\n */\n id: string;\n\n /**\n * The settings for the plugin.\n */\n settings: JSONObject;\n\n /**\n * The raw user settings data as a string containing JSON with comments.\n */\n raw: string;\n\n /**\n * The JSON schema for the plugin.\n */\n schema: ISettingRegistry.ISchema;\n\n /**\n * The published version of the NPM package containing the plugin.\n */\n version: string;\n}\n\n/**\n * The interface for the Settings service.\n */\nexport interface ISettings {\n /**\n * A promise that resolves after the settings have been full initialized\n */\n ready: Promise;\n\n /**\n * Get settings by plugin id\n *\n * @param pluginId the id of the plugin\n *\n */\n get(pluginId: string): Promise;\n\n /**\n * Get all the settings\n */\n getAll(): Promise<{ settings: IPlugin[] }>;\n\n /**\n * Save settings for a given plugin id\n *\n * @param pluginId The id of the plugin\n * @param raw The raw settings\n *\n */\n save(pluginId: string, raw: string): Promise;\n}\n"],"names":["DEFAULT_STORAGE_NAME","Settings","constructor","options","_storageName","_storageDrivers","this","_localforage","localforage","storageName","storageDrivers","_ready","PromiseDelegate","ready","promise","storage","then","_storage","async","initStorage","resolve","defaultSettingsStorage","defaultStorageOptions","driver","length","version","name","createInstance","description","storeName","pluginId","found","getAll","settings","find","setting","id","_getFederated","settingsUrl","PageConfig","all","fetch","URLExt","json","Promise","map","plugin","raw","getItem","Private","override","setItem","packageName","schemaName","split","isFederated","labExtensionsUrl","schemaUrl","packageUrl","schema","packageJson","_overrides","JSON","parse","federated","properties","prop","propDefault","Object","entries","default","ISettings","Token"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5573.ebcdb93.js b/_static/build/5573.ebcdb93.js new file mode 100644 index 0000000..ab3d30c --- /dev/null +++ b/_static/build/5573.ebcdb93.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5573],{65573:(e,t,s)=>{s.r(t),s.d(t,{GroupItem:()=>h,IStatusBar:()=>se,KernelStatus:()=>L,LineCol:()=>J,Popup:()=>j,ProgressBar:()=>N,ProgressCircle:()=>B,RunningSessions:()=>Q,StatusBar:()=>te,TextItem:()=>R,clickedItem:()=>S,interactiveItem:()=>w,item:()=>k,leftSide:()=>f,rightSide:()=>y,showPopup:()=>I,side:()=>x,statusBar:()=>b});var n=s(62471),i=s.n(n),a=s(82161);const r={display:"flex",alignItems:"center"},o={flexDirection:"row"};const l=(0,a.oB)(r,o);function h(e){const{spacing:t,children:s,className:i}=e,r=function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i0===s?n.createElement("div",{style:{marginRight:`${t}px`}},e):s===o-1?n.createElement("div",{style:{marginLeft:`${t}px`}},e):n.createElement("div",{style:{margin:`0px ${t}px`}},e))))}var d=s(2814),c=s(94519);const u="var(--jp-statusbar-height)",m="var(--jp-ui-font-color1)",p="10px",g=(0,a.oB)({fontSize:"var(--jp-ui-font-size1)",fontFamily:"var(--jp-ui-font-family)"},{lineHeight:"24px",color:m}),_={paddingLeft:"6px",paddingRight:"6px"},v={$nest:{"&:hover":{backgroundColor:"var(--jp-layout-color3)"}}},C={backgroundColor:"var(--jp-brand-color1)",$nest:{["."+g]:{color:"white"}}},b=(0,a.oB)({background:"var(--jp-layout-color2)",minHeight:u,justifyContent:"space-between",paddingLeft:p,paddingRight:p},r),x=(0,a.oB)(r),f=(0,a.oB)(o),y=(0,a.oB)({flexDirection:"row-reverse"}),k=(0,a.oB)({maxHeight:u,marginLeft:"2px",marginRight:"2px",height:u,whiteSpace:"nowrap",textOverflow:"ellipsis",color:m},_),S=(0,a.oB)(C),w=(0,a.oB)(v),E=(0,a.oB)({boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"});function I(e){const t=new j(e);return t.launch(),t}class j extends c.Widget{constructor(e){super(),this._body=e.body,this._body.addClass(E),this._anchor=e.anchor,this._align=e.align,(this.layout=new c.PanelLayout).addWidget(e.body),this._body.node.addEventListener("resize",(()=>{this.update()}))}launch(){this._setGeometry(),c.Widget.attach(this,document.body),this.update(),this._anchor.addClass(S),this._anchor.removeClass(w)}onUpdateRequest(e){this._setGeometry(),super.onUpdateRequest(e)}onAfterAttach(e){document.addEventListener("click",this,!1),this.node.addEventListener("keydown",this,!1),window.addEventListener("resize",this,!1)}onAfterDetach(e){document.removeEventListener("click",this,!1),this.node.removeEventListener("keydown",this,!1),window.removeEventListener("resize",this,!1)}onResize(){this.update()}dispose(){super.dispose(),this._anchor.removeClass(S),this._anchor.addClass(w)}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"click":this._evtClick(e);break;case"resize":this.onResize()}}_evtClick(e){!e.target||this._body.node.contains(e.target)||this._anchor.node.contains(e.target)||this.dispose()}_evtKeydown(e){27===e.keyCode&&(e.stopPropagation(),e.preventDefault(),this.dispose())}_setGeometry(){let e=0;const t=this._anchor.node.getBoundingClientRect(),s=this._body.node.getBoundingClientRect();"right"===this._align&&(e=-(s.width-t.width));const n=window.getComputedStyle(this._body.node);d.HoverBox.setGeometry({anchor:t,host:document.body,maxHeight:500,minHeight:20,node:this._body.node,offset:{horizontal:e},privilege:"forceAbove",style:n})}}function N(e){const{width:t,percentage:s}=e,i=function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(e);i{const t=Math.max(3.6*e,.1),s=t*Math.PI/180,n=104*Math.sin(s),i=-104*Math.cos(s);return"M 0 0 v -104 A 104 104 1 "+(t<180?1:0)+" 0 "+n.toFixed(4)+" "+i.toFixed(4)+" z"})(e.progress),fill:"var(--jp-inverse-layout-color3)"})))}var P=s(4265),A=s(26169);function D(e){const t=(e.translator||P.nullTranslator).load("jupyterlab");let s="";return e.status&&(s=` | ${e.status}`),i().createElement(R,{onClick:e.handleClick,source:`${e.kernelName}${s}`,title:t.__("Change kernel for %1",e.activityName)})}class L extends d.VDomRenderer{constructor(e,t){super(new L.Model(t)),this.translator=t||P.nullTranslator,this._handleClick=e.onClick,this.addClass(w)}render(){return null===this.model?null:i().createElement(D,{status:this.model.status,kernelName:this.model.kernelName,activityName:this.model.activityName,handleClick:this._handleClick,translator:this.translator})}}!function(e){class t extends d.VDomModel{constructor(e){super(),this._activityName="activity",this._kernelStatus="",this._sessionContext=null,e=e||P.nullTranslator,this._trans=e.load("jupyterlab"),this._kernelName=this._trans.__("No Kernel!"),this._statusNames=(0,d.translateKernelStatuses)(e)}get kernelName(){return this._kernelName}get status(){return this._kernelStatus?this._statusNames[this._kernelStatus]:void 0}get activityName(){return this._activityName}set activityName(e){this._activityName!==e&&(this._activityName=e,this.stateChanged.emit(void 0))}get sessionContext(){return this._sessionContext}set sessionContext(e){var t,s,n,i;null===(t=this._sessionContext)||void 0===t||t.statusChanged.disconnect(this._onKernelStatusChanged,this),null===(s=this._sessionContext)||void 0===s||s.connectionStatusChanged.disconnect(this._onKernelStatusChanged,this),null===(n=this._sessionContext)||void 0===n||n.kernelChanged.disconnect(this._onKernelChanged,this);const a=this._getAllState();this._sessionContext=e,this._kernelStatus=null==e?void 0:e.kernelDisplayStatus,this._kernelName=null!==(i=null==e?void 0:e.kernelDisplayName)&&void 0!==i?i:this._trans.__("No Kernel"),null==e||e.statusChanged.connect(this._onKernelStatusChanged,this),null==e||e.connectionStatusChanged.connect(this._onKernelStatusChanged,this),null==e||e.kernelChanged.connect(this._onKernelChanged,this),this._triggerChange(a,this._getAllState())}_onKernelStatusChanged(){var e;this._kernelStatus=null===(e=this._sessionContext)||void 0===e?void 0:e.kernelDisplayStatus,this.stateChanged.emit(void 0)}_onKernelChanged(e,t){var s;const n=this._getAllState();this._kernelStatus=null===(s=this._sessionContext)||void 0===s?void 0:s.kernelDisplayStatus,this._kernelName=e.kernelDisplayName,this._triggerChange(n,this._getAllState())}_getAllState(){return[this._kernelName,this._kernelStatus,this._activityName]}_triggerChange(e,t){A.JSONExt.deepEqual(e,t)&&this.stateChanged.emit(void 0)}}e.Model=t}(L||(L={}));var M=s(59674);(0,a.oB)({boxShadow:"0px 4px 4px rgba(0, 0, 0, 0.25)"});const T=(0,a.oB)({padding:"4px 12px",backgroundColor:"var(--jp-layout-color2)",boxShadow:"var(--jp-toolbar-box-shadow)",zIndex:2,fontSize:"var(--jp-ui-font-size1)"}),z=(0,a.oB)({fontSize:"var(--jp-ui-font-size0)",lineHeight:"var(--jp-ui-font-size1)",marginTop:"4px",color:"var(--jp-ui-font-color0)"}),F={border:"none",borderRadius:"0px",position:"absolute",backgroundSize:"16px",backgroundRepeat:"no-repeat",backgroundPosition:"center",outline:"none",top:"0px",right:"0px"},K=(0,a.oB)(F,{top:"4px",right:"8px",height:"24px",padding:"0px 12px",width:"12px"}),W=(0,a.oB)(F,{backgroundColor:"var(--jp-brand-color1)",height:"100%",width:"100%",boxSizing:"border-box",padding:"4px 6px"}),U=(0,a.oB)(F,{backgroundColor:"transparent",height:"100%",width:"100%",boxSizing:"border-box"}),$=(0,a.oB)({overflow:"hidden",padding:"0px 8px",border:"1px solid var(--jp-border-color0)",backgroundColor:"var(--jp-input-active-background)",height:"22px"}),H=(0,a.oB)({border:"var(--jp-border-width) solid var(--md-blue-500)",boxShadow:"inset 0 0 4px var(--md-blue-300)"}),G=(0,a.oB)({background:"transparent",width:"200px",height:"100%",border:"none",outline:"none",color:"var(--jp-ui-font-color0)",lineHeight:"28px"});class V extends i().Component{constructor(e){super(e),this._handleChange=e=>{this.setState({value:e.currentTarget.value})},this._handleSubmit=e=>{e.preventDefault();const t=parseInt(this._textInput.value,10);return!isNaN(t)&&isFinite(t)&&1<=t&&t<=this.props.maxLine&&this.props.handleSubmit(t),!1},this._handleFocus=()=>{this.setState({hasFocus:!0})},this._handleBlur=()=>{this.setState({hasFocus:!1})},this._textInput=null,this.translator=e.translator||P.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.state={value:"",hasFocus:!1}}componentDidMount(){this._textInput.focus()}render(){return i().createElement("div",{className:T},i().createElement("form",{name:"lineColumnForm",onSubmit:this._handleSubmit,noValidate:!0},i().createElement("div",{className:(0,a.Sh)($,"lm-lineForm-wrapper",this.state.hasFocus?H:void 0)},i().createElement("input",{type:"text",className:G,onChange:this._handleChange,onFocus:this._handleFocus,onBlur:this._handleBlur,value:this.state.value,ref:e=>{this._textInput=e}}),i().createElement("div",{className:K},i().createElement(M.lineFormIcon.react,{className:W,elementPosition:"center"}),i().createElement("input",{type:"submit",className:U,value:""}))),i().createElement("label",{className:z},this._trans.__("Go to line number between 1 and %1",this.props.maxLine))))}}function q(e){const t=(e.translator||P.nullTranslator).load("jupyterlab");return i().createElement(R,{onClick:e.handleClick,source:t.__("Ln %1, Col %2",e.line,e.column),title:t.__("Go to line number…")})}class J extends d.VDomRenderer{constructor(e){super(new J.Model),this._popup=null,this.addClass(w),this.translator=e||P.nullTranslator}render(){return null===this.model?null:i().createElement(q,{line:this.model.line,column:this.model.column,translator:this.translator,handleClick:()=>this._handleClick()})}_handleClick(){this._popup&&this._popup.dispose();const e=d.ReactWidget.create(i().createElement(V,{handleSubmit:e=>this._handleSubmit(e),currentLine:this.model.line,maxLine:this.model.editor.lineCount,translator:this.translator}));this._popup=I({body:e,anchor:this,align:"right"})}_handleSubmit(e){this.model.editor.setCursorPosition({line:e-1,column:0}),this._popup.dispose(),this.model.editor.focus()}}function Y(e){return i().createElement(h,{spacing:4,onClick:e.handleClick},i().createElement(h,{spacing:4},i().createElement(R,{source:e.terminals}),i().createElement(M.terminalIcon.react,{left:"1px",top:"3px",stylesheet:"statusBar"})),i().createElement(h,{spacing:4},i().createElement(R,{source:e.sessions}),i().createElement(M.kernelIcon.react,{top:"2px",stylesheet:"statusBar"})))}!function(e){class t extends d.VDomModel{constructor(){super(...arguments),this._onSelectionChanged=()=>{const e=this._getAllState(),t=this.editor.getCursorPosition();this._line=t.line+1,this._column=t.column+1,this._triggerChange(e,this._getAllState())},this._line=1,this._column=1,this._editor=null}get editor(){return this._editor}set editor(e){var t;const s=this._editor;(null===(t=null==s?void 0:s.model)||void 0===t?void 0:t.selections)&&s.model.selections.changed.disconnect(this._onSelectionChanged);const n=this._getAllState();if(this._editor=e,this._editor){this._editor.model.selections.changed.connect(this._onSelectionChanged);const e=this._editor.getCursorPosition();this._column=e.column+1,this._line=e.line+1}else this._column=1,this._line=1;this._triggerChange(n,this._getAllState())}get line(){return this._line}get column(){return this._column}_getAllState(){return[this._line,this._column]}_triggerChange(e,t){e[0]===t[0]&&e[1]===t[1]||this.stateChanged.emit(void 0)}}e.Model=t}(J||(J={}));class Q extends d.VDomRenderer{constructor(e){super(new Q.Model),this._serviceManager=e.serviceManager,this._handleClick=e.onClick,this.translator=e.translator||P.nullTranslator,this._trans=this.translator.load("jupyterload"),this._serviceManager.sessions.runningChanged.connect(this._onSessionsRunningChanged,this),this._serviceManager.terminals.runningChanged.connect(this._onTerminalsRunningChanged,this),this.addClass(w)}render(){return this.model?(this.title.caption=this._trans.__("%1 Terminals, %2 Kernel sessions",this.model.terminals,this.model.sessions),i().createElement(Y,{sessions:this.model.sessions,terminals:this.model.terminals,handleClick:this._handleClick})):null}dispose(){super.dispose(),this._serviceManager.sessions.runningChanged.disconnect(this._onSessionsRunningChanged,this),this._serviceManager.terminals.runningChanged.disconnect(this._onTerminalsRunningChanged,this)}_onSessionsRunningChanged(e,t){this.model.sessions=t.length}_onTerminalsRunningChanged(e,t){this.model.terminals=t.length}}!function(e){class t extends d.VDomModel{constructor(){super(...arguments),this._terminals=0,this._sessions=0}get sessions(){return this._sessions}set sessions(e){const t=this._sessions;this._sessions=e,t!==this._sessions&&this.stateChanged.emit(void 0)}get terminals(){return this._terminals}set terminals(e){const t=this._terminals;this._terminals=e,t!==this._terminals&&this.stateChanged.emit(void 0)}}e.Model=t}(Q||(Q={}));var X,Z=s(43892),ee=s(43231);class te extends c.Widget{constructor(){super(),this._leftRankItems=[],this._rightRankItems=[],this._statusItems={},this._disposables=new ee.DisposableSet,this.addClass(b);const e=this.layout=new c.PanelLayout,t=this._leftSide=new c.Panel,s=this._middlePanel=new c.Panel,n=this._rightSide=new c.Panel;t.addClass(x),t.addClass(f),s.addClass(x),n.addClass(x),n.addClass(y),e.addWidget(t),e.addWidget(s),e.addWidget(n)}registerStatusItem(e,t){if(e in this._statusItems)throw new Error(`Status item ${e} already registered.`);const s=Object.assign(Object.assign({},X.statusItemDefaults),t),{align:n,item:i,rank:a}=s,r=()=>{this._refreshItem(e)};s.activeStateChanged&&s.activeStateChanged.connect(r);const o={id:e,rank:a};if(s.item.addClass(k),this._statusItems[e]=s,"left"===n){const e=this._findInsertIndex(this._leftRankItems,o);-1===e?(this._leftSide.addWidget(i),this._leftRankItems.push(o)):(Z.ArrayExt.insert(this._leftRankItems,e,o),this._leftSide.insertWidget(e,i))}else if("right"===n){const e=this._findInsertIndex(this._rightRankItems,o);-1===e?(this._rightSide.addWidget(i),this._rightRankItems.push(o)):(Z.ArrayExt.insert(this._rightRankItems,e,o),this._rightSide.insertWidget(e,i))}else this._middlePanel.addWidget(i);this._refreshItem(e);const l=new ee.DisposableDelegate((()=>{delete this._statusItems[e],s.activeStateChanged&&s.activeStateChanged.disconnect(r),i.parent=null,i.dispose()}));return this._disposables.add(l),l}dispose(){this._leftRankItems.length=0,this._rightRankItems.length=0,this._disposables.dispose(),super.dispose()}onUpdateRequest(e){this._refreshAll(),super.onUpdateRequest(e)}_findInsertIndex(e,t){return Z.ArrayExt.findFirstIndex(e,(e=>e.rank>t.rank))}_refreshItem(e){const t=this._statusItems[e];t.isActive()?(t.item.show(),t.item.update()):t.item.hide()}_refreshAll(){Object.keys(this._statusItems).forEach((e=>{this._refreshItem(e)}))}}!function(e){e.statusItemDefaults={align:"left",rank:0,isActive:()=>!0,activeStateChanged:void 0}}(X||(X={}));const se=new A.Token("@jupyterlab/statusbar:IStatusBar")}}]); +//# sourceMappingURL=5573.ebcdb93.js.map \ No newline at end of file diff --git a/_static/build/5573.ebcdb93.js.map b/_static/build/5573.ebcdb93.js.map new file mode 100644 index 0000000..54314e6 --- /dev/null +++ b/_static/build/5573.ebcdb93.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5573.ebcdb93.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/layout.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/group.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/variables.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/text.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/statusbar.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/hover.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/progressBar.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/text.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/components/progressCircle.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/defaults/kernelStatus.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/style/lineForm.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/defaults/lineCol.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/defaults/runningSessions.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/statusbar.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5666.c5e5324.js b/_static/build/5666.c5e5324.js new file mode 100644 index 0000000..83ba341 --- /dev/null +++ b/_static/build/5666.c5e5324.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5666],{75666:(e,t,i)=>{i.r(t),i.d(t,{AccordionLayout:()=>P,AccordionPanel:()=>R,BoxEngine:()=>g,BoxLayout:()=>H,BoxPanel:()=>j,BoxSizer:()=>b,CommandPalette:()=>F,ContextMenu:()=>X,DockLayout:()=>Q,DockPanel:()=>$,FocusTracker:()=>te,GridLayout:()=>ie,Layout:()=>x,LayoutItem:()=>C,Menu:()=>U,MenuBar:()=>oe,Panel:()=>B,PanelLayout:()=>E,ScrollBar:()=>se,SingletonLayout:()=>de,SplitLayout:()=>z,SplitPanel:()=>k,StackedLayout:()=>he,StackedPanel:()=>ce,TabBar:()=>G,TabPanel:()=>ue,Title:()=>_,Widget:()=>M});var n=i(43892),o=i(33349),r=i(14064),s=i(89116),a=i(70942),d=i(81563),h=i(26169),c=i(72867),l=i(93383),u=i(43231),p=i(46831),m=function(e,t){return m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},m(e,t)};function f(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}m(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var g,v=function(){return v=Object.assign||function(e){for(var t,i=1,n=arguments.length;i0&&(s+=b.stretch,a++)}if(t===r)return 0;if(t<=n){for(d=0;d=o){for(d=0;d0&&m>u;){var f=m,g=s;for(d=0;d0&&m>u;)for(v=m/p,d=0;d0&&m>u;)for(f=m,g=s,d=0;d=b.maxSize?(m-=b.maxSize-b.size,s-=b.stretch,b.size=b.maxSize,b.done=!0,p--,a--):(m-=v,b.size+=v));for(;p>0&&m>u;)for(v=m/p,d=0;d=b.maxSize?(m-=b.maxSize-b.size,b.size=b.maxSize,b.done=!0,p--):(m-=v,b.size+=v))}}return 0},e.adjust=function(e,t,i){0!==e.length&&0!==i&&(i>0?function(e,t,i){for(var n=0,o=0;o<=t;++o)n+=(h=e[o]).maxSize-h.size;for(var r=0,s=(o=t+1,e.length);o=0&&a>0;--o)(c=(h=e[o]).maxSize-h.size)>=a?(h.sizeHint=h.size+a,a=0):(h.sizeHint=h.size+c,a-=c);var d=i;for(o=t+1,s=e.length;o0;++o){var h,c;(c=(h=e[o]).size-h.minSize)>=d?(h.sizeHint=h.size-d,d=0):(h.sizeHint=h.size-c,d-=c)}}(e,t,i):function(e,t,i){for(var n=0,o=t+1,r=e.length;o0;++o)(c=(h=e[o]).maxSize-h.size)>=a?(h.sizeHint=h.size+a,a=0):(h.sizeHint=h.size+c,a-=c);var d=i;for(o=t;o>=0&&d>0;--o){var h,c;(c=(h=e[o]).size-h.minSize)>=d?(h.sizeHint=h.size-d,d=0):(h.sizeHint=h.size-c,d-=c)}}(e,t,-i))}}(g||(g={}));var y,_=function(){function e(e){this._label="",this._caption="",this._mnemonic=-1,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new a.Signal(this),this._isDisposed=!1,this.owner=e.owner,void 0!==e.label&&(this._label=e.label),void 0!==e.mnemonic&&(this._mnemonic=e.mnemonic),void 0!==e.icon?"string"==typeof e.icon?(this._icon=null,this._iconClass=e.icon):this._icon=e.icon:this._icon=null,void 0!==e.iconClass&&(this._iconClass=e.iconClass),void 0!==e.iconLabel&&(this._iconLabel=e.iconLabel),void 0!==e.iconRenderer&&(this._icon=e.iconRenderer),void 0!==e.caption&&(this._caption=e.caption),void 0!==e.className&&(this._className=e.className),void 0!==e.closable&&(this._closable=e.closable),this._dataset=e.dataset||{}}return Object.defineProperty(e.prototype,"changed",{get:function(){return this._changed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label},set:function(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"mnemonic",{get:function(){return this._mnemonic},set:function(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"icon",{get:function(){return null===this._icon?this.iconClass:this._icon},set:function(e){if("string"==typeof e)this._icon=null,this.iconClass=e;else{if(this._icon===e)return;this._icon=e,this._changed.emit(void 0)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconClass",{get:function(){return this._iconClass},set:function(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconLabel",{get:function(){return this._iconLabel},set:function(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconRenderer",{get:function(){return this._icon||void 0},set:function(e){this.icon=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"caption",{get:function(){return this._caption},set:function(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"className",{get:function(){return this._className},set:function(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"closable",{get:function(){return this._closable},set:function(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataset",{get:function(){return this._dataset},set:function(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.isDisposed||(this._isDisposed=!0,a.Signal.clearData(this))},e}(),M=function(){function e(t){void 0===t&&(t={}),this._flags=0,this._layout=null,this._parent=null,this._disposed=new a.Signal(this),this._hiddenMode=e.HiddenMode.Display,this.node=y.createNode(t),this.addClass("lm-Widget"),this.addClass("p-Widget")}return e.prototype.dispose=function(){this.isDisposed||(this.setFlag(e.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&e.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),a.Signal.clearData(this),r.MessageLoop.clearData(this),s.AttachedProperty.clearData(this))},Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this.testFlag(e.Flag.IsDisposed)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAttached",{get:function(){return this.testFlag(e.Flag.IsAttached)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHidden",{get:function(){return this.testFlag(e.Flag.IsHidden)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.testFlag(e.Flag.IsVisible)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"title",{get:function(){return y.titleProperty.get(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this.node.id},set:function(e){this.node.id=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dataset",{get:function(){return this.node.dataset},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hiddenMode",{get:function(){return this._hiddenMode},set:function(t){this._hiddenMode!==t&&(this.isHidden&&this._toggleHidden(!1),t==e.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=t,this.isHidden&&this._toggleHidden(!0))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},set:function(t){if(this._parent!==t){if(t&&this.contains(t))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){var i=new e.ChildMessage("child-removed",this);r.MessageLoop.sendMessage(this._parent,i)}this._parent=t,this._parent&&!this._parent.isDisposed&&(i=new e.ChildMessage("child-added",this),r.MessageLoop.sendMessage(this._parent,i)),this.isDisposed||r.MessageLoop.sendMessage(this,e.Msg.ParentChanged)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"layout",{get:function(){return this._layout},set:function(t){if(this._layout!==t){if(this.testFlag(e.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(t.parent)throw new Error("Cannot change layout parent.");this._layout=t,t.parent=this}},enumerable:!0,configurable:!0}),e.prototype.children=function(){return this._layout?this._layout.iter():(0,n.empty)()},e.prototype.contains=function(e){for(var t=e;t;t=t._parent)if(t===this)return!0;return!1},e.prototype.hasClass=function(e){return this.node.classList.contains(e)},e.prototype.addClass=function(e){this.node.classList.add(e)},e.prototype.removeClass=function(e){this.node.classList.remove(e)},e.prototype.toggleClass=function(e,t){return!0===t?(this.node.classList.add(e),!0):!1===t?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)},e.prototype.update=function(){r.MessageLoop.postMessage(this,e.Msg.UpdateRequest)},e.prototype.fit=function(){r.MessageLoop.postMessage(this,e.Msg.FitRequest)},e.prototype.activate=function(){r.MessageLoop.postMessage(this,e.Msg.ActivateRequest)},e.prototype.close=function(){r.MessageLoop.sendMessage(this,e.Msg.CloseRequest)},e.prototype.show=function(){if(this.testFlag(e.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.BeforeShow),this.clearFlag(e.Flag.IsHidden),this.node.removeAttribute("aria-hidden"),this._toggleHidden(!1),!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.AfterShow),this.parent)){var t=new e.ChildMessage("child-shown",this);r.MessageLoop.sendMessage(this.parent,t)}},e.prototype.hide=function(){if(!this.testFlag(e.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.BeforeHide),this.setFlag(e.Flag.IsHidden),this.node.setAttribute("aria-hidden","true"),this._toggleHidden(!0),!this.isAttached||this.parent&&!this.parent.isVisible||r.MessageLoop.sendMessage(this,e.Msg.AfterHide),this.parent)){var t=new e.ChildMessage("child-hidden",this);r.MessageLoop.sendMessage(this.parent,t)}},e.prototype.setHidden=function(e){e?this.hide():this.show()},e.prototype.testFlag=function(e){return 0!=(this._flags&e)},e.prototype.setFlag=function(e){this._flags|=e},e.prototype.clearFlag=function(e){this._flags&=~e},e.prototype.processMessage=function(t){switch(t.type){case"resize":this.notifyLayout(t),this.onResize(t);break;case"update-request":this.notifyLayout(t),this.onUpdateRequest(t);break;case"fit-request":this.notifyLayout(t),this.onFitRequest(t);break;case"before-show":this.notifyLayout(t),this.onBeforeShow(t);break;case"after-show":this.setFlag(e.Flag.IsVisible),this.notifyLayout(t),this.onAfterShow(t);break;case"before-hide":this.notifyLayout(t),this.onBeforeHide(t);break;case"after-hide":this.clearFlag(e.Flag.IsVisible),this.notifyLayout(t),this.onAfterHide(t);break;case"before-attach":this.notifyLayout(t),this.onBeforeAttach(t);break;case"after-attach":this.isHidden||this.parent&&!this.parent.isVisible||this.setFlag(e.Flag.IsVisible),this.setFlag(e.Flag.IsAttached),this.notifyLayout(t),this.onAfterAttach(t);break;case"before-detach":this.notifyLayout(t),this.onBeforeDetach(t);break;case"after-detach":this.clearFlag(e.Flag.IsVisible),this.clearFlag(e.Flag.IsAttached),this.notifyLayout(t),this.onAfterDetach(t);break;case"activate-request":this.notifyLayout(t),this.onActivateRequest(t);break;case"close-request":this.notifyLayout(t),this.onCloseRequest(t);break;case"child-added":this.notifyLayout(t),this.onChildAdded(t);break;case"child-removed":this.notifyLayout(t),this.onChildRemoved(t);break;default:this.notifyLayout(t)}},e.prototype.notifyLayout=function(e){this._layout&&this._layout.processParentMessage(e)},e.prototype.onCloseRequest=function(t){this.parent?this.parent=null:this.isAttached&&e.detach(this)},e.prototype.onResize=function(e){},e.prototype.onUpdateRequest=function(e){},e.prototype.onFitRequest=function(e){},e.prototype.onActivateRequest=function(e){},e.prototype.onBeforeShow=function(e){},e.prototype.onAfterShow=function(e){},e.prototype.onBeforeHide=function(e){},e.prototype.onAfterHide=function(e){},e.prototype.onBeforeAttach=function(e){},e.prototype.onAfterAttach=function(e){},e.prototype.onBeforeDetach=function(e){},e.prototype.onAfterDetach=function(e){},e.prototype.onChildAdded=function(e){},e.prototype.onChildRemoved=function(e){},e.prototype._toggleHidden=function(t){if(t)switch(this._hiddenMode){case e.HiddenMode.Display:this.addClass("lm-mod-hidden"),this.addClass("p-mod-hidden");break;case e.HiddenMode.Scale:this.node.style.transform="scale(0)";break;case e.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1"}else switch(this._hiddenMode){case e.HiddenMode.Display:this.removeClass("lm-mod-hidden"),this.removeClass("p-mod-hidden");break;case e.HiddenMode.Scale:this.node.style.transform="";break;case e.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex=""}},e}();!function(e){var t,i,n;(t=e.HiddenMode||(e.HiddenMode={}))[t.Display=0]="Display",t[t.Scale=1]="Scale",t[t.ContentVisibility=2]="ContentVisibility",(i=e.Flag||(e.Flag={}))[i.IsDisposed=1]="IsDisposed",i[i.IsAttached=2]="IsAttached",i[i.IsHidden=4]="IsHidden",i[i.IsVisible=8]="IsVisible",i[i.DisallowLayout=16]="DisallowLayout",(n=e.Msg||(e.Msg={})).BeforeShow=new r.Message("before-show"),n.AfterShow=new r.Message("after-show"),n.BeforeHide=new r.Message("before-hide"),n.AfterHide=new r.Message("after-hide"),n.BeforeAttach=new r.Message("before-attach"),n.AfterAttach=new r.Message("after-attach"),n.BeforeDetach=new r.Message("before-detach"),n.AfterDetach=new r.Message("after-detach"),n.ParentChanged=new r.Message("parent-changed"),n.UpdateRequest=new r.ConflatableMessage("update-request"),n.FitRequest=new r.ConflatableMessage("fit-request"),n.ActivateRequest=new r.ConflatableMessage("activate-request"),n.CloseRequest=new r.ConflatableMessage("close-request");var o=function(e){function t(t,i){var n=e.call(this,t)||this;return n.child=i,n}return f(t,e),t}(r.Message);e.ChildMessage=o;var s=function(e){function t(t,i){var n=e.call(this,"resize")||this;return n.width=t,n.height=i,n}return f(t,e),t}(r.Message);e.ResizeMessage=s,function(e){e.UnknownSize=new e(-1,-1)}(s=e.ResizeMessage||(e.ResizeMessage={})),e.attach=function(t,i,n){if(void 0===n&&(n=null),t.parent)throw new Error("Cannot attach a child widget.");if(t.isAttached||t.node.isConnected)throw new Error("Widget is already attached.");if(!i.isConnected)throw new Error("Host is not attached.");r.MessageLoop.sendMessage(t,e.Msg.BeforeAttach),i.insertBefore(t.node,n),r.MessageLoop.sendMessage(t,e.Msg.AfterAttach)},e.detach=function(t){if(t.parent)throw new Error("Cannot detach a child widget.");if(!t.isAttached||!t.node.isConnected)throw new Error("Widget is not attached.");r.MessageLoop.sendMessage(t,e.Msg.BeforeDetach),t.node.parentNode.removeChild(t.node),r.MessageLoop.sendMessage(t,e.Msg.AfterDetach)}}(M||(M={})),function(e){e.titleProperty=new s.AttachedProperty({name:"title",create:function(e){return new _({owner:e})}}),e.createNode=function(e){return e.node||document.createElement(e.tag||"div")}}(y||(y={}));var x=function(){function e(e){void 0===e&&(e={}),this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}return e.prototype.dispose=function(){this._parent=null,this._disposed=!0,a.Signal.clearData(this),s.AttachedProperty.clearData(this)},Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parent",{get:function(){return this._parent},set:function(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"fitPolicy",{get:function(){return this._fitPolicy},set:function(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){var t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}},enumerable:!0,configurable:!0}),e.prototype.processParentMessage=function(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e)}},e.prototype.init=function(){var e=this;(0,n.each)(this,(function(t){t.parent=e.parent}))},e.prototype.onResize=function(e){(0,n.each)(this,(function(e){r.MessageLoop.sendMessage(e,M.ResizeMessage.UnknownSize)}))},e.prototype.onUpdateRequest=function(e){(0,n.each)(this,(function(e){r.MessageLoop.sendMessage(e,M.ResizeMessage.UnknownSize)}))},e.prototype.onBeforeAttach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterAttach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onBeforeDetach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterDetach=function(e){(0,n.each)(this,(function(t){r.MessageLoop.sendMessage(t,e)}))},e.prototype.onBeforeShow=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterShow=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onBeforeHide=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onAfterHide=function(e){(0,n.each)(this,(function(t){t.isHidden||r.MessageLoop.sendMessage(t,e)}))},e.prototype.onChildRemoved=function(e){this.removeWidget(e.child)},e.prototype.onFitRequest=function(e){},e.prototype.onChildShown=function(e){},e.prototype.onChildHidden=function(e){},e}();!function(e){e.getHorizontalAlignment=function(e){return w.horizontalAlignmentProperty.get(e)},e.setHorizontalAlignment=function(e,t){w.horizontalAlignmentProperty.set(e,t)},e.getVerticalAlignment=function(e){return w.verticalAlignmentProperty.get(e)},e.setVerticalAlignment=function(e,t){w.verticalAlignmentProperty.set(e,t)}}(x||(x={}));var w,C=function(){function e(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute"}return e.prototype.dispose=function(){if(!this._disposed){this._disposed=!0;var e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height=""}},Object.defineProperty(e.prototype,"minWidth",{get:function(){return this._minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"minHeight",{get:function(){return this._minHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxWidth",{get:function(){return this._maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxHeight",{get:function(){return this._maxHeight},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHidden",{get:function(){return this.widget.isHidden},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVisible",{get:function(){return this.widget.isVisible},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isAttached",{get:function(){return this.widget.isAttached},enumerable:!0,configurable:!0}),e.prototype.fit=function(){var e=o.ElementExt.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight},e.prototype.update=function(e,t,i,n){var o=Math.max(this._minWidth,Math.min(i,this._maxWidth)),s=Math.max(this._minHeight,Math.min(n,this._maxHeight));if(o0;)this._widgets.pop().dispose();e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"widgets",{get:function(){return this._widgets},enumerable:!0,configurable:!0}),t.prototype.iter=function(){return(0,n.iter)(this._widgets)},t.prototype.addWidget=function(e){this.insertWidget(this._widgets.length,e)},t.prototype.insertWidget=function(e,t){t.parent=this.parent;var i=this._widgets.indexOf(t),o=Math.max(0,Math.min(e,this._widgets.length));if(-1===i)return n.ArrayExt.insert(this._widgets,o,t),void(this.parent&&this.attachWidget(o,t));o===this._widgets.length&&o--,i!==o&&(n.ArrayExt.move(this._widgets,i,o),this.parent&&this.moveWidget(i,o,t))},t.prototype.removeWidget=function(e){this.removeWidgetAt(this._widgets.indexOf(e))},t.prototype.removeWidgetAt=function(e){var t=n.ArrayExt.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)},t.prototype.init=function(){var t=this;e.prototype.init.call(this),(0,n.each)(this,(function(e,i){t.attachWidget(i,e)}))},t.prototype.attachWidget=function(e,t){var i=this.parent.node.children[e];this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,i),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach)},t.prototype.moveWidget=function(e,t,i){this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.AfterDetach);var n=this.parent.node.children[t];this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.BeforeAttach),this.parent.node.insertBefore(i.node,n),this.parent.isAttached&&r.MessageLoop.sendMessage(i,M.Msg.AfterAttach)},t.prototype.detachWidget=function(e,t){this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach)},t}(x);!function(e){e.clampDimension=function(e){return Math.max(0,Math.floor(e))}}(L||(L={}));var A,S=L,z=function(e){function t(t){var i=e.call(this)||this;return i.widgetOffset=0,i._fixed=0,i._spacing=4,i._dirty=!1,i._hasNormedSizes=!1,i._sizers=[],i._items=[],i._handles=[],i._box=null,i._alignment="start",i._orientation="horizontal",i.renderer=t.renderer,void 0!==t.orientation&&(i._orientation=t.orientation),void 0!==t.alignment&&(i._alignment=t.alignment),void 0!==t.spacing&&(i._spacing=L.clampDimension(t.spacing)),i}return f(t,e),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){e.dispose()})),this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"orientation",{get:function(){return this._orientation},set:function(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"alignment",{get:function(){return this._alignment},set:function(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spacing",{get:function(){return this._spacing},set:function(e){e=L.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"handles",{get:function(){return this._handles},enumerable:!0,configurable:!0}),t.prototype.absoluteSizes=function(){return this._sizers.map((function(e){return e.size}))},t.prototype.relativeSizes=function(){return A.normalize(this._sizers.map((function(e){return e.size})))},t.prototype.setRelativeSizes=function(e,t){void 0===t&&(t=!0);for(var i=this._sizers.length,n=e.slice(0,i);n.length0&&(s.sizeHint=s.size)}g.adjust(this._sizers,e,i),this.parent&&this.parent.update()}},t.prototype.init=function(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,e.prototype.init.call(this)},t.prototype.attachWidget=function(e,t){var i=new C(t),o=A.createHandle(this.renderer),s=A.averageSize(this._sizers),a=A.createSizer(s);n.ArrayExt.insert(this._items,e,i),n.ArrayExt.insert(this._sizers,e,a),n.ArrayExt.insert(this._handles,e,o),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(o),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()},t.prototype.moveWidget=function(e,t,i){n.ArrayExt.move(this._items,e,t),n.ArrayExt.move(this._sizers,e,t),n.ArrayExt.move(this._handles,e,t),this.parent.fit()},t.prototype.detachWidget=function(e,t){var i=n.ArrayExt.removeAt(this._items,e),o=n.ArrayExt.removeAt(this._handles,e);n.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(o),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach),i.dispose(),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype.updateItemPosition=function(e,t,i,n,o,r,s){var a=this._items[e];if(!a.isHidden){var d=this._handles[e].style;t?(i+=this.widgetOffset,a.update(i,n,s,o),i+=s,d.top=n+"px",d.left=i+"px",d.width=this._spacing+"px",d.height=o+"px"):(n+=this.widgetOffset,a.update(i,n,r,s),n+=s,d.top=n+"px",d.left=i+"px",d.width=r+"px",d.height=this._spacing+"px")}},t.prototype._fit=function(){for(var e=0,i=-1,n=0,s=this._items.length;n0&&(l.sizeHint=l.size),c.isHidden?(l.minSize=0,l.maxSize=0):(c.fit(),l.stretch=t.getStretch(c.widget),a?(l.minSize=c.minWidth,l.maxSize=c.maxWidth,d+=c.minWidth,h=Math.max(h,c.minHeight)):(l.minSize=c.minHeight,l.maxSize=c.maxHeight,h+=c.minHeight,d=Math.max(d,c.minWidth)))}var u=this._box=o.ElementExt.boxSizing(this.parent.node);d+=u.horizontalSum,h+=u.verticalSum;var p=this.parent.node.style;p.minWidth=d+"px",p.minHeight=h+"px",this._dirty=!0,this.parent.parent&&r.MessageLoop.sendMessage(this.parent.parent,M.Msg.FitRequest),this._dirty&&r.MessageLoop.sendMessage(this.parent,M.Msg.UpdateRequest)},t.prototype._update=function(e,t){this._dirty=!1;for(var i=0,n=0,r=this._items.length;n0){var p;if(p=u?Math.max(0,d-this._fixed):Math.max(0,h-this._fixed),this._hasNormedSizes){for(var m=0,f=this._sizers;m0)switch(this._alignment){case"start":break;case"center":c=0,l=v/2;break;case"end":c=0,l=v;break;case"justify":c=v/i,l=0;break;default:throw"unreachable"}}for(n=0,r=this._items.length;n=0&&(this.layout.updateTitle(t,e.owner),this.update())},t.prototype._computeWidgetSize=function(e){var t=this.layout,i=t.widgets[e];if(i){var n=i.isHidden,o=t.absoluteSizes(),r=(n?-1:1)*this.spacing,s=o.reduce((function(e,t){return e+t})),a=function(){for(var e=0,t=0,i=arguments.length;t0})).lastIndexOf(!0))?a.forEach((function(t,i){i!==e&&(a[i]-=o[i]/s*(d-r))})):a[h]-=d-r}else{var h,c=o[e];if(this._widgetSizesCache.set(i,c),a[e]=0,-1===(h=a.map((function(e){return e>0})).lastIndexOf(!0)))return;a[h]=o[h]+c+r}return a.map((function(e){return e/(s+r)}))}},t.prototype._evtClick=function(e){var t=e.target;if(t){var i=n.ArrayExt.findFirstIndex(this.titles,(function(e){return e.contains(t)}));i>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(i))}},t.prototype._eventKeyDown=function(e){if(!e.defaultPrevented){var t=e.target,i=!1;if(t){var o=n.ArrayExt.findFirstIndex(this.titles,(function(e){return e.contains(t)}));if(o>=0){var r=e.keyCode.toString();if(e.key.match(/Space|Enter/)||r.match(/13|32/))t.click(),i=!0;else if("horizontal"===this.orientation?e.key.match(/ArrowLeft|ArrowRight/)||r.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||r.match(/38|40/)){var s=e.key.match(/ArrowLeft|ArrowUp/)||r.match(/37|38/)?-1:1,a=this.titles.length,d=(o+a+s)%a;this.titles[d].focus(),i=!0}else"End"===e.key||"35"===r?(this.titles[this.titles.length-1].focus(),i=!0):"Home"!==e.key&&"36"!==r||(this.titles[0].focus(),i=!0)}i&&e.preventDefault()}}},t.prototype._toggleExpansion=function(e){var t=this.titles[e],i=this.layout.widgets[e],n=this._computeWidgetSize(e);n&&this.setRelativeSizes(n,!1),i.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),i.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),i.hide())},t}(k);!function(e){var t=function(e){function t(){var i=e.call(this)||this;return i.titleClassName="lm-AccordionPanel-title",i._titleID=0,i._titleKeys=new WeakMap,i._uuid=++t._nInstance,i}return f(t,e),t.prototype.createCollapseIcon=function(e){return document.createElement("span")},t.prototype.createSectionTitle=function(e){var t=document.createElement("h3");for(var i in t.setAttribute("role","button"),t.setAttribute("tabindex","0"),t.id=this.createTitleKey(e),t.className=this.titleClassName,e.dataset)t.dataset[i]=e.dataset[i];t.appendChild(this.createCollapseIcon(e)).className="lm-AccordionPanel-titleCollapser";var n=t.appendChild(document.createElement("span"));return n.className="lm-AccordionPanel-titleLabel",n.textContent=e.label,n.title=e.caption||e.label,t},t.prototype.createTitleKey=function(e){var t=this._titleKeys.get(e);return void 0===t&&(t="title-key-"+this._uuid+"-"+this._titleID++,this._titleKeys.set(e,t)),t},t._nInstance=0,t}(k.Renderer);e.Renderer=t,e.defaultRenderer=new t}(R||(R={})),function(e){e.createLayout=function(e){return e.layout||new P({renderer:e.renderer||R.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing,titleSpace:e.titleSpace})}}(O||(O={}));var N,H=function(e){function t(t){void 0===t&&(t={});var i=e.call(this)||this;return i._fixed=0,i._spacing=4,i._dirty=!1,i._sizers=[],i._items=[],i._box=null,i._alignment="start",i._direction="top-to-bottom",void 0!==t.direction&&(i._direction=t.direction),void 0!==t.alignment&&(i._alignment=t.alignment),void 0!==t.spacing&&(i._spacing=S.clampDimension(t.spacing)),i}return f(t,e),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){e.dispose()})),this._box=null,this._items.length=0,this._sizers.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"direction",{get:function(){return this._direction},set:function(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"alignment",{get:function(){return this._alignment},set:function(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spacing",{get:function(){return this._spacing},set:function(e){e=S.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),t.prototype.init=function(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,e.prototype.init.call(this)},t.prototype.attachWidget=function(e,t){n.ArrayExt.insert(this._items,e,new C(t)),n.ArrayExt.insert(this._sizers,e,new b),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()},t.prototype.moveWidget=function(e,t,i){n.ArrayExt.move(this._items,e,t),n.ArrayExt.move(this._sizers,e,t),this.parent.update()},t.prototype.detachWidget=function(e,t){var i=n.ArrayExt.removeAt(this._items,e);n.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach),i.dispose(),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._fit=function(){for(var e=0,i=0,n=this._items.length;i0)switch(this._alignment){case"start":break;case"center":l=0,u=s/2;break;case"end":l=0,u=s;break;case"justify":l=s/i,u=0;break;default:throw"unreachable"}for(n=0,r=this._items.length;n=r.length)i.scrollTop=0;else{var b=i.children[d];o.ElementExt.scrollIntoViewIfNeeded(i,b)}}else l.VirtualDOM.render(null,i)},t.prototype._evtClick=function(e){if(0===e.button){if(e.target.classList.contains("lm-close-icon"))return this.inputNode.value="",void this.refresh();var t=n.ArrayExt.findFirstIndex(this.contentNode.children,(function(t){return t.contains(e.target)}));-1!==t&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}},t.prototype._evtKeyDown=function(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem()}},t.prototype._activateNextItem=function(){if(this._results&&0!==this._results.length){var e=this._activeIndex,t=this._results.length,i=e=this._items.length)&&(e=-1),-1===e||V.canActivate(this._items[e])||(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"items",{get:function(){return this._items},enumerable:!0,configurable:!0}),t.prototype.activateNextItem=function(){var e=this._items.length,t=this._activeIndex,i=t=i.length)return i;var o=i.slice(0,n),r=i.slice(n+1),s=i[n];return[o,l.h.span({className:"lm-Menu-itemMnemonic p-Menu-itemMnemonic"},s),r]},e.prototype.formatShortcut=function(e){var t=e.item.keyBinding;return t?c.CommandRegistry.formatKeystroke(t.keys):null},e}();e.Renderer=t,e.defaultRenderer=new t}(U||(U={})),function(e){e.TIMER_DELAY=300,e.SUBMENU_OVERLAP=3;var t=null,i=0;function s(){return i>0?(i--,t):d()}function a(e){return"separator"!==e.type&&e.isEnabled&&e.isVisible}function d(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}e.saveWindowData=function(){t=d(),i++},e.createNode=function(){var e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-Menu-content",t.classList.add("p-Menu-content"),e.appendChild(t),t.setAttribute("role","menu"),e.tabIndex=0,e},e.canActivate=a,e.createItem=function(e,t){return new c(e.commands,t)},e.hitTestMenus=function(e,t,i){for(var n=e;n;n=n.childMenu)if(o.ElementExt.hitTest(n.node,t,i))return!0;return!1},e.computeCollapsed=function(e){var t=new Array(e.length);n.ArrayExt.fill(t,!1);for(var i=0,o=e.length;i=0;--r)if((a=e[r]).isVisible){if("separator"!==a.type)break;t[r]=!0}for(var s=!1;++id+c&&(t=d+c-g),!o&&i+v>h+l&&(i>h+l?i=h+l-v:i-=v),m.transform="translate("+Math.max(0,t)+"px, "+Math.max(0,i)+"px",m.opacity="1"},e.openSubmenu=function(t,i){var n=s(),a=n.pageXOffset,d=n.pageYOffset,h=n.clientWidth,c=n.clientHeight;r.MessageLoop.sendMessage(t,M.Msg.UpdateRequest);var l=c,u=t.node,p=u.style;p.opacity="0",p.maxHeight=l+"px",M.attach(t,document.body);var m=u.getBoundingClientRect(),f=m.width,g=m.height,v=o.ElementExt.boxSizing(t.node),b=i.getBoundingClientRect(),y=b.right-e.SUBMENU_OVERLAP;y+f>a+h&&(y=b.left+e.SUBMENU_OVERLAP-f);var _=b.top-v.borderTop-v.paddingTop;_+g>d+c&&(_=b.bottom+v.borderBottom+v.paddingBottom-g),p.transform="translate("+Math.max(0,y)+"px, "+Math.max(0,_)+"px",p.opacity="1"},e.findMnemonic=function(e,t,i){for(var n=-1,o=-1,r=!1,s=t.toUpperCase(),d=0,h=e.length;d=0&&p=this._titles.length)&&(e=-1),this._currentIndex!==e){var t=this._currentIndex,i=this._titles[t]||null,n=e,o=this._titles[n]||null;this._currentIndex=n,this._previousTitle=i,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:i,currentIndex:n,currentTitle:o})}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"orientation",{get:function(){return this._orientation},set:function(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"addButtonEnabled",{get:function(){return this._addButtonEnabled},set:function(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"titles",{get:function(){return this._titles},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"contentNode",{get:function(){return this.node.getElementsByClassName("lm-TabBar-content")[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"addButtonNode",{get:function(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]},enumerable:!0,configurable:!0}),t.prototype.addTab=function(e){return this.insertTab(this._titles.length,e)},t.prototype.insertTab=function(e,t){this._releaseMouse();var i=K.asTitle(t),o=this._titles.indexOf(i),r=Math.max(0,Math.min(e,this._titles.length));return-1===o?(n.ArrayExt.insert(this._titles,r,i),i.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(r,i),i):(r===this._titles.length&&r--,o===r||(n.ArrayExt.move(this._titles,o,r),this.update(),this._adjustCurrentForMove(o,r)),i)},t.prototype.removeTab=function(e){this.removeTabAt(this._titles.indexOf(e))},t.prototype.removeTabAt=function(e){this._releaseMouse();var t=n.ArrayExt.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))},t.prototype.clearTabs=function(){if(0!==this._titles.length){this._releaseMouse();for(var e=0,t=this._titles;e0&&s.children[0].focus()}}}},t.prototype._evtKeyDown=function(e){e.preventDefault(),e.stopPropagation(),27===e.keyCode&&this._releaseMouse()},t.prototype._evtMouseDown=function(e){if((0===e.button||1===e.button)&&!this._dragData){var t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),i=this.contentNode.children,r=n.ArrayExt.findFirstIndex(i,(function(t){return o.ElementExt.hitTest(t,e.clientX,e.clientY)}));if((-1!==r||t)&&(e.preventDefault(),e.stopPropagation(),this._dragData={tab:i[r],index:r,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("mouseup",this,!0),this.document.addEventListener("pointerup",this,!0),1!==e.button&&!t)){var s=i[r].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("mousemove",this,!0),this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===r?this.currentIndex=-1:this.currentIndex=r,-1!==this.currentIndex&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}}},t.prototype._evtMouseMove=function(e){var t=this._dragData;if(t){e.preventDefault(),e.stopPropagation();var i=this.contentNode.children;if(t.dragActive||K.dragExceeded(t,e)){if(!t.dragActive){var n=t.tab.getBoundingClientRect();"horizontal"===this._orientation?(t.tabPos=t.tab.offsetLeft,t.tabSize=n.width,t.tabPressPos=t.pressX-n.left):(t.tabPos=t.tab.offsetTop,t.tabSize=n.height,t.tabPressPos=t.pressY-n.top),t.tabLayout=K.snapTabLayout(i,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=d.Drag.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.tab.classList.add("p-mod-dragging"),this.addClass("p-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&K.detachExceeded(t,e)){t.detachRequested=!0;var o=t.index,r=e.clientX,s=e.clientY,a=i[o],h=this._titles[o];if(this._tabDetachRequested.emit({index:o,title:h,tab:a,clientX:r,clientY:s}),t.dragAborted)return}K.layoutTabs(i,t,e,this._orientation)}}},t.prototype._evtMouseUp=function(e){var t=this;if(0===e.button||1===e.button){var i=this._dragData;if(i){if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("mousemove",this,!0),this.document.removeEventListener("mouseup",this,!0),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!i.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target))return void this._addRequested.emit(void 0);var s=this.contentNode.children,a=n.ArrayExt.findFirstIndex(s,(function(t){return o.ElementExt.hitTest(t,e.clientX,e.clientY)}));if(a!==i.index)return;var d=this._titles[a];if(!d.closable)return;if(1===e.button)return void this._tabCloseRequested.emit({index:a,title:d});var h=s[a].querySelector(this.renderer.closeIconSelector);return h&&h.contains(e.target)?void this._tabCloseRequested.emit({index:a,title:d}):void 0}if(0===e.button){K.finalizeTabPosition(i,this._orientation),i.tab.classList.remove("lm-mod-dragging"),i.tab.classList.remove("p-mod-dragging");var c=K.parseTransitionDuration(i.tab);setTimeout((function(){if(!i.dragAborted){t._dragData=null,K.resetTabPositions(t.contentNode.children,t._orientation),i.override.dispose(),t.removeClass("lm-mod-dragging"),t.removeClass("p-mod-dragging");var e=i.index,o=i.targetIndex;-1!==o&&e!==o&&(n.ArrayExt.move(t._titles,e,o),t._adjustCurrentForMove(e,o),t._tabMoved.emit({fromIndex:e,toIndex:o,title:t._titles[o]}),r.MessageLoop.sendMessage(t,M.Msg.UpdateRequest))}}),c)}}}},t.prototype._releaseMouse=function(){var e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("mousemove",this,!0),this.document.removeEventListener("mouseup",this,!0),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(K.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging"),e.tab.classList.remove("p-mod-dragging"),this.removeClass("p-mod-dragging")))},t.prototype._adjustCurrentForInsert=function(e,t){var i=this.currentTitle,n=this._currentIndex,o=this.insertBehavior;if("select-tab"===o||"select-tab-if-needed"===o&&-1===n)return this._currentIndex=e,this._previousTitle=i,void this._currentChanged.emit({previousIndex:n,previousTitle:i,currentIndex:e,currentTitle:t});n>=e&&this._currentIndex++},t.prototype._adjustCurrentForMove=function(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--},t.prototype._adjustCurrentForRemove=function(e,t){var i=this._currentIndex,n=this.removeBehavior;if(i===e){if(0===this._titles.length)return this._currentIndex=-1,void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});if("select-tab-after"===n)return this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-tab-before"===n)return this._currentIndex=Math.max(0,e-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-previous-tab"===n)return this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}else i>e&&this._currentIndex--},t.prototype._onTitleChanged=function(e){this.update()},t}(M);!function(e){var t=function(){function e(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}return e.prototype.renderTab=function(e){var t=e.title.caption,i=this.createTabKey(e),n=i,o=this.createTabStyle(e),r=this.createTabClass(e),s=this.createTabDataset(e),a=this.createTabARIA(e);return e.title.closable?l.h.li(v({id:n,key:i,className:r,title:t,style:o,dataset:s},a),this.renderIcon(e),this.renderLabel(e),this.renderCloseIcon(e)):l.h.li(v({id:n,key:i,className:r,title:t,style:o,dataset:s},a),this.renderIcon(e),this.renderLabel(e))},e.prototype.renderIcon=function(e){var t=e.title,i=this.createIconClass(e);return"string"==typeof t.icon?l.h.div({className:i},t.iconLabel):l.h.div({className:i},t.icon,t.iconLabel)},e.prototype.renderLabel=function(e){return l.h.div({className:"lm-TabBar-tabLabel p-TabBar-tabLabel"},e.title.label)},e.prototype.renderCloseIcon=function(e){return l.h.div({className:"lm-TabBar-tabCloseIcon p-TabBar-tabCloseIcon"})},e.prototype.createTabKey=function(e){var t=this._tabKeys.get(e.title);return void 0===t&&(t="tab-key-"+this._uuid+"-"+this._tabID++,this._tabKeys.set(e.title,t)),t},e.prototype.createTabStyle=function(e){return{zIndex:""+e.zIndex}},e.prototype.createTabClass=function(e){var t="lm-TabBar-tab";return t+=" p-TabBar-tab",e.title.className&&(t+=" "+e.title.className),e.title.closable&&(t+=" lm-mod-closable",t+=" p-mod-closable"),e.current&&(t+=" lm-mod-current",t+=" p-mod-current"),t},e.prototype.createTabDataset=function(e){return e.title.dataset},e.prototype.createTabARIA=function(e){return{role:"tab","aria-selected":e.current.toString()}},e.prototype.createIconClass=function(e){var t="lm-TabBar-tabIcon";t+=" p-TabBar-tabIcon";var i=e.title.iconClass;return i?t+" "+i:t},e._nInstance=0,e}();e.Renderer=t,e.defaultRenderer=new t,e.addButtonSelector=".lm-TabBar-addButton"}(G||(G={})),function(e){e.DRAG_THRESHOLD=5,e.DETACH_THRESHOLD=20,e.createNode=function(){var e=document.createElement("div"),t=document.createElement("ul");t.setAttribute("role","tablist"),t.className="lm-TabBar-content",t.classList.add("p-TabBar-content"),e.appendChild(t);var i=document.createElement("div");return i.className="lm-TabBar-addButton lm-mod-hidden",e.appendChild(i),e},e.asTitle=function(e){return e instanceof _?e:new _(e)},e.parseTransitionDuration=function(e){var t=window.getComputedStyle(e);return 1e3*(parseFloat(t.transitionDuration)||0)},e.snapTabLayout=function(e,t){for(var i=new Array(e.length),n=0,o=e.length;n=e.DRAG_THRESHOLD||o>=e.DRAG_THRESHOLD},e.detachExceeded=function(t,i){var n=t.contentRect;return i.clientX=n.right+e.DETACH_THRESHOLD||i.clientY=n.bottom+e.DETACH_THRESHOLD},e.layoutTabs=function(e,t,i,n){var o,r,s,a;"horizontal"===n?(o=t.pressX,r=i.clientX-t.contentRect.left,s=i.clientX,a=t.contentRect.width):(o=t.pressY,r=i.clientY-t.contentRect.top,s=i.clientY,a=t.contentRect.height);for(var d=t.index,h=r-t.tabPressPos,c=h+t.tabSize,l=0,u=e.length;l>1);if(lt.index&&c>f)p=-t.tabSize-m.margin+"px",d=Math.max(d,l);else if(l===t.index){var g=s-o,v=a-(t.tabPos+t.tabSize);p=Math.max(-t.tabPos,Math.min(g,v))+"px"}else p="";"horizontal"===n?e[l].style.left=p:e[l].style.top=p}t.targetIndex=d},e.finalizeTabPosition=function(e,t){var i,n;if(i="horizontal"===t?e.contentRect.width:e.contentRect.height,e.targetIndex===e.index)n=0;else if(e.targetIndex>e.index)n=(o=e.tabLayout[e.targetIndex]).pos+o.size-e.tabSize-e.tabPos;else{var o;n=(o=e.tabLayout[e.targetIndex]).pos-e.tabPos}var r=i-(e.tabPos+e.tabSize),s=Math.max(-e.tabPos,Math.min(n,r));"horizontal"===t?e.tab.style.left=s+"px":e.tab.style.top=s+"px"},e.resetTabPositions=function(e,t){(0,n.each)(e,(function(e){"horizontal"===t?e.style.left="":e.style.top=""}))}}(K||(K={}));var J,Q=function(e){function t(t){var i=e.call(this)||this;return i._spacing=4,i._dirty=!1,i._root=null,i._box=null,i._items=new Map,i.renderer=t.renderer,void 0!==t.spacing&&(i._spacing=S.clampDimension(t.spacing)),i._document=t.document||document,i._hiddenMode=void 0!==t.hiddenMode?t.hiddenMode:M.HiddenMode.Display,i}return f(t,e),t.prototype.dispose=function(){var t=this.iter();this._items.forEach((function(e){e.dispose()})),this._box=null,this._root=null,this._items.clear(),(0,n.each)(t,(function(e){e.dispose()})),e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"hiddenMode",{get:function(){return this._hiddenMode},set:function(e){var t=this;this._hiddenMode!==e&&(this._hiddenMode=e,(0,n.each)(this.tabBars(),(function(e){e.titles.length>1&&e.titles.forEach((function(e){e.owner.hiddenMode=t._hiddenMode}))})))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"spacing",{get:function(){return this._spacing},set:function(e){e=S.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isEmpty",{get:function(){return null===this._root},enumerable:!0,configurable:!0}),t.prototype.iter=function(){return this._root?this._root.iterAllWidgets():(0,n.empty)()},t.prototype.widgets=function(){return this._root?this._root.iterUserWidgets():(0,n.empty)()},t.prototype.selectedWidgets=function(){return this._root?this._root.iterSelectedWidgets():(0,n.empty)()},t.prototype.tabBars=function(){return this._root?this._root.iterTabBars():(0,n.empty)()},t.prototype.handles=function(){return this._root?this._root.iterHandles():(0,n.empty)()},t.prototype.moveHandle=function(e,t,i){var n=e.classList.contains("lm-mod-hidden");if(n=n||e.classList.contains("p-mod-hidden"),this._root&&!n){var o,r=this._root.findSplitNode(e);r&&0!=(o="horizontal"===r.node.orientation?t-e.offsetLeft:i-e.offsetTop)&&(r.node.holdSizes(),g.adjust(r.node.sizers,r.index,o),this.parent&&this.parent.update())}},t.prototype.saveLayout=function(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}},t.prototype.restoreLayout=function(e){var t,i=this,o=new Set;t=e.main?J.normalizeAreaConfig(e.main,o):null;var r=this.widgets(),s=this.tabBars(),a=this.handles();this._root=null,(0,n.each)(r,(function(e){o.has(e)||(e.parent=null)})),(0,n.each)(s,(function(e){e.dispose()})),(0,n.each)(a,(function(e){e.parentNode&&e.parentNode.removeChild(e)})),o.forEach((function(e){e.parent=i.parent})),this._root=t?J.realizeAreaConfig(t,{createTabBar:function(e){return i._createTabBar()},createHandle:function(){return i._createHandle()}},this._document):null,this.parent&&(o.forEach((function(e){i.attachWidget(e)})),this.parent.fit())},t.prototype.addWidget=function(e,t){void 0===t&&(t={});var i=t.ref||null,n=t.mode||"tab-after",o=null;if(this._root&&i&&(o=this._root.findTabNode(i)),i&&!o)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,n){case"tab-after":this._insertTab(e,i,o,!0);break;case"tab-before":this._insertTab(e,i,o,!1);break;case"split-top":this._insertSplit(e,i,o,"vertical",!1);break;case"split-left":this._insertSplit(e,i,o,"horizontal",!1);break;case"split-right":this._insertSplit(e,i,o,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,i,o,"vertical",!0)}this.parent&&(this.attachWidget(e),this.parent.fit())},t.prototype.removeWidget=function(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())},t.prototype.hitTestTabAreas=function(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=o.ElementExt.boxSizing(this.parent.node));var i=this.parent.node.getBoundingClientRect(),n=e-i.left-this._box.borderLeft,r=t-i.top-this._box.borderTop,s=this._root.hitTestTabNodes(n,r);if(!s)return null;var a=s.tabBar,d=s.top,h=s.left,c=s.width,l=s.height,u=this._box.borderLeft+this._box.borderRight,p=this._box.borderTop+this._box.borderBottom;return{tabBar:a,x:n,y:r,top:d,left:h,right:i.width-u-(h+c),bottom:i.height-p-(d+l),width:c,height:l}},t.prototype.init=function(){var t=this;e.prototype.init.call(this),(0,n.each)(this,(function(e){t.attachWidget(e)})),(0,n.each)(this.handles(),(function(e){t.parent.node.appendChild(e)})),this.parent.fit()},t.prototype.attachWidget=function(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new C(e)),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterAttach))},t.prototype.detachWidget=function(e){if(this.parent.node===e.node.parentNode){this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterDetach);var t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._removeWidget=function(e){if(this._root){var t=this._root.findTabNode(e);if(t)if(J.removeAria(e),t.tabBar.titles.length>1)t.tabBar.removeTab(e.title),this._hiddenMode===M.HiddenMode.Scale&&1==t.tabBar.titles.length&&(t.tabBar.titles[0].owner.hiddenMode=M.HiddenMode.Display);else if(t.tabBar.dispose(),this._root!==t){this._root.holdAllSizes();var i=t.parent;t.parent=null;var o=n.ArrayExt.removeFirstOf(i.children,t),r=n.ArrayExt.removeAt(i.handles,o);if(n.ArrayExt.removeAt(i.sizers,o),r.parentNode&&r.parentNode.removeChild(r),i.children.length>1)i.syncHandles();else{var s=i.parent;i.parent=null;var a=i.children[0],d=i.handles[0];if(i.children.length=0,i.handles.length=0,i.sizers.length=0,d.parentNode&&d.parentNode.removeChild(d),this._root===i)return a.parent=null,void(this._root=a);var h=s,c=h.children.indexOf(i);if(a instanceof J.TabLayoutNode)return a.parent=h,void(h.children[c]=a);var l=n.ArrayExt.removeAt(h.handles,c);n.ArrayExt.removeAt(h.children,c),n.ArrayExt.removeAt(h.sizers,c),l.parentNode&&l.parentNode.removeChild(l);for(var u=0,p=a.children.length;u=i.length)&&(o=0),{type:"tab-area",widgets:i,currentIndex:o}}(t,i):function(t,i){for(var n=t.orientation,o=[],r=[],s=0,a=t.children.length;s=this._left+this._width||t=this._top+this._height?null:this},e.prototype.createConfig=function(){return{type:"tab-area",widgets:this.tabBar.titles.map((function(e){return e.owner})),currentIndex:this.tabBar.currentIndex}},e.prototype.holdAllSizes=function(){},e.prototype.fit=function(e,t){var i=0,n=0,o=t.get(this.tabBar),r=this.tabBar.currentTitle,s=r?t.get(r.owner):void 0,a=this.sizers,d=a[0],h=a[1];return o&&o.fit(),s&&s.fit(),o&&!o.isHidden?(i=Math.max(i,o.minWidth),n+=o.minHeight,d.minSize=o.minHeight,d.maxSize=o.maxHeight):(d.minSize=0,d.maxSize=0),s&&!s.isHidden?(i=Math.max(i,s.minWidth),n+=s.minHeight,h.minSize=s.minHeight,h.maxSize=1/0):(h.minSize=0,h.maxSize=1/0),{minWidth:i,minHeight:n,maxWidth:1/0,maxHeight:1/0}},e.prototype.update=function(e,t,i,n,o,r){this._top=t,this._left=e,this._width=i,this._height=n;var s=r.get(this.tabBar),a=this.tabBar.currentTitle,d=a?r.get(a.owner):void 0;if(g.calc(this.sizers,n),s&&!s.isHidden){var h=this.sizers[0].size;s.update(e,t,i,h),t+=h}d&&!d.isHidden&&(h=this.sizers[1].size,d.update(e,t,i,h))},e}();e.TabLayoutNode=i;var o=function(){function e(e){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=e}return e.prototype.iterAllWidgets=function(){var e=(0,n.map)(this.children,(function(e){return e.iterAllWidgets()}));return new n.ChainIterator(e)},e.prototype.iterUserWidgets=function(){var e=(0,n.map)(this.children,(function(e){return e.iterUserWidgets()}));return new n.ChainIterator(e)},e.prototype.iterSelectedWidgets=function(){var e=(0,n.map)(this.children,(function(e){return e.iterSelectedWidgets()}));return new n.ChainIterator(e)},e.prototype.iterTabBars=function(){var e=(0,n.map)(this.children,(function(e){return e.iterTabBars()}));return new n.ChainIterator(e)},e.prototype.iterHandles=function(){var e=(0,n.map)(this.children,(function(e){return e.iterHandles()}));return(0,n.chain)(this.handles,new n.ChainIterator(e))},e.prototype.findTabNode=function(e){for(var t=0,i=this.children.length;tv&&m>v&&p>b&&f>b)return{zone:"widget-all",target:l};switch(u/=v,p/=b,m/=v,f/=b,Math.min(u,p,m,f)){case u:g="widget-left";break;case p:g="widget-top";break;case m:g="widget-right";break;case f:g="widget-bottom";break;default:throw"unreachable"}return{zone:g,target:l}},e.getDropRef=function(e){return 0===e.titles.length?null:e.currentTitle?e.currentTitle.owner:e.titles[e.titles.length-1].owner}}(Z||(Z={}));var ee,te=function(){function e(){this._counter=0,this._widgets=[],this._activeWidget=null,this._currentWidget=null,this._numbers=new Map,this._nodes=new Map,this._activeChanged=new a.Signal(this),this._currentChanged=new a.Signal(this)}return e.prototype.dispose=function(){var e=this;this._counter<0||(this._counter=-1,a.Signal.clearData(this),(0,n.each)(this._widgets,(function(t){t.node.removeEventListener("focus",e,!0),t.node.removeEventListener("blur",e,!0)})),this._activeWidget=null,this._currentWidget=null,this._nodes.clear(),this._numbers.clear(),this._widgets.length=0)},Object.defineProperty(e.prototype,"currentChanged",{get:function(){return this._currentChanged},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeChanged",{get:function(){return this._activeChanged},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDisposed",{get:function(){return this._counter<0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentWidget",{get:function(){return this._currentWidget},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeWidget",{get:function(){return this._activeWidget},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"widgets",{get:function(){return this._widgets},enumerable:!0,configurable:!0}),e.prototype.focusNumber=function(e){var t=this._numbers.get(e);return void 0===t?-1:t},e.prototype.has=function(e){return this._numbers.has(e)},e.prototype.add=function(e){if(!this._numbers.has(e)){var t=e.node.contains(document.activeElement),i=t?this._counter++:-1;this._widgets.push(e),this._numbers.set(e,i),this._nodes.set(e.node,e),e.node.addEventListener("focus",this,!0),e.node.addEventListener("blur",this,!0),e.disposed.connect(this._onWidgetDisposed,this),t&&this._setWidgets(e,e)}},e.prototype.remove=function(e){var t=this;if(this._numbers.has(e)&&(e.disposed.disconnect(this._onWidgetDisposed,this),e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0),n.ArrayExt.removeFirstOf(this._widgets,e),this._nodes.delete(e.node),this._numbers.delete(e),this._currentWidget===e)){var i=(0,n.filter)(this._widgets,(function(e){return-1!==t._numbers.get(e)})),o=(0,n.max)(i,(function(e,i){return t._numbers.get(e)-t._numbers.get(i)}))||null;this._setWidgets(o,null)}},e.prototype.handleEvent=function(e){switch(e.type){case"focus":this._evtFocus(e);break;case"blur":this._evtBlur(e)}},e.prototype._setWidgets=function(e,t){var i=this._currentWidget;this._currentWidget=e;var n=this._activeWidget;this._activeWidget=t,i!==e&&this._currentChanged.emit({oldValue:i,newValue:e}),n!==t&&this._activeChanged.emit({oldValue:n,newValue:t})},e.prototype._evtFocus=function(e){var t=this._nodes.get(e.currentTarget);t!==this._currentWidget&&this._numbers.set(t,this._counter++),this._setWidgets(t,t)},e.prototype._evtBlur=function(e){var t=this._nodes.get(e.currentTarget),i=e.relatedTarget;i&&(t.node.contains(i)||(0,n.find)(this._widgets,(function(e){return e.node.contains(i)})))||this._setWidgets(this._currentWidget,null)},e.prototype._onWidgetDisposed=function(e){this.remove(e)},e}(),ie=function(e){function t(t){void 0===t&&(t={});var i=e.call(this,t)||this;return i._dirty=!1,i._rowSpacing=4,i._columnSpacing=4,i._items=[],i._rowStarts=[],i._columnStarts=[],i._rowSizers=[new b],i._columnSizers=[new b],i._box=null,void 0!==t.rowCount&&ee.reallocSizers(i._rowSizers,t.rowCount),void 0!==t.columnCount&&ee.reallocSizers(i._columnSizers,t.columnCount),void 0!==t.rowSpacing&&(i._rowSpacing=ee.clampValue(t.rowSpacing)),void 0!==t.columnSpacing&&(i._columnSpacing=ee.clampValue(t.columnSpacing)),i}return f(t,e),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){var t=e.widget;e.dispose(),t.dispose()})),this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowSizers.length},set:function(e){e!==this.rowCount&&(ee.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCount",{get:function(){return this._columnSizers.length},set:function(e){e!==this.columnCount&&(ee.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowSpacing",{get:function(){return this._rowSpacing},set:function(e){e=ee.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnSpacing",{get:function(){return this._columnSpacing},set:function(e){e=ee.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())},enumerable:!0,configurable:!0}),t.prototype.rowStretch=function(e){var t=this._rowSizers[e];return t?t.stretch:-1},t.prototype.setRowStretch=function(e,t){var i=this._rowSizers[e];i&&(t=ee.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))},t.prototype.columnStretch=function(e){var t=this._columnSizers[e];return t?t.stretch:-1},t.prototype.setColumnStretch=function(e,t){var i=this._columnSizers[e];i&&(t=ee.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))},t.prototype.iter=function(){return(0,n.map)(this._items,(function(e){return e.widget}))},t.prototype.addWidget=function(e){-1===n.ArrayExt.findFirstIndex(this._items,(function(t){return t.widget===e}))&&(this._items.push(new C(e)),this.parent&&this.attachWidget(e))},t.prototype.removeWidget=function(e){var t=n.ArrayExt.findFirstIndex(this._items,(function(t){return t.widget===e}));if(-1!==t){var i=n.ArrayExt.removeAt(this._items,t);this.parent&&this.detachWidget(e),i.dispose()}},t.prototype.init=function(){var t=this;e.prototype.init.call(this),(0,n.each)(this,(function(e){t.attachWidget(e)}))},t.prototype.attachWidget=function(e){this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterAttach),this.parent.fit()},t.prototype.detachWidget=function(e){this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&r.MessageLoop.sendMessage(e,M.Msg.AfterDetach),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._fit=function(){for(var e=0,i=this.rowCount;et&&(e.length=t)},e.distributeMin=function(e,t,i,n){if(!(i=n)){var s=(n-o)/(i-t+1);for(r=t;r<=i;++r)e[r].minSize+=s}}else{var a=e[t];a.minSize=Math.max(a.minSize,n)}}}(ee||(ee={}));var ne,oe=function(e){function t(i){void 0===i&&(i={});var n=e.call(this,{node:ne.createNode()})||this;return n._activeIndex=-1,n._tabFocusIndex=0,n._menus=[],n._childMenu=null,n.addClass("lm-MenuBar"),n.addClass("p-MenuBar"),n.setFlag(M.Flag.DisallowLayout),n.renderer=i.renderer||t.defaultRenderer,n._forceItemsPosition=i.forceItemsPosition||{forceX:!0,forceY:!0},n}return f(t,e),t.prototype.dispose=function(){this._closeChildMenu(),this._menus.length=0,e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"childMenu",{get:function(){return this._childMenu},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"contentNode",{get:function(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeMenu",{get:function(){return this._menus[this._activeIndex]||null},set:function(e){this.activeIndex=e?this._menus.indexOf(e):-1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeIndex",{get:function(){return this._activeIndex},set:function(e){(e<0||e>=this._menus.length)&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,-1!==e&&(this._tabFocusIndex=e),this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"menus",{get:function(){return this._menus},enumerable:!0,configurable:!0}),t.prototype.openActiveMenu=function(){-1!==this._activeIndex&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))},t.prototype.addMenu=function(e){this.insertMenu(this._menus.length,e)},t.prototype.insertMenu=function(e,t){this._closeChildMenu();var i=this._menus.indexOf(t),o=Math.max(0,Math.min(e,this._menus.length));if(-1===i)return n.ArrayExt.insert(this._menus,o,t),t.addClass("lm-MenuBar-menu"),t.addClass("p-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),void this.update();o===this._menus.length&&o--,i!==o&&(n.ArrayExt.move(this._menus,i,o),this.update())},t.prototype.removeMenu=function(e){this.removeMenuAt(this._menus.indexOf(e))},t.prototype.removeMenuAt=function(e){this._closeChildMenu();var t=n.ArrayExt.removeAt(this._menus,e);t&&(t.aboutToClose.disconnect(this._onMenuAboutToClose,this),t.menuRequested.disconnect(this._onMenuMenuRequested,this),t.title.changed.disconnect(this._onTitleChanged,this),t.removeClass("lm-MenuBar-menu"),t.removeClass("p-MenuBar-menu"),this.update())},t.prototype.clearMenus=function(){if(0!==this._menus.length){this._closeChildMenu();for(var e=0,t=this._menus;e=0&&this._tabFocusIndex0&&i.open(o,s,this._forceItemsPosition)}}else this._closeChildMenu()},t.prototype._closeChildMenu=function(){if(this._childMenu){this.removeClass("lm-mod-active"),this.removeClass("p-mod-active"),document.removeEventListener("mousedown",this,!0);var e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}},t.prototype._onMenuAboutToClose=function(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),this.removeClass("p-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)},t.prototype._onMenuMenuRequested=function(e,t){if(e===this._childMenu){var i=this._activeIndex,n=this._menus.length;switch(t){case"next":this.activeIndex=i===n-1?0:i+1;break;case"previous":this.activeIndex=0===i?n-1:i-1}this.openActiveMenu()}},t.prototype._onTitleChanged=function(){this.update()},t}(M);!function(e){var t=function(){function e(){}return e.prototype.renderItem=function(e){var t=this.createItemClass(e),i=this.createItemDataset(e),n=this.createItemARIA(e);return l.h.li(v({className:t,dataset:i,tabindex:e.tabbable?"0":"-1",onfocus:e.onfocus},n),this.renderIcon(e),this.renderLabel(e))},e.prototype.renderIcon=function(e){var t=this.createIconClass(e);return"string"==typeof e.title.icon?l.h.div({className:t},e.title.iconLabel):l.h.div({className:t},e.title.icon,e.title.iconLabel)},e.prototype.renderLabel=function(e){var t=this.formatLabel(e);return l.h.div({className:"lm-MenuBar-itemLabel p-MenuBar-itemLabel"},t)},e.prototype.createItemClass=function(e){var t="lm-MenuBar-item";return t+=" p-MenuBar-item",e.title.className&&(t+=" "+e.title.className),e.active&&(t+=" lm-mod-active",t+=" p-mod-active"),t},e.prototype.createItemDataset=function(e){return e.title.dataset},e.prototype.createItemARIA=function(e){return{role:"menuitem","aria-haspopup":"true"}},e.prototype.createIconClass=function(e){var t="lm-MenuBar-itemIcon";t+=" p-MenuBar-itemIcon";var i=e.title.iconClass;return i?t+" "+i:t},e.prototype.formatLabel=function(e){var t=e.title,i=t.label,n=t.mnemonic;if(n<0||n>=i.length)return i;var o=i.slice(0,n),r=i.slice(n+1),s=i[n];return[o,l.h.span({className:"lm-MenuBar-itemMnemonic p-MenuBar-itemMnemonic"},s),r]},e}();e.Renderer=t,e.defaultRenderer=new t}(oe||(oe={})),function(e){e.createNode=function(){var e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-MenuBar-content",t.classList.add("p-MenuBar-content"),e.appendChild(t),t.setAttribute("role","menubar"),e},e.findMnemonic=function(e,t,i){for(var n=-1,o=-1,r=!1,s=t.toUpperCase(),a=0,d=e.length;a=0&&l1&&this.widgets.forEach((function(e){e.hiddenMode=t._hiddenMode})))},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){(0,n.each)(this._items,(function(e){e.dispose()})),this._box=null,this._items.length=0,e.prototype.dispose.call(this)},t.prototype.attachWidget=function(e,t){this._hiddenMode===M.HiddenMode.Scale&&this._items.length>0?(1===this._items.length&&(this.widgets[0].hiddenMode=M.HiddenMode.Scale),t.hiddenMode=M.HiddenMode.Scale):t.hiddenMode=M.HiddenMode.Display,n.ArrayExt.insert(this._items,e,new C(t)),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()},t.prototype.moveWidget=function(e,t,i){n.ArrayExt.move(this._items,e,t),this.parent.update()},t.prototype.detachWidget=function(e,t){var i=n.ArrayExt.removeAt(this._items,e);this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&r.MessageLoop.sendMessage(t,M.Msg.AfterDetach),i.widget.node.style.zIndex="",this._hiddenMode===M.HiddenMode.Scale&&(t.hiddenMode=M.HiddenMode.Display,1===this._items.length&&(this._items[0].widget.hiddenMode=M.HiddenMode.Display)),i.dispose(),this.parent.fit()},t.prototype.onBeforeShow=function(t){e.prototype.onBeforeShow.call(this,t),this.parent.update()},t.prototype.onBeforeAttach=function(t){e.prototype.onBeforeAttach.call(this,t),this.parent.fit()},t.prototype.onChildShown=function(e){this.parent.fit()},t.prototype.onChildHidden=function(e){this.parent.fit()},t.prototype.onResize=function(e){this.parent.isVisible&&this._update(e.width,e.height)},t.prototype.onUpdateRequest=function(e){this.parent.isVisible&&this._update(-1,-1)},t.prototype.onFitRequest=function(e){this.parent.isAttached&&this._fit()},t.prototype._fit=function(){for(var e=0,t=0,i=0,n=this._items.length;i= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\n\n/**\n * A sizer object for use with the box engine layout functions.\n *\n * #### Notes\n * A box sizer holds the geometry information for an object along an\n * arbitrary layout orientation.\n *\n * For best performance, this class should be treated as a raw data\n * struct. It should not typically be subclassed.\n */\nexport class BoxSizer {\n /**\n * The preferred size for the sizer.\n *\n * #### Notes\n * The sizer will be given this initial size subject to its size\n * bounds. The sizer will not deviate from this size unless such\n * deviation is required to fit into the available layout space.\n *\n * There is no limit to this value, but it will be clamped to the\n * bounds defined by [[minSize]] and [[maxSize]].\n *\n * The default value is `0`.\n */\n sizeHint = 0;\n\n /**\n * The minimum size of the sizer.\n *\n * #### Notes\n * The sizer will never be sized less than this value, even if\n * it means the sizer will overflow the available layout space.\n *\n * It is assumed that this value lies in the range `[0, Infinity)`\n * and that it is `<=` to [[maxSize]]. Failure to adhere to this\n * constraint will yield undefined results.\n *\n * The default value is `0`.\n */\n minSize = 0;\n\n /**\n * The maximum size of the sizer.\n *\n * #### Notes\n * The sizer will never be sized greater than this value, even if\n * it means the sizer will underflow the available layout space.\n *\n * It is assumed that this value lies in the range `[0, Infinity]`\n * and that it is `>=` to [[minSize]]. Failure to adhere to this\n * constraint will yield undefined results.\n *\n * The default value is `Infinity`.\n */\n maxSize = Infinity;\n\n /**\n * The stretch factor for the sizer.\n *\n * #### Notes\n * This controls how much the sizer stretches relative to its sibling\n * sizers when layout space is distributed. A stretch factor of zero\n * is special and will cause the sizer to only be resized after all\n * other sizers with a stretch factor greater than zero have been\n * resized to their limits.\n *\n * It is assumed that this value is an integer that lies in the range\n * `[0, Infinity)`. Failure to adhere to this constraint will yield\n * undefined results.\n *\n * The default value is `1`.\n */\n stretch = 1;\n\n /**\n * The computed size of the sizer.\n *\n * #### Notes\n * This value is the output of a call to [[boxCalc]]. It represents\n * the computed size for the object along the layout orientation,\n * and will always lie in the range `[minSize, maxSize]`.\n *\n * This value is output only.\n *\n * Changing this value will have no effect.\n */\n size = 0;\n\n /**\n * An internal storage property for the layout algorithm.\n *\n * #### Notes\n * This value is used as temporary storage by the layout algorithm.\n *\n * Changing this value will have no effect.\n */\n done = false;\n}\n\n/**\n * The namespace for the box engine layout functions.\n */\nexport namespace BoxEngine {\n /**\n * Calculate the optimal layout sizes for a sequence of box sizers.\n *\n * This distributes the available layout space among the box sizers\n * according to the following algorithm:\n *\n * 1. Initialize the sizers's size to its size hint and compute the\n * sums for each of size hint, min size, and max size.\n *\n * 2. If the total size hint equals the available space, return.\n *\n * 3. If the available space is less than the total min size, set all\n * sizers to their min size and return.\n *\n * 4. If the available space is greater than the total max size, set\n * all sizers to their max size and return.\n *\n * 5. If the layout space is less than the total size hint, distribute\n * the negative delta as follows:\n *\n * a. Shrink each sizer with a stretch factor greater than zero by\n * an amount proportional to the negative space and the sum of\n * stretch factors. If the sizer reaches its min size, remove\n * it and its stretch factor from the computation.\n *\n * b. If after adjusting all stretch sizers there remains negative\n * space, distribute the space equally among the sizers with a\n * stretch factor of zero. If a sizer reaches its min size,\n * remove it from the computation.\n *\n * 6. If the layout space is greater than the total size hint,\n * distribute the positive delta as follows:\n *\n * a. Expand each sizer with a stretch factor greater than zero by\n * an amount proportional to the postive space and the sum of\n * stretch factors. If the sizer reaches its max size, remove\n * it and its stretch factor from the computation.\n *\n * b. If after adjusting all stretch sizers there remains positive\n * space, distribute the space equally among the sizers with a\n * stretch factor of zero. If a sizer reaches its max size,\n * remove it from the computation.\n *\n * 7. return\n *\n * @param sizers - The sizers for a particular layout line.\n *\n * @param space - The available layout space for the sizers.\n *\n * @returns The delta between the provided available space and the\n * actual consumed space. This value will be zero if the sizers\n * can be adjusted to fit, negative if the available space is too\n * small, and positive if the available space is too large.\n *\n * #### Notes\n * The [[size]] of each sizer is updated with the computed size.\n *\n * This function can be called at any time to recompute the layout for\n * an existing sequence of sizers. The previously computed results will\n * have no effect on the new output. It is therefore not necessary to\n * create new sizer objects on each resize event.\n */\n export function calc(sizers: ArrayLike, space: number): number {\n // Bail early if there is nothing to do.\n let count = sizers.length;\n if (count === 0) {\n return space;\n }\n\n // Setup the size and stretch counters.\n let totalMin = 0;\n let totalMax = 0;\n let totalSize = 0;\n let totalStretch = 0;\n let stretchCount = 0;\n\n // Setup the sizers and compute the totals.\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n let min = sizer.minSize;\n let max = sizer.maxSize;\n let hint = sizer.sizeHint;\n sizer.done = false;\n sizer.size = Math.max(min, Math.min(hint, max));\n totalSize += sizer.size;\n totalMin += min;\n totalMax += max;\n if (sizer.stretch > 0) {\n totalStretch += sizer.stretch;\n stretchCount++;\n }\n }\n\n // If the space is equal to the total size, return early.\n if (space === totalSize) {\n return 0;\n }\n\n // If the space is less than the total min, minimize each sizer.\n if (space <= totalMin) {\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n sizer.size = sizer.minSize;\n }\n return space - totalMin;\n }\n\n // If the space is greater than the total max, maximize each sizer.\n if (space >= totalMax) {\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n sizer.size = sizer.maxSize;\n }\n return space - totalMax;\n }\n\n // The loops below perform sub-pixel precision sizing. A near zero\n // value is used for compares instead of zero to ensure that the\n // loop terminates when the subdivided space is reasonably small.\n let nearZero = 0.01;\n\n // A counter which is decremented each time a sizer is resized to\n // its limit. This ensures the loops terminate even if there is\n // space remaining to distribute.\n let notDoneCount = count;\n\n // Distribute negative delta space.\n if (space < totalSize) {\n // Shrink each stretchable sizer by an amount proportional to its\n // stretch factor. If a sizer reaches its min size it's marked as\n // done. The loop progresses in phases where each sizer is given\n // a chance to consume its fair share for the pass, regardless of\n // whether a sizer before it reached its limit. This continues\n // until the stretchable sizers or the free space is exhausted.\n let freeSpace = totalSize - space;\n while (stretchCount > 0 && freeSpace > nearZero) {\n let distSpace = freeSpace;\n let distStretch = totalStretch;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done || sizer.stretch === 0) {\n continue;\n }\n let amt = (sizer.stretch * distSpace) / distStretch;\n if (sizer.size - amt <= sizer.minSize) {\n freeSpace -= sizer.size - sizer.minSize;\n totalStretch -= sizer.stretch;\n sizer.size = sizer.minSize;\n sizer.done = true;\n notDoneCount--;\n stretchCount--;\n } else {\n freeSpace -= amt;\n sizer.size -= amt;\n }\n }\n }\n // Distribute any remaining space evenly among the non-stretchable\n // sizers. This progresses in phases in the same manner as above.\n while (notDoneCount > 0 && freeSpace > nearZero) {\n let amt = freeSpace / notDoneCount;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done) {\n continue;\n }\n if (sizer.size - amt <= sizer.minSize) {\n freeSpace -= sizer.size - sizer.minSize;\n sizer.size = sizer.minSize;\n sizer.done = true;\n notDoneCount--;\n } else {\n freeSpace -= amt;\n sizer.size -= amt;\n }\n }\n }\n }\n // Distribute positive delta space.\n else {\n // Expand each stretchable sizer by an amount proportional to its\n // stretch factor. If a sizer reaches its max size it's marked as\n // done. The loop progresses in phases where each sizer is given\n // a chance to consume its fair share for the pass, regardless of\n // whether a sizer before it reached its limit. This continues\n // until the stretchable sizers or the free space is exhausted.\n let freeSpace = space - totalSize;\n while (stretchCount > 0 && freeSpace > nearZero) {\n let distSpace = freeSpace;\n let distStretch = totalStretch;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done || sizer.stretch === 0) {\n continue;\n }\n let amt = (sizer.stretch * distSpace) / distStretch;\n if (sizer.size + amt >= sizer.maxSize) {\n freeSpace -= sizer.maxSize - sizer.size;\n totalStretch -= sizer.stretch;\n sizer.size = sizer.maxSize;\n sizer.done = true;\n notDoneCount--;\n stretchCount--;\n } else {\n freeSpace -= amt;\n sizer.size += amt;\n }\n }\n }\n // Distribute any remaining space evenly among the non-stretchable\n // sizers. This progresses in phases in the same manner as above.\n while (notDoneCount > 0 && freeSpace > nearZero) {\n let amt = freeSpace / notDoneCount;\n for (let i = 0; i < count; ++i) {\n let sizer = sizers[i];\n if (sizer.done) {\n continue;\n }\n if (sizer.size + amt >= sizer.maxSize) {\n freeSpace -= sizer.maxSize - sizer.size;\n sizer.size = sizer.maxSize;\n sizer.done = true;\n notDoneCount--;\n } else {\n freeSpace -= amt;\n sizer.size += amt;\n }\n }\n }\n }\n\n // Indicate that the consumed space equals the available space.\n return 0;\n }\n\n /**\n * Adjust a sizer by a delta and update its neighbors accordingly.\n *\n * @param sizers - The sizers which should be adjusted.\n *\n * @param index - The index of the sizer to grow.\n *\n * @param delta - The amount to adjust the sizer, positive or negative.\n *\n * #### Notes\n * This will adjust the indicated sizer by the specified amount, along\n * with the sizes of the appropriate neighbors, subject to the limits\n * specified by each of the sizers.\n *\n * This is useful when implementing box layouts where the boundaries\n * between the sizers are interactively adjustable by the user.\n */\n export function adjust(\n sizers: ArrayLike,\n index: number,\n delta: number\n ): void {\n // Bail early when there is nothing to do.\n if (sizers.length === 0 || delta === 0) {\n return;\n }\n\n // Dispatch to the proper implementation.\n if (delta > 0) {\n growSizer(sizers, index, delta);\n } else {\n shrinkSizer(sizers, index, -delta);\n }\n }\n\n /**\n * Grow a sizer by a positive delta and adjust neighbors.\n */\n function growSizer(\n sizers: ArrayLike,\n index: number,\n delta: number\n ): void {\n // Compute how much the items to the left can expand.\n let growLimit = 0;\n for (let i = 0; i <= index; ++i) {\n let sizer = sizers[i];\n growLimit += sizer.maxSize - sizer.size;\n }\n\n // Compute how much the items to the right can shrink.\n let shrinkLimit = 0;\n for (let i = index + 1, n = sizers.length; i < n; ++i) {\n let sizer = sizers[i];\n shrinkLimit += sizer.size - sizer.minSize;\n }\n\n // Clamp the delta adjustment to the limits.\n delta = Math.min(delta, growLimit, shrinkLimit);\n\n // Grow the sizers to the left by the delta.\n let grow = delta;\n for (let i = index; i >= 0 && grow > 0; --i) {\n let sizer = sizers[i];\n let limit = sizer.maxSize - sizer.size;\n if (limit >= grow) {\n sizer.sizeHint = sizer.size + grow;\n grow = 0;\n } else {\n sizer.sizeHint = sizer.size + limit;\n grow -= limit;\n }\n }\n\n // Shrink the sizers to the right by the delta.\n let shrink = delta;\n for (let i = index + 1, n = sizers.length; i < n && shrink > 0; ++i) {\n let sizer = sizers[i];\n let limit = sizer.size - sizer.minSize;\n if (limit >= shrink) {\n sizer.sizeHint = sizer.size - shrink;\n shrink = 0;\n } else {\n sizer.sizeHint = sizer.size - limit;\n shrink -= limit;\n }\n }\n }\n\n /**\n * Shrink a sizer by a positive delta and adjust neighbors.\n */\n function shrinkSizer(\n sizers: ArrayLike,\n index: number,\n delta: number\n ): void {\n // Compute how much the items to the right can expand.\n let growLimit = 0;\n for (let i = index + 1, n = sizers.length; i < n; ++i) {\n let sizer = sizers[i];\n growLimit += sizer.maxSize - sizer.size;\n }\n\n // Compute how much the items to the left can shrink.\n let shrinkLimit = 0;\n for (let i = 0; i <= index; ++i) {\n let sizer = sizers[i];\n shrinkLimit += sizer.size - sizer.minSize;\n }\n\n // Clamp the delta adjustment to the limits.\n delta = Math.min(delta, growLimit, shrinkLimit);\n\n // Grow the sizers to the right by the delta.\n let grow = delta;\n for (let i = index + 1, n = sizers.length; i < n && grow > 0; ++i) {\n let sizer = sizers[i];\n let limit = sizer.maxSize - sizer.size;\n if (limit >= grow) {\n sizer.sizeHint = sizer.size + grow;\n grow = 0;\n } else {\n sizer.sizeHint = sizer.size + limit;\n grow -= limit;\n }\n }\n\n // Shrink the sizers to the left by the delta.\n let shrink = delta;\n for (let i = index; i >= 0 && shrink > 0; --i) {\n let sizer = sizers[i];\n let limit = sizer.size - sizer.minSize;\n if (limit >= shrink) {\n sizer.sizeHint = sizer.size - shrink;\n shrink = 0;\n } else {\n sizer.sizeHint = sizer.size - limit;\n shrink -= limit;\n }\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { empty, IIterator } from '@lumino/algorithm';\n\nimport { IObservableDisposable } from '@lumino/disposable';\n\nimport {\n ConflatableMessage,\n IMessageHandler,\n Message,\n MessageLoop\n} from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Layout } from './layout';\n\nimport { Title } from './title';\n\n/**\n * The base class of the lumino widget hierarchy.\n *\n * #### Notes\n * This class will typically be subclassed in order to create a useful\n * widget. However, it can be used directly to host externally created\n * content.\n */\nexport class Widget implements IMessageHandler, IObservableDisposable {\n /**\n * Construct a new widget.\n *\n * @param options - The options for initializing the widget.\n */\n constructor(options: Widget.IOptions = {}) {\n this.node = Private.createNode(options);\n this.addClass('lm-Widget');\n /* */\n this.addClass('p-Widget');\n /* */\n }\n\n /**\n * Dispose of the widget and its descendant widgets.\n *\n * #### Notes\n * It is unsafe to use the widget after it has been disposed.\n *\n * All calls made to this method after the first are a no-op.\n */\n dispose(): void {\n // Do nothing if the widget is already disposed.\n if (this.isDisposed) {\n return;\n }\n\n // Set the disposed flag and emit the disposed signal.\n this.setFlag(Widget.Flag.IsDisposed);\n this._disposed.emit(undefined);\n\n // Remove or detach the widget if necessary.\n if (this.parent) {\n this.parent = null;\n } else if (this.isAttached) {\n Widget.detach(this);\n }\n\n // Dispose of the widget layout.\n if (this._layout) {\n this._layout.dispose();\n this._layout = null;\n }\n\n // Dispose the title\n this.title.dispose();\n\n // Clear the extra data associated with the widget.\n Signal.clearData(this);\n MessageLoop.clearData(this);\n AttachedProperty.clearData(this);\n }\n\n /**\n * A signal emitted when the widget is disposed.\n */\n get disposed(): ISignal {\n return this._disposed;\n }\n\n /**\n * Get the DOM node owned by the widget.\n */\n readonly node: HTMLElement;\n\n /**\n * Test whether the widget has been disposed.\n */\n get isDisposed(): boolean {\n return this.testFlag(Widget.Flag.IsDisposed);\n }\n\n /**\n * Test whether the widget's node is attached to the DOM.\n */\n get isAttached(): boolean {\n return this.testFlag(Widget.Flag.IsAttached);\n }\n\n /**\n * Test whether the widget is explicitly hidden.\n */\n get isHidden(): boolean {\n return this.testFlag(Widget.Flag.IsHidden);\n }\n\n /**\n * Test whether the widget is visible.\n *\n * #### Notes\n * A widget is visible when it is attached to the DOM, is not\n * explicitly hidden, and has no explicitly hidden ancestors.\n */\n get isVisible(): boolean {\n return this.testFlag(Widget.Flag.IsVisible);\n }\n\n /**\n * The title object for the widget.\n *\n * #### Notes\n * The title object is used by some container widgets when displaying\n * the widget alongside some title, such as a tab panel or side bar.\n *\n * Since not all widgets will use the title, it is created on demand.\n *\n * The `owner` property of the title is set to this widget.\n */\n get title(): Title {\n return Private.titleProperty.get(this);\n }\n\n /**\n * Get the id of the widget's DOM node.\n */\n get id(): string {\n return this.node.id;\n }\n\n /**\n * Set the id of the widget's DOM node.\n */\n set id(value: string) {\n this.node.id = value;\n }\n\n /**\n * The dataset for the widget's DOM node.\n */\n get dataset(): DOMStringMap {\n return this.node.dataset;\n }\n\n /**\n * Get the method for hiding the widget.\n */\n get hiddenMode(): Widget.HiddenMode {\n return this._hiddenMode;\n }\n\n /**\n * Set the method for hiding the widget.\n */\n set hiddenMode(value: Widget.HiddenMode) {\n if (this._hiddenMode === value) {\n return;\n }\n\n if (this.isHidden) {\n // Reset styles set by previous mode.\n this._toggleHidden(false);\n }\n\n if (value == Widget.HiddenMode.Scale) {\n this.node.style.willChange = 'transform';\n } else {\n this.node.style.willChange = 'auto';\n }\n\n this._hiddenMode = value;\n\n if (this.isHidden) {\n // Set styles for new mode.\n this._toggleHidden(true);\n }\n }\n\n /**\n * Get the parent of the widget.\n */\n get parent(): Widget | null {\n return this._parent;\n }\n\n /**\n * Set the parent of the widget.\n *\n * #### Notes\n * Children are typically added to a widget by using a layout, which\n * means user code will not normally set the parent widget directly.\n *\n * The widget will be automatically removed from its old parent.\n *\n * This is a no-op if there is no effective parent change.\n */\n set parent(value: Widget | null) {\n if (this._parent === value) {\n return;\n }\n if (value && this.contains(value)) {\n throw new Error('Invalid parent widget.');\n }\n if (this._parent && !this._parent.isDisposed) {\n let msg = new Widget.ChildMessage('child-removed', this);\n MessageLoop.sendMessage(this._parent, msg);\n }\n this._parent = value;\n if (this._parent && !this._parent.isDisposed) {\n let msg = new Widget.ChildMessage('child-added', this);\n MessageLoop.sendMessage(this._parent, msg);\n }\n if (!this.isDisposed) {\n MessageLoop.sendMessage(this, Widget.Msg.ParentChanged);\n }\n }\n\n /**\n * Get the layout for the widget.\n */\n get layout(): Layout | null {\n return this._layout;\n }\n\n /**\n * Set the layout for the widget.\n *\n * #### Notes\n * The layout is single-use only. It cannot be changed after the\n * first assignment.\n *\n * The layout is disposed automatically when the widget is disposed.\n */\n set layout(value: Layout | null) {\n if (this._layout === value) {\n return;\n }\n if (this.testFlag(Widget.Flag.DisallowLayout)) {\n throw new Error('Cannot set widget layout.');\n }\n if (this._layout) {\n throw new Error('Cannot change widget layout.');\n }\n if (value!.parent) {\n throw new Error('Cannot change layout parent.');\n }\n this._layout = value;\n value!.parent = this;\n }\n\n /**\n * Create an iterator over the widget's children.\n *\n * @returns A new iterator over the children of the widget.\n *\n * #### Notes\n * The widget must have a populated layout in order to have children.\n *\n * If a layout is not installed, the returned iterator will be empty.\n */\n children(): IIterator {\n return this._layout ? this._layout.iter() : empty();\n }\n\n /**\n * Test whether a widget is a descendant of this widget.\n *\n * @param widget - The descendant widget of interest.\n *\n * @returns `true` if the widget is a descendant, `false` otherwise.\n */\n contains(widget: Widget): boolean {\n for (let value: Widget | null = widget; value; value = value._parent) {\n if (value === this) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Test whether the widget's DOM node has the given class name.\n *\n * @param name - The class name of interest.\n *\n * @returns `true` if the node has the class, `false` otherwise.\n */\n hasClass(name: string): boolean {\n return this.node.classList.contains(name);\n }\n\n /**\n * Add a class name to the widget's DOM node.\n *\n * @param name - The class name to add to the node.\n *\n * #### Notes\n * If the class name is already added to the node, this is a no-op.\n *\n * The class name must not contain whitespace.\n */\n addClass(name: string): void {\n this.node.classList.add(name);\n }\n\n /**\n * Remove a class name from the widget's DOM node.\n *\n * @param name - The class name to remove from the node.\n *\n * #### Notes\n * If the class name is not yet added to the node, this is a no-op.\n *\n * The class name must not contain whitespace.\n */\n removeClass(name: string): void {\n this.node.classList.remove(name);\n }\n\n /**\n * Toggle a class name on the widget's DOM node.\n *\n * @param name - The class name to toggle on the node.\n *\n * @param force - Whether to force add the class (`true`) or force\n * remove the class (`false`). If not provided, the presence of\n * the class will be toggled from its current state.\n *\n * @returns `true` if the class is now present, `false` otherwise.\n *\n * #### Notes\n * The class name must not contain whitespace.\n */\n toggleClass(name: string, force?: boolean): boolean {\n if (force === true) {\n this.node.classList.add(name);\n return true;\n }\n if (force === false) {\n this.node.classList.remove(name);\n return false;\n }\n return this.node.classList.toggle(name);\n }\n\n /**\n * Post an `'update-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for posting the message.\n */\n update(): void {\n MessageLoop.postMessage(this, Widget.Msg.UpdateRequest);\n }\n\n /**\n * Post a `'fit-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for posting the message.\n */\n fit(): void {\n MessageLoop.postMessage(this, Widget.Msg.FitRequest);\n }\n\n /**\n * Post an `'activate-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for posting the message.\n */\n activate(): void {\n MessageLoop.postMessage(this, Widget.Msg.ActivateRequest);\n }\n\n /**\n * Send a `'close-request'` message to the widget.\n *\n * #### Notes\n * This is a simple convenience method for sending the message.\n */\n close(): void {\n MessageLoop.sendMessage(this, Widget.Msg.CloseRequest);\n }\n\n /**\n * Show the widget and make it visible to its parent widget.\n *\n * #### Notes\n * This causes the [[isHidden]] property to be `false`.\n *\n * If the widget is not explicitly hidden, this is a no-op.\n */\n show(): void {\n if (!this.testFlag(Widget.Flag.IsHidden)) {\n return;\n }\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.BeforeShow);\n }\n this.clearFlag(Widget.Flag.IsHidden);\n this.node.removeAttribute('aria-hidden');\n this._toggleHidden(false);\n\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.AfterShow);\n }\n if (this.parent) {\n let msg = new Widget.ChildMessage('child-shown', this);\n MessageLoop.sendMessage(this.parent, msg);\n }\n }\n\n /**\n * Hide the widget and make it hidden to its parent widget.\n *\n * #### Notes\n * This causes the [[isHidden]] property to be `true`.\n *\n * If the widget is explicitly hidden, this is a no-op.\n */\n hide(): void {\n if (this.testFlag(Widget.Flag.IsHidden)) {\n return;\n }\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.BeforeHide);\n }\n this.setFlag(Widget.Flag.IsHidden);\n this.node.setAttribute('aria-hidden', 'true');\n this._toggleHidden(true);\n\n if (this.isAttached && (!this.parent || this.parent.isVisible)) {\n MessageLoop.sendMessage(this, Widget.Msg.AfterHide);\n }\n if (this.parent) {\n let msg = new Widget.ChildMessage('child-hidden', this);\n MessageLoop.sendMessage(this.parent, msg);\n }\n }\n\n /**\n * Show or hide the widget according to a boolean value.\n *\n * @param hidden - `true` to hide the widget, or `false` to show it.\n *\n * #### Notes\n * This is a convenience method for `hide()` and `show()`.\n */\n setHidden(hidden: boolean): void {\n if (hidden) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Test whether the given widget flag is set.\n *\n * #### Notes\n * This will not typically be called directly by user code.\n */\n testFlag(flag: Widget.Flag): boolean {\n return (this._flags & flag) !== 0;\n }\n\n /**\n * Set the given widget flag.\n *\n * #### Notes\n * This will not typically be called directly by user code.\n */\n setFlag(flag: Widget.Flag): void {\n this._flags |= flag;\n }\n\n /**\n * Clear the given widget flag.\n *\n * #### Notes\n * This will not typically be called directly by user code.\n */\n clearFlag(flag: Widget.Flag): void {\n this._flags &= ~flag;\n }\n\n /**\n * Process a message sent to the widget.\n *\n * @param msg - The message sent to the widget.\n *\n * #### Notes\n * Subclasses may reimplement this method as needed.\n */\n processMessage(msg: Message): void {\n switch (msg.type) {\n case 'resize':\n this.notifyLayout(msg);\n this.onResize(msg as Widget.ResizeMessage);\n break;\n case 'update-request':\n this.notifyLayout(msg);\n this.onUpdateRequest(msg);\n break;\n case 'fit-request':\n this.notifyLayout(msg);\n this.onFitRequest(msg);\n break;\n case 'before-show':\n this.notifyLayout(msg);\n this.onBeforeShow(msg);\n break;\n case 'after-show':\n this.setFlag(Widget.Flag.IsVisible);\n this.notifyLayout(msg);\n this.onAfterShow(msg);\n break;\n case 'before-hide':\n this.notifyLayout(msg);\n this.onBeforeHide(msg);\n break;\n case 'after-hide':\n this.clearFlag(Widget.Flag.IsVisible);\n this.notifyLayout(msg);\n this.onAfterHide(msg);\n break;\n case 'before-attach':\n this.notifyLayout(msg);\n this.onBeforeAttach(msg);\n break;\n case 'after-attach':\n if (!this.isHidden && (!this.parent || this.parent.isVisible)) {\n this.setFlag(Widget.Flag.IsVisible);\n }\n this.setFlag(Widget.Flag.IsAttached);\n this.notifyLayout(msg);\n this.onAfterAttach(msg);\n break;\n case 'before-detach':\n this.notifyLayout(msg);\n this.onBeforeDetach(msg);\n break;\n case 'after-detach':\n this.clearFlag(Widget.Flag.IsVisible);\n this.clearFlag(Widget.Flag.IsAttached);\n this.notifyLayout(msg);\n this.onAfterDetach(msg);\n break;\n case 'activate-request':\n this.notifyLayout(msg);\n this.onActivateRequest(msg);\n break;\n case 'close-request':\n this.notifyLayout(msg);\n this.onCloseRequest(msg);\n break;\n case 'child-added':\n this.notifyLayout(msg);\n this.onChildAdded(msg as Widget.ChildMessage);\n break;\n case 'child-removed':\n this.notifyLayout(msg);\n this.onChildRemoved(msg as Widget.ChildMessage);\n break;\n default:\n this.notifyLayout(msg);\n break;\n }\n }\n\n /**\n * Invoke the message processing routine of the widget's layout.\n *\n * @param msg - The message to dispatch to the layout.\n *\n * #### Notes\n * This is a no-op if the widget does not have a layout.\n *\n * This will not typically be called directly by user code.\n */\n protected notifyLayout(msg: Message): void {\n if (this._layout) {\n this._layout.processParentMessage(msg);\n }\n }\n\n /**\n * A message handler invoked on a `'close-request'` message.\n *\n * #### Notes\n * The default implementation unparents or detaches the widget.\n */\n protected onCloseRequest(msg: Message): void {\n if (this.parent) {\n this.parent = null;\n } else if (this.isAttached) {\n Widget.detach(this);\n }\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onResize(msg: Widget.ResizeMessage): void {}\n\n /**\n * A message handler invoked on an `'update-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onUpdateRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onFitRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onActivateRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-show'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeShow(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-show'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterShow(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-hide'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeHide(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-hide'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterHide(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeAttach(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterAttach(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'before-detach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onBeforeDetach(msg: Message): void {}\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onAfterDetach(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'child-added'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {}\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {}\n\n private _toggleHidden(hidden: boolean) {\n if (hidden) {\n switch (this._hiddenMode) {\n case Widget.HiddenMode.Display:\n this.addClass('lm-mod-hidden');\n /* */\n this.addClass('p-mod-hidden');\n /* */\n break;\n case Widget.HiddenMode.Scale:\n this.node.style.transform = 'scale(0)';\n break;\n case Widget.HiddenMode.ContentVisibility:\n this.node.style.contentVisibility = 'hidden';\n this.node.style.zIndex = '-1';\n break;\n }\n } else {\n switch (this._hiddenMode) {\n case Widget.HiddenMode.Display:\n this.removeClass('lm-mod-hidden');\n /* */\n this.removeClass('p-mod-hidden');\n /* */\n break;\n case Widget.HiddenMode.Scale:\n this.node.style.transform = '';\n break;\n case Widget.HiddenMode.ContentVisibility:\n this.node.style.contentVisibility = '';\n this.node.style.zIndex = '';\n break;\n }\n }\n }\n\n private _flags = 0;\n private _layout: Layout | null = null;\n private _parent: Widget | null = null;\n private _disposed = new Signal(this);\n private _hiddenMode: Widget.HiddenMode = Widget.HiddenMode.Display;\n}\n\n/**\n * The namespace for the `Widget` class statics.\n */\nexport namespace Widget {\n /**\n * An options object for initializing a widget.\n */\n export interface IOptions {\n /**\n * The optional node to use for the widget.\n *\n * If a node is provided, the widget will assume full ownership\n * and control of the node, as if it had created the node itself.\n *\n * The default is a new `
    `.\n */\n node?: HTMLElement;\n\n /**\n * The optional element tag, used for constructing the widget's node.\n *\n * If a pre-constructed node is provided via the `node` arg, this\n * value is ignored.\n */\n tag?: keyof HTMLElementTagNameMap;\n }\n\n /**\n * The method for hiding the widget.\n *\n * The default is Display.\n *\n * Using `Scale` will often increase performance as most browsers will not\n * trigger style computation for the `transform` action. This should be used\n * sparingly and tested, since increasing the number of composition layers\n * may slow things down.\n *\n * To ensure the transformation does not trigger style recomputation, you\n * may need to set the widget CSS style `will-change: transform`. This\n * should be used only when needed as it may overwhelm the browser with a\n * high number of layers. See\n * https://developer.mozilla.org/en-US/docs/Web/CSS/will-change\n */\n export enum HiddenMode {\n /**\n * Set a `lm-mod-hidden` CSS class to hide the widget using `display:none`\n * CSS from the standard Lumino CSS.\n */\n Display = 0,\n\n /**\n * Hide the widget by setting the `transform` to `'scale(0)'`.\n */\n Scale,\n\n /**\n *Hide the widget by setting the `content-visibility` to `'hidden'`.\n */\n ContentVisibility\n }\n\n /**\n * An enum of widget bit flags.\n */\n export enum Flag {\n /**\n * The widget has been disposed.\n */\n IsDisposed = 0x1,\n\n /**\n * The widget is attached to the DOM.\n */\n IsAttached = 0x2,\n\n /**\n * The widget is hidden.\n */\n IsHidden = 0x4,\n\n /**\n * The widget is visible.\n */\n IsVisible = 0x8,\n\n /**\n * A layout cannot be set on the widget.\n */\n DisallowLayout = 0x10\n }\n\n /**\n * A collection of stateless messages related to widgets.\n */\n export namespace Msg {\n /**\n * A singleton `'before-show'` message.\n *\n * #### Notes\n * This message is sent to a widget before it becomes visible.\n *\n * This message is **not** sent when the widget is being attached.\n */\n export const BeforeShow = new Message('before-show');\n\n /**\n * A singleton `'after-show'` message.\n *\n * #### Notes\n * This message is sent to a widget after it becomes visible.\n *\n * This message is **not** sent when the widget is being attached.\n */\n export const AfterShow = new Message('after-show');\n\n /**\n * A singleton `'before-hide'` message.\n *\n * #### Notes\n * This message is sent to a widget before it becomes not-visible.\n *\n * This message is **not** sent when the widget is being detached.\n */\n export const BeforeHide = new Message('before-hide');\n\n /**\n * A singleton `'after-hide'` message.\n *\n * #### Notes\n * This message is sent to a widget after it becomes not-visible.\n *\n * This message is **not** sent when the widget is being detached.\n */\n export const AfterHide = new Message('after-hide');\n\n /**\n * A singleton `'before-attach'` message.\n *\n * #### Notes\n * This message is sent to a widget before it is attached.\n */\n export const BeforeAttach = new Message('before-attach');\n\n /**\n * A singleton `'after-attach'` message.\n *\n * #### Notes\n * This message is sent to a widget after it is attached.\n */\n export const AfterAttach = new Message('after-attach');\n\n /**\n * A singleton `'before-detach'` message.\n *\n * #### Notes\n * This message is sent to a widget before it is detached.\n */\n export const BeforeDetach = new Message('before-detach');\n\n /**\n * A singleton `'after-detach'` message.\n *\n * #### Notes\n * This message is sent to a widget after it is detached.\n */\n export const AfterDetach = new Message('after-detach');\n\n /**\n * A singleton `'parent-changed'` message.\n *\n * #### Notes\n * This message is sent to a widget when its parent has changed.\n */\n export const ParentChanged = new Message('parent-changed');\n\n /**\n * A singleton conflatable `'update-request'` message.\n *\n * #### Notes\n * This message can be dispatched to supporting widgets in order to\n * update their content based on the current widget state. Not all\n * widgets will respond to messages of this type.\n *\n * For widgets with a layout, this message will inform the layout to\n * update the position and size of its child widgets.\n */\n export const UpdateRequest = new ConflatableMessage('update-request');\n\n /**\n * A singleton conflatable `'fit-request'` message.\n *\n * #### Notes\n * For widgets with a layout, this message will inform the layout to\n * recalculate its size constraints to fit the space requirements of\n * its child widgets, and to update their position and size. Not all\n * layouts will respond to messages of this type.\n */\n export const FitRequest = new ConflatableMessage('fit-request');\n\n /**\n * A singleton conflatable `'activate-request'` message.\n *\n * #### Notes\n * This message should be dispatched to a widget when it should\n * perform the actions necessary to activate the widget, which\n * may include focusing its node or descendant node.\n */\n export const ActivateRequest = new ConflatableMessage('activate-request');\n\n /**\n * A singleton conflatable `'close-request'` message.\n *\n * #### Notes\n * This message should be dispatched to a widget when it should close\n * and remove itself from the widget hierarchy.\n */\n export const CloseRequest = new ConflatableMessage('close-request');\n }\n\n /**\n * A message class for child related messages.\n */\n export class ChildMessage extends Message {\n /**\n * Construct a new child message.\n *\n * @param type - The message type.\n *\n * @param child - The child widget for the message.\n */\n constructor(type: string, child: Widget) {\n super(type);\n this.child = child;\n }\n\n /**\n * The child widget for the message.\n */\n readonly child: Widget;\n }\n\n /**\n * A message class for `'resize'` messages.\n */\n export class ResizeMessage extends Message {\n /**\n * Construct a new resize message.\n *\n * @param width - The **offset width** of the widget, or `-1` if\n * the width is not known.\n *\n * @param height - The **offset height** of the widget, or `-1` if\n * the height is not known.\n */\n constructor(width: number, height: number) {\n super('resize');\n this.width = width;\n this.height = height;\n }\n\n /**\n * The offset width of the widget.\n *\n * #### Notes\n * This will be `-1` if the width is unknown.\n */\n readonly width: number;\n\n /**\n * The offset height of the widget.\n *\n * #### Notes\n * This will be `-1` if the height is unknown.\n */\n readonly height: number;\n }\n\n /**\n * The namespace for the `ResizeMessage` class statics.\n */\n export namespace ResizeMessage {\n /**\n * A singleton `'resize'` message with an unknown size.\n */\n export const UnknownSize = new ResizeMessage(-1, -1);\n }\n\n /**\n * Attach a widget to a host DOM node.\n *\n * @param widget - The widget of interest.\n *\n * @param host - The DOM node to use as the widget's host.\n *\n * @param ref - The child of `host` to use as the reference element.\n * If this is provided, the widget will be inserted before this\n * node in the host. The default is `null`, which will cause the\n * widget to be added as the last child of the host.\n *\n * #### Notes\n * This will throw an error if the widget is not a root widget, if\n * the widget is already attached, or if the host is not attached\n * to the DOM.\n */\n export function attach(\n widget: Widget,\n host: HTMLElement,\n ref: HTMLElement | null = null\n ): void {\n if (widget.parent) {\n throw new Error('Cannot attach a child widget.');\n }\n if (widget.isAttached || widget.node.isConnected) {\n throw new Error('Widget is already attached.');\n }\n if (!host.isConnected) {\n throw new Error('Host is not attached.');\n }\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n host.insertBefore(widget.node, ref);\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n /**\n * Detach the widget from its host DOM node.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * This will throw an error if the widget is not a root widget,\n * or if the widget is not attached to the DOM.\n */\n export function detach(widget: Widget): void {\n if (widget.parent) {\n throw new Error('Cannot detach a child widget.');\n }\n if (!widget.isAttached || !widget.node.isConnected) {\n throw new Error('Widget is not attached.');\n }\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n widget.node.parentNode!.removeChild(widget.node);\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * An attached property for the widget title object.\n */\n export const titleProperty = new AttachedProperty>({\n name: 'title',\n create: owner => new Title({ owner })\n });\n\n /**\n * Create a DOM node for the given widget options.\n */\n export function createNode(options: Widget.IOptions): HTMLElement {\n return options.node || document.createElement(options.tag || 'div');\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { VirtualElement } from '@lumino/virtualdom';\n\n/**\n * An object which holds data related to an object's title.\n *\n * #### Notes\n * A title object is intended to hold the data necessary to display a\n * header for a particular object. A common example is the `TabPanel`,\n * which uses the widget title to populate the tab for a child widget.\n *\n * It is the responsibility of the owner to call the title disposal.\n */\nexport class Title implements IDisposable {\n /**\n * Construct a new title.\n *\n * @param options - The options for initializing the title.\n */\n constructor(options: Title.IOptions) {\n this.owner = options.owner;\n if (options.label !== undefined) {\n this._label = options.label;\n }\n if (options.mnemonic !== undefined) {\n this._mnemonic = options.mnemonic;\n }\n if (options.icon !== undefined) {\n /* */\n if (typeof options.icon === 'string') {\n // when ._icon is null, the .icon getter will alias .iconClass\n this._icon = null;\n this._iconClass = options.icon;\n } else {\n /* */\n\n this._icon = options.icon;\n\n /* */\n }\n /* */\n } else {\n /* */\n // if unset, default to aliasing .iconClass\n this._icon = null;\n }\n /* */\n\n if (options.iconClass !== undefined) {\n this._iconClass = options.iconClass;\n }\n if (options.iconLabel !== undefined) {\n this._iconLabel = options.iconLabel;\n }\n if (options.iconRenderer !== undefined) {\n this._icon = options.iconRenderer;\n }\n if (options.caption !== undefined) {\n this._caption = options.caption;\n }\n if (options.className !== undefined) {\n this._className = options.className;\n }\n if (options.closable !== undefined) {\n this._closable = options.closable;\n }\n this._dataset = options.dataset || {};\n }\n\n /**\n * A signal emitted when the state of the title changes.\n */\n get changed(): ISignal {\n return this._changed;\n }\n\n /**\n * The object which owns the title.\n */\n readonly owner: T;\n\n /**\n * Get the label for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get label(): string {\n return this._label;\n }\n\n /**\n * Set the label for the title.\n */\n set label(value: string) {\n if (this._label === value) {\n return;\n }\n this._label = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the mnemonic index for the title.\n *\n * #### Notes\n * The default value is `-1`.\n */\n get mnemonic(): number {\n return this._mnemonic;\n }\n\n /**\n * Set the mnemonic index for the title.\n */\n set mnemonic(value: number) {\n if (this._mnemonic === value) {\n return;\n }\n this._mnemonic = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the icon renderer for the title.\n *\n * #### Notes\n * The default value is undefined.\n *\n * DEPRECATED: if set to a string value, the .icon field will function as\n * an alias for the .iconClass field, for backwards compatibility\n */\n get icon():\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */ {\n /* */\n if (this._icon === null) {\n // only alias .iconClass if ._icon has been explicitly nulled\n return this.iconClass;\n }\n /* */\n\n return this._icon;\n }\n\n /**\n * Set the icon renderer for the title.\n *\n * #### Notes\n * A renderer is an object that supplies a render and unrender function.\n *\n * DEPRECATED: if set to a string value, the .icon field will function as\n * an alias for the .iconClass field, for backwards compatibility\n */\n set icon(\n value:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */\n ) {\n /* */\n if (typeof value === 'string') {\n // when ._icon is null, the .icon getter will alias .iconClass\n this._icon = null;\n this.iconClass = value;\n } else {\n /* */\n\n if (this._icon === value) {\n return;\n }\n this._icon = value;\n this._changed.emit(undefined);\n\n /* */\n }\n /* */\n }\n\n /**\n * Get the icon class name for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get iconClass(): string {\n return this._iconClass;\n }\n\n /**\n * Set the icon class name for the title.\n *\n * #### Notes\n * Multiple class names can be separated with whitespace.\n */\n set iconClass(value: string) {\n if (this._iconClass === value) {\n return;\n }\n this._iconClass = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the icon label for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get iconLabel(): string {\n return this._iconLabel;\n }\n\n /**\n * Set the icon label for the title.\n *\n * #### Notes\n * Multiple class names can be separated with whitespace.\n */\n set iconLabel(value: string) {\n if (this._iconLabel === value) {\n return;\n }\n this._iconLabel = value;\n this._changed.emit(undefined);\n }\n\n /**\n * @deprecated Use `icon` instead.\n */\n get iconRenderer(): VirtualElement.IRenderer | undefined {\n return this._icon || undefined;\n }\n\n /**\n * @deprecated Use `icon` instead.\n */\n set iconRenderer(value: VirtualElement.IRenderer | undefined) {\n this.icon = value;\n }\n\n /**\n * Get the caption for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get caption(): string {\n return this._caption;\n }\n\n /**\n * Set the caption for the title.\n */\n set caption(value: string) {\n if (this._caption === value) {\n return;\n }\n this._caption = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the extra class name for the title.\n *\n * #### Notes\n * The default value is an empty string.\n */\n get className(): string {\n return this._className;\n }\n\n /**\n * Set the extra class name for the title.\n *\n * #### Notes\n * Multiple class names can be separated with whitespace.\n */\n set className(value: string) {\n if (this._className === value) {\n return;\n }\n this._className = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the closable state for the title.\n *\n * #### Notes\n * The default value is `false`.\n */\n get closable(): boolean {\n return this._closable;\n }\n\n /**\n * Set the closable state for the title.\n *\n * #### Notes\n * This controls the presence of a close icon when applicable.\n */\n set closable(value: boolean) {\n if (this._closable === value) {\n return;\n }\n this._closable = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Get the dataset for the title.\n *\n * #### Notes\n * The default value is an empty dataset.\n */\n get dataset(): Title.Dataset {\n return this._dataset;\n }\n\n /**\n * Set the dataset for the title.\n *\n * #### Notes\n * This controls the data attributes when applicable.\n */\n set dataset(value: Title.Dataset) {\n if (this._dataset === value) {\n return;\n }\n this._dataset = value;\n this._changed.emit(undefined);\n }\n\n /**\n * Test whether the title has been disposed.\n */\n get isDisposed(): boolean {\n return this._isDisposed;\n }\n\n /**\n * Dispose of the resources held by the title.\n *\n * #### Notes\n * It is the responsibility of the owner to call the title disposal.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n this._isDisposed = true;\n\n Signal.clearData(this);\n }\n\n private _label = '';\n private _caption = '';\n private _mnemonic = -1;\n\n private _icon:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | null /* */;\n\n private _iconClass = '';\n private _iconLabel = '';\n private _className = '';\n private _closable = false;\n private _dataset: Title.Dataset;\n private _changed = new Signal(this);\n private _isDisposed = false;\n}\n\n/**\n * The namespace for the `Title` class statics.\n */\nexport namespace Title {\n /**\n * A type alias for a simple immutable string dataset.\n */\n export type Dataset = { readonly [key: string]: string };\n\n /**\n * An options object for initializing a title.\n */\n export interface IOptions {\n /**\n * The object which owns the title.\n */\n owner: T;\n\n /**\n * The label for the title.\n */\n label?: string;\n\n /**\n * The mnemonic index for the title.\n */\n mnemonic?: number;\n\n /**\n * The icon renderer for the title.\n *\n * DEPRECATED: if set to a string value, the .icon field will function as\n * an alias for the .iconClass field, for backwards compatibility\n */\n icon?: VirtualElement.IRenderer | string;\n\n /**\n * The icon class name for the title.\n */\n iconClass?: string;\n\n /**\n * The icon label for the title.\n */\n iconLabel?: string;\n\n /**\n * @deprecated Use `icon` instead.\n */\n iconRenderer?: VirtualElement.IRenderer;\n\n /**\n * The caption for the title.\n */\n caption?: string;\n\n /**\n * The extra class name for the title.\n */\n className?: string;\n\n /**\n * The closable state for the title.\n */\n closable?: boolean;\n\n /**\n * The dataset for the title.\n */\n dataset?: Dataset;\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, IIterable, IIterator } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { Signal } from '@lumino/signaling';\n\nimport { Widget } from './widget';\n\n/**\n * An abstract base class for creating lumino layouts.\n *\n * #### Notes\n * A layout is used to add widgets to a parent and to arrange those\n * widgets within the parent's DOM node.\n *\n * This class implements the base functionality which is required of\n * nearly all layouts. It must be subclassed in order to be useful.\n *\n * Notably, this class does not define a uniform interface for adding\n * widgets to the layout. A subclass should define that API in a way\n * which is meaningful for its intended use.\n */\nexport abstract class Layout implements IIterable, IDisposable {\n /**\n * Construct a new layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: Layout.IOptions = {}) {\n this._fitPolicy = options.fitPolicy || 'set-min-size';\n }\n\n /**\n * Dispose of the resources held by the layout.\n *\n * #### Notes\n * This should be reimplemented to clear and dispose of the widgets.\n *\n * All reimplementations should call the superclass method.\n *\n * This method is called automatically when the parent is disposed.\n */\n dispose(): void {\n this._parent = null;\n this._disposed = true;\n Signal.clearData(this);\n AttachedProperty.clearData(this);\n }\n\n /**\n * Test whether the layout is disposed.\n */\n get isDisposed(): boolean {\n return this._disposed;\n }\n\n /**\n * Get the parent widget of the layout.\n */\n get parent(): Widget | null {\n return this._parent;\n }\n\n /**\n * Set the parent widget of the layout.\n *\n * #### Notes\n * This is set automatically when installing the layout on the parent\n * widget. The parent widget should not be set directly by user code.\n */\n set parent(value: Widget | null) {\n if (this._parent === value) {\n return;\n }\n if (this._parent) {\n throw new Error('Cannot change parent widget.');\n }\n if (value!.layout !== this) {\n throw new Error('Invalid parent widget.');\n }\n this._parent = value;\n this.init();\n }\n\n /**\n * Get the fit policy for the layout.\n *\n * #### Notes\n * The fit policy controls the computed size constraints which are\n * applied to the parent widget by the layout.\n *\n * Some layout implementations may ignore the fit policy.\n */\n get fitPolicy(): Layout.FitPolicy {\n return this._fitPolicy;\n }\n\n /**\n * Set the fit policy for the layout.\n *\n * #### Notes\n * The fit policy controls the computed size constraints which are\n * applied to the parent widget by the layout.\n *\n * Some layout implementations may ignore the fit policy.\n *\n * Changing the fit policy will clear the current size constraint\n * for the parent widget and then re-fit the parent.\n */\n set fitPolicy(value: Layout.FitPolicy) {\n // Bail if the policy does not change\n if (this._fitPolicy === value) {\n return;\n }\n\n // Update the internal policy.\n this._fitPolicy = value;\n\n // Clear the size constraints and schedule a fit of the parent.\n if (this._parent) {\n let style = this._parent.node.style;\n style.minWidth = '';\n style.minHeight = '';\n style.maxWidth = '';\n style.maxHeight = '';\n this._parent.fit();\n }\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n *\n * #### Notes\n * This abstract method must be implemented by a subclass.\n */\n abstract iter(): IIterator;\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method should *not* modify the widget's `parent`.\n */\n abstract removeWidget(widget: Widget): void;\n\n /**\n * Process a message sent to the parent widget.\n *\n * @param msg - The message sent to the parent widget.\n *\n * #### Notes\n * This method is called by the parent widget to process a message.\n *\n * Subclasses may reimplement this method as needed.\n */\n processParentMessage(msg: Message): void {\n switch (msg.type) {\n case 'resize':\n this.onResize(msg as Widget.ResizeMessage);\n break;\n case 'update-request':\n this.onUpdateRequest(msg);\n break;\n case 'fit-request':\n this.onFitRequest(msg);\n break;\n case 'before-show':\n this.onBeforeShow(msg);\n break;\n case 'after-show':\n this.onAfterShow(msg);\n break;\n case 'before-hide':\n this.onBeforeHide(msg);\n break;\n case 'after-hide':\n this.onAfterHide(msg);\n break;\n case 'before-attach':\n this.onBeforeAttach(msg);\n break;\n case 'after-attach':\n this.onAfterAttach(msg);\n break;\n case 'before-detach':\n this.onBeforeDetach(msg);\n break;\n case 'after-detach':\n this.onAfterDetach(msg);\n break;\n case 'child-removed':\n this.onChildRemoved(msg as Widget.ChildMessage);\n break;\n case 'child-shown':\n this.onChildShown(msg as Widget.ChildMessage);\n break;\n case 'child-hidden':\n this.onChildHidden(msg as Widget.ChildMessage);\n break;\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n *\n * #### Notes\n * This method is invoked immediately after the layout is installed\n * on the parent widget.\n *\n * The default implementation reparents all of the widgets to the\n * layout parent widget.\n *\n * Subclasses should reimplement this method and attach the child\n * widget nodes to the parent widget's node.\n */\n protected init(): void {\n each(this, widget => {\n widget.parent = this.parent;\n });\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n *\n * #### Notes\n * The layout should ensure that its widgets are resized according\n * to the specified layout space, and that they are sent a `'resize'`\n * message if appropriate.\n *\n * The default implementation of this method sends an `UnknownSize`\n * resize message to all widgets.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, Widget.ResizeMessage.UnknownSize);\n });\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n *\n * #### Notes\n * The layout should ensure that its widgets are resized according\n * to the available layout space, and that they are sent a `'resize'`\n * message if appropriate.\n *\n * The default implementation of this method sends an `UnknownSize`\n * resize message to all widgets.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onUpdateRequest(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, Widget.ResizeMessage.UnknownSize);\n });\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeAttach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on an `'after-attach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterAttach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on a `'before-detach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeDetach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message\n * to all widgets. It assumes all widget nodes are attached to the\n * parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterDetach(msg: Message): void {\n each(this, widget => {\n MessageLoop.sendMessage(widget, msg);\n });\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeShow(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on an `'after-show'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterShow(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on a `'before-hide'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onBeforeHide(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on an `'after-hide'` message.\n *\n * #### Notes\n * The default implementation of this method forwards the message to\n * all non-hidden widgets. It assumes all widget nodes are attached\n * to the parent widget node.\n *\n * This may be reimplemented by subclasses as needed.\n */\n protected onAfterHide(msg: Message): void {\n each(this, widget => {\n if (!widget.isHidden) {\n MessageLoop.sendMessage(widget, msg);\n }\n });\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n *\n * #### Notes\n * This will remove the child widget from the layout.\n *\n * Subclasses should **not** typically reimplement this method.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n this.removeWidget(msg.child);\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onFitRequest(msg: Message): void {}\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {}\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n *\n * #### Notes\n * The default implementation of this handler is a no-op.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {}\n\n private _disposed = false;\n private _fitPolicy: Layout.FitPolicy;\n private _parent: Widget | null = null;\n}\n\n/**\n * The namespace for the `Layout` class statics.\n */\nexport namespace Layout {\n /**\n * A type alias for the layout fit policy.\n *\n * #### Notes\n * The fit policy controls the computed size constraints which are\n * applied to the parent widget by the layout.\n *\n * Some layout implementations may ignore the fit policy.\n */\n export type FitPolicy =\n | /**\n * No size constraint will be applied to the parent widget.\n */\n 'set-no-constraint'\n\n /**\n * The computed min size will be applied to the parent widget.\n */\n | 'set-min-size';\n\n /**\n * An options object for initializing a layout.\n */\n export interface IOptions {\n /**\n * The fit policy for the layout.\n *\n * The default is `'set-min-size'`.\n */\n fitPolicy?: FitPolicy;\n }\n\n /**\n * A type alias for the horizontal alignment of a widget.\n */\n export type HorizontalAlignment = 'left' | 'center' | 'right';\n\n /**\n * A type alias for the vertical alignment of a widget.\n */\n export type VerticalAlignment = 'top' | 'center' | 'bottom';\n\n /**\n * Get the horizontal alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The horizontal alignment for the widget.\n *\n * #### Notes\n * If the layout width allocated to a widget is larger than its max\n * width, the horizontal alignment controls how the widget is placed\n * within the extra horizontal space.\n *\n * If the allocated width is less than the widget's max width, the\n * horizontal alignment has no effect.\n *\n * Some layout implementations may ignore horizontal alignment.\n */\n export function getHorizontalAlignment(widget: Widget): HorizontalAlignment {\n return Private.horizontalAlignmentProperty.get(widget);\n }\n\n /**\n * Set the horizontal alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the horizontal alignment.\n *\n * #### Notes\n * If the layout width allocated to a widget is larger than its max\n * width, the horizontal alignment controls how the widget is placed\n * within the extra horizontal space.\n *\n * If the allocated width is less than the widget's max width, the\n * horizontal alignment has no effect.\n *\n * Some layout implementations may ignore horizontal alignment.\n *\n * Changing the horizontal alignment will post an `update-request`\n * message to widget's parent, provided the parent has a layout\n * installed.\n */\n export function setHorizontalAlignment(\n widget: Widget,\n value: HorizontalAlignment\n ): void {\n Private.horizontalAlignmentProperty.set(widget, value);\n }\n\n /**\n * Get the vertical alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The vertical alignment for the widget.\n *\n * #### Notes\n * If the layout height allocated to a widget is larger than its max\n * height, the vertical alignment controls how the widget is placed\n * within the extra vertical space.\n *\n * If the allocated height is less than the widget's max height, the\n * vertical alignment has no effect.\n *\n * Some layout implementations may ignore vertical alignment.\n */\n export function getVerticalAlignment(widget: Widget): VerticalAlignment {\n return Private.verticalAlignmentProperty.get(widget);\n }\n\n /**\n * Set the vertical alignment for a widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the vertical alignment.\n *\n * #### Notes\n * If the layout height allocated to a widget is larger than its max\n * height, the vertical alignment controls how the widget is placed\n * within the extra vertical space.\n *\n * If the allocated height is less than the widget's max height, the\n * vertical alignment has no effect.\n *\n * Some layout implementations may ignore vertical alignment.\n *\n * Changing the horizontal alignment will post an `update-request`\n * message to widget's parent, provided the parent has a layout\n * installed.\n */\n export function setVerticalAlignment(\n widget: Widget,\n value: VerticalAlignment\n ): void {\n Private.verticalAlignmentProperty.set(widget, value);\n }\n}\n\n/**\n * An object which assists in the absolute layout of widgets.\n *\n * #### Notes\n * This class is useful when implementing a layout which arranges its\n * widgets using absolute positioning.\n *\n * This class is used by nearly all of the built-in lumino layouts.\n */\nexport class LayoutItem implements IDisposable {\n /**\n * Construct a new layout item.\n *\n * @param widget - The widget to be managed by the item.\n *\n * #### Notes\n * The widget will be set to absolute positioning.\n */\n constructor(widget: Widget) {\n this.widget = widget;\n this.widget.node.style.position = 'absolute';\n }\n\n /**\n * Dispose of the the layout item.\n *\n * #### Notes\n * This will reset the positioning of the widget.\n */\n dispose(): void {\n // Do nothing if the item is already disposed.\n if (this._disposed) {\n return;\n }\n\n // Mark the item as disposed.\n this._disposed = true;\n\n // Reset the widget style.\n let style = this.widget.node.style;\n style.position = '';\n style.top = '';\n style.left = '';\n style.width = '';\n style.height = '';\n }\n\n /**\n * The widget managed by the layout item.\n */\n readonly widget: Widget;\n\n /**\n * The computed minimum width of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get minWidth(): number {\n return this._minWidth;\n }\n\n /**\n * The computed minimum height of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get minHeight(): number {\n return this._minHeight;\n }\n\n /**\n * The computed maximum width of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get maxWidth(): number {\n return this._maxWidth;\n }\n\n /**\n * The computed maximum height of the widget.\n *\n * #### Notes\n * This value can be updated by calling the `fit` method.\n */\n get maxHeight(): number {\n return this._maxHeight;\n }\n\n /**\n * Whether the layout item is disposed.\n */\n get isDisposed(): boolean {\n return this._disposed;\n }\n\n /**\n * Whether the managed widget is hidden.\n */\n get isHidden(): boolean {\n return this.widget.isHidden;\n }\n\n /**\n * Whether the managed widget is visible.\n */\n get isVisible(): boolean {\n return this.widget.isVisible;\n }\n\n /**\n * Whether the managed widget is attached.\n */\n get isAttached(): boolean {\n return this.widget.isAttached;\n }\n\n /**\n * Update the computed size limits of the managed widget.\n */\n fit(): void {\n let limits = ElementExt.sizeLimits(this.widget.node);\n this._minWidth = limits.minWidth;\n this._minHeight = limits.minHeight;\n this._maxWidth = limits.maxWidth;\n this._maxHeight = limits.maxHeight;\n }\n\n /**\n * Update the position and size of the managed widget.\n *\n * @param left - The left edge position of the layout box.\n *\n * @param top - The top edge position of the layout box.\n *\n * @param width - The width of the layout box.\n *\n * @param height - The height of the layout box.\n */\n update(left: number, top: number, width: number, height: number): void {\n // Clamp the size to the computed size limits.\n let clampW = Math.max(this._minWidth, Math.min(width, this._maxWidth));\n let clampH = Math.max(this._minHeight, Math.min(height, this._maxHeight));\n\n // Adjust the left edge for the horizontal alignment, if needed.\n if (clampW < width) {\n switch (Layout.getHorizontalAlignment(this.widget)) {\n case 'left':\n break;\n case 'center':\n left += (width - clampW) / 2;\n break;\n case 'right':\n left += width - clampW;\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Adjust the top edge for the vertical alignment, if needed.\n if (clampH < height) {\n switch (Layout.getVerticalAlignment(this.widget)) {\n case 'top':\n break;\n case 'center':\n top += (height - clampH) / 2;\n break;\n case 'bottom':\n top += height - clampH;\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Set up the resize variables.\n let resized = false;\n let style = this.widget.node.style;\n\n // Update the top edge of the widget if needed.\n if (this._top !== top) {\n this._top = top;\n style.top = `${top}px`;\n }\n\n // Update the left edge of the widget if needed.\n if (this._left !== left) {\n this._left = left;\n style.left = `${left}px`;\n }\n\n // Update the width of the widget if needed.\n if (this._width !== clampW) {\n resized = true;\n this._width = clampW;\n style.width = `${clampW}px`;\n }\n\n // Update the height of the widget if needed.\n if (this._height !== clampH) {\n resized = true;\n this._height = clampH;\n style.height = `${clampH}px`;\n }\n\n // Send a resize message to the widget if needed.\n if (resized) {\n let msg = new Widget.ResizeMessage(clampW, clampH);\n MessageLoop.sendMessage(this.widget, msg);\n }\n }\n\n private _top = NaN;\n private _left = NaN;\n private _width = NaN;\n private _height = NaN;\n private _minWidth = 0;\n private _minHeight = 0;\n private _maxWidth = Infinity;\n private _maxHeight = Infinity;\n private _disposed = false;\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The attached property for a widget horizontal alignment.\n */\n export const horizontalAlignmentProperty = new AttachedProperty<\n Widget,\n Layout.HorizontalAlignment\n >({\n name: 'horizontalAlignment',\n create: () => 'center',\n changed: onAlignmentChanged\n });\n\n /**\n * The attached property for a widget vertical alignment.\n */\n export const verticalAlignmentProperty = new AttachedProperty<\n Widget,\n Layout.VerticalAlignment\n >({\n name: 'verticalAlignment',\n create: () => 'top',\n changed: onAlignmentChanged\n });\n\n /**\n * The change handler for the attached alignment properties.\n */\n function onAlignmentChanged(child: Widget): void {\n if (child.parent && child.parent.layout) {\n child.parent.update();\n }\n }\n}\n","export namespace Utils {\n /**\n * Clamp a dimension value to an integer >= 0.\n */\n export function clampDimension(value: number): number {\n return Math.max(0, Math.floor(value));\n }\n}\n\nexport default Utils;\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each, IIterator, iter } from '@lumino/algorithm';\n\nimport { MessageLoop } from '@lumino/messaging';\n\nimport { Layout } from './layout';\n\nimport { Widget } from './widget';\n\n/**\n * A concrete layout implementation suitable for many use cases.\n *\n * #### Notes\n * This class is suitable as a base class for implementing a variety of\n * layouts, but can also be used directly with standard CSS to layout a\n * collection of widgets.\n */\nexport class PanelLayout extends Layout {\n /**\n * Dispose of the resources held by the layout.\n *\n * #### Notes\n * This will clear and dispose all widgets in the layout.\n *\n * All reimplementations should call the superclass method.\n *\n * This method is called automatically when the parent is disposed.\n */\n dispose(): void {\n while (this._widgets.length > 0) {\n this._widgets.pop()!.dispose();\n }\n super.dispose();\n }\n\n /**\n * A read-only array of the widgets in the layout.\n */\n get widgets(): ReadonlyArray {\n return this._widgets;\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n */\n iter(): IIterator {\n return iter(this._widgets);\n }\n\n /**\n * Add a widget to the end of the layout.\n *\n * @param widget - The widget to add to the layout.\n *\n * #### Notes\n * If the widget is already contained in the layout, it will be moved.\n */\n addWidget(widget: Widget): void {\n this.insertWidget(this._widgets.length, widget);\n }\n\n /**\n * Insert a widget into the layout at the specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into the layout.\n *\n * #### Notes\n * The index will be clamped to the bounds of the widgets.\n *\n * If the widget is already added to the layout, it will be moved.\n *\n * #### Undefined Behavior\n * An `index` which is non-integral.\n */\n insertWidget(index: number, widget: Widget): void {\n // Remove the widget from its current parent. This is a no-op\n // if the widget's parent is already the layout parent widget.\n widget.parent = this.parent;\n\n // Look up the current index of the widget.\n let i = this._widgets.indexOf(widget);\n\n // Clamp the insert index to the array bounds.\n let j = Math.max(0, Math.min(index, this._widgets.length));\n\n // If the widget is not in the array, insert it.\n if (i === -1) {\n // Insert the widget into the array.\n ArrayExt.insert(this._widgets, j, widget);\n\n // If the layout is parented, attach the widget to the DOM.\n if (this.parent) {\n this.attachWidget(j, widget);\n }\n\n // There is nothing more to do.\n return;\n }\n\n // Otherwise, the widget exists in the array and should be moved.\n\n // Adjust the index if the location is at the end of the array.\n if (j === this._widgets.length) {\n j--;\n }\n\n // Bail if there is no effective move.\n if (i === j) {\n return;\n }\n\n // Move the widget to the new location.\n ArrayExt.move(this._widgets, i, j);\n\n // If the layout is parented, move the widget in the DOM.\n if (this.parent) {\n this.moveWidget(i, j, widget);\n }\n }\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n this.removeWidgetAt(this._widgets.indexOf(widget));\n }\n\n /**\n * Remove the widget at a given index from the layout.\n *\n * @param index - The index of the widget to remove.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n *\n * #### Undefined Behavior\n * An `index` which is non-integral.\n */\n removeWidgetAt(index: number): void {\n // Remove the widget from the array.\n let widget = ArrayExt.removeAt(this._widgets, index);\n\n // If the layout is parented, detach the widget from the DOM.\n if (widget && this.parent) {\n this.detachWidget(index, widget);\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n super.init();\n each(this, (widget, index) => {\n this.attachWidget(index, widget);\n });\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This method is called automatically by the panel layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation adds the widgets's node to the parent's\n * node at the proper location, and sends the appropriate attach\n * messages to the widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is added to the parent's node.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Look up the next sibling reference node.\n let ref = this.parent!.node.children[index];\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Insert the widget's node before the sibling.\n this.parent!.node.insertBefore(widget.node, ref);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This method is called automatically by the panel layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation moves the widget's node to the proper\n * location in the parent's node and sends the appropriate attach and\n * detach messages to the widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is moved in the parent's node.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` and message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Look up the next sibling reference node.\n let ref = this.parent!.node.children[toIndex];\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Insert the widget's node before the sibling.\n this.parent!.node.insertBefore(widget.node, ref);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This method is called automatically by the panel layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation removes the widget's node from the\n * parent's node, and sends the appropriate detach messages to the\n * widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is removed from the parent's node.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n }\n\n private _widgets: Widget[] = [];\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { LayoutItem } from './layout';\n\nimport { PanelLayout } from './panellayout';\n\nimport { Utils } from './utils';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets into resizable sections.\n */\nexport class SplitLayout extends PanelLayout {\n /**\n * Construct a new split layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: SplitLayout.IOptions) {\n super();\n this.renderer = options.renderer;\n if (options.orientation !== undefined) {\n this._orientation = options.orientation;\n }\n if (options.alignment !== undefined) {\n this._alignment = options.alignment;\n }\n if (options.spacing !== undefined) {\n this._spacing = Utils.clampDimension(options.spacing);\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the layout items.\n each(this._items, item => {\n item.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n this._sizers.length = 0;\n this._handles.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * The renderer used by the split layout.\n */\n readonly renderer: SplitLayout.IRenderer;\n\n /**\n * Get the layout orientation for the split layout.\n */\n get orientation(): SplitLayout.Orientation {\n return this._orientation;\n }\n\n /**\n * Set the layout orientation for the split layout.\n */\n set orientation(value: SplitLayout.Orientation) {\n if (this._orientation === value) {\n return;\n }\n this._orientation = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['orientation'] = value;\n this.parent.fit();\n }\n\n /**\n * Get the content alignment for the split layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split layout.\n */\n get alignment(): SplitLayout.Alignment {\n return this._alignment;\n }\n\n /**\n * Set the content alignment for the split layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split layout.\n */\n set alignment(value: SplitLayout.Alignment) {\n if (this._alignment === value) {\n return;\n }\n this._alignment = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['alignment'] = value;\n this.parent.update();\n }\n\n /**\n * Get the inter-element spacing for the split layout.\n */\n get spacing(): number {\n return this._spacing;\n }\n\n /**\n * Set the inter-element spacing for the split layout.\n */\n set spacing(value: number) {\n value = Utils.clampDimension(value);\n if (this._spacing === value) {\n return;\n }\n this._spacing = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * A read-only array of the split handles in the layout.\n */\n get handles(): ReadonlyArray {\n return this._handles;\n }\n\n /**\n * Get the absolute sizes of the widgets in the layout.\n *\n * @returns A new array of the absolute sizes of the widgets.\n *\n * This method **does not** measure the DOM nodes.\n */\n absoluteSizes(): number[] {\n return this._sizers.map(sizer => sizer.size);\n }\n\n /**\n * Get the relative sizes of the widgets in the layout.\n *\n * @returns A new array of the relative sizes of the widgets.\n *\n * #### Notes\n * The returned sizes reflect the sizes of the widgets normalized\n * relative to their siblings.\n *\n * This method **does not** measure the DOM nodes.\n */\n relativeSizes(): number[] {\n return Private.normalize(this._sizers.map(sizer => sizer.size));\n }\n\n /**\n * Set the relative sizes for the widgets in the layout.\n *\n * @param sizes - The relative sizes for the widgets in the panel.\n * @param update - Update the layout after setting relative sizes.\n * Default is True.\n *\n * #### Notes\n * Extra values are ignored, too few will yield an undefined layout.\n *\n * The actual geometry of the DOM nodes is updated asynchronously.\n */\n setRelativeSizes(sizes: number[], update = true): void {\n // Copy the sizes and pad with zeros as needed.\n let n = this._sizers.length;\n let temp = sizes.slice(0, n);\n while (temp.length < n) {\n temp.push(0);\n }\n\n // Normalize the padded sizes.\n let normed = Private.normalize(temp);\n\n // Apply the normalized sizes to the sizers.\n for (let i = 0; i < n; ++i) {\n let sizer = this._sizers[i];\n sizer.sizeHint = normed[i];\n sizer.size = normed[i];\n }\n\n // Set the flag indicating the sizes are normalized.\n this._hasNormedSizes = true;\n\n // Trigger an update of the parent widget.\n if (update && this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Move the offset position of a split handle.\n *\n * @param index - The index of the handle of the interest.\n *\n * @param position - The desired offset position of the handle.\n *\n * #### Notes\n * The position is relative to the offset parent.\n *\n * This will move the handle as close as possible to the desired\n * position. The sibling widgets will be adjusted as necessary.\n */\n moveHandle(index: number, position: number): void {\n // Bail if the index is invalid or the handle is hidden.\n let handle = this._handles[index];\n if (!handle || handle.classList.contains('lm-mod-hidden')) {\n return;\n }\n\n // Compute the desired delta movement for the handle.\n let delta: number;\n if (this._orientation === 'horizontal') {\n delta = position - handle.offsetLeft;\n } else {\n delta = position - handle.offsetTop;\n }\n\n // Bail if there is no handle movement.\n if (delta === 0) {\n return;\n }\n\n // Prevent widget resizing unless needed.\n for (let sizer of this._sizers) {\n if (sizer.size > 0) {\n sizer.sizeHint = sizer.size;\n }\n }\n\n // Adjust the sizers to reflect the handle movement.\n BoxEngine.adjust(this._sizers, index, delta);\n\n // Update the layout of the widgets.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n this.parent!.dataset['orientation'] = this.orientation;\n this.parent!.dataset['alignment'] = this.alignment;\n super.init();\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Create the item, handle, and sizer for the new widget.\n let item = new LayoutItem(widget);\n let handle = Private.createHandle(this.renderer);\n let average = Private.averageSize(this._sizers);\n let sizer = Private.createSizer(average);\n\n // Insert the item, handle, and sizer into the internal arrays.\n ArrayExt.insert(this._items, index, item);\n ArrayExt.insert(this._sizers, index, sizer);\n ArrayExt.insert(this._handles, index, handle);\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget and handle nodes to the parent.\n this.parent!.node.appendChild(widget.node);\n this.parent!.node.appendChild(handle);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Move the item, sizer, and handle for the widget.\n ArrayExt.move(this._items, fromIndex, toIndex);\n ArrayExt.move(this._sizers, fromIndex, toIndex);\n ArrayExt.move(this._handles, fromIndex, toIndex);\n\n // Post a fit request to the parent to show/hide last handle.\n this.parent!.fit();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Remove the item, handle, and sizer for the widget.\n let item = ArrayExt.removeAt(this._items, index);\n let handle = ArrayExt.removeAt(this._handles, index);\n ArrayExt.removeAt(this._sizers, index);\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget and handle nodes from the parent.\n this.parent!.node.removeChild(widget.node);\n this.parent!.node.removeChild(handle!);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Dispose of the layout item.\n item!.dispose();\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Update the item position.\n *\n * @param i Item index\n * @param isHorizontal Whether the layout is horizontal or not\n * @param left Left position in pixels\n * @param top Top position in pixels\n * @param height Item height\n * @param width Item width\n * @param size Item size\n */\n protected updateItemPosition(\n i: number,\n isHorizontal: boolean,\n left: number,\n top: number,\n height: number,\n width: number,\n size: number\n ): void {\n const item = this._items[i];\n if (item.isHidden) {\n return;\n }\n\n // Fetch the style for the handle.\n let handleStyle = this._handles[i].style;\n\n // Update the widget and handle, and advance the relevant edge.\n if (isHorizontal) {\n left += this.widgetOffset;\n item.update(left, top, size, height);\n left += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${this._spacing}px`;\n handleStyle.height = `${height}px`;\n } else {\n top += this.widgetOffset;\n item.update(left, top, width, size);\n top += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${width}px`;\n handleStyle.height = `${this._spacing}px`;\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Update the handles and track the visible widget count.\n let nVisible = 0;\n let lastHandleIndex = -1;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n if (this._items[i].isHidden) {\n this._handles[i].classList.add('lm-mod-hidden');\n /* */\n this._handles[i].classList.add('p-mod-hidden');\n /* */\n } else {\n this._handles[i].classList.remove('lm-mod-hidden');\n /* */\n this._handles[i].classList.remove('p-mod-hidden');\n /* */\n lastHandleIndex = i;\n nVisible++;\n }\n }\n\n // Hide the handle for the last visible widget.\n if (lastHandleIndex !== -1) {\n this._handles[lastHandleIndex].classList.add('lm-mod-hidden');\n /* */\n this._handles[lastHandleIndex].classList.add('p-mod-hidden');\n /* */\n }\n\n // Update the fixed space for the visible items.\n this._fixed =\n this._spacing * Math.max(0, nVisible - 1) +\n this.widgetOffset * this._items.length;\n\n // Setup the computed minimum size.\n let horz = this._orientation === 'horizontal';\n let minW = horz ? this._fixed : 0;\n let minH = horz ? 0 : this._fixed;\n\n // Update the sizers and computed size limits.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item and corresponding box sizer.\n let item = this._items[i];\n let sizer = this._sizers[i];\n\n // Prevent resizing unless necessary.\n if (sizer.size > 0) {\n sizer.sizeHint = sizer.size;\n }\n\n // If the item is hidden, it should consume zero size.\n if (item.isHidden) {\n sizer.minSize = 0;\n sizer.maxSize = 0;\n continue;\n }\n\n // Update the size limits for the item.\n item.fit();\n\n // Update the stretch factor.\n sizer.stretch = SplitLayout.getStretch(item.widget);\n\n // Update the sizer limits and computed min size.\n if (horz) {\n sizer.minSize = item.minWidth;\n sizer.maxSize = item.maxWidth;\n minW += item.minWidth;\n minH = Math.max(minH, item.minHeight);\n } else {\n sizer.minSize = item.minHeight;\n sizer.maxSize = item.maxHeight;\n minH += item.minHeight;\n minW = Math.max(minW, item.minWidth);\n }\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Bail early if there are no visible items to layout.\n if (nVisible === 0 && this.widgetOffset === 0) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the actual layout bounds adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Set up the variables for justification and alignment offset.\n let extra = 0;\n let offset = 0;\n let horz = this._orientation === 'horizontal';\n\n if (nVisible > 0) {\n // Compute the adjusted layout space.\n let space: number;\n if (horz) {\n // left += this.widgetOffset;\n space = Math.max(0, width - this._fixed);\n } else {\n // top += this.widgetOffset;\n space = Math.max(0, height - this._fixed);\n }\n\n // Scale the size hints if they are normalized.\n if (this._hasNormedSizes) {\n for (let sizer of this._sizers) {\n sizer.sizeHint *= space;\n }\n this._hasNormedSizes = false;\n }\n\n // Distribute the layout space to the box sizers.\n let delta = BoxEngine.calc(this._sizers, space);\n\n // Account for alignment if there is extra layout space.\n if (delta > 0) {\n switch (this._alignment) {\n case 'start':\n break;\n case 'center':\n extra = 0;\n offset = delta / 2;\n break;\n case 'end':\n extra = 0;\n offset = delta;\n break;\n case 'justify':\n extra = delta / nVisible;\n offset = 0;\n break;\n default:\n throw 'unreachable';\n }\n }\n }\n\n // Layout the items using the computed box sizes.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n const item = this._items[i];\n\n // Fetch the computed size for the widget.\n const size = item.isHidden ? 0 : this._sizers[i].size + extra;\n\n this.updateItemPosition(\n i,\n horz,\n horz ? left + offset : left,\n horz ? top : top + offset,\n height,\n width,\n size\n );\n\n const fullOffset =\n this.widgetOffset +\n (this._handles[i].classList.contains('lm-mod-hidden')\n ? 0\n : this._spacing);\n\n if (horz) {\n left += size + fullOffset;\n } else {\n top += size + fullOffset;\n }\n }\n }\n\n protected widgetOffset = 0;\n private _fixed = 0;\n private _spacing = 4;\n private _dirty = false;\n private _hasNormedSizes = false;\n private _sizers: BoxSizer[] = [];\n private _items: LayoutItem[] = [];\n private _handles: HTMLDivElement[] = [];\n private _box: ElementExt.IBoxSizing | null = null;\n private _alignment: SplitLayout.Alignment = 'start';\n private _orientation: SplitLayout.Orientation = 'horizontal';\n}\n\n/**\n * The namespace for the `SplitLayout` class statics.\n */\nexport namespace SplitLayout {\n /**\n * A type alias for a split layout orientation.\n */\n export type Orientation = 'horizontal' | 'vertical';\n\n /**\n * A type alias for a split layout alignment.\n */\n export type Alignment = 'start' | 'center' | 'end' | 'justify';\n\n /**\n * An options object for initializing a split layout.\n */\n export interface IOptions {\n /**\n * The renderer to use for the split layout.\n */\n renderer: IRenderer;\n\n /**\n * The orientation of the layout.\n *\n * The default is `'horizontal'`.\n */\n orientation?: Orientation;\n\n /**\n * The content alignment of the layout.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the layout.\n *\n * The default is `4`.\n */\n spacing?: number;\n }\n\n /**\n * A renderer for use with a split layout.\n */\n export interface IRenderer {\n /**\n * Create a new handle for use with a split layout.\n *\n * @returns A new handle element.\n */\n createHandle(): HTMLDivElement;\n }\n\n /**\n * Get the split layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The split layout stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return Private.stretchProperty.get(widget);\n }\n\n /**\n * Set the split layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n Private.stretchProperty.set(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The property descriptor for a widget stretch factor.\n */\n export const stretchProperty = new AttachedProperty({\n name: 'stretch',\n create: () => 0,\n coerce: (owner, value) => Math.max(0, Math.floor(value)),\n changed: onChildSizingChanged\n });\n\n /**\n * Create a new box sizer with the given size hint.\n */\n export function createSizer(size: number): BoxSizer {\n let sizer = new BoxSizer();\n sizer.sizeHint = Math.floor(size);\n return sizer;\n }\n\n /**\n * Create a new split handle node using the given renderer.\n */\n export function createHandle(\n renderer: SplitLayout.IRenderer\n ): HTMLDivElement {\n let handle = renderer.createHandle();\n handle.style.position = 'absolute';\n return handle;\n }\n\n /**\n * Compute the average size of an array of box sizers.\n */\n export function averageSize(sizers: BoxSizer[]): number {\n return sizers.reduce((v, s) => v + s.size, 0) / sizers.length || 0;\n }\n\n /**\n * Normalize an array of values.\n */\n export function normalize(values: number[]): number[] {\n let n = values.length;\n if (n === 0) {\n return [];\n }\n let sum = values.reduce((a, b) => a + Math.abs(b), 0);\n return sum === 0 ? values.map(v => 1 / n) : values.map(v => v / sum);\n }\n\n /**\n * The change handler for the attached sizing properties.\n */\n function onChildSizingChanged(child: Widget): void {\n if (child.parent && child.parent.layout instanceof SplitLayout) {\n child.parent.fit();\n }\n }\n}\n","import { ArrayExt } from '@lumino/algorithm';\nimport { SplitLayout } from './splitlayout';\nimport { Title } from './title';\nimport Utils from './utils';\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets into collapsible resizable sections.\n */\nexport class AccordionLayout extends SplitLayout {\n /**\n * Construct a new accordion layout.\n *\n * @param options - The options for initializing the layout.\n *\n * #### Notes\n * The default orientation will be vertical.\n *\n * Titles must be rotated for horizontal accordion panel using CSS: see accordionpanel.css\n */\n constructor(options: AccordionLayout.IOptions) {\n super({ ...options, orientation: options.orientation || 'vertical' });\n this.titleSpace = options.titleSpace || 22;\n }\n\n /**\n * The section title height or width depending on the orientation.\n */\n get titleSpace(): number {\n return this.widgetOffset;\n }\n set titleSpace(value: number) {\n value = Utils.clampDimension(value);\n if (this.widgetOffset === value) {\n return;\n }\n this.widgetOffset = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * A read-only array of the section titles in the panel.\n */\n get titles(): ReadonlyArray {\n return this._titles;\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n\n // Clear the layout state.\n this._titles.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * The renderer used by the accordion layout.\n */\n readonly renderer: AccordionLayout.IRenderer;\n\n public updateTitle(index: number, widget: Widget): void {\n const oldTitle = this._titles[index];\n const expanded = oldTitle.classList.contains('lm-mod-expanded');\n const newTitle = Private.createTitle(this.renderer, widget.title, expanded);\n this._titles[index] = newTitle;\n\n // Add the title node to the parent before the widget.\n this.parent!.node.replaceChild(newTitle, oldTitle);\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n */\n protected attachWidget(index: number, widget: Widget): void {\n const title = Private.createTitle(this.renderer, widget.title);\n\n ArrayExt.insert(this._titles, index, title);\n\n // Add the title node to the parent before the widget.\n this.parent!.node.appendChild(title);\n\n widget.node.setAttribute('role', 'region');\n widget.node.setAttribute('aria-labelledby', title.id);\n\n super.attachWidget(index, widget);\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n ArrayExt.move(this._titles, fromIndex, toIndex);\n super.moveWidget(fromIndex, toIndex, widget);\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n const title = ArrayExt.removeAt(this._titles, index);\n\n this.parent!.node.removeChild(title!);\n\n super.detachWidget(index, widget);\n }\n\n /**\n * Update the item position.\n *\n * @param i Item index\n * @param isHorizontal Whether the layout is horizontal or not\n * @param left Left position in pixels\n * @param top Top position in pixels\n * @param height Item height\n * @param width Item width\n * @param size Item size\n */\n protected updateItemPosition(\n i: number,\n isHorizontal: boolean,\n left: number,\n top: number,\n height: number,\n width: number,\n size: number\n ): void {\n const titleStyle = this._titles[i].style;\n\n // Titles must be rotated for horizontal accordion panel using CSS: see accordionpanel.css\n titleStyle.top = `${top}px`;\n titleStyle.left = `${left}px`;\n titleStyle.height = `${this.widgetOffset}px`;\n if (isHorizontal) {\n titleStyle.width = `${height}px`;\n } else {\n titleStyle.width = `${width}px`;\n }\n\n super.updateItemPosition(i, isHorizontal, left, top, height, width, size);\n }\n\n private _titles: HTMLElement[] = [];\n}\n\nexport namespace AccordionLayout {\n /**\n * A type alias for a accordion layout orientation.\n */\n export type Orientation = SplitLayout.Orientation;\n\n /**\n * A type alias for a accordion layout alignment.\n */\n export type Alignment = SplitLayout.Alignment;\n\n /**\n * An options object for initializing a accordion layout.\n */\n export interface IOptions extends SplitLayout.IOptions {\n /**\n * The renderer to use for the accordion layout.\n */\n renderer: IRenderer;\n\n /**\n * The section title height or width depending on the orientation.\n *\n * The default is `22`.\n */\n titleSpace?: number;\n }\n\n /**\n * A renderer for use with an accordion layout.\n */\n export interface IRenderer extends SplitLayout.IRenderer {\n /**\n * Common class name for all accordion titles.\n */\n readonly titleClassName: string;\n\n /**\n * Render the element for a section title.\n *\n * @param data - The data to use for rendering the section title.\n *\n * @returns A element representing the section title.\n */\n createSectionTitle(title: Title): HTMLElement;\n }\n}\n\nnamespace Private {\n /**\n * Create the title HTML element.\n *\n * @param renderer Accordion renderer\n * @param data Widget title\n * @returns Title HTML element\n */\n export function createTitle(\n renderer: AccordionLayout.IRenderer,\n data: Title,\n expanded: boolean = true\n ): HTMLElement {\n const title = renderer.createSectionTitle(data);\n title.style.position = 'absolute';\n title.setAttribute('aria-label', `${data.label} Section`);\n title.setAttribute('aria-expanded', expanded ? 'true' : 'false');\n title.setAttribute('aria-controls', data.owner.id);\n if (expanded) {\n title.classList.add('lm-mod-expanded');\n }\n return title;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { PanelLayout } from './panellayout';\n\nimport { Widget } from './widget';\n\n/**\n * A simple and convenient panel widget class.\n *\n * #### Notes\n * This class is suitable as a base class for implementing a variety of\n * convenience panel widgets, but can also be used directly with CSS to\n * arrange a collection of widgets.\n *\n * This class provides a convenience wrapper around a [[PanelLayout]].\n */\nexport class Panel extends Widget {\n /**\n * Construct a new panel.\n *\n * @param options - The options for initializing the panel.\n */\n constructor(options: Panel.IOptions = {}) {\n super();\n this.addClass('lm-Panel');\n /* */\n this.addClass('p-Panel');\n /* */\n this.layout = Private.createLayout(options);\n }\n\n /**\n * A read-only array of the widgets in the panel.\n */\n get widgets(): ReadonlyArray {\n return (this.layout as PanelLayout).widgets;\n }\n\n /**\n * Add a widget to the end of the panel.\n *\n * @param widget - The widget to add to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n addWidget(widget: Widget): void {\n (this.layout as PanelLayout).addWidget(widget);\n }\n\n /**\n * Insert a widget at the specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n insertWidget(index: number, widget: Widget): void {\n (this.layout as PanelLayout).insertWidget(index, widget);\n }\n}\n\n/**\n * The namespace for the `Panel` class statics.\n */\nexport namespace Panel {\n /**\n * An options object for creating a panel.\n */\n export interface IOptions {\n /**\n * The panel layout to use for the panel.\n *\n * The default is a new `PanelLayout`.\n */\n layout?: PanelLayout;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create a panel layout for the given panel options.\n */\n export function createLayout(options: Panel.IOptions): PanelLayout {\n return options.layout || new PanelLayout();\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { Drag } from '@lumino/dragdrop';\n\nimport { Message } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Panel } from './panel';\n\nimport { SplitLayout } from './splitlayout';\n\nimport { Widget } from './widget';\n\n/**\n * A panel which arranges its widgets into resizable sections.\n *\n * #### Notes\n * This class provides a convenience wrapper around a [[SplitLayout]].\n */\nexport class SplitPanel extends Panel {\n /**\n * Construct a new split panel.\n *\n * @param options - The options for initializing the split panel.\n */\n constructor(options: SplitPanel.IOptions = {}) {\n super({ layout: Private.createLayout(options) });\n this.addClass('lm-SplitPanel');\n /* */\n this.addClass('p-SplitPanel');\n /* */\n }\n\n /**\n * Dispose of the resources held by the panel.\n */\n dispose(): void {\n this._releaseMouse();\n super.dispose();\n }\n\n /**\n * Get the layout orientation for the split panel.\n */\n get orientation(): SplitPanel.Orientation {\n return (this.layout as SplitLayout).orientation;\n }\n\n /**\n * Set the layout orientation for the split panel.\n */\n set orientation(value: SplitPanel.Orientation) {\n (this.layout as SplitLayout).orientation = value;\n }\n\n /**\n * Get the content alignment for the split panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split panel.\n */\n get alignment(): SplitPanel.Alignment {\n return (this.layout as SplitLayout).alignment;\n }\n\n /**\n * Set the content alignment for the split panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire split panel.\n */\n set alignment(value: SplitPanel.Alignment) {\n (this.layout as SplitLayout).alignment = value;\n }\n\n /**\n * Get the inter-element spacing for the split panel.\n */\n get spacing(): number {\n return (this.layout as SplitLayout).spacing;\n }\n\n /**\n * Set the inter-element spacing for the split panel.\n */\n set spacing(value: number) {\n (this.layout as SplitLayout).spacing = value;\n }\n\n /**\n * The renderer used by the split panel.\n */\n get renderer(): SplitPanel.IRenderer {\n return (this.layout as SplitLayout).renderer;\n }\n\n /**\n * A signal emitted when a split handle has moved.\n */\n get handleMoved(): ISignal {\n return this._handleMoved;\n }\n\n /**\n * A read-only array of the split handles in the panel.\n */\n get handles(): ReadonlyArray {\n return (this.layout as SplitLayout).handles;\n }\n\n /**\n * Get the relative sizes of the widgets in the panel.\n *\n * @returns A new array of the relative sizes of the widgets.\n *\n * #### Notes\n * The returned sizes reflect the sizes of the widgets normalized\n * relative to their siblings.\n *\n * This method **does not** measure the DOM nodes.\n */\n relativeSizes(): number[] {\n return (this.layout as SplitLayout).relativeSizes();\n }\n\n /**\n * Set the relative sizes for the widgets in the panel.\n *\n * @param sizes - The relative sizes for the widgets in the panel.\n * @param update - Update the layout after setting relative sizes.\n * Default is True.\n *\n * #### Notes\n * Extra values are ignored, too few will yield an undefined layout.\n *\n * The actual geometry of the DOM nodes is updated asynchronously.\n */\n setRelativeSizes(sizes: number[], update = true): void {\n (this.layout as SplitLayout).setRelativeSizes(sizes, update);\n }\n\n /**\n * Handle the DOM events for the split panel.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'pointerdown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'pointermove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'pointerup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('mousedown', this);\n this.node.addEventListener('pointerdown', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('mousedown', this);\n this.node.removeEventListener('pointerdown', this);\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n msg.child.addClass('lm-SplitPanel-child');\n /* */\n msg.child.addClass('p-SplitPanel-child');\n /* */\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n msg.child.removeClass('lm-SplitPanel-child');\n /* */\n msg.child.removeClass('p-SplitPanel-child');\n /* */\n this._releaseMouse();\n }\n\n /**\n * Handle the `'keydown'` event for the split panel.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop input events during drag.\n if (this._pressData) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n // Release the mouse if `Escape` is pressed.\n if (event.keyCode === 27) {\n this._releaseMouse();\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the split panel.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if the left mouse button is not pressed.\n if (event.button !== 0) {\n return;\n }\n\n // Find the handle which contains the mouse target, if any.\n let layout = this.layout as SplitLayout;\n let index = ArrayExt.findFirstIndex(layout.handles, handle => {\n return handle.contains(event.target as HTMLElement);\n });\n\n // Bail early if the mouse press was not on a handle.\n if (index === -1) {\n return;\n }\n\n // Stop the event when a split handle is pressed.\n event.preventDefault();\n event.stopPropagation();\n\n // Add the extra document listeners.\n document.addEventListener('mouseup', this, true);\n document.addEventListener('mousemove', this, true);\n document.addEventListener('pointerup', this, true);\n document.addEventListener('pointermove', this, true);\n document.addEventListener('keydown', this, true);\n document.addEventListener('contextmenu', this, true);\n\n // Compute the offset delta for the handle press.\n let delta: number;\n let handle = layout.handles[index];\n let rect = handle.getBoundingClientRect();\n if (layout.orientation === 'horizontal') {\n delta = event.clientX - rect.left;\n } else {\n delta = event.clientY - rect.top;\n }\n\n // Override the cursor and store the press data.\n let style = window.getComputedStyle(handle);\n let override = Drag.overrideCursor(style.cursor!);\n this._pressData = { index, delta, override };\n }\n\n /**\n * Handle the `'mousemove'` event for the split panel.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Stop the event when dragging a split handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Compute the desired offset position for the handle.\n let pos: number;\n let layout = this.layout as SplitLayout;\n let rect = this.node.getBoundingClientRect();\n if (layout.orientation === 'horizontal') {\n pos = event.clientX - rect.left - this._pressData!.delta;\n } else {\n pos = event.clientY - rect.top - this._pressData!.delta;\n }\n\n // Move the handle as close to the desired position as possible.\n layout.moveHandle(this._pressData!.index, pos);\n }\n\n /**\n * Handle the `'mouseup'` event for the split panel.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if the left mouse button is not released.\n if (event.button !== 0) {\n return;\n }\n\n // Stop the event when releasing a handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Finalize the mouse release.\n this._releaseMouse();\n }\n\n /**\n * Release the mouse grab for the split panel.\n */\n private _releaseMouse(): void {\n // Bail early if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Clear the override cursor.\n this._pressData.override.dispose();\n this._pressData = null;\n\n // Emit the handle moved signal.\n this._handleMoved.emit();\n\n // Remove the extra document listeners.\n document.removeEventListener('mouseup', this, true);\n document.removeEventListener('mousemove', this, true);\n document.removeEventListener('keydown', this, true);\n document.removeEventListener('pointerup', this, true);\n document.removeEventListener('pointermove', this, true);\n document.removeEventListener('contextmenu', this, true);\n }\n\n private _handleMoved = new Signal(this);\n private _pressData: Private.IPressData | null = null;\n}\n\n/**\n * The namespace for the `SplitPanel` class statics.\n */\nexport namespace SplitPanel {\n /**\n * A type alias for a split panel orientation.\n */\n export type Orientation = SplitLayout.Orientation;\n\n /**\n * A type alias for a split panel alignment.\n */\n export type Alignment = SplitLayout.Alignment;\n\n /**\n * A type alias for a split panel renderer.\n */\n export type IRenderer = SplitLayout.IRenderer;\n\n /**\n * An options object for initializing a split panel.\n */\n export interface IOptions {\n /**\n * The renderer to use for the split panel.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n\n /**\n * The layout orientation of the panel.\n *\n * The default is `'horizontal'`.\n */\n orientation?: Orientation;\n\n /**\n * The content alignment of the panel.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the panel.\n *\n * The default is `4`.\n */\n spacing?: number;\n\n /**\n * The split layout to use for the split panel.\n *\n * If this is provided, the other options are ignored.\n *\n * The default is a new `SplitLayout`.\n */\n layout?: SplitLayout;\n }\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer implements IRenderer {\n /**\n * Create a new handle for use with a split panel.\n *\n * @returns A new handle element for a split panel.\n */\n createHandle(): HTMLDivElement {\n let handle = document.createElement('div');\n handle.className = 'lm-SplitPanel-handle';\n /* */\n handle.classList.add('p-SplitPanel-handle');\n /* */\n return handle;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n\n /**\n * Get the split panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The split panel stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return SplitLayout.getStretch(widget);\n }\n\n /**\n * Set the split panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n SplitLayout.setStretch(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * An object which holds mouse press data.\n */\n export interface IPressData {\n /**\n * The index of the pressed handle.\n */\n index: number;\n\n /**\n * The offset of the press in handle coordinates.\n */\n delta: number;\n\n /**\n * The disposable which will clear the override cursor.\n */\n override: IDisposable;\n }\n\n /**\n * Create a split layout for the given panel options.\n */\n export function createLayout(options: SplitPanel.IOptions): SplitLayout {\n return (\n options.layout ||\n new SplitLayout({\n renderer: options.renderer || SplitPanel.defaultRenderer,\n orientation: options.orientation,\n alignment: options.alignment,\n spacing: options.spacing\n })\n );\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { ArrayExt } from '@lumino/algorithm';\nimport { Message } from '@lumino/messaging';\nimport { AccordionLayout } from './accordionlayout';\nimport { SplitLayout } from './splitlayout';\nimport { SplitPanel } from './splitpanel';\nimport { Title } from './title';\nimport { Widget } from './widget';\n\n/**\n * A panel which arranges its widgets into resizable sections separated by a title widget.\n *\n * #### Notes\n * This class provides a convenience wrapper around [[AccordionLayout]].\n */\nexport class AccordionPanel extends SplitPanel {\n /**\n * Construct a new accordion panel.\n *\n * @param options - The options for initializing the accordion panel.\n */\n constructor(options: AccordionPanel.IOptions = {}) {\n super({ ...options, layout: Private.createLayout(options) });\n this.addClass('lm-AccordionPanel');\n }\n\n /**\n * The renderer used by the accordion panel.\n */\n get renderer(): AccordionPanel.IRenderer {\n return (this.layout as AccordionLayout).renderer;\n }\n\n /**\n * The section title space.\n *\n * This is the height if the panel is vertical and the width if it is\n * horizontal.\n */\n get titleSpace(): number {\n return (this.layout as AccordionLayout).titleSpace;\n }\n set titleSpace(value: number) {\n (this.layout as AccordionLayout).titleSpace = value;\n }\n\n /**\n * A read-only array of the section titles in the panel.\n */\n get titles(): ReadonlyArray {\n return (this.layout as AccordionLayout).titles;\n }\n\n /**\n * Add a widget to the end of the panel.\n *\n * @param widget - The widget to add to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n addWidget(widget: Widget): void {\n super.addWidget(widget);\n widget.title.changed.connect(this._onTitleChanged, this);\n }\n\n /**\n * Collapse the widget at position `index`.\n *\n * #### Notes\n * If no widget is found for `index`, this will bail.\n *\n * @param index Widget index\n */\n collapse(index: number): void {\n const widget = (this.layout as AccordionLayout).widgets[index];\n\n if (widget && !widget.isHidden) {\n this._toggleExpansion(index);\n }\n }\n\n /**\n * Expand the widget at position `index`.\n *\n * #### Notes\n * If no widget is found for `index`, this will bail.\n *\n * @param index Widget index\n */\n expand(index: number): void {\n const widget = (this.layout as AccordionLayout).widgets[index];\n\n if (widget && widget.isHidden) {\n this._toggleExpansion(index);\n }\n }\n\n /**\n * Insert a widget at the specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into to the panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n */\n insertWidget(index: number, widget: Widget): void {\n super.insertWidget(index, widget);\n widget.title.changed.connect(this._onTitleChanged, this);\n }\n\n /**\n * Handle the DOM events for the accordion panel.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n super.handleEvent(event);\n switch (event.type) {\n case 'click':\n this._evtClick(event as MouseEvent);\n break;\n case 'keydown':\n this._eventKeyDown(event as KeyboardEvent);\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('click', this);\n this.node.addEventListener('keydown', this);\n super.onBeforeAttach(msg);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n super.onAfterDetach(msg);\n this.node.removeEventListener('click', this);\n this.node.removeEventListener('keydown', this);\n }\n\n /**\n * Handle the `changed` signal of a title object.\n */\n private _onTitleChanged(sender: Title): void {\n const index = ArrayExt.findFirstIndex(this.widgets, widget => {\n return widget.contains(sender.owner);\n });\n\n if (index >= 0) {\n (this.layout as AccordionLayout).updateTitle(index, sender.owner);\n this.update();\n }\n }\n\n /**\n * Compute the size of widgets in this panel on the title click event.\n * On closing, the size of the widget is cached and we will try to expand\n * the last opened widget.\n * On opening, we will use the cached size if it is available to restore the\n * widget.\n * In both cases, if we can not compute the size of widgets, we will let\n * `SplitLayout` decide.\n *\n * @param index - The index of widget to be opened of closed\n *\n * @returns Relative size of widgets in this panel, if this size can\n * not be computed, return `undefined`\n */\n private _computeWidgetSize(index: number): number[] | undefined {\n const layout = this.layout as AccordionLayout;\n\n const widget = layout.widgets[index];\n if (!widget) {\n return undefined;\n }\n const isHidden = widget.isHidden;\n const widgetSizes = layout.absoluteSizes();\n const delta = (isHidden ? -1 : 1) * this.spacing;\n const totalSize = widgetSizes.reduce(\n (prev: number, curr: number) => prev + curr\n );\n\n let newSize = [...widgetSizes];\n\n if (!isHidden) {\n // Hide the widget\n const currentSize = widgetSizes[index];\n\n this._widgetSizesCache.set(widget, currentSize);\n newSize[index] = 0;\n\n const widgetToCollapse = newSize.map(sz => sz > 0).lastIndexOf(true);\n if (widgetToCollapse === -1) {\n // All widget are closed, let the `SplitLayout` compute widget sizes.\n return undefined;\n }\n\n newSize[widgetToCollapse] =\n widgetSizes[widgetToCollapse] + currentSize + delta;\n } else {\n // Show the widget\n const previousSize = this._widgetSizesCache.get(widget);\n if (!previousSize) {\n // Previous size is unavailable, let the `SplitLayout` compute widget sizes.\n return undefined;\n }\n newSize[index] += previousSize;\n\n const widgetToCollapse = newSize\n .map(sz => sz - previousSize > 0)\n .lastIndexOf(true);\n if (widgetToCollapse === -1) {\n // Can not reduce the size of one widget, reduce all opened widgets\n // proportionally with its size.\n newSize.forEach((_, idx) => {\n if (idx !== index) {\n newSize[idx] -=\n (widgetSizes[idx] / totalSize) * (previousSize - delta);\n }\n });\n } else {\n newSize[widgetToCollapse] -= previousSize - delta;\n }\n }\n return newSize.map(sz => sz / (totalSize + delta));\n }\n /**\n * Handle the `'click'` event for the accordion panel\n */\n private _evtClick(event: MouseEvent): void {\n const target = event.target as HTMLElement | null;\n\n if (target) {\n const index = ArrayExt.findFirstIndex(this.titles, title => {\n return title.contains(target);\n });\n\n if (index >= 0) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleExpansion(index);\n }\n }\n }\n\n /**\n * Handle the `'keydown'` event for the accordion panel.\n */\n private _eventKeyDown(event: KeyboardEvent): void {\n if (event.defaultPrevented) {\n return;\n }\n\n const target = event.target as HTMLElement | null;\n let handled = false;\n if (target) {\n const index = ArrayExt.findFirstIndex(this.titles, title => {\n return title.contains(target);\n });\n\n if (index >= 0) {\n const keyCode = event.keyCode.toString();\n\n // If Space or Enter is pressed on title, emulate click event\n if (event.key.match(/Space|Enter/) || keyCode.match(/13|32/)) {\n target.click();\n handled = true;\n } else if (\n this.orientation === 'horizontal'\n ? event.key.match(/ArrowLeft|ArrowRight/) || keyCode.match(/37|39/)\n : event.key.match(/ArrowUp|ArrowDown/) || keyCode.match(/38|40/)\n ) {\n // If Up or Down (for vertical) / Left or Right (for horizontal) is pressed on title, loop on titles\n const direction =\n event.key.match(/ArrowLeft|ArrowUp/) || keyCode.match(/37|38/)\n ? -1\n : 1;\n const length = this.titles.length;\n const newIndex = (index + length + direction) % length;\n\n this.titles[newIndex].focus();\n handled = true;\n } else if (event.key === 'End' || keyCode === '35') {\n // If End is pressed on title, focus on the last title\n this.titles[this.titles.length - 1].focus();\n handled = true;\n } else if (event.key === 'Home' || keyCode === '36') {\n // If Home is pressed on title, focus on the first title\n this.titles[0].focus();\n handled = true;\n }\n }\n\n if (handled) {\n event.preventDefault();\n }\n }\n }\n\n private _toggleExpansion(index: number) {\n const title = this.titles[index];\n const widget = (this.layout as AccordionLayout).widgets[index];\n\n const newSize = this._computeWidgetSize(index);\n if (newSize) {\n this.setRelativeSizes(newSize, false);\n }\n\n if (widget.isHidden) {\n title.classList.add('lm-mod-expanded');\n title.setAttribute('aria-expanded', 'true');\n widget.show();\n } else {\n title.classList.remove('lm-mod-expanded');\n title.setAttribute('aria-expanded', 'false');\n widget.hide();\n }\n }\n\n private _widgetSizesCache: WeakMap = new WeakMap();\n}\n\n/**\n * The namespace for the `AccordionPanel` class statics.\n */\nexport namespace AccordionPanel {\n /**\n * A type alias for a accordion panel orientation.\n */\n export type Orientation = SplitLayout.Orientation;\n\n /**\n * A type alias for a accordion panel alignment.\n */\n export type Alignment = SplitLayout.Alignment;\n\n /**\n * A type alias for a accordion panel renderer.\n */\n export type IRenderer = AccordionLayout.IRenderer;\n\n /**\n * An options object for initializing a accordion panel.\n */\n export interface IOptions extends Partial {\n /**\n * The accordion layout to use for the accordion panel.\n *\n * If this is provided, the other options are ignored.\n *\n * The default is a new `AccordionLayout`.\n */\n layout?: AccordionLayout;\n }\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer extends SplitPanel.Renderer implements IRenderer {\n constructor() {\n super();\n this._uuid = ++Renderer._nInstance;\n }\n /**\n * A selector which matches any title node in the accordion.\n */\n readonly titleClassName = 'lm-AccordionPanel-title';\n\n /**\n * Render the collapse indicator for a section title.\n *\n * @param data - The data to use for rendering the section title.\n *\n * @returns A element representing the collapse indicator.\n */\n createCollapseIcon(data: Title): HTMLElement {\n return document.createElement('span');\n }\n\n /**\n * Render the element for a section title.\n *\n * @param data - The data to use for rendering the section title.\n *\n * @returns A element representing the section title.\n */\n createSectionTitle(data: Title): HTMLElement {\n const handle = document.createElement('h3');\n handle.setAttribute('role', 'button');\n handle.setAttribute('tabindex', '0');\n handle.id = this.createTitleKey(data);\n handle.className = this.titleClassName;\n for (const aData in data.dataset) {\n handle.dataset[aData] = data.dataset[aData];\n }\n\n const collapser = handle.appendChild(this.createCollapseIcon(data));\n collapser.className = 'lm-AccordionPanel-titleCollapser';\n\n const label = handle.appendChild(document.createElement('span'));\n label.className = 'lm-AccordionPanel-titleLabel';\n label.textContent = data.label;\n label.title = data.caption || data.label;\n\n return handle;\n }\n\n /**\n * Create a unique render key for the title.\n *\n * @param data - The data to use for the title.\n *\n * @returns The unique render key for the title.\n *\n * #### Notes\n * This method caches the key against the section title the first time\n * the key is generated.\n */\n createTitleKey(data: Title): string {\n let key = this._titleKeys.get(data);\n if (key === undefined) {\n key = `title-key-${this._uuid}-${this._titleID++}`;\n this._titleKeys.set(data, key);\n }\n return key;\n }\n\n private static _nInstance = 0;\n private readonly _uuid: number;\n private _titleID = 0;\n private _titleKeys = new WeakMap, string>();\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\nnamespace Private {\n /**\n * Create an accordion layout for the given panel options.\n *\n * @param options Panel options\n * @returns Panel layout\n */\n export function createLayout(\n options: AccordionPanel.IOptions\n ): AccordionLayout {\n return (\n options.layout ||\n new AccordionLayout({\n renderer: options.renderer || AccordionPanel.defaultRenderer,\n orientation: options.orientation,\n alignment: options.alignment,\n spacing: options.spacing,\n titleSpace: options.titleSpace\n })\n );\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { LayoutItem } from './layout';\n\nimport { PanelLayout } from './panellayout';\n\nimport Utils from './utils';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets in a single row or column.\n */\nexport class BoxLayout extends PanelLayout {\n /**\n * Construct a new box layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: BoxLayout.IOptions = {}) {\n super();\n if (options.direction !== undefined) {\n this._direction = options.direction;\n }\n if (options.alignment !== undefined) {\n this._alignment = options.alignment;\n }\n if (options.spacing !== undefined) {\n this._spacing = Utils.clampDimension(options.spacing);\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the layout items.\n each(this._items, item => {\n item.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n this._sizers.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * Get the layout direction for the box layout.\n */\n get direction(): BoxLayout.Direction {\n return this._direction;\n }\n\n /**\n * Set the layout direction for the box layout.\n */\n set direction(value: BoxLayout.Direction) {\n if (this._direction === value) {\n return;\n }\n this._direction = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['direction'] = value;\n this.parent.fit();\n }\n\n /**\n * Get the content alignment for the box layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n get alignment(): BoxLayout.Alignment {\n return this._alignment;\n }\n\n /**\n * Set the content alignment for the box layout.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n set alignment(value: BoxLayout.Alignment) {\n if (this._alignment === value) {\n return;\n }\n this._alignment = value;\n if (!this.parent) {\n return;\n }\n this.parent.dataset['alignment'] = value;\n this.parent.update();\n }\n\n /**\n * Get the inter-element spacing for the box layout.\n */\n get spacing(): number {\n return this._spacing;\n }\n\n /**\n * Set the inter-element spacing for the box layout.\n */\n set spacing(value: number) {\n value = Utils.clampDimension(value);\n if (this._spacing === value) {\n return;\n }\n this._spacing = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n this.parent!.dataset['direction'] = this.direction;\n this.parent!.dataset['alignment'] = this.alignment;\n super.init();\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Create and add a new layout item for the widget.\n ArrayExt.insert(this._items, index, new LayoutItem(widget));\n\n // Create and add a new sizer for the widget.\n ArrayExt.insert(this._sizers, index, new BoxSizer());\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Move the layout item for the widget.\n ArrayExt.move(this._items, fromIndex, toIndex);\n\n // Move the sizer for the widget.\n ArrayExt.move(this._sizers, fromIndex, toIndex);\n\n // Post an update request for the parent widget.\n this.parent!.update();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Remove the layout item for the widget.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Remove the sizer for the widget.\n ArrayExt.removeAt(this._sizers, index);\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Dispose of the layout item.\n item!.dispose();\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Update the fixed space for the visible items.\n this._fixed = this._spacing * Math.max(0, nVisible - 1);\n\n // Setup the computed minimum size.\n let horz = Private.isHorizontal(this._direction);\n let minW = horz ? this._fixed : 0;\n let minH = horz ? 0 : this._fixed;\n\n // Update the sizers and computed minimum size.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item and corresponding box sizer.\n let item = this._items[i];\n let sizer = this._sizers[i];\n\n // If the item is hidden, it should consume zero size.\n if (item.isHidden) {\n sizer.minSize = 0;\n sizer.maxSize = 0;\n continue;\n }\n\n // Update the size limits for the item.\n item.fit();\n\n // Update the size basis and stretch factor.\n sizer.sizeHint = BoxLayout.getSizeBasis(item.widget);\n sizer.stretch = BoxLayout.getStretch(item.widget);\n\n // Update the sizer limits and computed min size.\n if (horz) {\n sizer.minSize = item.minWidth;\n sizer.maxSize = item.maxWidth;\n minW += item.minWidth;\n minH = Math.max(minH, item.minHeight);\n } else {\n sizer.minSize = item.minHeight;\n sizer.maxSize = item.maxHeight;\n minH += item.minHeight;\n minW = Math.max(minW, item.minWidth);\n }\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Bail early if there are no visible items to layout.\n if (nVisible === 0) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the layout area adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Distribute the layout space and adjust the start position.\n let delta: number;\n switch (this._direction) {\n case 'left-to-right':\n delta = BoxEngine.calc(this._sizers, Math.max(0, width - this._fixed));\n break;\n case 'top-to-bottom':\n delta = BoxEngine.calc(this._sizers, Math.max(0, height - this._fixed));\n break;\n case 'right-to-left':\n delta = BoxEngine.calc(this._sizers, Math.max(0, width - this._fixed));\n left += width;\n break;\n case 'bottom-to-top':\n delta = BoxEngine.calc(this._sizers, Math.max(0, height - this._fixed));\n top += height;\n break;\n default:\n throw 'unreachable';\n }\n\n // Setup the variables for justification and alignment offset.\n let extra = 0;\n let offset = 0;\n\n // Account for alignment if there is extra layout space.\n if (delta > 0) {\n switch (this._alignment) {\n case 'start':\n break;\n case 'center':\n extra = 0;\n offset = delta / 2;\n break;\n case 'end':\n extra = 0;\n offset = delta;\n break;\n case 'justify':\n extra = delta / nVisible;\n offset = 0;\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Layout the items using the computed box sizes.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Fetch the computed size for the widget.\n let size = this._sizers[i].size;\n\n // Update the widget geometry and advance the relevant edge.\n switch (this._direction) {\n case 'left-to-right':\n item.update(left + offset, top, size + extra, height);\n left += size + extra + this._spacing;\n break;\n case 'top-to-bottom':\n item.update(left, top + offset, width, size + extra);\n top += size + extra + this._spacing;\n break;\n case 'right-to-left':\n item.update(left - offset - size - extra, top, size + extra, height);\n left -= size + extra + this._spacing;\n break;\n case 'bottom-to-top':\n item.update(left, top - offset - size - extra, width, size + extra);\n top -= size + extra + this._spacing;\n break;\n default:\n throw 'unreachable';\n }\n }\n }\n\n private _fixed = 0;\n private _spacing = 4;\n private _dirty = false;\n private _sizers: BoxSizer[] = [];\n private _items: LayoutItem[] = [];\n private _box: ElementExt.IBoxSizing | null = null;\n private _alignment: BoxLayout.Alignment = 'start';\n private _direction: BoxLayout.Direction = 'top-to-bottom';\n}\n\n/**\n * The namespace for the `BoxLayout` class statics.\n */\nexport namespace BoxLayout {\n /**\n * A type alias for a box layout direction.\n */\n export type Direction =\n | 'left-to-right'\n | 'right-to-left'\n | 'top-to-bottom'\n | 'bottom-to-top';\n\n /**\n * A type alias for a box layout alignment.\n */\n export type Alignment = 'start' | 'center' | 'end' | 'justify';\n\n /**\n * An options object for initializing a box layout.\n */\n export interface IOptions {\n /**\n * The direction of the layout.\n *\n * The default is `'top-to-bottom'`.\n */\n direction?: Direction;\n\n /**\n * The content alignment of the layout.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the layout.\n *\n * The default is `4`.\n */\n spacing?: number;\n }\n\n /**\n * Get the box layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box layout stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return Private.stretchProperty.get(widget);\n }\n\n /**\n * Set the box layout stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n Private.stretchProperty.set(widget, value);\n }\n\n /**\n * Get the box layout size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box layout size basis for the widget.\n */\n export function getSizeBasis(widget: Widget): number {\n return Private.sizeBasisProperty.get(widget);\n }\n\n /**\n * Set the box layout size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the size basis.\n */\n export function setSizeBasis(widget: Widget, value: number): void {\n Private.sizeBasisProperty.set(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The property descriptor for a widget stretch factor.\n */\n export const stretchProperty = new AttachedProperty({\n name: 'stretch',\n create: () => 0,\n coerce: (owner, value) => Math.max(0, Math.floor(value)),\n changed: onChildSizingChanged\n });\n\n /**\n * The property descriptor for a widget size basis.\n */\n export const sizeBasisProperty = new AttachedProperty({\n name: 'sizeBasis',\n create: () => 0,\n coerce: (owner, value) => Math.max(0, Math.floor(value)),\n changed: onChildSizingChanged\n });\n\n /**\n * Test whether a direction has horizontal orientation.\n */\n export function isHorizontal(dir: BoxLayout.Direction): boolean {\n return dir === 'left-to-right' || dir === 'right-to-left';\n }\n\n /**\n * Clamp a spacing value to an integer >= 0.\n */\n export function clampSpacing(value: number): number {\n return Math.max(0, Math.floor(value));\n }\n\n /**\n * The change handler for the attached sizing properties.\n */\n function onChildSizingChanged(child: Widget): void {\n if (child.parent && child.parent.layout instanceof BoxLayout) {\n child.parent.fit();\n }\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { BoxLayout } from './boxlayout';\n\nimport { Panel } from './panel';\n\nimport { Widget } from './widget';\n\n/**\n * A panel which arranges its widgets in a single row or column.\n *\n * #### Notes\n * This class provides a convenience wrapper around a [[BoxLayout]].\n */\nexport class BoxPanel extends Panel {\n /**\n * Construct a new box panel.\n *\n * @param options - The options for initializing the box panel.\n */\n constructor(options: BoxPanel.IOptions = {}) {\n super({ layout: Private.createLayout(options) });\n this.addClass('lm-BoxPanel');\n /* */\n this.addClass('p-BoxPanel');\n /* */\n }\n\n /**\n * Get the layout direction for the box panel.\n */\n get direction(): BoxPanel.Direction {\n return (this.layout as BoxLayout).direction;\n }\n\n /**\n * Set the layout direction for the box panel.\n */\n set direction(value: BoxPanel.Direction) {\n (this.layout as BoxLayout).direction = value;\n }\n\n /**\n * Get the content alignment for the box panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n get alignment(): BoxPanel.Alignment {\n return (this.layout as BoxLayout).alignment;\n }\n\n /**\n * Set the content alignment for the box panel.\n *\n * #### Notes\n * This is the alignment of the widgets in the layout direction.\n *\n * The alignment has no effect if the widgets can expand to fill the\n * entire box layout.\n */\n set alignment(value: BoxPanel.Alignment) {\n (this.layout as BoxLayout).alignment = value;\n }\n\n /**\n * Get the inter-element spacing for the box panel.\n */\n get spacing(): number {\n return (this.layout as BoxLayout).spacing;\n }\n\n /**\n * Set the inter-element spacing for the box panel.\n */\n set spacing(value: number) {\n (this.layout as BoxLayout).spacing = value;\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n msg.child.addClass('lm-BoxPanel-child');\n /* */\n msg.child.addClass('p-BoxPanel-child');\n /* */\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n msg.child.removeClass('lm-BoxPanel-child');\n /* */\n msg.child.removeClass('p-BoxPanel-child');\n /* */\n }\n}\n\n/**\n * The namespace for the `BoxPanel` class statics.\n */\nexport namespace BoxPanel {\n /**\n * A type alias for a box panel direction.\n */\n export type Direction = BoxLayout.Direction;\n\n /**\n * A type alias for a box panel alignment.\n */\n export type Alignment = BoxLayout.Alignment;\n\n /**\n * An options object for initializing a box panel.\n */\n export interface IOptions {\n /**\n * The layout direction of the panel.\n *\n * The default is `'top-to-bottom'`.\n */\n direction?: Direction;\n\n /**\n * The content alignment of the panel.\n *\n * The default is `'start'`.\n */\n alignment?: Alignment;\n\n /**\n * The spacing between items in the panel.\n *\n * The default is `4`.\n */\n spacing?: number;\n\n /**\n * The box layout to use for the box panel.\n *\n * If this is provided, the other options are ignored.\n *\n * The default is a new `BoxLayout`.\n */\n layout?: BoxLayout;\n }\n\n /**\n * Get the box panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box panel stretch factor for the widget.\n */\n export function getStretch(widget: Widget): number {\n return BoxLayout.getStretch(widget);\n }\n\n /**\n * Set the box panel stretch factor for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the stretch factor.\n */\n export function setStretch(widget: Widget, value: number): void {\n BoxLayout.setStretch(widget, value);\n }\n\n /**\n * Get the box panel size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The box panel size basis for the widget.\n */\n export function getSizeBasis(widget: Widget): number {\n return BoxLayout.getSizeBasis(widget);\n }\n\n /**\n * Set the box panel size basis for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the size basis.\n */\n export function setSizeBasis(widget: Widget, value: number): void {\n BoxLayout.setSizeBasis(widget, value);\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create a box layout for the given panel options.\n */\n export function createLayout(options: BoxPanel.IOptions): BoxLayout {\n return options.layout || new BoxLayout(options);\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, StringExt } from '@lumino/algorithm';\n\nimport { JSONExt, ReadonlyJSONObject } from '@lumino/coreutils';\n\nimport { CommandRegistry } from '@lumino/commands';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message } from '@lumino/messaging';\n\nimport {\n ElementDataset,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which displays command items as a searchable palette.\n */\nexport class CommandPalette extends Widget {\n /**\n * Construct a new command palette.\n *\n * @param options - The options for initializing the palette.\n */\n constructor(options: CommandPalette.IOptions) {\n super({ node: Private.createNode() });\n this.addClass('lm-CommandPalette');\n /* */\n this.addClass('p-CommandPalette');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n this.commands = options.commands;\n this.renderer = options.renderer || CommandPalette.defaultRenderer;\n this.commands.commandChanged.connect(this._onGenericChange, this);\n this.commands.keyBindingChanged.connect(this._onGenericChange, this);\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n this._items.length = 0;\n this._results = null;\n super.dispose();\n }\n\n /**\n * The command registry used by the command palette.\n */\n readonly commands: CommandRegistry;\n\n /**\n * The renderer used by the command palette.\n */\n readonly renderer: CommandPalette.IRenderer;\n\n /**\n * The command palette search node.\n *\n * #### Notes\n * This is the node which contains the search-related elements.\n */\n get searchNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-CommandPalette-search'\n )[0] as HTMLDivElement;\n }\n\n /**\n * The command palette input node.\n *\n * #### Notes\n * This is the actual input node for the search area.\n */\n get inputNode(): HTMLInputElement {\n return this.node.getElementsByClassName(\n 'lm-CommandPalette-input'\n )[0] as HTMLInputElement;\n }\n\n /**\n * The command palette content node.\n *\n * #### Notes\n * This is the node which holds the command item nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-CommandPalette-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * A read-only array of the command items in the palette.\n */\n get items(): ReadonlyArray {\n return this._items;\n }\n\n /**\n * Add a command item to the command palette.\n *\n * @param options - The options for creating the command item.\n *\n * @returns The command item added to the palette.\n */\n addItem(options: CommandPalette.IItemOptions): CommandPalette.IItem {\n // Create a new command item for the options.\n let item = Private.createItem(this.commands, options);\n\n // Add the item to the array.\n this._items.push(item);\n\n // Refresh the search results.\n this.refresh();\n\n // Return the item added to the palette.\n return item;\n }\n\n /**\n * Adds command items to the command palette.\n *\n * @param items - An array of options for creating each command item.\n *\n * @returns The command items added to the palette.\n */\n addItems(items: CommandPalette.IItemOptions[]): CommandPalette.IItem[] {\n const newItems = items.map(item => Private.createItem(this.commands, item));\n newItems.forEach(item => this._items.push(item));\n this.refresh();\n return newItems;\n }\n\n /**\n * Remove an item from the command palette.\n *\n * @param item - The item to remove from the palette.\n *\n * #### Notes\n * This is a no-op if the item is not in the palette.\n */\n removeItem(item: CommandPalette.IItem): void {\n this.removeItemAt(this._items.indexOf(item));\n }\n\n /**\n * Remove the item at a given index from the command palette.\n *\n * @param index - The index of the item to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeItemAt(index: number): void {\n // Remove the item from the array.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Bail if the index is out of range.\n if (!item) {\n return;\n }\n\n // Refresh the search results.\n this.refresh();\n }\n\n /**\n * Remove all items from the command palette.\n */\n clearItems(): void {\n // Bail if there is nothing to remove.\n if (this._items.length === 0) {\n return;\n }\n\n // Clear the array of items.\n this._items.length = 0;\n\n // Refresh the search results.\n this.refresh();\n }\n\n /**\n * Clear the search results and schedule an update.\n *\n * #### Notes\n * This should be called whenever the search results of the palette\n * should be updated.\n *\n * This is typically called automatically by the palette as needed,\n * but can be called manually if the input text is programatically\n * changed.\n *\n * The rendered results are updated asynchronously.\n */\n refresh(): void {\n this._results = null;\n if (this.inputNode.value !== '') {\n let clear = this.node.getElementsByClassName(\n 'lm-close-icon'\n )[0] as HTMLInputElement;\n clear.style.display = 'inherit';\n } else {\n let clear = this.node.getElementsByClassName(\n 'lm-close-icon'\n )[0] as HTMLInputElement;\n clear.style.display = 'none';\n }\n this.update();\n }\n\n /**\n * Handle the DOM events for the command palette.\n *\n * @param event - The DOM event sent to the command palette.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the command palette's DOM node.\n * It should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'click':\n this._evtClick(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'input':\n this.refresh();\n break;\n case 'focus':\n case 'blur':\n this._toggleFocused();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('click', this);\n this.node.addEventListener('keydown', this);\n this.node.addEventListener('input', this);\n this.node.addEventListener('focus', this, true);\n this.node.addEventListener('blur', this, true);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('click', this);\n this.node.removeEventListener('keydown', this);\n this.node.removeEventListener('input', this);\n this.node.removeEventListener('focus', this, true);\n this.node.removeEventListener('blur', this, true);\n }\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n */\n protected onActivateRequest(msg: Message): void {\n if (this.isAttached) {\n let input = this.inputNode;\n input.focus();\n input.select();\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n // Fetch the current query text and content node.\n let query = this.inputNode.value;\n let contentNode = this.contentNode;\n\n // Ensure the search results are generated.\n let results = this._results;\n if (!results) {\n // Generate and store the new search results.\n results = this._results = Private.search(this._items, query);\n\n // Reset the active index.\n this._activeIndex = query\n ? ArrayExt.findFirstIndex(results, Private.canActivate)\n : -1;\n }\n\n // If there is no query and no results, clear the content.\n if (!query && results.length === 0) {\n VirtualDOM.render(null, contentNode);\n return;\n }\n\n // If the is a query but no results, render the empty message.\n if (query && results.length === 0) {\n let content = this.renderer.renderEmptyMessage({ query });\n VirtualDOM.render(content, contentNode);\n return;\n }\n\n // Create the render content for the search results.\n let renderer = this.renderer;\n let activeIndex = this._activeIndex;\n let content = new Array(results.length);\n for (let i = 0, n = results.length; i < n; ++i) {\n let result = results[i];\n if (result.type === 'header') {\n let indices = result.indices;\n let category = result.category;\n content[i] = renderer.renderHeader({ category, indices });\n } else {\n let item = result.item;\n let indices = result.indices;\n let active = i === activeIndex;\n content[i] = renderer.renderItem({ item, indices, active });\n }\n }\n\n // Render the search result content.\n VirtualDOM.render(content, contentNode);\n\n // Adjust the scroll position as needed.\n if (activeIndex < 0 || activeIndex >= results.length) {\n contentNode.scrollTop = 0;\n } else {\n let element = contentNode.children[activeIndex];\n ElementExt.scrollIntoViewIfNeeded(contentNode, element);\n }\n }\n\n /**\n * Handle the `'click'` event for the command palette.\n */\n private _evtClick(event: MouseEvent): void {\n // Bail if the click is not the left button.\n if (event.button !== 0) {\n return;\n }\n\n // Clear input if the target is clear button\n if ((event.target as HTMLElement).classList.contains('lm-close-icon')) {\n this.inputNode.value = '';\n this.refresh();\n return;\n }\n\n // Find the index of the item which was clicked.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return node.contains(event.target as HTMLElement);\n });\n\n // Bail if the click was not on an item.\n if (index === -1) {\n return;\n }\n\n // Kill the event when a content item is clicked.\n event.preventDefault();\n event.stopPropagation();\n\n // Execute the item if possible.\n this._execute(index);\n }\n\n /**\n * Handle the `'keydown'` event for the command palette.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {\n return;\n }\n switch (event.keyCode) {\n case 13: // Enter\n event.preventDefault();\n event.stopPropagation();\n this._execute(this._activeIndex);\n break;\n case 38: // Up Arrow\n event.preventDefault();\n event.stopPropagation();\n this._activatePreviousItem();\n break;\n case 40: // Down Arrow\n event.preventDefault();\n event.stopPropagation();\n this._activateNextItem();\n break;\n }\n }\n\n /**\n * Activate the next enabled command item.\n */\n private _activateNextItem(): void {\n // Bail if there are no search results.\n if (!this._results || this._results.length === 0) {\n return;\n }\n\n // Find the next enabled item index.\n let ai = this._activeIndex;\n let n = this._results.length;\n let start = ai < n - 1 ? ai + 1 : 0;\n let stop = start === 0 ? n - 1 : start - 1;\n this._activeIndex = ArrayExt.findFirstIndex(\n this._results,\n Private.canActivate,\n start,\n stop\n );\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Activate the previous enabled command item.\n */\n private _activatePreviousItem(): void {\n // Bail if there are no search results.\n if (!this._results || this._results.length === 0) {\n return;\n }\n\n // Find the previous enabled item index.\n let ai = this._activeIndex;\n let n = this._results.length;\n let start = ai <= 0 ? n - 1 : ai - 1;\n let stop = start === n - 1 ? 0 : start + 1;\n this._activeIndex = ArrayExt.findLastIndex(\n this._results,\n Private.canActivate,\n start,\n stop\n );\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Execute the command item at the given index, if possible.\n */\n private _execute(index: number): void {\n // Bail if there are no search results.\n if (!this._results) {\n return;\n }\n\n // Bail if the index is out of range.\n let part = this._results[index];\n if (!part) {\n return;\n }\n\n // Update the search text if the item is a header.\n if (part.type === 'header') {\n let input = this.inputNode;\n input.value = `${part.category.toLowerCase()} `;\n input.focus();\n this.refresh();\n return;\n }\n\n // Bail if item is not enabled.\n if (!part.item.isEnabled) {\n return;\n }\n\n // Execute the item.\n this.commands.execute(part.item.command, part.item.args);\n\n // Clear the query text.\n this.inputNode.value = '';\n\n // Refresh the search results.\n this.refresh();\n }\n\n /**\n * Toggle the focused modifier based on the input node focus state.\n */\n private _toggleFocused(): void {\n let focused = document.activeElement === this.inputNode;\n this.toggleClass('lm-mod-focused', focused);\n /* */\n this.toggleClass('p-mod-focused', focused);\n /* */\n }\n\n /**\n * A signal handler for generic command changes.\n */\n private _onGenericChange(): void {\n this.refresh();\n }\n\n private _activeIndex = -1;\n private _items: CommandPalette.IItem[] = [];\n private _results: Private.SearchResult[] | null = null;\n}\n\n/**\n * The namespace for the `CommandPalette` class statics.\n */\nexport namespace CommandPalette {\n /**\n * An options object for creating a command palette.\n */\n export interface IOptions {\n /**\n * The command registry for use with the command palette.\n */\n commands: CommandRegistry;\n\n /**\n * A custom renderer for use with the command palette.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n }\n\n /**\n * An options object for creating a command item.\n */\n export interface IItemOptions {\n /**\n * The category for the item.\n */\n category: string;\n\n /**\n * The command to execute when the item is triggered.\n */\n command: string;\n\n /**\n * The arguments for the command.\n *\n * The default value is an empty object.\n */\n args?: ReadonlyJSONObject;\n\n /**\n * The rank for the command item.\n *\n * The rank is used as a tie-breaker when ordering command items\n * for display. Items are sorted in the following order:\n * 1. Text match (lower is better)\n * 2. Category (locale order)\n * 3. Rank (lower is better)\n * 4. Label (locale order)\n *\n * The default rank is `Infinity`.\n */\n rank?: number;\n }\n\n /**\n * An object which represents an item in a command palette.\n *\n * #### Notes\n * Item objects are created automatically by a command palette.\n */\n export interface IItem {\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The category for the command item.\n */\n readonly category: string;\n\n /**\n * The rank for the command item.\n */\n readonly rank: number;\n\n /**\n * The display label for the command item.\n */\n readonly label: string;\n\n /**\n * The display caption for the command item.\n */\n readonly caption: string;\n\n /**\n * The icon renderer for the command item.\n */\n readonly icon:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */;\n\n /**\n * The icon class for the command item.\n */\n readonly iconClass: string;\n\n /**\n * The icon label for the command item.\n */\n readonly iconLabel: string;\n\n /**\n * The extra class name for the command item.\n */\n readonly className: string;\n\n /**\n * The dataset for the command item.\n */\n readonly dataset: CommandRegistry.Dataset;\n\n /**\n * Whether the command item is enabled.\n */\n readonly isEnabled: boolean;\n\n /**\n * Whether the command item is toggled.\n */\n readonly isToggled: boolean;\n\n /**\n * Whether the command item is toggleable.\n */\n readonly isToggleable: boolean;\n\n /**\n * Whether the command item is visible.\n */\n readonly isVisible: boolean;\n\n /**\n * The key binding for the command item.\n */\n readonly keyBinding: CommandRegistry.IKeyBinding | null;\n }\n\n /**\n * The render data for a command palette header.\n */\n export interface IHeaderRenderData {\n /**\n * The category of the header.\n */\n readonly category: string;\n\n /**\n * The indices of the matched characters in the category.\n */\n readonly indices: ReadonlyArray | null;\n }\n\n /**\n * The render data for a command palette item.\n */\n export interface IItemRenderData {\n /**\n * The command palette item to render.\n */\n readonly item: IItem;\n\n /**\n * The indices of the matched characters in the label.\n */\n readonly indices: ReadonlyArray | null;\n\n /**\n * Whether the item is the active item.\n */\n readonly active: boolean;\n }\n\n /**\n * The render data for a command palette empty message.\n */\n export interface IEmptyMessageRenderData {\n /**\n * The query which failed to match any commands.\n */\n query: string;\n }\n\n /**\n * A renderer for use with a command palette.\n */\n export interface IRenderer {\n /**\n * Render the virtual element for a command palette header.\n *\n * @param data - The data to use for rendering the header.\n *\n * @returns A virtual element representing the header.\n */\n renderHeader(data: IHeaderRenderData): VirtualElement;\n\n /**\n * Render the virtual element for a command palette item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n *\n * #### Notes\n * The command palette will not render invisible items.\n */\n renderItem(data: IItemRenderData): VirtualElement;\n\n /**\n * Render the empty results message for a command palette.\n *\n * @param data - The data to use for rendering the message.\n *\n * @returns A virtual element representing the message.\n */\n renderEmptyMessage(data: IEmptyMessageRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer implements IRenderer {\n /**\n * Render the virtual element for a command palette header.\n *\n * @param data - The data to use for rendering the header.\n *\n * @returns A virtual element representing the header.\n */\n renderHeader(data: IHeaderRenderData): VirtualElement {\n let content = this.formatHeader(data);\n return h.li(\n {\n className:\n 'lm-CommandPalette-header' +\n /* */\n ' p-CommandPalette-header'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the virtual element for a command palette item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IItemRenderData): VirtualElement {\n let className = this.createItemClass(data);\n let dataset = this.createItemDataset(data);\n if (data.item.isToggleable) {\n return h.li(\n {\n className,\n dataset,\n role: 'checkbox',\n 'aria-checked': `${data.item.isToggled}`\n },\n this.renderItemIcon(data),\n this.renderItemContent(data),\n this.renderItemShortcut(data)\n );\n }\n return h.li(\n {\n className,\n dataset\n },\n this.renderItemIcon(data),\n this.renderItemContent(data),\n this.renderItemShortcut(data)\n );\n }\n\n /**\n * Render the empty results message for a command palette.\n *\n * @param data - The data to use for rendering the message.\n *\n * @returns A virtual element representing the message.\n */\n renderEmptyMessage(data: IEmptyMessageRenderData): VirtualElement {\n let content = this.formatEmptyMessage(data);\n return h.li(\n {\n className:\n 'lm-CommandPalette-emptyMessage' +\n /* */\n ' p-CommandPalette-emptyMessage'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the icon for a command palette item.\n *\n * @param data - The data to use for rendering the icon.\n *\n * @returns A virtual element representing the icon.\n */\n renderItemIcon(data: IItemRenderData): VirtualElement {\n let className = this.createIconClass(data);\n\n /* */\n if (typeof data.item.icon === 'string') {\n return h.div({ className }, data.item.iconLabel);\n }\n /* */\n\n // if data.item.icon is undefined, it will be ignored\n return h.div({ className }, data.item.icon!, data.item.iconLabel);\n }\n\n /**\n * Render the content for a command palette item.\n *\n * @param data - The data to use for rendering the content.\n *\n * @returns A virtual element representing the content.\n */\n renderItemContent(data: IItemRenderData): VirtualElement {\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemContent' +\n /* */\n ' p-CommandPalette-itemContent'\n /* */\n },\n this.renderItemLabel(data),\n this.renderItemCaption(data)\n );\n }\n\n /**\n * Render the label for a command palette item.\n *\n * @param data - The data to use for rendering the label.\n *\n * @returns A virtual element representing the label.\n */\n renderItemLabel(data: IItemRenderData): VirtualElement {\n let content = this.formatItemLabel(data);\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemLabel' +\n /* */\n ' p-CommandPalette-itemLabel'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the caption for a command palette item.\n *\n * @param data - The data to use for rendering the caption.\n *\n * @returns A virtual element representing the caption.\n */\n renderItemCaption(data: IItemRenderData): VirtualElement {\n let content = this.formatItemCaption(data);\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemCaption' +\n /* */\n ' p-CommandPalette-itemCaption'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the shortcut for a command palette item.\n *\n * @param data - The data to use for rendering the shortcut.\n *\n * @returns A virtual element representing the shortcut.\n */\n renderItemShortcut(data: IItemRenderData): VirtualElement {\n let content = this.formatItemShortcut(data);\n return h.div(\n {\n className:\n 'lm-CommandPalette-itemShortcut' +\n /* */\n ' p-CommandPalette-itemShortcut'\n /* */\n },\n content\n );\n }\n\n /**\n * Create the class name for the command palette item.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the command palette item.\n */\n createItemClass(data: IItemRenderData): string {\n // Set up the initial class name.\n let name = 'lm-CommandPalette-item';\n /* */\n name += ' p-CommandPalette-item';\n /* */\n\n // Add the boolean state classes.\n if (!data.item.isEnabled) {\n name += ' lm-mod-disabled';\n /* */\n name += ' p-mod-disabled';\n /* */\n }\n if (data.item.isToggled) {\n name += ' lm-mod-toggled';\n /* */\n name += ' p-mod-toggled';\n /* */\n }\n if (data.active) {\n name += ' lm-mod-active';\n /* */\n name += ' p-mod-active';\n /* */\n }\n\n // Add the extra class.\n let extra = data.item.className;\n if (extra) {\n name += ` ${extra}`;\n }\n\n // Return the complete class name.\n return name;\n }\n\n /**\n * Create the dataset for the command palette item.\n *\n * @param data - The data to use for creating the dataset.\n *\n * @returns The dataset for the command palette item.\n */\n createItemDataset(data: IItemRenderData): ElementDataset {\n return { ...data.item.dataset, command: data.item.command };\n }\n\n /**\n * Create the class name for the command item icon.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the item icon.\n */\n createIconClass(data: IItemRenderData): string {\n let name = 'lm-CommandPalette-itemIcon';\n /* */\n name += ' p-CommandPalette-itemIcon';\n /* */\n let extra = data.item.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n /**\n * Create the render content for the header node.\n *\n * @param data - The data to use for the header content.\n *\n * @returns The content to add to the header node.\n */\n formatHeader(data: IHeaderRenderData): h.Child {\n if (!data.indices || data.indices.length === 0) {\n return data.category;\n }\n return StringExt.highlight(data.category, data.indices, h.mark);\n }\n\n /**\n * Create the render content for the empty message node.\n *\n * @param data - The data to use for the empty message content.\n *\n * @returns The content to add to the empty message node.\n */\n formatEmptyMessage(data: IEmptyMessageRenderData): h.Child {\n return `No commands found that match '${data.query}'`;\n }\n\n /**\n * Create the render content for the item shortcut node.\n *\n * @param data - The data to use for the shortcut content.\n *\n * @returns The content to add to the shortcut node.\n */\n formatItemShortcut(data: IItemRenderData): h.Child {\n let kb = data.item.keyBinding;\n return kb ? CommandRegistry.formatKeystroke(kb.keys) : null;\n }\n\n /**\n * Create the render content for the item label node.\n *\n * @param data - The data to use for the label content.\n *\n * @returns The content to add to the label node.\n */\n formatItemLabel(data: IItemRenderData): h.Child {\n if (!data.indices || data.indices.length === 0) {\n return data.item.label;\n }\n return StringExt.highlight(data.item.label, data.indices, h.mark);\n }\n\n /**\n * Create the render content for the item caption node.\n *\n * @param data - The data to use for the caption content.\n *\n * @returns The content to add to the caption node.\n */\n formatItemCaption(data: IItemRenderData): h.Child {\n return data.item.caption;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create the DOM node for a command palette.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let search = document.createElement('div');\n let wrapper = document.createElement('div');\n let input = document.createElement('input');\n let content = document.createElement('ul');\n let clear = document.createElement('button');\n search.className = 'lm-CommandPalette-search';\n wrapper.className = 'lm-CommandPalette-wrapper';\n input.className = 'lm-CommandPalette-input';\n clear.className = 'lm-close-icon';\n\n content.className = 'lm-CommandPalette-content';\n /* */\n search.classList.add('p-CommandPalette-search');\n wrapper.classList.add('p-CommandPalette-wrapper');\n input.classList.add('p-CommandPalette-input');\n content.classList.add('p-CommandPalette-content');\n /* */\n input.spellcheck = false;\n wrapper.appendChild(input);\n wrapper.appendChild(clear);\n search.appendChild(wrapper);\n node.appendChild(search);\n node.appendChild(content);\n return node;\n }\n\n /**\n * Create a new command item from a command registry and options.\n */\n export function createItem(\n commands: CommandRegistry,\n options: CommandPalette.IItemOptions\n ): CommandPalette.IItem {\n return new CommandItem(commands, options);\n }\n\n /**\n * A search result object for a header label.\n */\n export interface IHeaderResult {\n /**\n * The discriminated type of the object.\n */\n readonly type: 'header';\n\n /**\n * The category for the header.\n */\n readonly category: string;\n\n /**\n * The indices of the matched category characters.\n */\n readonly indices: ReadonlyArray | null;\n }\n\n /**\n * A search result object for a command item.\n */\n export interface IItemResult {\n /**\n * The discriminated type of the object.\n */\n readonly type: 'item';\n\n /**\n * The command item which was matched.\n */\n readonly item: CommandPalette.IItem;\n\n /**\n * The indices of the matched label characters.\n */\n readonly indices: ReadonlyArray | null;\n }\n\n /**\n * A type alias for a search result item.\n */\n export type SearchResult = IHeaderResult | IItemResult;\n\n /**\n * Search an array of command items for fuzzy matches.\n */\n export function search(\n items: CommandPalette.IItem[],\n query: string\n ): SearchResult[] {\n // Fuzzy match the items for the query.\n let scores = matchItems(items, query);\n\n // Sort the items based on their score.\n scores.sort(scoreCmp);\n\n // Create the results for the search.\n return createResults(scores);\n }\n\n /**\n * Test whether a result item can be activated.\n */\n export function canActivate(result: SearchResult): boolean {\n return result.type === 'item' && result.item.isEnabled;\n }\n\n /**\n * Normalize a category for a command item.\n */\n function normalizeCategory(category: string): string {\n return category.trim().replace(/\\s+/g, ' ');\n }\n\n /**\n * Normalize the query text for a fuzzy search.\n */\n function normalizeQuery(text: string): string {\n return text.replace(/\\s+/g, '').toLowerCase();\n }\n\n /**\n * An enum of the supported match types.\n */\n const enum MatchType {\n Label,\n Category,\n Split,\n Default\n }\n\n /**\n * A text match score with associated command item.\n */\n interface IScore {\n /**\n * The numerical type for the text match.\n */\n matchType: MatchType;\n\n /**\n * The numerical score for the text match.\n */\n score: number;\n\n /**\n * The indices of the matched category characters.\n */\n categoryIndices: number[] | null;\n\n /**\n * The indices of the matched label characters.\n */\n labelIndices: number[] | null;\n\n /**\n * The command item associated with the match.\n */\n item: CommandPalette.IItem;\n }\n\n /**\n * Perform a fuzzy match on an array of command items.\n */\n function matchItems(items: CommandPalette.IItem[], query: string): IScore[] {\n // Normalize the query text to lower case with no whitespace.\n query = normalizeQuery(query);\n\n // Create the array to hold the scores.\n let scores: IScore[] = [];\n\n // Iterate over the items and match against the query.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Ignore items which are not visible.\n let item = items[i];\n if (!item.isVisible) {\n continue;\n }\n\n // If the query is empty, all items are matched by default.\n if (!query) {\n scores.push({\n matchType: MatchType.Default,\n categoryIndices: null,\n labelIndices: null,\n score: 0,\n item\n });\n continue;\n }\n\n // Run the fuzzy search for the item and query.\n let score = fuzzySearch(item, query);\n\n // Ignore the item if it is not a match.\n if (!score) {\n continue;\n }\n\n // Penalize disabled items.\n // TODO - push disabled items all the way down in sort cmp?\n if (!item.isEnabled) {\n score.score += 1000;\n }\n\n // Add the score to the results.\n scores.push(score);\n }\n\n // Return the final array of scores.\n return scores;\n }\n\n /**\n * Perform a fuzzy search on a single command item.\n */\n function fuzzySearch(\n item: CommandPalette.IItem,\n query: string\n ): IScore | null {\n // Create the source text to be searched.\n let category = item.category.toLowerCase();\n let label = item.label.toLowerCase();\n let source = `${category} ${label}`;\n\n // Set up the match score and indices array.\n let score = Infinity;\n let indices: number[] | null = null;\n\n // The regex for search word boundaries\n let rgx = /\\b\\w/g;\n\n // Search the source by word boundary.\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // Find the next word boundary in the source.\n let rgxMatch = rgx.exec(source);\n\n // Break if there is no more source context.\n if (!rgxMatch) {\n break;\n }\n\n // Run the string match on the relevant substring.\n let match = StringExt.matchSumOfDeltas(source, query, rgxMatch.index);\n\n // Break if there is no match.\n if (!match) {\n break;\n }\n\n // Update the match if the score is better.\n if (match && match.score <= score) {\n score = match.score;\n indices = match.indices;\n }\n }\n\n // Bail if there was no match.\n if (!indices || score === Infinity) {\n return null;\n }\n\n // Compute the pivot index between category and label text.\n let pivot = category.length + 1;\n\n // Find the slice index to separate matched indices.\n let j = ArrayExt.lowerBound(indices, pivot, (a, b) => a - b);\n\n // Extract the matched category and label indices.\n let categoryIndices = indices.slice(0, j);\n let labelIndices = indices.slice(j);\n\n // Adjust the label indices for the pivot offset.\n for (let i = 0, n = labelIndices.length; i < n; ++i) {\n labelIndices[i] -= pivot;\n }\n\n // Handle a pure label match.\n if (categoryIndices.length === 0) {\n return {\n matchType: MatchType.Label,\n categoryIndices: null,\n labelIndices,\n score,\n item\n };\n }\n\n // Handle a pure category match.\n if (labelIndices.length === 0) {\n return {\n matchType: MatchType.Category,\n categoryIndices,\n labelIndices: null,\n score,\n item\n };\n }\n\n // Handle a split match.\n return {\n matchType: MatchType.Split,\n categoryIndices,\n labelIndices,\n score,\n item\n };\n }\n\n /**\n * A sort comparison function for a match score.\n */\n function scoreCmp(a: IScore, b: IScore): number {\n // First compare based on the match type\n let m1 = a.matchType - b.matchType;\n if (m1 !== 0) {\n return m1;\n }\n\n // Otherwise, compare based on the match score.\n let d1 = a.score - b.score;\n if (d1 !== 0) {\n return d1;\n }\n\n // Find the match index based on the match type.\n let i1 = 0;\n let i2 = 0;\n switch (a.matchType) {\n case MatchType.Label:\n i1 = a.labelIndices![0];\n i2 = b.labelIndices![0];\n break;\n case MatchType.Category:\n case MatchType.Split:\n i1 = a.categoryIndices![0];\n i2 = b.categoryIndices![0];\n break;\n }\n\n // Compare based on the match index.\n if (i1 !== i2) {\n return i1 - i2;\n }\n\n // Otherwise, compare by category.\n let d2 = a.item.category.localeCompare(b.item.category);\n if (d2 !== 0) {\n return d2;\n }\n\n // Otherwise, compare by rank.\n let r1 = a.item.rank;\n let r2 = b.item.rank;\n if (r1 !== r2) {\n return r1 < r2 ? -1 : 1; // Infinity safe\n }\n\n // Finally, compare by label.\n return a.item.label.localeCompare(b.item.label);\n }\n\n /**\n * Create the results from an array of sorted scores.\n */\n function createResults(scores: IScore[]): SearchResult[] {\n // Set up an array to track which scores have been visited.\n let visited = new Array(scores.length);\n ArrayExt.fill(visited, false);\n\n // Set up the search results array.\n let results: SearchResult[] = [];\n\n // Iterate over each score in the array.\n for (let i = 0, n = scores.length; i < n; ++i) {\n // Ignore a score which has already been processed.\n if (visited[i]) {\n continue;\n }\n\n // Extract the current item and indices.\n let { item, categoryIndices } = scores[i];\n\n // Extract the category for the current item.\n let category = item.category;\n\n // Add the header result for the category.\n results.push({ type: 'header', category, indices: categoryIndices });\n\n // Find the rest of the scores with the same category.\n for (let j = i; j < n; ++j) {\n // Ignore a score which has already been processed.\n if (visited[j]) {\n continue;\n }\n\n // Extract the data for the current score.\n let { item, labelIndices } = scores[j];\n\n // Ignore an item with a different category.\n if (item.category !== category) {\n continue;\n }\n\n // Create the item result for the score.\n results.push({ type: 'item', item, indices: labelIndices });\n\n // Mark the score as processed.\n visited[j] = true;\n }\n }\n\n // Return the final results.\n return results;\n }\n\n /**\n * A concrete implementation of `CommandPalette.IItem`.\n */\n class CommandItem implements CommandPalette.IItem {\n /**\n * Construct a new command item.\n */\n constructor(\n commands: CommandRegistry,\n options: CommandPalette.IItemOptions\n ) {\n this._commands = commands;\n this.category = normalizeCategory(options.category);\n this.command = options.command;\n this.args = options.args || JSONExt.emptyObject;\n this.rank = options.rank !== undefined ? options.rank : Infinity;\n }\n\n /**\n * The category for the command item.\n */\n readonly category: string;\n\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The rank for the command item.\n */\n readonly rank: number;\n\n /**\n * The display label for the command item.\n */\n get label(): string {\n return this._commands.label(this.command, this.args);\n }\n\n /**\n * The icon renderer for the command item.\n */\n get icon():\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */ {\n return this._commands.icon(this.command, this.args);\n }\n\n /**\n * The icon class for the command item.\n */\n get iconClass(): string {\n return this._commands.iconClass(this.command, this.args);\n }\n\n /**\n * The icon label for the command item.\n */\n get iconLabel(): string {\n return this._commands.iconLabel(this.command, this.args);\n }\n\n /**\n * The display caption for the command item.\n */\n get caption(): string {\n return this._commands.caption(this.command, this.args);\n }\n\n /**\n * The extra class name for the command item.\n */\n get className(): string {\n return this._commands.className(this.command, this.args);\n }\n\n /**\n * The dataset for the command item.\n */\n get dataset(): CommandRegistry.Dataset {\n return this._commands.dataset(this.command, this.args);\n }\n\n /**\n * Whether the command item is enabled.\n */\n get isEnabled(): boolean {\n return this._commands.isEnabled(this.command, this.args);\n }\n\n /**\n * Whether the command item is toggled.\n */\n get isToggled(): boolean {\n return this._commands.isToggled(this.command, this.args);\n }\n\n /**\n * Whether the command item is toggleable.\n */\n get isToggleable(): boolean {\n return this._commands.isToggleable(this.command, this.args);\n }\n\n /**\n * Whether the command item is visible.\n */\n get isVisible(): boolean {\n return this._commands.isVisible(this.command, this.args);\n }\n\n /**\n * The key binding for the command item.\n */\n get keyBinding(): CommandRegistry.IKeyBinding | null {\n let { command, args } = this;\n return (\n ArrayExt.findLastValue(this._commands.keyBindings, kb => {\n return kb.command === command && JSONExt.deepEqual(kb.args, args);\n }) || null\n );\n }\n\n private _commands: CommandRegistry;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\nimport { CommandRegistry } from '@lumino/commands';\n\nimport { JSONExt, ReadonlyJSONObject } from '@lumino/coreutils';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { getKeyboardLayout } from '@lumino/keyboard';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport {\n ARIAAttrNames,\n ElementARIAAttrs,\n ElementDataset,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Widget } from './widget';\n\ninterface IWindowData {\n pageXOffset: number;\n pageYOffset: number;\n clientWidth: number;\n clientHeight: number;\n}\n\n/**\n * A widget which displays items as a canonical menu.\n */\nexport class Menu extends Widget {\n /**\n * Construct a new menu.\n *\n * @param options - The options for initializing the menu.\n */\n constructor(options: Menu.IOptions) {\n super({ node: Private.createNode() });\n this.addClass('lm-Menu');\n /* */\n this.addClass('p-Menu');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n this.commands = options.commands;\n this.renderer = options.renderer || Menu.defaultRenderer;\n }\n\n /**\n * Dispose of the resources held by the menu.\n */\n dispose(): void {\n this.close();\n this._items.length = 0;\n super.dispose();\n }\n\n /**\n * A signal emitted just before the menu is closed.\n *\n * #### Notes\n * This signal is emitted when the menu receives a `'close-request'`\n * message, just before it removes itself from the DOM.\n *\n * This signal is not emitted if the menu is already detached from\n * the DOM when it receives the `'close-request'` message.\n */\n get aboutToClose(): ISignal {\n return this._aboutToClose;\n }\n\n /**\n * A signal emitted when a new menu is requested by the user.\n *\n * #### Notes\n * This signal is emitted whenever the user presses the right or left\n * arrow keys, and a submenu cannot be opened or closed in response.\n *\n * This signal is useful when implementing menu bars in order to open\n * the next or previous menu in response to a user key press.\n *\n * This signal is only emitted for the root menu in a hierarchy.\n */\n get menuRequested(): ISignal {\n return this._menuRequested;\n }\n\n /**\n * The command registry used by the menu.\n */\n readonly commands: CommandRegistry;\n\n /**\n * The renderer used by the menu.\n */\n readonly renderer: Menu.IRenderer;\n\n /**\n * The parent menu of the menu.\n *\n * #### Notes\n * This is `null` unless the menu is an open submenu.\n */\n get parentMenu(): Menu | null {\n return this._parentMenu;\n }\n\n /**\n * The child menu of the menu.\n *\n * #### Notes\n * This is `null` unless the menu has an open submenu.\n */\n get childMenu(): Menu | null {\n return this._childMenu;\n }\n\n /**\n * The root menu of the menu hierarchy.\n */\n get rootMenu(): Menu {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let menu: Menu = this;\n while (menu._parentMenu) {\n menu = menu._parentMenu;\n }\n return menu;\n }\n\n /**\n * The leaf menu of the menu hierarchy.\n */\n get leafMenu(): Menu {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let menu: Menu = this;\n while (menu._childMenu) {\n menu = menu._childMenu;\n }\n return menu;\n }\n\n /**\n * The menu content node.\n *\n * #### Notes\n * This is the node which holds the menu item nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-Menu-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * Get the currently active menu item.\n */\n get activeItem(): Menu.IItem | null {\n return this._items[this._activeIndex] || null;\n }\n\n /**\n * Set the currently active menu item.\n *\n * #### Notes\n * If the item cannot be activated, the item will be set to `null`.\n */\n set activeItem(value: Menu.IItem | null) {\n this.activeIndex = value ? this._items.indexOf(value) : -1;\n }\n\n /**\n * Get the index of the currently active menu item.\n *\n * #### Notes\n * This will be `-1` if no menu item is active.\n */\n get activeIndex(): number {\n return this._activeIndex;\n }\n\n /**\n * Set the index of the currently active menu item.\n *\n * #### Notes\n * If the item cannot be activated, the index will be set to `-1`.\n */\n set activeIndex(value: number) {\n // Adjust the value for an out of range index.\n if (value < 0 || value >= this._items.length) {\n value = -1;\n }\n\n // Ensure the item can be activated.\n if (value !== -1 && !Private.canActivate(this._items[value])) {\n value = -1;\n }\n\n // Bail if the index will not change.\n if (this._activeIndex === value) {\n return;\n }\n\n // Update the active index.\n this._activeIndex = value;\n\n // Make active element in focus\n if (\n this._activeIndex >= 0 &&\n this.contentNode.childNodes[this._activeIndex]\n ) {\n (this.contentNode.childNodes[this._activeIndex] as HTMLElement).focus();\n }\n\n // schedule an update of the items.\n this.update();\n }\n\n /**\n * A read-only array of the menu items in the menu.\n */\n get items(): ReadonlyArray {\n return this._items;\n }\n\n /**\n * Activate the next selectable item in the menu.\n *\n * #### Notes\n * If no item is selectable, the index will be set to `-1`.\n */\n activateNextItem(): void {\n let n = this._items.length;\n let ai = this._activeIndex;\n let start = ai < n - 1 ? ai + 1 : 0;\n let stop = start === 0 ? n - 1 : start - 1;\n this.activeIndex = ArrayExt.findFirstIndex(\n this._items,\n Private.canActivate,\n start,\n stop\n );\n }\n\n /**\n * Activate the previous selectable item in the menu.\n *\n * #### Notes\n * If no item is selectable, the index will be set to `-1`.\n */\n activatePreviousItem(): void {\n let n = this._items.length;\n let ai = this._activeIndex;\n let start = ai <= 0 ? n - 1 : ai - 1;\n let stop = start === n - 1 ? 0 : start + 1;\n this.activeIndex = ArrayExt.findLastIndex(\n this._items,\n Private.canActivate,\n start,\n stop\n );\n }\n\n /**\n * Trigger the active menu item.\n *\n * #### Notes\n * If the active item is a submenu, it will be opened and the first\n * item will be activated.\n *\n * If the active item is a command, the command will be executed.\n *\n * If the menu is not attached, this is a no-op.\n *\n * If there is no active item, this is a no-op.\n */\n triggerActiveItem(): void {\n // Bail if the menu is not attached.\n if (!this.isAttached) {\n return;\n }\n\n // Bail if there is no active item.\n let item = this.activeItem;\n if (!item) {\n return;\n }\n\n // Cancel the pending timers.\n this._cancelOpenTimer();\n this._cancelCloseTimer();\n\n // If the item is a submenu, open it.\n if (item.type === 'submenu') {\n this._openChildMenu(true);\n return;\n }\n\n // Close the root menu before executing the command.\n this.rootMenu.close();\n\n // Execute the command for the item.\n let { command, args } = item;\n if (this.commands.isEnabled(command, args)) {\n this.commands.execute(command, args);\n } else {\n console.log(`Command '${command}' is disabled.`);\n }\n }\n\n /**\n * Add a menu item to the end of the menu.\n *\n * @param options - The options for creating the menu item.\n *\n * @returns The menu item added to the menu.\n */\n addItem(options: Menu.IItemOptions): Menu.IItem {\n return this.insertItem(this._items.length, options);\n }\n\n /**\n * Insert a menu item into the menu at the specified index.\n *\n * @param index - The index at which to insert the item.\n *\n * @param options - The options for creating the menu item.\n *\n * @returns The menu item added to the menu.\n *\n * #### Notes\n * The index will be clamped to the bounds of the items.\n */\n insertItem(index: number, options: Menu.IItemOptions): Menu.IItem {\n // Close the menu if it's attached.\n if (this.isAttached) {\n this.close();\n }\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Clamp the insert index to the array bounds.\n let i = Math.max(0, Math.min(index, this._items.length));\n\n // Create the item for the options.\n let item = Private.createItem(this, options);\n\n // Insert the item into the array.\n ArrayExt.insert(this._items, i, item);\n\n // Schedule an update of the items.\n this.update();\n\n // Return the item added to the menu.\n return item;\n }\n\n /**\n * Remove an item from the menu.\n *\n * @param item - The item to remove from the menu.\n *\n * #### Notes\n * This is a no-op if the item is not in the menu.\n */\n removeItem(item: Menu.IItem): void {\n this.removeItemAt(this._items.indexOf(item));\n }\n\n /**\n * Remove the item at a given index from the menu.\n *\n * @param index - The index of the item to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeItemAt(index: number): void {\n // Close the menu if it's attached.\n if (this.isAttached) {\n this.close();\n }\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Remove the item from the array.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Bail if the index is out of range.\n if (!item) {\n return;\n }\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Remove all menu items from the menu.\n */\n clearItems(): void {\n // Close the menu if it's attached.\n if (this.isAttached) {\n this.close();\n }\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Bail if there is nothing to remove.\n if (this._items.length === 0) {\n return;\n }\n\n // Clear the items.\n this._items.length = 0;\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Open the menu at the specified location.\n *\n * @param x - The client X coordinate of the menu location.\n *\n * @param y - The client Y coordinate of the menu location.\n *\n * @param options - The additional options for opening the menu.\n *\n * #### Notes\n * The menu will be opened at the given location unless it will not\n * fully fit on the screen. If it will not fit, it will be adjusted\n * to fit naturally on the screen.\n *\n * This is a no-op if the menu is already attached to the DOM.\n */\n open(x: number, y: number, options: Menu.IOpenOptions = {}): void {\n // Bail early if the menu is already attached.\n if (this.isAttached) {\n return;\n }\n\n // Extract the position options.\n let forceX = options.forceX || false;\n let forceY = options.forceY || false;\n\n // Open the menu as a root menu.\n Private.openRootMenu(this, x, y, forceX, forceY);\n\n // Activate the menu to accept keyboard input.\n this.activate();\n }\n\n /**\n * Handle the DOM events for the menu.\n *\n * @param event - The DOM event sent to the menu.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the menu's DOM nodes. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'mouseup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseenter':\n this._evtMouseEnter(event as MouseEvent);\n break;\n case 'mouseleave':\n this._evtMouseLeave(event as MouseEvent);\n break;\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('keydown', this);\n this.node.addEventListener('mouseup', this);\n this.node.addEventListener('mousemove', this);\n this.node.addEventListener('mouseenter', this);\n this.node.addEventListener('mouseleave', this);\n this.node.addEventListener('contextmenu', this);\n document.addEventListener('mousedown', this, true);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('keydown', this);\n this.node.removeEventListener('mouseup', this);\n this.node.removeEventListener('mousemove', this);\n this.node.removeEventListener('mouseenter', this);\n this.node.removeEventListener('mouseleave', this);\n this.node.removeEventListener('contextmenu', this);\n document.removeEventListener('mousedown', this, true);\n }\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n */\n protected onActivateRequest(msg: Message): void {\n if (this.isAttached) {\n this.node.focus();\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n let items = this._items;\n let renderer = this.renderer;\n let activeIndex = this._activeIndex;\n let collapsedFlags = Private.computeCollapsed(items);\n let content = new Array(items.length);\n for (let i = 0, n = items.length; i < n; ++i) {\n let item = items[i];\n let active = i === activeIndex;\n let collapsed = collapsedFlags[i];\n content[i] = renderer.renderItem({\n item,\n active,\n collapsed,\n onfocus: () => {\n this.activeIndex = i;\n }\n });\n }\n VirtualDOM.render(content, this.contentNode);\n }\n\n /**\n * A message handler invoked on a `'close-request'` message.\n */\n protected onCloseRequest(msg: Message): void {\n // Cancel the pending timers.\n this._cancelOpenTimer();\n this._cancelCloseTimer();\n\n // Reset the active index.\n this.activeIndex = -1;\n\n // Close any open child menu.\n let childMenu = this._childMenu;\n if (childMenu) {\n this._childIndex = -1;\n this._childMenu = null;\n childMenu._parentMenu = null;\n childMenu.close();\n }\n\n // Remove this menu from its parent and activate the parent.\n let parentMenu = this._parentMenu;\n if (parentMenu) {\n this._parentMenu = null;\n parentMenu._childIndex = -1;\n parentMenu._childMenu = null;\n parentMenu.activate();\n }\n\n // Emit the `aboutToClose` signal if the menu is attached.\n if (this.isAttached) {\n this._aboutToClose.emit(undefined);\n }\n\n // Finish closing the menu.\n super.onCloseRequest(msg);\n }\n\n /**\n * Handle the `'keydown'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // A menu handles all keydown events.\n event.preventDefault();\n event.stopPropagation();\n\n // Fetch the key code for the event.\n let kc = event.keyCode;\n\n // Enter\n if (kc === 13) {\n this.triggerActiveItem();\n return;\n }\n\n // Escape\n if (kc === 27) {\n this.close();\n return;\n }\n\n // Left Arrow\n if (kc === 37) {\n if (this._parentMenu) {\n this.close();\n } else {\n this._menuRequested.emit('previous');\n }\n return;\n }\n\n // Up Arrow\n if (kc === 38) {\n this.activatePreviousItem();\n return;\n }\n\n // Right Arrow\n if (kc === 39) {\n let item = this.activeItem;\n if (item && item.type === 'submenu') {\n this.triggerActiveItem();\n } else {\n this.rootMenu._menuRequested.emit('next');\n }\n return;\n }\n\n // Down Arrow\n if (kc === 40) {\n this.activateNextItem();\n return;\n }\n\n // Get the pressed key character.\n let key = getKeyboardLayout().keyForKeydownEvent(event);\n\n // Bail if the key is not valid.\n if (!key) {\n return;\n }\n\n // Search for the next best matching mnemonic item.\n let start = this._activeIndex + 1;\n let result = Private.findMnemonic(this._items, key, start);\n\n // Handle the requested mnemonic based on the search results.\n // If exactly one mnemonic is matched, that item is triggered.\n // Otherwise, the next mnemonic is activated if available,\n // followed by the auto mnemonic if available.\n if (result.index !== -1 && !result.multiple) {\n this.activeIndex = result.index;\n this.triggerActiveItem();\n } else if (result.index !== -1) {\n this.activeIndex = result.index;\n } else if (result.auto !== -1) {\n this.activeIndex = result.auto;\n }\n }\n\n /**\n * Handle the `'mouseup'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseUp(event: MouseEvent): void {\n if (event.button !== 0) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.triggerActiveItem();\n }\n\n /**\n * Handle the `'mousemove'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Hit test the item nodes for the item under the mouse.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return ElementExt.hitTest(node, event.clientX, event.clientY);\n });\n\n // Bail early if the mouse is already over the active index.\n if (index === this._activeIndex) {\n return;\n }\n\n // Update and coerce the active index.\n this.activeIndex = index;\n index = this.activeIndex;\n\n // If the index is the current child index, cancel the timers.\n if (index === this._childIndex) {\n this._cancelOpenTimer();\n this._cancelCloseTimer();\n return;\n }\n\n // If a child menu is currently open, start the close timer.\n if (this._childIndex !== -1) {\n this._startCloseTimer();\n }\n\n // Cancel the open timer to give a full delay for opening.\n this._cancelOpenTimer();\n\n // Bail if the active item is not a valid submenu item.\n let item = this.activeItem;\n if (!item || item.type !== 'submenu' || !item.submenu) {\n return;\n }\n\n // Start the open timer to open the active item submenu.\n this._startOpenTimer();\n }\n\n /**\n * Handle the `'mouseenter'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseEnter(event: MouseEvent): void {\n // Synchronize the active ancestor items.\n for (let menu = this._parentMenu; menu; menu = menu._parentMenu) {\n menu._cancelOpenTimer();\n menu._cancelCloseTimer();\n menu.activeIndex = menu._childIndex;\n }\n }\n\n /**\n * Handle the `'mouseleave'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the menu node.\n */\n private _evtMouseLeave(event: MouseEvent): void {\n // Cancel any pending submenu opening.\n this._cancelOpenTimer();\n\n // If there is no open child menu, just reset the active index.\n if (!this._childMenu) {\n this.activeIndex = -1;\n return;\n }\n\n // If the mouse is over the child menu, cancel the close timer.\n let { clientX, clientY } = event;\n if (ElementExt.hitTest(this._childMenu.node, clientX, clientY)) {\n this._cancelCloseTimer();\n return;\n }\n\n // Otherwise, reset the active index and start the close timer.\n this.activeIndex = -1;\n this._startCloseTimer();\n }\n\n /**\n * Handle the `'mousedown'` event for the menu.\n *\n * #### Notes\n * This listener is attached to the document node.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Bail if the menu is not a root menu.\n if (this._parentMenu) {\n return;\n }\n\n // The mouse button which is pressed is irrelevant. If the press\n // is not on a menu, the entire hierarchy is closed and the event\n // is allowed to propagate. This allows other code to act on the\n // event, such as focusing the clicked element.\n if (Private.hitTestMenus(this, event.clientX, event.clientY)) {\n event.preventDefault();\n event.stopPropagation();\n } else {\n this.close();\n }\n }\n\n /**\n * Open the child menu at the active index immediately.\n *\n * If a different child menu is already open, it will be closed,\n * even if the active item is not a valid submenu.\n */\n private _openChildMenu(activateFirst = false): void {\n // If the item is not a valid submenu, close the child menu.\n let item = this.activeItem;\n if (!item || item.type !== 'submenu' || !item.submenu) {\n this._closeChildMenu();\n return;\n }\n\n // Do nothing if the child menu will not change.\n let submenu = item.submenu;\n if (submenu === this._childMenu) {\n return;\n }\n\n // Prior to any DOM modifications save window data\n Menu.saveWindowData();\n\n // Ensure the current child menu is closed.\n this._closeChildMenu();\n\n // Update the private child state.\n this._childMenu = submenu;\n this._childIndex = this._activeIndex;\n\n // Set the parent menu reference for the child.\n submenu._parentMenu = this;\n\n // Ensure the menu is updated and lookup the item node.\n MessageLoop.sendMessage(this, Widget.Msg.UpdateRequest);\n let itemNode = this.contentNode.children[this._activeIndex];\n\n // Open the submenu at the active node.\n Private.openSubmenu(submenu, itemNode as HTMLElement);\n\n // Activate the first item if desired.\n if (activateFirst) {\n submenu.activeIndex = -1;\n submenu.activateNextItem();\n }\n\n // Activate the child menu.\n submenu.activate();\n }\n\n /**\n * Close the child menu immediately.\n *\n * This is a no-op if a child menu is not open.\n */\n private _closeChildMenu(): void {\n if (this._childMenu) {\n this._childMenu.close();\n }\n }\n\n /**\n * Start the open timer, unless it is already pending.\n */\n private _startOpenTimer(): void {\n if (this._openTimerID === 0) {\n this._openTimerID = window.setTimeout(() => {\n this._openTimerID = 0;\n this._openChildMenu();\n }, Private.TIMER_DELAY);\n }\n }\n\n /**\n * Start the close timer, unless it is already pending.\n */\n private _startCloseTimer(): void {\n if (this._closeTimerID === 0) {\n this._closeTimerID = window.setTimeout(() => {\n this._closeTimerID = 0;\n this._closeChildMenu();\n }, Private.TIMER_DELAY);\n }\n }\n\n /**\n * Cancel the open timer, if the timer is pending.\n */\n private _cancelOpenTimer(): void {\n if (this._openTimerID !== 0) {\n clearTimeout(this._openTimerID);\n this._openTimerID = 0;\n }\n }\n\n /**\n * Cancel the close timer, if the timer is pending.\n */\n private _cancelCloseTimer(): void {\n if (this._closeTimerID !== 0) {\n clearTimeout(this._closeTimerID);\n this._closeTimerID = 0;\n }\n }\n\n /**\n * Save window data used for menu positioning in transient cache.\n *\n * In order to avoid layout trashing it is recommended to invoke this\n * method immediately prior to opening the menu and any DOM modifications\n * (like closing previously visible menu, or adding a class to menu widget).\n *\n * The transient cache will be released upon `open()` call.\n */\n static saveWindowData(): void {\n Private.saveWindowData();\n }\n\n private _childIndex = -1;\n private _activeIndex = -1;\n private _openTimerID = 0;\n private _closeTimerID = 0;\n private _items: Menu.IItem[] = [];\n private _childMenu: Menu | null = null;\n private _parentMenu: Menu | null = null;\n private _aboutToClose = new Signal(this);\n private _menuRequested = new Signal(this);\n}\n\n/**\n * The namespace for the `Menu` class statics.\n */\nexport namespace Menu {\n /**\n * An options object for creating a menu.\n */\n export interface IOptions {\n /**\n * The command registry for use with the menu.\n */\n commands: CommandRegistry;\n\n /**\n * A custom renderer for use with the menu.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n }\n\n /**\n * An options object for the `open` method on a menu.\n */\n export interface IOpenOptions {\n /**\n * Whether to force the X position of the menu.\n *\n * Setting to `true` will disable the logic which repositions the\n * X coordinate of the menu if it will not fit entirely on screen.\n *\n * The default is `false`.\n */\n forceX?: boolean;\n\n /**\n * Whether to force the Y position of the menu.\n *\n * Setting to `true` will disable the logic which repositions the\n * Y coordinate of the menu if it will not fit entirely on screen.\n *\n * The default is `false`.\n */\n forceY?: boolean;\n }\n\n /**\n * A type alias for a menu item type.\n */\n export type ItemType = 'command' | 'submenu' | 'separator';\n\n /**\n * An options object for creating a menu item.\n */\n export interface IItemOptions {\n /**\n * The type of the menu item.\n *\n * The default value is `'command'`.\n */\n type?: ItemType;\n\n /**\n * The command to execute when the item is triggered.\n *\n * The default value is an empty string.\n */\n command?: string;\n\n /**\n * The arguments for the command.\n *\n * The default value is an empty object.\n */\n args?: ReadonlyJSONObject;\n\n /**\n * The submenu for a `'submenu'` type item.\n *\n * The default value is `null`.\n */\n submenu?: Menu | null;\n }\n\n /**\n * An object which represents a menu item.\n *\n * #### Notes\n * Item objects are created automatically by a menu.\n */\n export interface IItem {\n /**\n * The type of the menu item.\n */\n readonly type: ItemType;\n\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The submenu for a `'submenu'` type item.\n */\n readonly submenu: Menu | null;\n\n /**\n * The display label for the menu item.\n */\n readonly label: string;\n\n /**\n * The mnemonic index for the menu item.\n */\n readonly mnemonic: number;\n\n /**\n * The icon renderer for the menu item.\n */\n readonly icon:\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */;\n\n /**\n * The icon class for the menu item.\n */\n readonly iconClass: string;\n\n /**\n * The icon label for the menu item.\n */\n readonly iconLabel: string;\n\n /**\n * The display caption for the menu item.\n */\n readonly caption: string;\n\n /**\n * The extra class name for the menu item.\n */\n readonly className: string;\n\n /**\n * The dataset for the menu item.\n */\n readonly dataset: CommandRegistry.Dataset;\n\n /**\n * Whether the menu item is enabled.\n */\n readonly isEnabled: boolean;\n\n /**\n * Whether the menu item is toggled.\n */\n readonly isToggled: boolean;\n\n /**\n * Whether the menu item is visible.\n */\n readonly isVisible: boolean;\n\n /**\n * The key binding for the menu item.\n */\n readonly keyBinding: CommandRegistry.IKeyBinding | null;\n }\n\n /**\n * An object which holds the data to render a menu item.\n */\n export interface IRenderData {\n /**\n * The item to be rendered.\n */\n readonly item: IItem;\n\n /**\n * Whether the item is the active item.\n */\n readonly active: boolean;\n\n /**\n * Whether the item should be collapsed.\n */\n readonly collapsed: boolean;\n\n /**\n * Handler for when element is in focus.\n */\n readonly onfocus?: () => void;\n }\n\n /**\n * A renderer for use with a menu.\n */\n export interface IRenderer {\n /**\n * Render the virtual element for a menu item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n *\n * #### Notes\n * Subclasses are free to reimplement rendering methods as needed.\n */\n export class Renderer implements IRenderer {\n /**\n * Render the virtual element for a menu item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement {\n let className = this.createItemClass(data);\n let dataset = this.createItemDataset(data);\n let aria = this.createItemARIA(data);\n return h.li(\n {\n className,\n dataset,\n tabindex: '0',\n onfocus: data.onfocus,\n ...aria\n },\n this.renderIcon(data),\n this.renderLabel(data),\n this.renderShortcut(data),\n this.renderSubmenu(data)\n );\n }\n\n /**\n * Render the icon element for a menu item.\n *\n * @param data - The data to use for rendering the icon.\n *\n * @returns A virtual element representing the item icon.\n */\n renderIcon(data: IRenderData): VirtualElement {\n let className = this.createIconClass(data);\n\n /* */\n if (typeof data.item.icon === 'string') {\n return h.div({ className }, data.item.iconLabel);\n }\n /* */\n\n // if data.item.icon is undefined, it will be ignored\n return h.div({ className }, data.item.icon!, data.item.iconLabel);\n }\n\n /**\n * Render the label element for a menu item.\n *\n * @param data - The data to use for rendering the label.\n *\n * @returns A virtual element representing the item label.\n */\n renderLabel(data: IRenderData): VirtualElement {\n let content = this.formatLabel(data);\n return h.div(\n {\n className:\n 'lm-Menu-itemLabel' +\n /* */\n ' p-Menu-itemLabel'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the shortcut element for a menu item.\n *\n * @param data - The data to use for rendering the shortcut.\n *\n * @returns A virtual element representing the item shortcut.\n */\n renderShortcut(data: IRenderData): VirtualElement {\n let content = this.formatShortcut(data);\n return h.div(\n {\n className:\n 'lm-Menu-itemShortcut' +\n /* */\n ' p-Menu-itemShortcut'\n /* */\n },\n content\n );\n }\n\n /**\n * Render the submenu icon element for a menu item.\n *\n * @param data - The data to use for rendering the submenu icon.\n *\n * @returns A virtual element representing the submenu icon.\n */\n renderSubmenu(data: IRenderData): VirtualElement {\n return h.div({\n className:\n 'lm-Menu-itemSubmenuIcon' +\n /* */\n ' p-Menu-itemSubmenuIcon'\n /* */\n });\n }\n\n /**\n * Create the class name for the menu item.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the menu item.\n */\n createItemClass(data: IRenderData): string {\n // Setup the initial class name.\n let name = 'lm-Menu-item';\n /* */\n name += ' p-Menu-item';\n /* */\n\n // Add the boolean state classes.\n if (!data.item.isEnabled) {\n name += ' lm-mod-disabled';\n /* */\n name += ' p-mod-disabled';\n /* */\n }\n if (data.item.isToggled) {\n name += ' lm-mod-toggled';\n /* */\n name += ' p-mod-toggled';\n /* */\n }\n if (!data.item.isVisible) {\n name += ' lm-mod-hidden';\n /* */\n name += ' p-mod-hidden';\n /* */\n }\n if (data.active) {\n name += ' lm-mod-active';\n /* */\n name += ' p-mod-active';\n /* */\n }\n if (data.collapsed) {\n name += ' lm-mod-collapsed';\n /* */\n name += ' p-mod-collapsed';\n /* */\n }\n\n // Add the extra class.\n let extra = data.item.className;\n if (extra) {\n name += ` ${extra}`;\n }\n\n // Return the complete class name.\n return name;\n }\n\n /**\n * Create the dataset for the menu item.\n *\n * @param data - The data to use for creating the dataset.\n *\n * @returns The dataset for the menu item.\n */\n createItemDataset(data: IRenderData): ElementDataset {\n let result: ElementDataset;\n let { type, command, dataset } = data.item;\n if (type === 'command') {\n result = { ...dataset, type, command };\n } else {\n result = { ...dataset, type };\n }\n return result;\n }\n\n /**\n * Create the class name for the menu item icon.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the item icon.\n */\n createIconClass(data: IRenderData): string {\n let name = 'lm-Menu-itemIcon';\n /* */\n name += ' p-Menu-itemIcon';\n /* */\n let extra = data.item.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n /**\n * Create the aria attributes for menu item.\n *\n * @param data - The data to use for the aria attributes.\n *\n * @returns The aria attributes object for the item.\n */\n createItemARIA(data: IRenderData): ElementARIAAttrs {\n let aria: { [T in ARIAAttrNames]?: string } = {};\n switch (data.item.type) {\n case 'separator':\n aria.role = 'presentation';\n break;\n case 'submenu':\n aria['aria-haspopup'] = 'true';\n if (!data.item.isEnabled) {\n aria['aria-disabled'] = 'true';\n }\n break;\n default:\n if (!data.item.isEnabled) {\n aria['aria-disabled'] = 'true';\n }\n aria.role = 'menuitem';\n }\n return aria;\n }\n\n /**\n * Create the render content for the label node.\n *\n * @param data - The data to use for the label content.\n *\n * @returns The content to add to the label node.\n */\n formatLabel(data: IRenderData): h.Child {\n // Fetch the label text and mnemonic index.\n let { label, mnemonic } = data.item;\n\n // If the index is out of range, do not modify the label.\n if (mnemonic < 0 || mnemonic >= label.length) {\n return label;\n }\n\n // Split the label into parts.\n let prefix = label.slice(0, mnemonic);\n let suffix = label.slice(mnemonic + 1);\n let char = label[mnemonic];\n\n // Wrap the mnemonic character in a span.\n let span = h.span(\n {\n className:\n 'lm-Menu-itemMnemonic' +\n /* */\n ' p-Menu-itemMnemonic'\n /* */\n },\n char\n );\n\n // Return the content parts.\n return [prefix, span, suffix];\n }\n\n /**\n * Create the render content for the shortcut node.\n *\n * @param data - The data to use for the shortcut content.\n *\n * @returns The content to add to the shortcut node.\n */\n formatShortcut(data: IRenderData): h.Child {\n let kb = data.item.keyBinding;\n return kb ? CommandRegistry.formatKeystroke(kb.keys) : null;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The ms delay for opening and closing a submenu.\n */\n export const TIMER_DELAY = 300;\n\n /**\n * The horizontal pixel overlap for an open submenu.\n */\n export const SUBMENU_OVERLAP = 3;\n\n let transientWindowDataCache: IWindowData | null = null;\n let transientCacheCounter: number = 0;\n\n function getWindowData(): IWindowData {\n // if transient cache is in use, take one from it\n if (transientCacheCounter > 0) {\n transientCacheCounter--;\n return transientWindowDataCache!;\n }\n return _getWindowData();\n }\n\n /**\n * Store window data in transient cache.\n *\n * The transient cache will be released upon `getWindowData()` call.\n * If this function is called multiple times, the cache will be\n * retained until as many calls to `getWindowData()` were made.\n *\n * Note: should be called before any DOM modifications.\n */\n export function saveWindowData(): void {\n transientWindowDataCache = _getWindowData();\n transientCacheCounter++;\n }\n\n /**\n * Create the DOM node for a menu.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let content = document.createElement('ul');\n content.className = 'lm-Menu-content';\n /* */\n content.classList.add('p-Menu-content');\n /* */\n node.appendChild(content);\n content.setAttribute('role', 'menu');\n node.tabIndex = 0;\n return node;\n }\n\n /**\n * Test whether a menu item can be activated.\n */\n export function canActivate(item: Menu.IItem): boolean {\n return item.type !== 'separator' && item.isEnabled && item.isVisible;\n }\n\n /**\n * Create a new menu item for an owner menu.\n */\n export function createItem(\n owner: Menu,\n options: Menu.IItemOptions\n ): Menu.IItem {\n return new MenuItem(owner.commands, options);\n }\n\n /**\n * Hit test a menu hierarchy starting at the given root.\n */\n export function hitTestMenus(menu: Menu, x: number, y: number): boolean {\n for (let temp: Menu | null = menu; temp; temp = temp.childMenu) {\n if (ElementExt.hitTest(temp.node, x, y)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Compute which extra separator items should be collapsed.\n */\n export function computeCollapsed(\n items: ReadonlyArray\n ): boolean[] {\n // Allocate the return array and fill it with `false`.\n let result = new Array(items.length);\n ArrayExt.fill(result, false);\n\n // Collapse the leading separators.\n let k1 = 0;\n let n = items.length;\n for (; k1 < n; ++k1) {\n let item = items[k1];\n if (!item.isVisible) {\n continue;\n }\n if (item.type !== 'separator') {\n break;\n }\n result[k1] = true;\n }\n\n // Hide the trailing separators.\n let k2 = n - 1;\n for (; k2 >= 0; --k2) {\n let item = items[k2];\n if (!item.isVisible) {\n continue;\n }\n if (item.type !== 'separator') {\n break;\n }\n result[k2] = true;\n }\n\n // Hide the remaining consecutive separators.\n let hide = false;\n while (++k1 < k2) {\n let item = items[k1];\n if (!item.isVisible) {\n continue;\n }\n if (item.type !== 'separator') {\n hide = false;\n } else if (hide) {\n result[k1] = true;\n } else {\n hide = true;\n }\n }\n\n // Return the resulting flags.\n return result;\n }\n\n function _getWindowData(): IWindowData {\n return {\n pageXOffset: window.pageXOffset,\n pageYOffset: window.pageYOffset,\n clientWidth: document.documentElement.clientWidth,\n clientHeight: document.documentElement.clientHeight\n };\n }\n\n /**\n * Open a menu as a root menu at the target location.\n */\n export function openRootMenu(\n menu: Menu,\n x: number,\n y: number,\n forceX: boolean,\n forceY: boolean\n ): void {\n // Get the current position and size of the main viewport.\n const windowData = getWindowData();\n let px = windowData.pageXOffset;\n let py = windowData.pageYOffset;\n let cw = windowData.clientWidth;\n let ch = windowData.clientHeight;\n\n // Ensure the menu is updated before attaching and measuring.\n MessageLoop.sendMessage(menu, Widget.Msg.UpdateRequest);\n\n // Compute the maximum allowed height for the menu.\n let maxHeight = ch - (forceY ? y : 0);\n\n // Fetch common variables.\n let node = menu.node;\n let style = node.style;\n\n // Clear the menu geometry and prepare it for measuring.\n style.opacity = '0';\n style.maxHeight = `${maxHeight}px`;\n\n // Attach the menu to the document.\n Widget.attach(menu, document.body);\n\n // Measure the size of the menu.\n let { width, height } = node.getBoundingClientRect();\n\n // Adjust the X position of the menu to fit on-screen.\n if (!forceX && x + width > px + cw) {\n x = px + cw - width;\n }\n\n // Adjust the Y position of the menu to fit on-screen.\n if (!forceY && y + height > py + ch) {\n if (y > py + ch) {\n y = py + ch - height;\n } else {\n y = y - height;\n }\n }\n\n // Update the position of the menu to the computed position.\n style.transform = `translate(${Math.max(0, x)}px, ${Math.max(0, y)}px`;\n\n // Finally, make the menu visible on the screen.\n style.opacity = '1';\n }\n\n /**\n * Open a menu as a submenu using an item node for positioning.\n */\n export function openSubmenu(submenu: Menu, itemNode: HTMLElement): void {\n // Get the current position and size of the main viewport.\n const windowData = getWindowData();\n let px = windowData.pageXOffset;\n let py = windowData.pageYOffset;\n let cw = windowData.clientWidth;\n let ch = windowData.clientHeight;\n\n // Ensure the menu is updated before opening.\n MessageLoop.sendMessage(submenu, Widget.Msg.UpdateRequest);\n\n // Compute the maximum allowed height for the menu.\n let maxHeight = ch;\n\n // Fetch common variables.\n let node = submenu.node;\n let style = node.style;\n\n // Clear the menu geometry and prepare it for measuring.\n style.opacity = '0';\n style.maxHeight = `${maxHeight}px`;\n\n // Attach the menu to the document.\n Widget.attach(submenu, document.body);\n\n // Measure the size of the menu.\n let { width, height } = node.getBoundingClientRect();\n\n // Compute the box sizing for the menu.\n let box = ElementExt.boxSizing(submenu.node);\n\n // Get the bounding rect for the target item node.\n let itemRect = itemNode.getBoundingClientRect();\n\n // Compute the target X position.\n let x = itemRect.right - SUBMENU_OVERLAP;\n\n // Adjust the X position to fit on the screen.\n if (x + width > px + cw) {\n x = itemRect.left + SUBMENU_OVERLAP - width;\n }\n\n // Compute the target Y position.\n let y = itemRect.top - box.borderTop - box.paddingTop;\n\n // Adjust the Y position to fit on the screen.\n if (y + height > py + ch) {\n y = itemRect.bottom + box.borderBottom + box.paddingBottom - height;\n }\n\n // Update the position of the menu to the computed position.\n style.transform = `translate(${Math.max(0, x)}px, ${Math.max(0, y)}px`;\n\n // Finally, make the menu visible on the screen.\n style.opacity = '1';\n }\n\n /**\n * The results of a mnemonic search.\n */\n export interface IMnemonicResult {\n /**\n * The index of the first matching mnemonic item, or `-1`.\n */\n index: number;\n\n /**\n * Whether multiple mnemonic items matched.\n */\n multiple: boolean;\n\n /**\n * The index of the first auto matched non-mnemonic item.\n */\n auto: number;\n }\n\n /**\n * Find the best matching mnemonic item.\n *\n * The search starts at the given index and wraps around.\n */\n export function findMnemonic(\n items: ReadonlyArray,\n key: string,\n start: number\n ): IMnemonicResult {\n // Setup the result variables.\n let index = -1;\n let auto = -1;\n let multiple = false;\n\n // Normalize the key to upper case.\n let upperKey = key.toUpperCase();\n\n // Search the items from the given start index.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Compute the wrapped index.\n let k = (i + start) % n;\n\n // Lookup the item\n let item = items[k];\n\n // Ignore items which cannot be activated.\n if (!canActivate(item)) {\n continue;\n }\n\n // Ignore items with an empty label.\n let label = item.label;\n if (label.length === 0) {\n continue;\n }\n\n // Lookup the mnemonic index for the label.\n let mn = item.mnemonic;\n\n // Handle a valid mnemonic index.\n if (mn >= 0 && mn < label.length) {\n if (label[mn].toUpperCase() === upperKey) {\n if (index === -1) {\n index = k;\n } else {\n multiple = true;\n }\n }\n continue;\n }\n\n // Finally, handle the auto index if possible.\n if (auto === -1 && label[0].toUpperCase() === upperKey) {\n auto = k;\n }\n }\n\n // Return the search results.\n return { index, multiple, auto };\n }\n\n /**\n * A concrete implementation of `Menu.IItem`.\n */\n class MenuItem implements Menu.IItem {\n /**\n * Construct a new menu item.\n */\n constructor(commands: CommandRegistry, options: Menu.IItemOptions) {\n this._commands = commands;\n this.type = options.type || 'command';\n this.command = options.command || '';\n this.args = options.args || JSONExt.emptyObject;\n this.submenu = options.submenu || null;\n }\n\n /**\n * The type of the menu item.\n */\n readonly type: Menu.ItemType;\n\n /**\n * The command to execute when the item is triggered.\n */\n readonly command: string;\n\n /**\n * The arguments for the command.\n */\n readonly args: ReadonlyJSONObject;\n\n /**\n * The submenu for a `'submenu'` type item.\n */\n readonly submenu: Menu | null;\n\n /**\n * The display label for the menu item.\n */\n get label(): string {\n if (this.type === 'command') {\n return this._commands.label(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.label;\n }\n return '';\n }\n\n /**\n * The mnemonic index for the menu item.\n */\n get mnemonic(): number {\n if (this.type === 'command') {\n return this._commands.mnemonic(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.mnemonic;\n }\n return -1;\n }\n\n /**\n * The icon renderer for the menu item.\n */\n get icon():\n | VirtualElement.IRenderer\n | undefined\n /* */\n | string /* */ {\n if (this.type === 'command') {\n return this._commands.icon(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.icon;\n }\n\n /* */\n // alias to icon class if not otherwise defined\n return this.iconClass;\n /* */\n\n /* \n return undefined;\n */\n }\n\n /**\n * The icon class for the menu item.\n */\n get iconClass(): string {\n if (this.type === 'command') {\n return this._commands.iconClass(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.iconClass;\n }\n return '';\n }\n\n /**\n * The icon label for the menu item.\n */\n get iconLabel(): string {\n if (this.type === 'command') {\n return this._commands.iconLabel(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.iconLabel;\n }\n return '';\n }\n\n /**\n * The display caption for the menu item.\n */\n get caption(): string {\n if (this.type === 'command') {\n return this._commands.caption(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.caption;\n }\n return '';\n }\n\n /**\n * The extra class name for the menu item.\n */\n get className(): string {\n if (this.type === 'command') {\n return this._commands.className(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.className;\n }\n return '';\n }\n\n /**\n * The dataset for the menu item.\n */\n get dataset(): CommandRegistry.Dataset {\n if (this.type === 'command') {\n return this._commands.dataset(this.command, this.args);\n }\n if (this.type === 'submenu' && this.submenu) {\n return this.submenu.title.dataset;\n }\n return {};\n }\n\n /**\n * Whether the menu item is enabled.\n */\n get isEnabled(): boolean {\n if (this.type === 'command') {\n return this._commands.isEnabled(this.command, this.args);\n }\n if (this.type === 'submenu') {\n return this.submenu !== null;\n }\n return true;\n }\n\n /**\n * Whether the menu item is toggled.\n */\n get isToggled(): boolean {\n if (this.type === 'command') {\n return this._commands.isToggled(this.command, this.args);\n }\n return false;\n }\n\n /**\n * Whether the menu item is visible.\n */\n get isVisible(): boolean {\n if (this.type === 'command') {\n return this._commands.isVisible(this.command, this.args);\n }\n if (this.type === 'submenu') {\n return this.submenu !== null;\n }\n return true;\n }\n\n /**\n * The key binding for the menu item.\n */\n get keyBinding(): CommandRegistry.IKeyBinding | null {\n if (this.type === 'command') {\n let { command, args } = this;\n return (\n ArrayExt.findLastValue(this._commands.keyBindings, kb => {\n return kb.command === command && JSONExt.deepEqual(kb.args, args);\n }) || null\n );\n }\n return null;\n }\n\n private _commands: CommandRegistry;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { CommandRegistry } from '@lumino/commands';\n\nimport { DisposableDelegate, IDisposable } from '@lumino/disposable';\n\nimport { Selector } from '@lumino/domutils';\n\nimport { Menu } from './menu';\n\n/**\n * An object which implements a universal context menu.\n *\n * #### Notes\n * The items shown in the context menu are determined by CSS selector\n * matching against the DOM hierarchy at the site of the mouse click.\n * This is similar in concept to how keyboard shortcuts are matched\n * in the command registry.\n */\nexport class ContextMenu {\n /**\n * Construct a new context menu.\n *\n * @param options - The options for initializing the menu.\n */\n constructor(options: ContextMenu.IOptions) {\n const { groupByTarget, sortBySelector, ...others } = options;\n this.menu = new Menu(others);\n this._groupByTarget = groupByTarget !== false;\n this._sortBySelector = sortBySelector !== false;\n }\n\n /**\n * The menu widget which displays the matched context items.\n */\n readonly menu: Menu;\n\n /**\n * Add an item to the context menu.\n *\n * @param options - The options for creating the item.\n *\n * @returns A disposable which will remove the item from the menu.\n */\n addItem(options: ContextMenu.IItemOptions): IDisposable {\n // Create an item from the given options.\n let item = Private.createItem(options, this._idTick++);\n\n // Add the item to the internal array.\n this._items.push(item);\n\n // Return a disposable which will remove the item.\n return new DisposableDelegate(() => {\n ArrayExt.removeFirstOf(this._items, item);\n });\n }\n\n /**\n * Open the context menu in response to a `'contextmenu'` event.\n *\n * @param event - The `'contextmenu'` event of interest.\n *\n * @returns `true` if the menu was opened, or `false` if no items\n * matched the event and the menu was not opened.\n *\n * #### Notes\n * This method will populate the context menu with items which match\n * the propagation path of the event, then open the menu at the mouse\n * position indicated by the event.\n */\n open(event: MouseEvent): boolean {\n // Prior to any DOM modifications update the window data.\n Menu.saveWindowData();\n\n // Clear the current contents of the context menu.\n this.menu.clearItems();\n\n // Bail early if there are no items to match.\n if (this._items.length === 0) {\n return false;\n }\n\n // Find the matching items for the event.\n let items = Private.matchItems(\n this._items,\n event,\n this._groupByTarget,\n this._sortBySelector\n );\n\n // Bail if there are no matching items.\n if (!items || items.length === 0) {\n return false;\n }\n\n // Add the filtered items to the menu.\n each(items, item => {\n this.menu.addItem(item);\n });\n\n // Open the context menu at the current mouse position.\n this.menu.open(event.clientX, event.clientY);\n\n // Indicate success.\n return true;\n }\n\n private _groupByTarget: boolean = true;\n private _idTick = 0;\n private _items: Private.IItem[] = [];\n private _sortBySelector: boolean = true;\n}\n\n/**\n * The namespace for the `ContextMenu` class statics.\n */\nexport namespace ContextMenu {\n /**\n * An options object for initializing a context menu.\n */\n export interface IOptions {\n /**\n * The command registry to use with the context menu.\n */\n commands: CommandRegistry;\n\n /**\n * A custom renderer for use with the context menu.\n */\n renderer?: Menu.IRenderer;\n\n /**\n * Whether to sort by selector and rank or only rank.\n *\n * Default true.\n */\n sortBySelector?: boolean;\n\n /**\n * Whether to group items following the DOM hierarchy.\n *\n * Default true.\n *\n * #### Note\n * If true, when the mouse event occurs on element `span` within `div.top`,\n * the items matching `div.top` will be shown before the ones matching `body`.\n */\n groupByTarget?: boolean;\n }\n\n /**\n * An options object for creating a context menu item.\n */\n export interface IItemOptions extends Menu.IItemOptions {\n /**\n * The CSS selector for the context menu item.\n *\n * The context menu item will only be displayed in the context menu\n * when the selector matches a node on the propagation path of the\n * contextmenu event. This allows the menu item to be restricted to\n * user-defined contexts.\n *\n * The selector must not contain commas.\n */\n selector: string;\n\n /**\n * The rank for the item.\n *\n * The rank is used as a tie-breaker when ordering context menu\n * items for display. Items are sorted in the following order:\n * 1. Depth in the DOM tree (deeper is better)\n * 2. Selector specificity (higher is better)\n * 3. Rank (lower is better)\n * 4. Insertion order\n *\n * The default rank is `Infinity`.\n */\n rank?: number;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A normalized item for a context menu.\n */\n export interface IItem extends Menu.IItemOptions {\n /**\n * The selector for the item.\n */\n selector: string;\n\n /**\n * The rank for the item.\n */\n rank: number;\n\n /**\n * The tie-breaking id for the item.\n */\n id: number;\n }\n\n /**\n * Create a normalized context menu item from an options object.\n */\n export function createItem(\n options: ContextMenu.IItemOptions,\n id: number\n ): IItem {\n let selector = validateSelector(options.selector);\n let rank = options.rank !== undefined ? options.rank : Infinity;\n return { ...options, selector, rank, id };\n }\n\n /**\n * Find the items which match a context menu event.\n *\n * The results are sorted by DOM level, specificity, and rank.\n */\n export function matchItems(\n items: IItem[],\n event: MouseEvent,\n groupByTarget: boolean,\n sortBySelector: boolean\n ): IItem[] | null {\n // Look up the target of the event.\n let target = event.target as Element | null;\n\n // Bail if there is no target.\n if (!target) {\n return null;\n }\n\n // Look up the current target of the event.\n let currentTarget = event.currentTarget as Element | null;\n\n // Bail if there is no current target.\n if (!currentTarget) {\n return null;\n }\n\n // There are some third party libraries that cause the `target` to\n // be detached from the DOM before lumino can process the event.\n // If that happens, search for a new target node by point. If that\n // node is still dangling, bail.\n if (!currentTarget.contains(target)) {\n target = document.elementFromPoint(event.clientX, event.clientY);\n if (!target || !currentTarget.contains(target)) {\n return null;\n }\n }\n\n // Set up the result array.\n let result: IItem[] = [];\n\n // Copy the items array to allow in-place modification.\n let availableItems: Array = items.slice();\n\n // Walk up the DOM hierarchy searching for matches.\n while (target !== null) {\n // Set up the match array for this DOM level.\n let matches: IItem[] = [];\n\n // Search the remaining items for matches.\n for (let i = 0, n = availableItems.length; i < n; ++i) {\n // Fetch the item.\n let item = availableItems[i];\n\n // Skip items which are already consumed.\n if (!item) {\n continue;\n }\n\n // Skip items which do not match the element.\n if (!Selector.matches(target, item.selector)) {\n continue;\n }\n\n // Add the matched item to the result for this DOM level.\n matches.push(item);\n\n // Mark the item as consumed.\n availableItems[i] = null;\n }\n\n // Sort the matches for this level and add them to the results.\n if (matches.length !== 0) {\n if (groupByTarget) {\n matches.sort(sortBySelector ? itemCmp : itemCmpRank);\n }\n result.push(...matches);\n }\n\n // Stop searching at the limits of the DOM range.\n if (target === currentTarget) {\n break;\n }\n\n // Step to the parent DOM level.\n target = target.parentElement;\n }\n\n if (!groupByTarget) {\n result.sort(sortBySelector ? itemCmp : itemCmpRank);\n }\n\n // Return the matched and sorted results.\n return result;\n }\n\n /**\n * Validate the selector for a menu item.\n *\n * This returns the validated selector, or throws if the selector is\n * invalid or contains commas.\n */\n function validateSelector(selector: string): string {\n if (selector.indexOf(',') !== -1) {\n throw new Error(`Selector cannot contain commas: ${selector}`);\n }\n if (!Selector.isValid(selector)) {\n throw new Error(`Invalid selector: ${selector}`);\n }\n return selector;\n }\n\n /**\n * A sort comparison function for a context menu item by ranks.\n */\n function itemCmpRank(a: IItem, b: IItem): number {\n // Sort based on rank.\n let r1 = a.rank;\n let r2 = b.rank;\n if (r1 !== r2) {\n return r1 < r2 ? -1 : 1; // Infinity-safe\n }\n\n // When all else fails, sort by item id.\n return a.id - b.id;\n }\n\n /**\n * A sort comparison function for a context menu item by selectors and ranks.\n */\n function itemCmp(a: IItem, b: IItem): number {\n // Sort first based on selector specificity.\n let s1 = Selector.calculateSpecificity(a.selector);\n let s2 = Selector.calculateSpecificity(b.selector);\n if (s1 !== s2) {\n return s2 - s1;\n }\n\n // If specificities are equal\n return itemCmpRank(a, b);\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Drag } from '@lumino/dragdrop';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport {\n ElementARIAAttrs,\n ElementDataset,\n ElementInlineStyle,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Title } from './title';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which displays titles as a single row or column of tabs.\n *\n * #### Notes\n * If CSS transforms are used to rotate nodes for vertically oriented\n * text, then tab dragging will not work correctly. The `tabsMovable`\n * property should be set to `false` when rotating nodes from CSS.\n */\nexport class TabBar extends Widget {\n /**\n * Construct a new tab bar.\n *\n * @param options - The options for initializing the tab bar.\n */\n constructor(options: TabBar.IOptions = {}) {\n super({ node: Private.createNode() });\n this.addClass('lm-TabBar');\n /* */\n this.addClass('p-TabBar');\n /* */\n this.contentNode.setAttribute('role', 'tablist');\n this.setFlag(Widget.Flag.DisallowLayout);\n this._document = options.document || document;\n this.tabsMovable = options.tabsMovable || false;\n this.titlesEditable = options.titlesEditable || false;\n this.allowDeselect = options.allowDeselect || false;\n this.addButtonEnabled = options.addButtonEnabled || false;\n this.insertBehavior = options.insertBehavior || 'select-tab-if-needed';\n this.name = options.name || '';\n this.orientation = options.orientation || 'horizontal';\n this.removeBehavior = options.removeBehavior || 'select-tab-after';\n this.renderer = options.renderer || TabBar.defaultRenderer;\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n this._releaseMouse();\n this._titles.length = 0;\n this._previousTitle = null;\n super.dispose();\n }\n\n /**\n * A signal emitted when the current tab is changed.\n *\n * #### Notes\n * This signal is emitted when the currently selected tab is changed\n * either through user or programmatic interaction.\n *\n * Notably, this signal is not emitted when the index of the current\n * tab changes due to tabs being inserted, removed, or moved. It is\n * only emitted when the actual current tab node is changed.\n */\n get currentChanged(): ISignal> {\n return this._currentChanged;\n }\n\n /**\n * A signal emitted when a tab is moved by the user.\n *\n * #### Notes\n * This signal is emitted when a tab is moved by user interaction.\n *\n * This signal is not emitted when a tab is moved programmatically.\n */\n get tabMoved(): ISignal> {\n return this._tabMoved;\n }\n\n /**\n * A signal emitted when a tab is clicked by the user.\n *\n * #### Notes\n * If the clicked tab is not the current tab, the clicked tab will be\n * made current and the `currentChanged` signal will be emitted first.\n *\n * This signal is emitted even if the clicked tab is the current tab.\n */\n get tabActivateRequested(): ISignal<\n this,\n TabBar.ITabActivateRequestedArgs\n > {\n return this._tabActivateRequested;\n }\n\n /**\n * A signal emitted when the tab bar add button is clicked.\n */\n get addRequested(): ISignal {\n return this._addRequested;\n }\n\n /**\n * A signal emitted when a tab close icon is clicked.\n *\n * #### Notes\n * This signal is not emitted unless the tab title is `closable`.\n */\n get tabCloseRequested(): ISignal> {\n return this._tabCloseRequested;\n }\n\n /**\n * A signal emitted when a tab is dragged beyond the detach threshold.\n *\n * #### Notes\n * This signal is emitted when the user drags a tab with the mouse,\n * and mouse is dragged beyond the detach threshold.\n *\n * The consumer of the signal should call `releaseMouse` and remove\n * the tab in order to complete the detach.\n *\n * This signal is only emitted once per drag cycle.\n */\n get tabDetachRequested(): ISignal> {\n return this._tabDetachRequested;\n }\n\n /**\n * The renderer used by the tab bar.\n */\n readonly renderer: TabBar.IRenderer;\n\n /**\n * The document to use with the tab bar.\n *\n * The default is the global `document` instance.\n */\n get document(): Document | ShadowRoot {\n return this._document;\n }\n\n /**\n * Whether the tabs are movable by the user.\n *\n * #### Notes\n * Tabs can always be moved programmatically.\n */\n tabsMovable: boolean;\n\n /**\n * Whether the titles can be user-edited.\n *\n */\n get titlesEditable(): boolean {\n return this._titlesEditable;\n }\n\n /**\n * Set whether titles can be user edited.\n *\n */\n set titlesEditable(value: boolean) {\n this._titlesEditable = value;\n }\n\n /**\n * Whether a tab can be deselected by the user.\n *\n * #### Notes\n * Tabs can be always be deselected programmatically.\n */\n allowDeselect: boolean;\n\n /**\n * The selection behavior when inserting a tab.\n */\n insertBehavior: TabBar.InsertBehavior;\n\n /**\n * The selection behavior when removing a tab.\n */\n removeBehavior: TabBar.RemoveBehavior;\n\n /**\n * Get the currently selected title.\n *\n * #### Notes\n * This will be `null` if no tab is selected.\n */\n get currentTitle(): Title | null {\n return this._titles[this._currentIndex] || null;\n }\n\n /**\n * Set the currently selected title.\n *\n * #### Notes\n * If the title does not exist, the title will be set to `null`.\n */\n set currentTitle(value: Title | null) {\n this.currentIndex = value ? this._titles.indexOf(value) : -1;\n }\n\n /**\n * Get the index of the currently selected tab.\n *\n * #### Notes\n * This will be `-1` if no tab is selected.\n */\n get currentIndex(): number {\n return this._currentIndex;\n }\n\n /**\n * Set the index of the currently selected tab.\n *\n * #### Notes\n * If the value is out of range, the index will be set to `-1`.\n */\n set currentIndex(value: number) {\n // Adjust for an out of range index.\n if (value < 0 || value >= this._titles.length) {\n value = -1;\n }\n\n // Bail early if the index will not change.\n if (this._currentIndex === value) {\n return;\n }\n\n // Look up the previous index and title.\n let pi = this._currentIndex;\n let pt = this._titles[pi] || null;\n\n // Look up the current index and title.\n let ci = value;\n let ct = this._titles[ci] || null;\n\n // Update the current index and previous title.\n this._currentIndex = ci;\n this._previousTitle = pt;\n\n // Schedule an update of the tabs.\n this.update();\n\n // Emit the current changed signal.\n this._currentChanged.emit({\n previousIndex: pi,\n previousTitle: pt,\n currentIndex: ci,\n currentTitle: ct\n });\n }\n\n /**\n * Get the name of the tab bar.\n */\n get name(): string {\n return this._name;\n }\n\n /**\n * Set the name of the tab bar.\n */\n set name(value: string) {\n this._name = value;\n if (value) {\n this.contentNode.setAttribute('aria-label', value);\n } else {\n this.contentNode.removeAttribute('aria-label');\n }\n }\n\n /**\n * Get the orientation of the tab bar.\n *\n * #### Notes\n * This controls whether the tabs are arranged in a row or column.\n */\n get orientation(): TabBar.Orientation {\n return this._orientation;\n }\n\n /**\n * Set the orientation of the tab bar.\n *\n * #### Notes\n * This controls whether the tabs are arranged in a row or column.\n */\n set orientation(value: TabBar.Orientation) {\n // Do nothing if the orientation does not change.\n if (this._orientation === value) {\n return;\n }\n\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Toggle the orientation values.\n this._orientation = value;\n this.dataset['orientation'] = value;\n this.contentNode.setAttribute('aria-orientation', value);\n }\n\n /**\n * Whether the add button is enabled.\n */\n get addButtonEnabled(): boolean {\n return this._addButtonEnabled;\n }\n\n /**\n * Set whether the add button is enabled.\n */\n set addButtonEnabled(value: boolean) {\n // Do nothing if the value does not change.\n if (this._addButtonEnabled === value) {\n return;\n }\n\n this._addButtonEnabled = value;\n if (value) {\n this.addButtonNode.classList.remove('lm-mod-hidden');\n } else {\n this.addButtonNode.classList.add('lm-mod-hidden');\n }\n }\n\n /**\n * A read-only array of the titles in the tab bar.\n */\n get titles(): ReadonlyArray> {\n return this._titles;\n }\n\n /**\n * The tab bar content node.\n *\n * #### Notes\n * This is the node which holds the tab nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-TabBar-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * The tab bar add button node.\n *\n * #### Notes\n * This is the node which holds the add button.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get addButtonNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-TabBar-addButton'\n )[0] as HTMLDivElement;\n }\n\n /**\n * Add a tab to the end of the tab bar.\n *\n * @param value - The title which holds the data for the tab,\n * or an options object to convert to a title.\n *\n * @returns The title object added to the tab bar.\n *\n * #### Notes\n * If the title is already added to the tab bar, it will be moved.\n */\n addTab(value: Title | Title.IOptions): Title {\n return this.insertTab(this._titles.length, value);\n }\n\n /**\n * Insert a tab into the tab bar at the specified index.\n *\n * @param index - The index at which to insert the tab.\n *\n * @param value - The title which holds the data for the tab,\n * or an options object to convert to a title.\n *\n * @returns The title object added to the tab bar.\n *\n * #### Notes\n * The index will be clamped to the bounds of the tabs.\n *\n * If the title is already added to the tab bar, it will be moved.\n */\n insertTab(index: number, value: Title | Title.IOptions): Title {\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Coerce the value to a title.\n let title = Private.asTitle(value);\n\n // Look up the index of the title.\n let i = this._titles.indexOf(title);\n\n // Clamp the insert index to the array bounds.\n let j = Math.max(0, Math.min(index, this._titles.length));\n\n // If the title is not in the array, insert it.\n if (i === -1) {\n // Insert the title into the array.\n ArrayExt.insert(this._titles, j, title);\n\n // Connect to the title changed signal.\n title.changed.connect(this._onTitleChanged, this);\n\n // Schedule an update of the tabs.\n this.update();\n\n // Adjust the current index for the insert.\n this._adjustCurrentForInsert(j, title);\n\n // Return the title added to the tab bar.\n return title;\n }\n\n // Otherwise, the title exists in the array and should be moved.\n\n // Adjust the index if the location is at the end of the array.\n if (j === this._titles.length) {\n j--;\n }\n\n // Bail if there is no effective move.\n if (i === j) {\n return title;\n }\n\n // Move the title to the new location.\n ArrayExt.move(this._titles, i, j);\n\n // Schedule an update of the tabs.\n this.update();\n\n // Adjust the current index for the move.\n this._adjustCurrentForMove(i, j);\n\n // Return the title added to the tab bar.\n return title;\n }\n\n /**\n * Remove a tab from the tab bar.\n *\n * @param title - The title for the tab to remove.\n *\n * #### Notes\n * This is a no-op if the title is not in the tab bar.\n */\n removeTab(title: Title): void {\n this.removeTabAt(this._titles.indexOf(title));\n }\n\n /**\n * Remove the tab at a given index from the tab bar.\n *\n * @param index - The index of the tab to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeTabAt(index: number): void {\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Remove the title from the array.\n let title = ArrayExt.removeAt(this._titles, index);\n\n // Bail if the index is out of range.\n if (!title) {\n return;\n }\n\n // Disconnect from the title changed signal.\n title.changed.disconnect(this._onTitleChanged, this);\n\n // Clear the previous title if it's being removed.\n if (title === this._previousTitle) {\n this._previousTitle = null;\n }\n\n // Schedule an update of the tabs.\n this.update();\n\n // Adjust the current index for the remove.\n this._adjustCurrentForRemove(index, title);\n }\n\n /**\n * Remove all tabs from the tab bar.\n */\n clearTabs(): void {\n // Bail if there is nothing to remove.\n if (this._titles.length === 0) {\n return;\n }\n\n // Release the mouse before making any changes.\n this._releaseMouse();\n\n // Disconnect from the title changed signals.\n for (let title of this._titles) {\n title.changed.disconnect(this._onTitleChanged, this);\n }\n\n // Get the current index and title.\n let pi = this.currentIndex;\n let pt = this.currentTitle;\n\n // Reset the current index and previous title.\n this._currentIndex = -1;\n this._previousTitle = null;\n\n // Clear the title array.\n this._titles.length = 0;\n\n // Schedule an update of the tabs.\n this.update();\n\n // If no tab was selected, there's nothing else to do.\n if (pi === -1) {\n return;\n }\n\n // Emit the current changed signal.\n this._currentChanged.emit({\n previousIndex: pi,\n previousTitle: pt,\n currentIndex: -1,\n currentTitle: null\n });\n }\n\n /**\n * Release the mouse and restore the non-dragged tab positions.\n *\n * #### Notes\n * This will cause the tab bar to stop handling mouse events and to\n * restore the tabs to their non-dragged positions.\n */\n releaseMouse(): void {\n this._releaseMouse();\n }\n\n /**\n * Handle the DOM events for the tab bar.\n *\n * @param event - The DOM event sent to the tab bar.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the tab bar's DOM node.\n *\n * This should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'mousedown': // \n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove': // \n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup': // \n this._evtMouseUp(event as MouseEvent);\n break;\n case 'pointerdown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'pointermove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'pointerup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'dblclick':\n this._evtDblClick(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('mousedown', this); // \n this.node.addEventListener('pointerdown', this);\n this.node.addEventListener('dblclick', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('mousedown', this); // \n this.node.removeEventListener('pointerdown', this);\n this.node.removeEventListener('dblclick', this);\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n let titles = this._titles;\n let renderer = this.renderer;\n let currentTitle = this.currentTitle;\n let content = new Array(titles.length);\n for (let i = 0, n = titles.length; i < n; ++i) {\n let title = titles[i];\n let current = title === currentTitle;\n let zIndex = current ? n : n - i - 1;\n content[i] = renderer.renderTab({ title, current, zIndex });\n }\n VirtualDOM.render(content, this.contentNode);\n }\n\n /**\n * Handle the `'dblclick'` event for the tab bar.\n */\n private _evtDblClick(event: MouseEvent): void {\n // Do nothing if titles are not editable\n if (!this.titlesEditable) {\n return;\n }\n\n let tabs = this.contentNode.children;\n\n // Find the index of the released tab.\n let index = ArrayExt.findFirstIndex(tabs, tab => {\n return ElementExt.hitTest(tab, event.clientX, event.clientY);\n });\n\n // Do nothing if the press is not on a tab.\n if (index === -1) {\n return;\n }\n\n let title = this.titles[index];\n let label = tabs[index].querySelector('.lm-TabBar-tabLabel') as HTMLElement;\n if (label && label.contains(event.target as HTMLElement)) {\n let value = title.label || '';\n\n // Clear the label element\n let oldValue = label.innerHTML;\n label.innerHTML = '';\n\n let input = document.createElement('input');\n input.classList.add('lm-TabBar-tabInput');\n input.value = value;\n label.appendChild(input);\n\n let onblur = () => {\n input.removeEventListener('blur', onblur);\n label.innerHTML = oldValue;\n };\n\n input.addEventListener('dblclick', (event: Event) =>\n event.stopPropagation()\n );\n input.addEventListener('blur', onblur);\n input.addEventListener('keydown', (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n if (input.value !== '') {\n title.label = title.caption = input.value;\n }\n onblur();\n } else if (event.key === 'Escape') {\n onblur();\n }\n });\n input.select();\n input.focus();\n\n if (label.children.length > 0) {\n (label.children[0] as HTMLElement).focus();\n }\n }\n }\n\n /**\n * Handle the `'keydown'` event for the tab bar.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop all input events during drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Release the mouse if `Escape` is pressed.\n if (event.keyCode === 27) {\n this._releaseMouse();\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the tab bar.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if it's not a left or middle mouse press.\n if (event.button !== 0 && event.button !== 1) {\n return;\n }\n\n // Do nothing if a drag is in progress.\n if (this._dragData) {\n return;\n }\n\n // Check if the add button was clicked.\n let addButtonClicked =\n this.addButtonEnabled &&\n this.addButtonNode.contains(event.target as HTMLElement);\n\n // Lookup the tab nodes.\n let tabs = this.contentNode.children;\n\n // Find the index of the pressed tab.\n let index = ArrayExt.findFirstIndex(tabs, tab => {\n return ElementExt.hitTest(tab, event.clientX, event.clientY);\n });\n\n // Do nothing if the press is not on a tab or the add button.\n if (index === -1 && !addButtonClicked) {\n return;\n }\n\n // Pressing on a tab stops the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Initialize the non-measured parts of the drag data.\n this._dragData = {\n tab: tabs[index] as HTMLElement,\n index: index,\n pressX: event.clientX,\n pressY: event.clientY,\n tabPos: -1,\n tabSize: -1,\n tabPressPos: -1,\n targetIndex: -1,\n tabLayout: null,\n contentRect: null,\n override: null,\n dragActive: false,\n dragAborted: false,\n detachRequested: false\n };\n\n // Add the document mouse up listener.\n this.document.addEventListener('mouseup', this, true); // \n this.document.addEventListener('pointerup', this, true);\n\n // Do nothing else if the middle button or add button is clicked.\n if (event.button === 1 || addButtonClicked) {\n return;\n }\n\n // Do nothing else if the close icon is clicked.\n let icon = tabs[index].querySelector(this.renderer.closeIconSelector);\n if (icon && icon.contains(event.target as HTMLElement)) {\n return;\n }\n\n // Add the extra listeners if the tabs are movable.\n if (this.tabsMovable) {\n this.document.addEventListener('mousemove', this, true); // \n this.document.addEventListener('pointermove', this, true);\n this.document.addEventListener('keydown', this, true);\n this.document.addEventListener('contextmenu', this, true);\n }\n\n // Update the current index as appropriate.\n if (this.allowDeselect && this.currentIndex === index) {\n this.currentIndex = -1;\n } else {\n this.currentIndex = index;\n }\n\n // Do nothing else if there is no current tab.\n if (this.currentIndex === -1) {\n return;\n }\n\n // Emit the tab activate request signal.\n this._tabActivateRequested.emit({\n index: this.currentIndex,\n title: this.currentTitle!\n });\n }\n\n /**\n * Handle the `'mousemove'` event for the tab bar.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Do nothing if no drag is in progress.\n let data = this._dragData;\n if (!data) {\n return;\n }\n\n // Suppress the event during a drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Lookup the tab nodes.\n let tabs = this.contentNode.children;\n\n // Bail early if the drag threshold has not been met.\n if (!data.dragActive && !Private.dragExceeded(data, event)) {\n return;\n }\n\n // Activate the drag if necessary.\n if (!data.dragActive) {\n // Fill in the rest of the drag data measurements.\n let tabRect = data.tab.getBoundingClientRect();\n if (this._orientation === 'horizontal') {\n data.tabPos = data.tab.offsetLeft;\n data.tabSize = tabRect.width;\n data.tabPressPos = data.pressX - tabRect.left;\n } else {\n data.tabPos = data.tab.offsetTop;\n data.tabSize = tabRect.height;\n data.tabPressPos = data.pressY - tabRect.top;\n }\n data.tabLayout = Private.snapTabLayout(tabs, this._orientation);\n data.contentRect = this.contentNode.getBoundingClientRect();\n data.override = Drag.overrideCursor('default');\n\n // Add the dragging style classes.\n data.tab.classList.add('lm-mod-dragging');\n this.addClass('lm-mod-dragging');\n /* */\n data.tab.classList.add('p-mod-dragging');\n this.addClass('p-mod-dragging');\n /* */\n\n // Mark the drag as active.\n data.dragActive = true;\n }\n\n // Emit the detach requested signal if the threshold is exceeded.\n if (!data.detachRequested && Private.detachExceeded(data, event)) {\n // Only emit the signal once per drag cycle.\n data.detachRequested = true;\n\n // Setup the arguments for the signal.\n let index = data.index;\n let clientX = event.clientX;\n let clientY = event.clientY;\n let tab = tabs[index] as HTMLElement;\n let title = this._titles[index];\n\n // Emit the tab detach requested signal.\n this._tabDetachRequested.emit({ index, title, tab, clientX, clientY });\n\n // Bail if the signal handler aborted the drag.\n if (data.dragAborted) {\n return;\n }\n }\n\n // Update the positions of the tabs.\n Private.layoutTabs(tabs, data, event, this._orientation);\n }\n\n /**\n * Handle the `'mouseup'` event for the document.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if it's not a left or middle mouse release.\n if (event.button !== 0 && event.button !== 1) {\n return;\n }\n\n // Do nothing if no drag is in progress.\n const data = this._dragData;\n if (!data) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Remove the extra mouse event listeners.\n this.document.removeEventListener('mousemove', this, true); // \n this.document.removeEventListener('mouseup', this, true); // \n this.document.removeEventListener('pointermove', this, true);\n this.document.removeEventListener('pointerup', this, true);\n this.document.removeEventListener('keydown', this, true);\n this.document.removeEventListener('contextmenu', this, true);\n\n // Handle a release when the drag is not active.\n if (!data.dragActive) {\n // Clear the drag data.\n this._dragData = null;\n\n // Handle clicking the add button.\n let addButtonClicked =\n this.addButtonEnabled &&\n this.addButtonNode.contains(event.target as HTMLElement);\n if (addButtonClicked) {\n this._addRequested.emit(undefined);\n return;\n }\n\n // Lookup the tab nodes.\n let tabs = this.contentNode.children;\n\n // Find the index of the released tab.\n let index = ArrayExt.findFirstIndex(tabs, tab => {\n return ElementExt.hitTest(tab, event.clientX, event.clientY);\n });\n\n // Do nothing if the release is not on the original pressed tab.\n if (index !== data.index) {\n return;\n }\n\n // Ignore the release if the title is not closable.\n let title = this._titles[index];\n if (!title.closable) {\n return;\n }\n\n // Emit the close requested signal if the middle button is released.\n if (event.button === 1) {\n this._tabCloseRequested.emit({ index, title });\n return;\n }\n\n // Emit the close requested signal if the close icon was released.\n let icon = tabs[index].querySelector(this.renderer.closeIconSelector);\n if (icon && icon.contains(event.target as HTMLElement)) {\n this._tabCloseRequested.emit({ index, title });\n return;\n }\n\n // Otherwise, there is nothing left to do.\n return;\n }\n\n // Do nothing if the left button is not released.\n if (event.button !== 0) {\n return;\n }\n\n // Position the tab at its final resting position.\n Private.finalizeTabPosition(data, this._orientation);\n\n // Remove the dragging class from the tab so it can be transitioned.\n data.tab.classList.remove('lm-mod-dragging');\n /* */\n data.tab.classList.remove('p-mod-dragging');\n /* */\n\n // Parse the transition duration for releasing the tab.\n let duration = Private.parseTransitionDuration(data.tab);\n\n // Complete the release on a timer to allow the tab to transition.\n setTimeout(() => {\n // Do nothing if the drag has been aborted.\n if (data.dragAborted) {\n return;\n }\n\n // Clear the drag data reference.\n this._dragData = null;\n\n // Reset the positions of the tabs.\n Private.resetTabPositions(this.contentNode.children, this._orientation);\n\n // Clear the cursor grab.\n data.override!.dispose();\n\n // Remove the remaining dragging style.\n this.removeClass('lm-mod-dragging');\n /* */\n this.removeClass('p-mod-dragging');\n /* */\n\n // If the tab was not moved, there is nothing else to do.\n let i = data.index;\n let j = data.targetIndex;\n if (j === -1 || i === j) {\n return;\n }\n\n // Move the title to the new locations.\n ArrayExt.move(this._titles, i, j);\n\n // Adjust the current index for the move.\n this._adjustCurrentForMove(i, j);\n\n // Emit the tab moved signal.\n this._tabMoved.emit({\n fromIndex: i,\n toIndex: j,\n title: this._titles[j]\n });\n\n // Update the tabs immediately to prevent flicker.\n MessageLoop.sendMessage(this, Widget.Msg.UpdateRequest);\n }, duration);\n }\n\n /**\n * Release the mouse and restore the non-dragged tab positions.\n */\n private _releaseMouse(): void {\n // Do nothing if no drag is in progress.\n let data = this._dragData;\n if (!data) {\n return;\n }\n\n // Clear the drag data reference.\n this._dragData = null;\n\n // Remove the extra mouse listeners.\n this.document.removeEventListener('mousemove', this, true); // \n this.document.removeEventListener('mouseup', this, true); // \n this.document.removeEventListener('pointermove', this, true);\n this.document.removeEventListener('pointerup', this, true);\n this.document.removeEventListener('keydown', this, true);\n this.document.removeEventListener('contextmenu', this, true);\n\n // Indicate the drag has been aborted. This allows the mouse\n // event handlers to return early when the drag is canceled.\n data.dragAborted = true;\n\n // If the drag is not active, there's nothing more to do.\n if (!data.dragActive) {\n return;\n }\n\n // Reset the tabs to their non-dragged positions.\n Private.resetTabPositions(this.contentNode.children, this._orientation);\n\n // Clear the cursor override.\n data.override!.dispose();\n\n // Clear the dragging style classes.\n data.tab.classList.remove('lm-mod-dragging');\n this.removeClass('lm-mod-dragging');\n /* */\n data.tab.classList.remove('p-mod-dragging');\n this.removeClass('p-mod-dragging');\n /* */\n }\n\n /**\n * Adjust the current index for a tab insert operation.\n *\n * This method accounts for the tab bar's insertion behavior when\n * adjusting the current index and emitting the changed signal.\n */\n private _adjustCurrentForInsert(i: number, title: Title): void {\n // Lookup commonly used variables.\n let ct = this.currentTitle;\n let ci = this._currentIndex;\n let bh = this.insertBehavior;\n\n // TODO: do we need to do an update to update the aria-selected attribute?\n\n // Handle the behavior where the new tab is always selected,\n // or the behavior where the new tab is selected if needed.\n if (bh === 'select-tab' || (bh === 'select-tab-if-needed' && ci === -1)) {\n this._currentIndex = i;\n this._previousTitle = ct;\n this._currentChanged.emit({\n previousIndex: ci,\n previousTitle: ct,\n currentIndex: i,\n currentTitle: title\n });\n return;\n }\n\n // Otherwise, silently adjust the current index if needed.\n if (ci >= i) {\n this._currentIndex++;\n }\n }\n\n /**\n * Adjust the current index for a tab move operation.\n *\n * This method will not cause the actual current tab to change.\n * It silently adjusts the index to account for the given move.\n */\n private _adjustCurrentForMove(i: number, j: number): void {\n if (this._currentIndex === i) {\n this._currentIndex = j;\n } else if (this._currentIndex < i && this._currentIndex >= j) {\n this._currentIndex++;\n } else if (this._currentIndex > i && this._currentIndex <= j) {\n this._currentIndex--;\n }\n }\n\n /**\n * Adjust the current index for a tab remove operation.\n *\n * This method accounts for the tab bar's remove behavior when\n * adjusting the current index and emitting the changed signal.\n */\n private _adjustCurrentForRemove(i: number, title: Title): void {\n // Lookup commonly used variables.\n let ci = this._currentIndex;\n let bh = this.removeBehavior;\n\n // Silently adjust the index if the current tab is not removed.\n if (ci !== i) {\n if (ci > i) {\n this._currentIndex--;\n }\n return;\n }\n\n // TODO: do we need to do an update to adjust the aria-selected value?\n\n // No tab gets selected if the tab bar is empty.\n if (this._titles.length === 0) {\n this._currentIndex = -1;\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: -1,\n currentTitle: null\n });\n return;\n }\n\n // Handle behavior where the next sibling tab is selected.\n if (bh === 'select-tab-after') {\n this._currentIndex = Math.min(i, this._titles.length - 1);\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: this._currentIndex,\n currentTitle: this.currentTitle\n });\n return;\n }\n\n // Handle behavior where the previous sibling tab is selected.\n if (bh === 'select-tab-before') {\n this._currentIndex = Math.max(0, i - 1);\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: this._currentIndex,\n currentTitle: this.currentTitle\n });\n return;\n }\n\n // Handle behavior where the previous history tab is selected.\n if (bh === 'select-previous-tab') {\n if (this._previousTitle) {\n this._currentIndex = this._titles.indexOf(this._previousTitle);\n this._previousTitle = null;\n } else {\n this._currentIndex = Math.min(i, this._titles.length - 1);\n }\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: this._currentIndex,\n currentTitle: this.currentTitle\n });\n return;\n }\n\n // Otherwise, no tab gets selected.\n this._currentIndex = -1;\n this._currentChanged.emit({\n previousIndex: i,\n previousTitle: title,\n currentIndex: -1,\n currentTitle: null\n });\n }\n\n /**\n * Handle the `changed` signal of a title object.\n */\n private _onTitleChanged(sender: Title): void {\n this.update();\n }\n\n private _name: string;\n private _currentIndex = -1;\n private _titles: Title[] = [];\n private _orientation: TabBar.Orientation;\n private _document: Document | ShadowRoot;\n private _titlesEditable: boolean = false;\n private _previousTitle: Title | null = null;\n private _dragData: Private.IDragData | null = null;\n private _addButtonEnabled: boolean = false;\n private _tabMoved = new Signal>(this);\n private _currentChanged = new Signal>(\n this\n );\n private _addRequested = new Signal(this);\n private _tabCloseRequested = new Signal<\n this,\n TabBar.ITabCloseRequestedArgs\n >(this);\n private _tabDetachRequested = new Signal<\n this,\n TabBar.ITabDetachRequestedArgs\n >(this);\n private _tabActivateRequested = new Signal<\n this,\n TabBar.ITabActivateRequestedArgs\n >(this);\n}\n\n/**\n * The namespace for the `TabBar` class statics.\n */\nexport namespace TabBar {\n /**\n * A type alias for a tab bar orientation.\n */\n export type Orientation =\n | /**\n * The tabs are arranged in a single row, left-to-right.\n *\n * The tab text orientation is horizontal.\n */\n 'horizontal'\n\n /**\n * The tabs are arranged in a single column, top-to-bottom.\n *\n * The tab text orientation is horizontal.\n */\n | 'vertical';\n\n /**\n * A type alias for the selection behavior on tab insert.\n */\n export type InsertBehavior =\n | /**\n * The selected tab will not be changed.\n */\n 'none'\n\n /**\n * The inserted tab will be selected.\n */\n | 'select-tab'\n\n /**\n * The inserted tab will be selected if the current tab is null.\n */\n | 'select-tab-if-needed';\n\n /**\n * A type alias for the selection behavior on tab remove.\n */\n export type RemoveBehavior =\n | /**\n * No tab will be selected.\n */\n 'none'\n\n /**\n * The tab after the removed tab will be selected if possible.\n */\n | 'select-tab-after'\n\n /**\n * The tab before the removed tab will be selected if possible.\n */\n | 'select-tab-before'\n\n /**\n * The previously selected tab will be selected if possible.\n */\n | 'select-previous-tab';\n\n /**\n * An options object for creating a tab bar.\n */\n export interface IOptions {\n /**\n * The document to use with the tab bar.\n *\n * The default is the global `document` instance.\n */\n\n document?: Document | ShadowRoot;\n\n /**\n * Name of the tab bar.\n *\n * This is used for accessibility reasons. The default is the empty string.\n */\n name?: string;\n\n /**\n * The layout orientation of the tab bar.\n *\n * The default is `horizontal`.\n */\n orientation?: TabBar.Orientation;\n\n /**\n * Whether the tabs are movable by the user.\n *\n * The default is `false`.\n */\n tabsMovable?: boolean;\n\n /**\n * Whether a tab can be deselected by the user.\n *\n * The default is `false`.\n */\n allowDeselect?: boolean;\n\n /**\n * Whether the titles can be directly edited by the user.\n *\n * The default is `false`.\n */\n titlesEditable?: boolean;\n\n /**\n * Whether the add button is enabled.\n *\n * The default is `false`.\n */\n addButtonEnabled?: boolean;\n\n /**\n * The selection behavior when inserting a tab.\n *\n * The default is `'select-tab-if-needed'`.\n */\n insertBehavior?: TabBar.InsertBehavior;\n\n /**\n * The selection behavior when removing a tab.\n *\n * The default is `'select-tab-after'`.\n */\n removeBehavior?: TabBar.RemoveBehavior;\n\n /**\n * A renderer to use with the tab bar.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n }\n\n /**\n * The arguments object for the `currentChanged` signal.\n */\n export interface ICurrentChangedArgs {\n /**\n * The previously selected index.\n */\n readonly previousIndex: number;\n\n /**\n * The previously selected title.\n */\n readonly previousTitle: Title | null;\n\n /**\n * The currently selected index.\n */\n readonly currentIndex: number;\n\n /**\n * The currently selected title.\n */\n readonly currentTitle: Title | null;\n }\n\n /**\n * The arguments object for the `tabMoved` signal.\n */\n export interface ITabMovedArgs {\n /**\n * The previous index of the tab.\n */\n readonly fromIndex: number;\n\n /**\n * The current index of the tab.\n */\n readonly toIndex: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n }\n\n /**\n * The arguments object for the `tabActivateRequested` signal.\n */\n export interface ITabActivateRequestedArgs {\n /**\n * The index of the tab to activate.\n */\n readonly index: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n }\n\n /**\n * The arguments object for the `tabCloseRequested` signal.\n */\n export interface ITabCloseRequestedArgs {\n /**\n * The index of the tab to close.\n */\n readonly index: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n }\n\n /**\n * The arguments object for the `tabDetachRequested` signal.\n */\n export interface ITabDetachRequestedArgs {\n /**\n * The index of the tab to detach.\n */\n readonly index: number;\n\n /**\n * The title for the tab.\n */\n readonly title: Title;\n\n /**\n * The node representing the tab.\n */\n readonly tab: HTMLElement;\n\n /**\n * The current client X position of the mouse.\n */\n readonly clientX: number;\n\n /**\n * The current client Y position of the mouse.\n */\n readonly clientY: number;\n }\n\n /**\n * An object which holds the data to render a tab.\n */\n export interface IRenderData {\n /**\n * The title associated with the tab.\n */\n readonly title: Title;\n\n /**\n * Whether the tab is the current tab.\n */\n readonly current: boolean;\n\n /**\n * The z-index for the tab.\n */\n readonly zIndex: number;\n }\n\n /**\n * A renderer for use with a tab bar.\n */\n export interface IRenderer {\n /**\n * A selector which matches the close icon node in a tab.\n */\n readonly closeIconSelector: string;\n\n /**\n * Render the virtual element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab.\n */\n renderTab(data: IRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n *\n * #### Notes\n * Subclasses are free to reimplement rendering methods as needed.\n */\n export class Renderer implements IRenderer {\n constructor() {\n this._uuid = ++Renderer._nInstance;\n }\n /**\n * A selector which matches the close icon node in a tab.\n */\n readonly closeIconSelector = '.lm-TabBar-tabCloseIcon';\n\n /**\n * Render the virtual element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab.\n */\n renderTab(data: IRenderData): VirtualElement {\n let title = data.title.caption;\n let key = this.createTabKey(data);\n let id = key;\n let style = this.createTabStyle(data);\n let className = this.createTabClass(data);\n let dataset = this.createTabDataset(data);\n let aria = this.createTabARIA(data);\n if (data.title.closable) {\n return h.li(\n { id, key, className, title, style, dataset, ...aria },\n this.renderIcon(data),\n this.renderLabel(data),\n this.renderCloseIcon(data)\n );\n } else {\n return h.li(\n { id, key, className, title, style, dataset, ...aria },\n this.renderIcon(data),\n this.renderLabel(data)\n );\n }\n }\n\n /**\n * Render the icon element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab icon.\n */\n renderIcon(data: IRenderData): VirtualElement {\n const { title } = data;\n let className = this.createIconClass(data);\n\n /* */\n if (typeof title.icon === 'string') {\n return h.div({ className }, title.iconLabel);\n }\n /* */\n\n // if title.icon is undefined, it will be ignored\n return h.div({ className }, title.icon!, title.iconLabel);\n }\n\n /**\n * Render the label element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab label.\n */\n renderLabel(data: IRenderData): VirtualElement {\n return h.div(\n {\n className:\n 'lm-TabBar-tabLabel' +\n /* */\n ' p-TabBar-tabLabel'\n /* */\n },\n data.title.label\n );\n }\n\n /**\n * Render the close icon element for a tab.\n *\n * @param data - The data to use for rendering the tab.\n *\n * @returns A virtual element representing the tab close icon.\n */\n renderCloseIcon(data: IRenderData): VirtualElement {\n return h.div({\n className:\n 'lm-TabBar-tabCloseIcon' +\n /* */\n ' p-TabBar-tabCloseIcon'\n /* */\n });\n }\n\n /**\n * Create a unique render key for the tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The unique render key for the tab.\n *\n * #### Notes\n * This method caches the key against the tab title the first time\n * the key is generated. This enables efficient rendering of moved\n * tabs and avoids subtle hover style artifacts.\n */\n createTabKey(data: IRenderData): string {\n let key = this._tabKeys.get(data.title);\n if (key === undefined) {\n key = `tab-key-${this._uuid}-${this._tabID++}`;\n this._tabKeys.set(data.title, key);\n }\n return key;\n }\n\n /**\n * Create the inline style object for a tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The inline style data for the tab.\n */\n createTabStyle(data: IRenderData): ElementInlineStyle {\n return { zIndex: `${data.zIndex}` };\n }\n\n /**\n * Create the class name for the tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The full class name for the tab.\n */\n createTabClass(data: IRenderData): string {\n let name = 'lm-TabBar-tab';\n /* */\n name += ' p-TabBar-tab';\n /* */\n if (data.title.className) {\n name += ` ${data.title.className}`;\n }\n if (data.title.closable) {\n name += ' lm-mod-closable';\n /* */\n name += ' p-mod-closable';\n /* */\n }\n if (data.current) {\n name += ' lm-mod-current';\n /* */\n name += ' p-mod-current';\n /* */\n }\n return name;\n }\n\n /**\n * Create the dataset for a tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The dataset for the tab.\n */\n createTabDataset(data: IRenderData): ElementDataset {\n return data.title.dataset;\n }\n\n /**\n * Create the ARIA attributes for a tab.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The ARIA attributes for the tab.\n */\n createTabARIA(data: IRenderData): ElementARIAAttrs {\n return { role: 'tab', 'aria-selected': data.current.toString() };\n }\n\n /**\n * Create the class name for the tab icon.\n *\n * @param data - The data to use for the tab.\n *\n * @returns The full class name for the tab icon.\n */\n createIconClass(data: IRenderData): string {\n let name = 'lm-TabBar-tabIcon';\n /* */\n name += ' p-TabBar-tabIcon';\n /* */\n let extra = data.title.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n private static _nInstance = 0;\n private readonly _uuid: number;\n private _tabID = 0;\n private _tabKeys = new WeakMap, string>();\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n\n /**\n * A selector which matches the add button node in the tab bar.\n */\n export const addButtonSelector = '.lm-TabBar-addButton';\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The start drag distance threshold.\n */\n export const DRAG_THRESHOLD = 5;\n\n /**\n * The detach distance threshold.\n */\n export const DETACH_THRESHOLD = 20;\n\n /**\n * A struct which holds the drag data for a tab bar.\n */\n export interface IDragData {\n /**\n * The tab node being dragged.\n */\n tab: HTMLElement;\n\n /**\n * The index of the tab being dragged.\n */\n index: number;\n\n /**\n * The mouse press client X position.\n */\n pressX: number;\n\n /**\n * The mouse press client Y position.\n */\n pressY: number;\n\n /**\n * The offset left/top of the tab being dragged.\n *\n * This will be `-1` if the drag is not active.\n */\n tabPos: number;\n\n /**\n * The offset width/height of the tab being dragged.\n *\n * This will be `-1` if the drag is not active.\n */\n tabSize: number;\n\n /**\n * The original mouse X/Y position in tab coordinates.\n *\n * This will be `-1` if the drag is not active.\n */\n tabPressPos: number;\n\n /**\n * The tab target index upon mouse release.\n *\n * This will be `-1` if the drag is not active.\n */\n targetIndex: number;\n\n /**\n * The array of tab layout objects snapped at drag start.\n *\n * This will be `null` if the drag is not active.\n */\n tabLayout: ITabLayout[] | null;\n\n /**\n * The bounding client rect of the tab bar content node.\n *\n * This will be `null` if the drag is not active.\n */\n contentRect: ClientRect | null;\n\n /**\n * The disposable to clean up the cursor override.\n *\n * This will be `null` if the drag is not active.\n */\n override: IDisposable | null;\n\n /**\n * Whether the drag is currently active.\n */\n dragActive: boolean;\n\n /**\n * Whether the drag has been aborted.\n */\n dragAborted: boolean;\n\n /**\n * Whether a detach request as been made.\n */\n detachRequested: boolean;\n }\n\n /**\n * An object which holds layout data for a tab.\n */\n export interface ITabLayout {\n /**\n * The left/top margin value for the tab.\n */\n margin: number;\n\n /**\n * The offset left/top position of the tab.\n */\n pos: number;\n\n /**\n * The offset width/height of the tab.\n */\n size: number;\n }\n\n /**\n * Create the DOM node for a tab bar.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let content = document.createElement('ul');\n content.setAttribute('role', 'tablist');\n content.className = 'lm-TabBar-content';\n /* */\n content.classList.add('p-TabBar-content');\n /* */\n node.appendChild(content);\n\n let add = document.createElement('div');\n add.className = 'lm-TabBar-addButton lm-mod-hidden';\n node.appendChild(add);\n return node;\n }\n\n /**\n * Coerce a title or options into a real title.\n */\n export function asTitle(value: Title | Title.IOptions): Title {\n return value instanceof Title ? value : new Title(value);\n }\n\n /**\n * Parse the transition duration for a tab node.\n */\n export function parseTransitionDuration(tab: HTMLElement): number {\n let style = window.getComputedStyle(tab);\n return 1000 * (parseFloat(style.transitionDuration!) || 0);\n }\n\n /**\n * Get a snapshot of the current tab layout values.\n */\n export function snapTabLayout(\n tabs: HTMLCollection,\n orientation: TabBar.Orientation\n ): ITabLayout[] {\n let layout = new Array(tabs.length);\n for (let i = 0, n = tabs.length; i < n; ++i) {\n let node = tabs[i] as HTMLElement;\n let style = window.getComputedStyle(node);\n if (orientation === 'horizontal') {\n layout[i] = {\n pos: node.offsetLeft,\n size: node.offsetWidth,\n margin: parseFloat(style.marginLeft!) || 0\n };\n } else {\n layout[i] = {\n pos: node.offsetTop,\n size: node.offsetHeight,\n margin: parseFloat(style.marginTop!) || 0\n };\n }\n }\n return layout;\n }\n\n /**\n * Test if the event exceeds the drag threshold.\n */\n export function dragExceeded(data: IDragData, event: MouseEvent): boolean {\n let dx = Math.abs(event.clientX - data.pressX);\n let dy = Math.abs(event.clientY - data.pressY);\n return dx >= DRAG_THRESHOLD || dy >= DRAG_THRESHOLD;\n }\n\n /**\n * Test if the event exceeds the drag detach threshold.\n */\n export function detachExceeded(data: IDragData, event: MouseEvent): boolean {\n let rect = data.contentRect!;\n return (\n event.clientX < rect.left - DETACH_THRESHOLD ||\n event.clientX >= rect.right + DETACH_THRESHOLD ||\n event.clientY < rect.top - DETACH_THRESHOLD ||\n event.clientY >= rect.bottom + DETACH_THRESHOLD\n );\n }\n\n /**\n * Update the relative tab positions and computed target index.\n */\n export function layoutTabs(\n tabs: HTMLCollection,\n data: IDragData,\n event: MouseEvent,\n orientation: TabBar.Orientation\n ): void {\n // Compute the orientation-sensitive values.\n let pressPos: number;\n let localPos: number;\n let clientPos: number;\n let clientSize: number;\n if (orientation === 'horizontal') {\n pressPos = data.pressX;\n localPos = event.clientX - data.contentRect!.left;\n clientPos = event.clientX;\n clientSize = data.contentRect!.width;\n } else {\n pressPos = data.pressY;\n localPos = event.clientY - data.contentRect!.top;\n clientPos = event.clientY;\n clientSize = data.contentRect!.height;\n }\n\n // Compute the target data.\n let targetIndex = data.index;\n let targetPos = localPos - data.tabPressPos;\n let targetEnd = targetPos + data.tabSize;\n\n // Update the relative tab positions.\n for (let i = 0, n = tabs.length; i < n; ++i) {\n let pxPos: string;\n let layout = data.tabLayout![i];\n let threshold = layout.pos + (layout.size >> 1);\n if (i < data.index && targetPos < threshold) {\n pxPos = `${data.tabSize + data.tabLayout![i + 1].margin}px`;\n targetIndex = Math.min(targetIndex, i);\n } else if (i > data.index && targetEnd > threshold) {\n pxPos = `${-data.tabSize - layout.margin}px`;\n targetIndex = Math.max(targetIndex, i);\n } else if (i === data.index) {\n let ideal = clientPos - pressPos;\n let limit = clientSize - (data.tabPos + data.tabSize);\n pxPos = `${Math.max(-data.tabPos, Math.min(ideal, limit))}px`;\n } else {\n pxPos = '';\n }\n if (orientation === 'horizontal') {\n (tabs[i] as HTMLElement).style.left = pxPos;\n } else {\n (tabs[i] as HTMLElement).style.top = pxPos;\n }\n }\n\n // Update the computed target index.\n data.targetIndex = targetIndex;\n }\n\n /**\n * Position the drag tab at its final resting relative position.\n */\n export function finalizeTabPosition(\n data: IDragData,\n orientation: TabBar.Orientation\n ): void {\n // Compute the orientation-sensitive client size.\n let clientSize: number;\n if (orientation === 'horizontal') {\n clientSize = data.contentRect!.width;\n } else {\n clientSize = data.contentRect!.height;\n }\n\n // Compute the ideal final tab position.\n let ideal: number;\n if (data.targetIndex === data.index) {\n ideal = 0;\n } else if (data.targetIndex > data.index) {\n let tgt = data.tabLayout![data.targetIndex];\n ideal = tgt.pos + tgt.size - data.tabSize - data.tabPos;\n } else {\n let tgt = data.tabLayout![data.targetIndex];\n ideal = tgt.pos - data.tabPos;\n }\n\n // Compute the tab position limit.\n let limit = clientSize - (data.tabPos + data.tabSize);\n let final = Math.max(-data.tabPos, Math.min(ideal, limit));\n\n // Set the final orientation-sensitive position.\n if (orientation === 'horizontal') {\n data.tab.style.left = `${final}px`;\n } else {\n data.tab.style.top = `${final}px`;\n }\n }\n\n /**\n * Reset the relative positions of the given tabs.\n */\n export function resetTabPositions(\n tabs: HTMLCollection,\n orientation: TabBar.Orientation\n ): void {\n each(tabs, tab => {\n if (orientation === 'horizontal') {\n (tab as HTMLElement).style.left = '';\n } else {\n (tab as HTMLElement).style.top = '';\n }\n });\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport {\n ArrayExt,\n chain,\n ChainIterator,\n each,\n empty,\n IIterator,\n map,\n once,\n reduce\n} from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { Layout, LayoutItem } from './layout';\n\nimport { TabBar } from './tabbar';\n\nimport Utils from './utils';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which provides a flexible docking arrangement.\n *\n * #### Notes\n * The consumer of this layout is responsible for handling all signals\n * from the generated tab bars and managing the visibility of widgets\n * and tab bars as needed.\n */\nexport class DockLayout extends Layout {\n /**\n * Construct a new dock layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: DockLayout.IOptions) {\n super();\n this.renderer = options.renderer;\n if (options.spacing !== undefined) {\n this._spacing = Utils.clampDimension(options.spacing);\n }\n this._document = options.document || document;\n this._hiddenMode =\n options.hiddenMode !== undefined\n ? options.hiddenMode\n : Widget.HiddenMode.Display;\n }\n\n /**\n * Dispose of the resources held by the layout.\n *\n * #### Notes\n * This will clear and dispose all widgets in the layout.\n */\n dispose(): void {\n // Get an iterator over the widgets in the layout.\n let widgets = this.iter();\n\n // Dispose of the layout items.\n this._items.forEach(item => {\n item.dispose();\n });\n\n // Clear the layout state before disposing the widgets.\n this._box = null;\n this._root = null;\n this._items.clear();\n\n // Dispose of the widgets contained in the old layout root.\n each(widgets, widget => {\n widget.dispose();\n });\n\n // Dispose of the base class.\n super.dispose();\n }\n\n /**\n * The renderer used by the dock layout.\n */\n readonly renderer: DockLayout.IRenderer;\n\n /**\n * The method for hiding child widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n get hiddenMode(): Widget.HiddenMode {\n return this._hiddenMode;\n }\n set hiddenMode(v: Widget.HiddenMode) {\n if (this._hiddenMode === v) {\n return;\n }\n this._hiddenMode = v;\n each(this.tabBars(), bar => {\n if (bar.titles.length > 1) {\n bar.titles.forEach(title => {\n title.owner.hiddenMode = this._hiddenMode;\n });\n }\n });\n }\n\n /**\n * Get the inter-element spacing for the dock layout.\n */\n get spacing(): number {\n return this._spacing;\n }\n\n /**\n * Set the inter-element spacing for the dock layout.\n */\n set spacing(value: number) {\n value = Utils.clampDimension(value);\n if (this._spacing === value) {\n return;\n }\n this._spacing = value;\n if (!this.parent) {\n return;\n }\n this.parent.fit();\n }\n\n /**\n * Whether the dock layout is empty.\n */\n get isEmpty(): boolean {\n return this._root === null;\n }\n\n /**\n * Create an iterator over all widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n *\n * #### Notes\n * This iterator includes the generated tab bars.\n */\n iter(): IIterator {\n return this._root ? this._root.iterAllWidgets() : empty();\n }\n\n /**\n * Create an iterator over the user widgets in the layout.\n *\n * @returns A new iterator over the user widgets in the layout.\n *\n * #### Notes\n * This iterator does not include the generated tab bars.\n */\n widgets(): IIterator {\n return this._root ? this._root.iterUserWidgets() : empty();\n }\n\n /**\n * Create an iterator over the selected widgets in the layout.\n *\n * @returns A new iterator over the selected user widgets.\n *\n * #### Notes\n * This iterator yields the widgets corresponding to the current tab\n * of each tab bar in the layout.\n */\n selectedWidgets(): IIterator {\n return this._root ? this._root.iterSelectedWidgets() : empty();\n }\n\n /**\n * Create an iterator over the tab bars in the layout.\n *\n * @returns A new iterator over the tab bars in the layout.\n *\n * #### Notes\n * This iterator does not include the user widgets.\n */\n tabBars(): IIterator> {\n return this._root ? this._root.iterTabBars() : empty>();\n }\n\n /**\n * Create an iterator over the handles in the layout.\n *\n * @returns A new iterator over the handles in the layout.\n */\n handles(): IIterator {\n return this._root ? this._root.iterHandles() : empty();\n }\n\n /**\n * Move a handle to the given offset position.\n *\n * @param handle - The handle to move.\n *\n * @param offsetX - The desired offset X position of the handle.\n *\n * @param offsetY - The desired offset Y position of the handle.\n *\n * #### Notes\n * If the given handle is not contained in the layout, this is no-op.\n *\n * The handle will be moved as close as possible to the desired\n * position without violating any of the layout constraints.\n *\n * Only one of the coordinates is used depending on the orientation\n * of the handle. This method accepts both coordinates to make it\n * easy to invoke from a mouse move event without needing to know\n * the handle orientation.\n */\n moveHandle(handle: HTMLDivElement, offsetX: number, offsetY: number): void {\n // Bail early if there is no root or if the handle is hidden.\n let hidden = handle.classList.contains('lm-mod-hidden');\n /* */\n hidden = hidden || handle.classList.contains('p-mod-hidden');\n /* */\n if (!this._root || hidden) {\n return;\n }\n\n // Lookup the split node for the handle.\n let data = this._root.findSplitNode(handle);\n if (!data) {\n return;\n }\n\n // Compute the desired delta movement for the handle.\n let delta: number;\n if (data.node.orientation === 'horizontal') {\n delta = offsetX - handle.offsetLeft;\n } else {\n delta = offsetY - handle.offsetTop;\n }\n\n // Bail if there is no handle movement.\n if (delta === 0) {\n return;\n }\n\n // Prevent sibling resizing unless needed.\n data.node.holdSizes();\n\n // Adjust the sizers to reflect the handle movement.\n BoxEngine.adjust(data.node.sizers, data.index, delta);\n\n // Update the layout of the widgets.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Save the current configuration of the dock layout.\n *\n * @returns A new config object for the current layout state.\n *\n * #### Notes\n * The return value can be provided to the `restoreLayout` method\n * in order to restore the layout to its current configuration.\n */\n saveLayout(): DockLayout.ILayoutConfig {\n // Bail early if there is no root.\n if (!this._root) {\n return { main: null };\n }\n\n // Hold the current sizes in the layout tree.\n this._root.holdAllSizes();\n\n // Return the layout config.\n return { main: this._root.createConfig() };\n }\n\n /**\n * Restore the layout to a previously saved configuration.\n *\n * @param config - The layout configuration to restore.\n *\n * #### Notes\n * Widgets which currently belong to the layout but which are not\n * contained in the config will be unparented.\n */\n restoreLayout(config: DockLayout.ILayoutConfig): void {\n // Create the widget set for validating the config.\n let widgetSet = new Set();\n\n // Normalize the main area config and collect the widgets.\n let mainConfig: DockLayout.AreaConfig | null;\n if (config.main) {\n mainConfig = Private.normalizeAreaConfig(config.main, widgetSet);\n } else {\n mainConfig = null;\n }\n\n // Create iterators over the old content.\n let oldWidgets = this.widgets();\n let oldTabBars = this.tabBars();\n let oldHandles = this.handles();\n\n // Clear the root before removing the old content.\n this._root = null;\n\n // Unparent the old widgets which are not in the new config.\n each(oldWidgets, widget => {\n if (!widgetSet.has(widget)) {\n widget.parent = null;\n }\n });\n\n // Dispose of the old tab bars.\n each(oldTabBars, tabBar => {\n tabBar.dispose();\n });\n\n // Remove the old handles.\n each(oldHandles, handle => {\n if (handle.parentNode) {\n handle.parentNode.removeChild(handle);\n }\n });\n\n // Reparent the new widgets to the current parent.\n widgetSet.forEach(widget => {\n widget.parent = this.parent;\n });\n\n // Create the root node for the new config.\n if (mainConfig) {\n this._root = Private.realizeAreaConfig(\n mainConfig,\n {\n // Ignoring optional `document` argument as we must reuse `this._document`\n createTabBar: (document?: Document | ShadowRoot) =>\n this._createTabBar(),\n createHandle: () => this._createHandle()\n },\n this._document\n );\n } else {\n this._root = null;\n }\n\n // If there is no parent, there is nothing more to do.\n if (!this.parent) {\n return;\n }\n\n // Attach the new widgets to the parent.\n widgetSet.forEach(widget => {\n this.attachWidget(widget);\n });\n\n // Post a fit request to the parent.\n this.parent.fit();\n }\n\n /**\n * Add a widget to the dock layout.\n *\n * @param widget - The widget to add to the dock layout.\n *\n * @param options - The additional options for adding the widget.\n *\n * #### Notes\n * The widget will be moved if it is already contained in the layout.\n *\n * An error will be thrown if the reference widget is invalid.\n */\n addWidget(widget: Widget, options: DockLayout.IAddOptions = {}): void {\n // Parse the options.\n let ref = options.ref || null;\n let mode = options.mode || 'tab-after';\n\n // Find the tab node which holds the reference widget.\n let refNode: Private.TabLayoutNode | null = null;\n if (this._root && ref) {\n refNode = this._root.findTabNode(ref);\n }\n\n // Throw an error if the reference widget is invalid.\n if (ref && !refNode) {\n throw new Error('Reference widget is not in the layout.');\n }\n\n // Reparent the widget to the current layout parent.\n widget.parent = this.parent;\n\n // Insert the widget according to the insert mode.\n switch (mode) {\n case 'tab-after':\n this._insertTab(widget, ref, refNode, true);\n break;\n case 'tab-before':\n this._insertTab(widget, ref, refNode, false);\n break;\n case 'split-top':\n this._insertSplit(widget, ref, refNode, 'vertical', false);\n break;\n case 'split-left':\n this._insertSplit(widget, ref, refNode, 'horizontal', false);\n break;\n case 'split-right':\n this._insertSplit(widget, ref, refNode, 'horizontal', true);\n break;\n case 'split-bottom':\n this._insertSplit(widget, ref, refNode, 'vertical', true);\n break;\n }\n\n // Do nothing else if there is no parent widget.\n if (!this.parent) {\n return;\n }\n\n // Ensure the widget is attached to the parent widget.\n this.attachWidget(widget);\n\n // Post a fit request for the parent widget.\n this.parent.fit();\n }\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n // Remove the widget from its current layout location.\n this._removeWidget(widget);\n\n // Do nothing else if there is no parent widget.\n if (!this.parent) {\n return;\n }\n\n // Detach the widget from the parent widget.\n this.detachWidget(widget);\n\n // Post a fit request for the parent widget.\n this.parent.fit();\n }\n\n /**\n * Find the tab area which contains the given client position.\n *\n * @param clientX - The client X position of interest.\n *\n * @param clientY - The client Y position of interest.\n *\n * @returns The geometry of the tab area at the given position, or\n * `null` if there is no tab area at the given position.\n */\n hitTestTabAreas(\n clientX: number,\n clientY: number\n ): DockLayout.ITabAreaGeometry | null {\n // Bail early if hit testing cannot produce valid results.\n if (!this._root || !this.parent || !this.parent.isVisible) {\n return null;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent.node);\n }\n\n // Convert from client to local coordinates.\n let rect = this.parent.node.getBoundingClientRect();\n let x = clientX - rect.left - this._box.borderLeft;\n let y = clientY - rect.top - this._box.borderTop;\n\n // Find the tab layout node at the local position.\n let tabNode = this._root.hitTestTabNodes(x, y);\n\n // Bail if a tab layout node was not found.\n if (!tabNode) {\n return null;\n }\n\n // Extract the data from the tab node.\n let { tabBar, top, left, width, height } = tabNode;\n\n // Compute the right and bottom edges of the tab area.\n let borderWidth = this._box.borderLeft + this._box.borderRight;\n let borderHeight = this._box.borderTop + this._box.borderBottom;\n let right = rect.width - borderWidth - (left + width);\n let bottom = rect.height - borderHeight - (top + height);\n\n // Return the hit test results.\n return { tabBar, x, y, top, left, right, bottom, width, height };\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n // Perform superclass initialization.\n super.init();\n\n // Attach each widget to the parent.\n each(this, widget => {\n this.attachWidget(widget);\n });\n\n // Attach each handle to the parent.\n each(this.handles(), handle => {\n this.parent!.node.appendChild(handle);\n });\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Attach the widget to the layout parent widget.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a no-op if the widget is already attached.\n */\n protected attachWidget(widget: Widget): void {\n // Do nothing if the widget is already attached.\n if (this.parent!.node === widget.node.parentNode) {\n return;\n }\n\n // Create the layout item for the widget.\n this._items.set(widget, new LayoutItem(widget));\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Detach the widget from the layout parent widget.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a no-op if the widget is not attached.\n */\n protected detachWidget(widget: Widget): void {\n // Do nothing if the widget is not attached.\n if (this.parent!.node !== widget.node.parentNode) {\n return;\n }\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Delete the layout item for the widget.\n let item = this._items.get(widget);\n if (item) {\n this._items.delete(widget);\n item.dispose();\n }\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Remove the specified widget from the layout structure.\n *\n * #### Notes\n * This is a no-op if the widget is not in the layout tree.\n *\n * This does not detach the widget from the parent node.\n */\n private _removeWidget(widget: Widget): void {\n // Bail early if there is no layout root.\n if (!this._root) {\n return;\n }\n\n // Find the tab node which contains the given widget.\n let tabNode = this._root.findTabNode(widget);\n\n // Bail early if the tab node is not found.\n if (!tabNode) {\n return;\n }\n\n Private.removeAria(widget);\n\n // If there are multiple tabs, just remove the widget's tab.\n if (tabNode.tabBar.titles.length > 1) {\n tabNode.tabBar.removeTab(widget.title);\n if (\n this._hiddenMode === Widget.HiddenMode.Scale &&\n tabNode.tabBar.titles.length == 1\n ) {\n const existingWidget = tabNode.tabBar.titles[0].owner;\n existingWidget.hiddenMode = Widget.HiddenMode.Display;\n }\n return;\n }\n\n // Otherwise, the tab node needs to be removed...\n\n // Dispose the tab bar.\n tabNode.tabBar.dispose();\n\n // Handle the case where the tab node is the root.\n if (this._root === tabNode) {\n this._root = null;\n return;\n }\n\n // Otherwise, remove the tab node from its parent...\n\n // Prevent widget resizing unless needed.\n this._root.holdAllSizes();\n\n // Clear the parent reference on the tab node.\n let splitNode = tabNode.parent!;\n tabNode.parent = null;\n\n // Remove the tab node from its parent split node.\n let i = ArrayExt.removeFirstOf(splitNode.children, tabNode);\n let handle = ArrayExt.removeAt(splitNode.handles, i)!;\n ArrayExt.removeAt(splitNode.sizers, i);\n\n // Remove the handle from its parent DOM node.\n if (handle.parentNode) {\n handle.parentNode.removeChild(handle);\n }\n\n // If there are multiple children, just update the handles.\n if (splitNode.children.length > 1) {\n splitNode.syncHandles();\n return;\n }\n\n // Otherwise, the split node also needs to be removed...\n\n // Clear the parent reference on the split node.\n let maybeParent = splitNode.parent;\n splitNode.parent = null;\n\n // Lookup the remaining child node and handle.\n let childNode = splitNode.children[0];\n let childHandle = splitNode.handles[0];\n\n // Clear the split node data.\n splitNode.children.length = 0;\n splitNode.handles.length = 0;\n splitNode.sizers.length = 0;\n\n // Remove the child handle from its parent node.\n if (childHandle.parentNode) {\n childHandle.parentNode.removeChild(childHandle);\n }\n\n // Handle the case where the split node is the root.\n if (this._root === splitNode) {\n childNode.parent = null;\n this._root = childNode;\n return;\n }\n\n // Otherwise, move the child node to the parent node...\n let parentNode = maybeParent!;\n\n // Lookup the index of the split node.\n let j = parentNode.children.indexOf(splitNode);\n\n // Handle the case where the child node is a tab node.\n if (childNode instanceof Private.TabLayoutNode) {\n childNode.parent = parentNode;\n parentNode.children[j] = childNode;\n return;\n }\n\n // Remove the split data from the parent.\n let splitHandle = ArrayExt.removeAt(parentNode.handles, j)!;\n ArrayExt.removeAt(parentNode.children, j);\n ArrayExt.removeAt(parentNode.sizers, j);\n\n // Remove the handle from its parent node.\n if (splitHandle.parentNode) {\n splitHandle.parentNode.removeChild(splitHandle);\n }\n\n // The child node and the split parent node will have the same\n // orientation. Merge the grand-children with the parent node.\n for (let i = 0, n = childNode.children.length; i < n; ++i) {\n let gChild = childNode.children[i];\n let gHandle = childNode.handles[i];\n let gSizer = childNode.sizers[i];\n ArrayExt.insert(parentNode.children, j + i, gChild);\n ArrayExt.insert(parentNode.handles, j + i, gHandle);\n ArrayExt.insert(parentNode.sizers, j + i, gSizer);\n gChild.parent = parentNode;\n }\n\n // Clear the child node.\n childNode.children.length = 0;\n childNode.handles.length = 0;\n childNode.sizers.length = 0;\n childNode.parent = null;\n\n // Sync the handles on the parent node.\n parentNode.syncHandles();\n }\n\n /**\n * Insert a widget next to an existing tab.\n *\n * #### Notes\n * This does not attach the widget to the parent widget.\n */\n private _insertTab(\n widget: Widget,\n ref: Widget | null,\n refNode: Private.TabLayoutNode | null,\n after: boolean\n ): void {\n // Do nothing if the tab is inserted next to itself.\n if (widget === ref) {\n return;\n }\n\n // Create the root if it does not exist.\n if (!this._root) {\n let tabNode = new Private.TabLayoutNode(this._createTabBar());\n tabNode.tabBar.addTab(widget.title);\n this._root = tabNode;\n Private.addAria(widget, tabNode.tabBar);\n return;\n }\n\n // Use the first tab node as the ref node if needed.\n if (!refNode) {\n refNode = this._root.findFirstTabNode()!;\n }\n\n // If the widget is not contained in the ref node, ensure it is\n // removed from the layout and hidden before being added again.\n if (refNode.tabBar.titles.indexOf(widget.title) === -1) {\n this._removeWidget(widget);\n widget.hide();\n }\n\n // Lookup the target index for inserting the tab.\n let index: number;\n if (ref) {\n index = refNode.tabBar.titles.indexOf(ref.title);\n } else {\n index = refNode.tabBar.currentIndex;\n }\n\n // Using transform create an additional layer in the pixel pipeline\n // to limit the number of layer, it is set only if there is more than one widget.\n if (this._hiddenMode === Widget.HiddenMode.Scale) {\n if (refNode.tabBar.titles.length === 0) {\n // Singular tab should use display mode to limit number of layers.\n widget.hiddenMode = Widget.HiddenMode.Display;\n } else if (refNode.tabBar.titles.length == 1) {\n // If we are adding a second tab, switch the existing tab back to scale.\n const existingWidget = refNode.tabBar.titles[0].owner;\n existingWidget.hiddenMode = Widget.HiddenMode.Scale;\n } else {\n // For the third and subsequent tabs no special action is needed.\n widget.hiddenMode = Widget.HiddenMode.Scale;\n }\n } else {\n // For all other modes just propagate the current mode.\n widget.hiddenMode = this._hiddenMode;\n }\n\n // Insert the widget's tab relative to the target index.\n refNode.tabBar.insertTab(index + (after ? 1 : 0), widget.title);\n Private.addAria(widget, refNode.tabBar);\n }\n\n /**\n * Insert a widget as a new split area.\n *\n * #### Notes\n * This does not attach the widget to the parent widget.\n */\n private _insertSplit(\n widget: Widget,\n ref: Widget | null,\n refNode: Private.TabLayoutNode | null,\n orientation: Private.Orientation,\n after: boolean\n ): void {\n // Do nothing if there is no effective split.\n if (widget === ref && refNode && refNode.tabBar.titles.length === 1) {\n return;\n }\n\n // Ensure the widget is removed from the current layout.\n this._removeWidget(widget);\n\n // Create the tab layout node to hold the widget.\n let tabNode = new Private.TabLayoutNode(this._createTabBar());\n tabNode.tabBar.addTab(widget.title);\n Private.addAria(widget, tabNode.tabBar);\n\n // Set the root if it does not exist.\n if (!this._root) {\n this._root = tabNode;\n return;\n }\n\n // If the ref node parent is null, split the root.\n if (!refNode || !refNode.parent) {\n // Ensure the root is split with the correct orientation.\n let root = this._splitRoot(orientation);\n\n // Determine the insert index for the new tab node.\n let i = after ? root.children.length : 0;\n\n // Normalize the split node.\n root.normalizeSizes();\n\n // Create the sizer for new tab node.\n let sizer = Private.createSizer(refNode ? 1 : Private.GOLDEN_RATIO);\n\n // Insert the tab node sized to the golden ratio.\n ArrayExt.insert(root.children, i, tabNode);\n ArrayExt.insert(root.sizers, i, sizer);\n ArrayExt.insert(root.handles, i, this._createHandle());\n tabNode.parent = root;\n\n // Re-normalize the split node to maintain the ratios.\n root.normalizeSizes();\n\n // Finally, synchronize the visibility of the handles.\n root.syncHandles();\n return;\n }\n\n // Lookup the split node for the ref widget.\n let splitNode = refNode.parent;\n\n // If the split node already had the correct orientation,\n // the widget can be inserted into the split node directly.\n if (splitNode.orientation === orientation) {\n // Find the index of the ref node.\n let i = splitNode.children.indexOf(refNode);\n\n // Normalize the split node.\n splitNode.normalizeSizes();\n\n // Consume half the space for the insert location.\n let s = (splitNode.sizers[i].sizeHint /= 2);\n\n // Insert the tab node sized to the other half.\n let j = i + (after ? 1 : 0);\n ArrayExt.insert(splitNode.children, j, tabNode);\n ArrayExt.insert(splitNode.sizers, j, Private.createSizer(s));\n ArrayExt.insert(splitNode.handles, j, this._createHandle());\n tabNode.parent = splitNode;\n\n // Finally, synchronize the visibility of the handles.\n splitNode.syncHandles();\n return;\n }\n\n // Remove the ref node from the split node.\n let i = ArrayExt.removeFirstOf(splitNode.children, refNode);\n\n // Create a new normalized split node for the children.\n let childNode = new Private.SplitLayoutNode(orientation);\n childNode.normalized = true;\n\n // Add the ref node sized to half the space.\n childNode.children.push(refNode);\n childNode.sizers.push(Private.createSizer(0.5));\n childNode.handles.push(this._createHandle());\n refNode.parent = childNode;\n\n // Add the tab node sized to the other half.\n let j = after ? 1 : 0;\n ArrayExt.insert(childNode.children, j, tabNode);\n ArrayExt.insert(childNode.sizers, j, Private.createSizer(0.5));\n ArrayExt.insert(childNode.handles, j, this._createHandle());\n tabNode.parent = childNode;\n\n // Synchronize the visibility of the handles.\n childNode.syncHandles();\n\n // Finally, add the new child node to the original split node.\n ArrayExt.insert(splitNode.children, i, childNode);\n childNode.parent = splitNode;\n }\n\n /**\n * Ensure the root is a split node with the given orientation.\n */\n private _splitRoot(\n orientation: Private.Orientation\n ): Private.SplitLayoutNode {\n // Bail early if the root already meets the requirements.\n let oldRoot = this._root;\n if (oldRoot instanceof Private.SplitLayoutNode) {\n if (oldRoot.orientation === orientation) {\n return oldRoot;\n }\n }\n\n // Create a new root node with the specified orientation.\n let newRoot = (this._root = new Private.SplitLayoutNode(orientation));\n\n // Add the old root to the new root.\n if (oldRoot) {\n newRoot.children.push(oldRoot);\n newRoot.sizers.push(Private.createSizer(0));\n newRoot.handles.push(this._createHandle());\n oldRoot.parent = newRoot;\n }\n\n // Return the new root as a convenience.\n return newRoot;\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Set up the computed minimum size.\n let minW = 0;\n let minH = 0;\n\n // Update the size limits for the layout tree.\n if (this._root) {\n let limits = this._root.fit(this._spacing, this._items);\n minW = limits.minWidth;\n minH = limits.minHeight;\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Bail early if there is no root layout node.\n if (!this._root) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the actual layout bounds adjusted for border and padding.\n let x = this._box.paddingTop;\n let y = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Update the geometry of the layout tree.\n this._root.update(x, y, width, height, this._spacing, this._items);\n }\n\n /**\n * Create a new tab bar for use by the dock layout.\n *\n * #### Notes\n * The tab bar will be attached to the parent if it exists.\n */\n private _createTabBar(): TabBar {\n // Create the tab bar using the renderer.\n let tabBar = this.renderer.createTabBar(this._document);\n\n // Enforce necessary tab bar behavior.\n tabBar.orientation = 'horizontal';\n\n // Reparent and attach the tab bar to the parent if possible.\n if (this.parent) {\n tabBar.parent = this.parent;\n this.attachWidget(tabBar);\n }\n\n // Return the initialized tab bar.\n return tabBar;\n }\n\n /**\n * Create a new handle for the dock layout.\n *\n * #### Notes\n * The handle will be attached to the parent if it exists.\n */\n private _createHandle(): HTMLDivElement {\n // Create the handle using the renderer.\n let handle = this.renderer.createHandle();\n\n // Initialize the handle layout behavior.\n let style = handle.style;\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style.width = '0';\n style.height = '0';\n\n // Attach the handle to the parent if it exists.\n if (this.parent) {\n this.parent.node.appendChild(handle);\n }\n\n // Return the initialized handle.\n return handle;\n }\n\n private _spacing = 4;\n private _dirty = false;\n private _root: Private.LayoutNode | null = null;\n private _box: ElementExt.IBoxSizing | null = null;\n private _document: Document | ShadowRoot;\n private _hiddenMode: Widget.HiddenMode;\n private _items: Private.ItemMap = new Map();\n}\n\n/**\n * The namespace for the `DockLayout` class statics.\n */\nexport namespace DockLayout {\n /**\n * An options object for creating a dock layout.\n */\n export interface IOptions {\n /**\n * The document to use with the dock panel.\n *\n * The default is the global `document` instance.\n */\n document?: Document | ShadowRoot;\n\n /**\n * The method for hiding widgets.\n *\n * The default is `Widget.HiddenMode.Display`.\n */\n hiddenMode?: Widget.HiddenMode;\n\n /**\n * The renderer to use for the dock layout.\n */\n renderer: IRenderer;\n\n /**\n * The spacing between items in the layout.\n *\n * The default is `4`.\n */\n spacing?: number;\n }\n\n /**\n * A renderer for use with a dock layout.\n */\n export interface IRenderer {\n /**\n * Create a new tab bar for use with a dock layout.\n *\n * @returns A new tab bar for a dock layout.\n */\n createTabBar(document?: Document | ShadowRoot): TabBar;\n\n /**\n * Create a new handle node for use with a dock layout.\n *\n * @returns A new handle node for a dock layout.\n */\n createHandle(): HTMLDivElement;\n }\n\n /**\n * A type alias for the supported insertion modes.\n *\n * An insert mode is used to specify how a widget should be added\n * to the dock layout relative to a reference widget.\n */\n export type InsertMode =\n | /**\n * The area to the top of the reference widget.\n *\n * The widget will be inserted just above the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the top edge of the dock layout.\n */\n 'split-top'\n\n /**\n * The area to the left of the reference widget.\n *\n * The widget will be inserted just left of the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the left edge of the dock layout.\n */\n | 'split-left'\n\n /**\n * The area to the right of the reference widget.\n *\n * The widget will be inserted just right of the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the right edge of the dock layout.\n */\n | 'split-right'\n\n /**\n * The area to the bottom of the reference widget.\n *\n * The widget will be inserted just below the reference widget.\n *\n * If the reference widget is null or invalid, the widget will be\n * inserted at the bottom edge of the dock layout.\n */\n | 'split-bottom'\n\n /**\n * The tab position before the reference widget.\n *\n * The widget will be added as a tab before the reference widget.\n *\n * If the reference widget is null or invalid, a sensible default\n * will be used.\n */\n | 'tab-before'\n\n /**\n * The tab position after the reference widget.\n *\n * The widget will be added as a tab after the reference widget.\n *\n * If the reference widget is null or invalid, a sensible default\n * will be used.\n */\n | 'tab-after';\n\n /**\n * An options object for adding a widget to the dock layout.\n */\n export interface IAddOptions {\n /**\n * The insertion mode for adding the widget.\n *\n * The default is `'tab-after'`.\n */\n mode?: InsertMode;\n\n /**\n * The reference widget for the insert location.\n *\n * The default is `null`.\n */\n ref?: Widget | null;\n }\n\n /**\n * A layout config object for a tab area.\n */\n export interface ITabAreaConfig {\n /**\n * The discriminated type of the config object.\n */\n type: 'tab-area';\n\n /**\n * The widgets contained in the tab area.\n */\n widgets: Widget[];\n\n /**\n * The index of the selected tab.\n */\n currentIndex: number;\n }\n\n /**\n * A layout config object for a split area.\n */\n export interface ISplitAreaConfig {\n /**\n * The discriminated type of the config object.\n */\n type: 'split-area';\n\n /**\n * The orientation of the split area.\n */\n orientation: 'horizontal' | 'vertical';\n\n /**\n * The children in the split area.\n */\n children: AreaConfig[];\n\n /**\n * The relative sizes of the children.\n */\n sizes: number[];\n }\n\n /**\n * A type alias for a general area config.\n */\n export type AreaConfig = ITabAreaConfig | ISplitAreaConfig;\n\n /**\n * A dock layout configuration object.\n */\n export interface ILayoutConfig {\n /**\n * The layout config for the main dock area.\n */\n main: AreaConfig | null;\n }\n\n /**\n * An object which represents the geometry of a tab area.\n */\n export interface ITabAreaGeometry {\n /**\n * The tab bar for the tab area.\n */\n tabBar: TabBar;\n\n /**\n * The local X position of the hit test in the dock area.\n *\n * #### Notes\n * This is the distance from the left edge of the layout parent\n * widget, to the local X coordinate of the hit test query.\n */\n x: number;\n\n /**\n * The local Y position of the hit test in the dock area.\n *\n * #### Notes\n * This is the distance from the top edge of the layout parent\n * widget, to the local Y coordinate of the hit test query.\n */\n y: number;\n\n /**\n * The local coordinate of the top edge of the tab area.\n *\n * #### Notes\n * This is the distance from the top edge of the layout parent\n * widget, to the top edge of the tab area.\n */\n top: number;\n\n /**\n * The local coordinate of the left edge of the tab area.\n *\n * #### Notes\n * This is the distance from the left edge of the layout parent\n * widget, to the left edge of the tab area.\n */\n left: number;\n\n /**\n * The local coordinate of the right edge of the tab area.\n *\n * #### Notes\n * This is the distance from the right edge of the layout parent\n * widget, to the right edge of the tab area.\n */\n right: number;\n\n /**\n * The local coordinate of the bottom edge of the tab area.\n *\n * #### Notes\n * This is the distance from the bottom edge of the layout parent\n * widget, to the bottom edge of the tab area.\n */\n bottom: number;\n\n /**\n * The width of the tab area.\n *\n * #### Notes\n * This is total width allocated for the tab area.\n */\n width: number;\n\n /**\n * The height of the tab area.\n *\n * #### Notes\n * This is total height allocated for the tab area.\n */\n height: number;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A fraction used for sizing root panels; ~= `1 / golden_ratio`.\n */\n export const GOLDEN_RATIO = 0.618;\n\n /**\n * A type alias for a dock layout node.\n */\n export type LayoutNode = TabLayoutNode | SplitLayoutNode;\n\n /**\n * A type alias for the orientation of a split layout node.\n */\n export type Orientation = 'horizontal' | 'vertical';\n\n /**\n * A type alias for a layout item map.\n */\n export type ItemMap = Map;\n\n /**\n * Create a box sizer with an initial size hint.\n */\n export function createSizer(hint: number): BoxSizer {\n let sizer = new BoxSizer();\n sizer.sizeHint = hint;\n sizer.size = hint;\n return sizer;\n }\n\n /**\n * Normalize an area config object and collect the visited widgets.\n */\n export function normalizeAreaConfig(\n config: DockLayout.AreaConfig,\n widgetSet: Set\n ): DockLayout.AreaConfig | null {\n let result: DockLayout.AreaConfig | null;\n if (config.type === 'tab-area') {\n result = normalizeTabAreaConfig(config, widgetSet);\n } else {\n result = normalizeSplitAreaConfig(config, widgetSet);\n }\n return result;\n }\n\n /**\n * Convert a normalized area config into a layout tree.\n */\n export function realizeAreaConfig(\n config: DockLayout.AreaConfig,\n renderer: DockLayout.IRenderer,\n document: Document | ShadowRoot\n ): LayoutNode {\n let node: LayoutNode;\n if (config.type === 'tab-area') {\n node = realizeTabAreaConfig(config, renderer, document);\n } else {\n node = realizeSplitAreaConfig(config, renderer, document);\n }\n return node;\n }\n\n /**\n * A layout node which holds the data for a tabbed area.\n */\n export class TabLayoutNode {\n /**\n * Construct a new tab layout node.\n *\n * @param tabBar - The tab bar to use for the layout node.\n */\n constructor(tabBar: TabBar) {\n let tabSizer = new BoxSizer();\n let widgetSizer = new BoxSizer();\n tabSizer.stretch = 0;\n widgetSizer.stretch = 1;\n this.tabBar = tabBar;\n this.sizers = [tabSizer, widgetSizer];\n }\n\n /**\n * The parent of the layout node.\n */\n parent: SplitLayoutNode | null = null;\n\n /**\n * The tab bar for the layout node.\n */\n readonly tabBar: TabBar;\n\n /**\n * The sizers for the layout node.\n */\n readonly sizers: [BoxSizer, BoxSizer];\n\n /**\n * The most recent value for the `top` edge of the layout box.\n */\n get top(): number {\n return this._top;\n }\n\n /**\n * The most recent value for the `left` edge of the layout box.\n */\n get left(): number {\n return this._left;\n }\n\n /**\n * The most recent value for the `width` of the layout box.\n */\n get width(): number {\n return this._width;\n }\n\n /**\n * The most recent value for the `height` of the layout box.\n */\n get height(): number {\n return this._height;\n }\n\n /**\n * Create an iterator for all widgets in the layout tree.\n */\n iterAllWidgets(): IIterator {\n return chain(once(this.tabBar), this.iterUserWidgets());\n }\n\n /**\n * Create an iterator for the user widgets in the layout tree.\n */\n iterUserWidgets(): IIterator {\n return map(this.tabBar.titles, title => title.owner);\n }\n\n /**\n * Create an iterator for the selected widgets in the layout tree.\n */\n iterSelectedWidgets(): IIterator {\n let title = this.tabBar.currentTitle;\n return title ? once(title.owner) : empty();\n }\n\n /**\n * Create an iterator for the tab bars in the layout tree.\n */\n iterTabBars(): IIterator> {\n return once(this.tabBar);\n }\n\n /**\n * Create an iterator for the handles in the layout tree.\n */\n iterHandles(): IIterator {\n return empty();\n }\n\n /**\n * Find the tab layout node which contains the given widget.\n */\n findTabNode(widget: Widget): TabLayoutNode | null {\n return this.tabBar.titles.indexOf(widget.title) !== -1 ? this : null;\n }\n\n /**\n * Find the split layout node which contains the given handle.\n */\n findSplitNode(\n handle: HTMLDivElement\n ): { index: number; node: SplitLayoutNode } | null {\n return null;\n }\n\n /**\n * Find the first tab layout node in a layout tree.\n */\n findFirstTabNode(): TabLayoutNode | null {\n return this;\n }\n\n /**\n * Find the tab layout node which contains the local point.\n */\n hitTestTabNodes(x: number, y: number): TabLayoutNode | null {\n if (x < this._left || x >= this._left + this._width) {\n return null;\n }\n if (y < this._top || y >= this._top + this._height) {\n return null;\n }\n return this;\n }\n\n /**\n * Create a configuration object for the layout tree.\n */\n createConfig(): DockLayout.ITabAreaConfig {\n let widgets = this.tabBar.titles.map(title => title.owner);\n let currentIndex = this.tabBar.currentIndex;\n return { type: 'tab-area', widgets, currentIndex };\n }\n\n /**\n * Recursively hold all of the sizes in the layout tree.\n *\n * This ignores the sizers of tab layout nodes.\n */\n holdAllSizes(): void {\n return;\n }\n\n /**\n * Fit the layout tree.\n */\n fit(spacing: number, items: ItemMap): ElementExt.ISizeLimits {\n // Set up the limit variables.\n let minWidth = 0;\n let minHeight = 0;\n let maxWidth = Infinity;\n let maxHeight = Infinity;\n\n // Lookup the tab bar layout item.\n let tabBarItem = items.get(this.tabBar);\n\n // Lookup the widget layout item.\n let current = this.tabBar.currentTitle;\n let widgetItem = current ? items.get(current.owner) : undefined;\n\n // Lookup the tab bar and widget sizers.\n let [tabBarSizer, widgetSizer] = this.sizers;\n\n // Update the tab bar limits.\n if (tabBarItem) {\n tabBarItem.fit();\n }\n\n // Update the widget limits.\n if (widgetItem) {\n widgetItem.fit();\n }\n\n // Update the results and sizer for the tab bar.\n if (tabBarItem && !tabBarItem.isHidden) {\n minWidth = Math.max(minWidth, tabBarItem.minWidth);\n minHeight += tabBarItem.minHeight;\n tabBarSizer.minSize = tabBarItem.minHeight;\n tabBarSizer.maxSize = tabBarItem.maxHeight;\n } else {\n tabBarSizer.minSize = 0;\n tabBarSizer.maxSize = 0;\n }\n\n // Update the results and sizer for the current widget.\n if (widgetItem && !widgetItem.isHidden) {\n minWidth = Math.max(minWidth, widgetItem.minWidth);\n minHeight += widgetItem.minHeight;\n widgetSizer.minSize = widgetItem.minHeight;\n widgetSizer.maxSize = Infinity;\n } else {\n widgetSizer.minSize = 0;\n widgetSizer.maxSize = Infinity;\n }\n\n // Return the computed size limits for the layout node.\n return { minWidth, minHeight, maxWidth, maxHeight };\n }\n\n /**\n * Update the layout tree.\n */\n update(\n left: number,\n top: number,\n width: number,\n height: number,\n spacing: number,\n items: ItemMap\n ): void {\n // Update the layout box values.\n this._top = top;\n this._left = left;\n this._width = width;\n this._height = height;\n\n // Lookup the tab bar layout item.\n let tabBarItem = items.get(this.tabBar);\n\n // Lookup the widget layout item.\n let current = this.tabBar.currentTitle;\n let widgetItem = current ? items.get(current.owner) : undefined;\n\n // Distribute the layout space to the sizers.\n BoxEngine.calc(this.sizers, height);\n\n // Update the tab bar item using the computed size.\n if (tabBarItem && !tabBarItem.isHidden) {\n let size = this.sizers[0].size;\n tabBarItem.update(left, top, width, size);\n top += size;\n }\n\n // Layout the widget using the computed size.\n if (widgetItem && !widgetItem.isHidden) {\n let size = this.sizers[1].size;\n widgetItem.update(left, top, width, size);\n }\n }\n\n private _top = 0;\n private _left = 0;\n private _width = 0;\n private _height = 0;\n }\n\n /**\n * A layout node which holds the data for a split area.\n */\n export class SplitLayoutNode {\n /**\n * Construct a new split layout node.\n *\n * @param orientation - The orientation of the node.\n */\n constructor(orientation: Orientation) {\n this.orientation = orientation;\n }\n\n /**\n * The parent of the layout node.\n */\n parent: SplitLayoutNode | null = null;\n\n /**\n * Whether the sizers have been normalized.\n */\n normalized = false;\n\n /**\n * The orientation of the node.\n */\n readonly orientation: Orientation;\n\n /**\n * The child nodes for the split node.\n */\n readonly children: LayoutNode[] = [];\n\n /**\n * The box sizers for the layout children.\n */\n readonly sizers: BoxSizer[] = [];\n\n /**\n * The handles for the layout children.\n */\n readonly handles: HTMLDivElement[] = [];\n\n /**\n * Create an iterator for all widgets in the layout tree.\n */\n iterAllWidgets(): IIterator {\n let children = map(this.children, child => child.iterAllWidgets());\n return new ChainIterator(children);\n }\n\n /**\n * Create an iterator for the user widgets in the layout tree.\n */\n iterUserWidgets(): IIterator {\n let children = map(this.children, child => child.iterUserWidgets());\n return new ChainIterator(children);\n }\n\n /**\n * Create an iterator for the selected widgets in the layout tree.\n */\n iterSelectedWidgets(): IIterator {\n let children = map(this.children, child => child.iterSelectedWidgets());\n return new ChainIterator(children);\n }\n\n /**\n * Create an iterator for the tab bars in the layout tree.\n */\n iterTabBars(): IIterator> {\n let children = map(this.children, child => child.iterTabBars());\n return new ChainIterator>(children);\n }\n\n /**\n * Create an iterator for the handles in the layout tree.\n */\n iterHandles(): IIterator {\n let children = map(this.children, child => child.iterHandles());\n return chain(this.handles, new ChainIterator(children));\n }\n\n /**\n * Find the tab layout node which contains the given widget.\n */\n findTabNode(widget: Widget): TabLayoutNode | null {\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let result = this.children[i].findTabNode(widget);\n if (result) {\n return result;\n }\n }\n return null;\n }\n\n /**\n * Find the split layout node which contains the given handle.\n */\n findSplitNode(\n handle: HTMLDivElement\n ): { index: number; node: SplitLayoutNode } | null {\n let index = this.handles.indexOf(handle);\n if (index !== -1) {\n return { index, node: this };\n }\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let result = this.children[i].findSplitNode(handle);\n if (result) {\n return result;\n }\n }\n return null;\n }\n\n /**\n * Find the first tab layout node in a layout tree.\n */\n findFirstTabNode(): TabLayoutNode | null {\n if (this.children.length === 0) {\n return null;\n }\n return this.children[0].findFirstTabNode();\n }\n\n /**\n * Find the tab layout node which contains the local point.\n */\n hitTestTabNodes(x: number, y: number): TabLayoutNode | null {\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let result = this.children[i].hitTestTabNodes(x, y);\n if (result) {\n return result;\n }\n }\n return null;\n }\n\n /**\n * Create a configuration object for the layout tree.\n */\n createConfig(): DockLayout.ISplitAreaConfig {\n let orientation = this.orientation;\n let sizes = this.createNormalizedSizes();\n let children = this.children.map(child => child.createConfig());\n return { type: 'split-area', orientation, children, sizes };\n }\n\n /**\n * Sync the visibility and orientation of the handles.\n */\n syncHandles(): void {\n each(this.handles, (handle, i) => {\n handle.setAttribute('data-orientation', this.orientation);\n if (i === this.handles.length - 1) {\n handle.classList.add('lm-mod-hidden');\n /* */\n handle.classList.add('p-mod-hidden');\n /* */\n } else {\n handle.classList.remove('lm-mod-hidden');\n /* */\n handle.classList.remove('p-mod-hidden');\n /* */\n }\n });\n }\n\n /**\n * Hold the current sizes of the box sizers.\n *\n * This sets the size hint of each sizer to its current size.\n */\n holdSizes(): void {\n each(this.sizers, sizer => {\n sizer.sizeHint = sizer.size;\n });\n }\n\n /**\n * Recursively hold all of the sizes in the layout tree.\n *\n * This ignores the sizers of tab layout nodes.\n */\n holdAllSizes(): void {\n each(this.children, child => child.holdAllSizes());\n this.holdSizes();\n }\n\n /**\n * Normalize the sizes of the split layout node.\n */\n normalizeSizes(): void {\n // Bail early if the sizers are empty.\n let n = this.sizers.length;\n if (n === 0) {\n return;\n }\n\n // Hold the current sizes of the sizers.\n this.holdSizes();\n\n // Compute the sum of the sizes.\n let sum = reduce(this.sizers, (v, sizer) => v + sizer.sizeHint, 0);\n\n // Normalize the sizes based on the sum.\n if (sum === 0) {\n each(this.sizers, sizer => {\n sizer.size = sizer.sizeHint = 1 / n;\n });\n } else {\n each(this.sizers, sizer => {\n sizer.size = sizer.sizeHint /= sum;\n });\n }\n\n // Mark the sizes as normalized.\n this.normalized = true;\n }\n\n /**\n * Snap the normalized sizes of the split layout node.\n */\n createNormalizedSizes(): number[] {\n // Bail early if the sizers are empty.\n let n = this.sizers.length;\n if (n === 0) {\n return [];\n }\n\n // Grab the current sizes of the sizers.\n let sizes = this.sizers.map(sizer => sizer.size);\n\n // Compute the sum of the sizes.\n let sum = reduce(sizes, (v, size) => v + size, 0);\n\n // Normalize the sizes based on the sum.\n if (sum === 0) {\n each(sizes, (size, i) => {\n sizes[i] = 1 / n;\n });\n } else {\n each(sizes, (size, i) => {\n sizes[i] = size / sum;\n });\n }\n\n // Return the normalized sizes.\n return sizes;\n }\n\n /**\n * Fit the layout tree.\n */\n fit(spacing: number, items: ItemMap): ElementExt.ISizeLimits {\n // Compute the required fixed space.\n let horizontal = this.orientation === 'horizontal';\n let fixed = Math.max(0, this.children.length - 1) * spacing;\n\n // Set up the limit variables.\n let minWidth = horizontal ? fixed : 0;\n let minHeight = horizontal ? 0 : fixed;\n let maxWidth = Infinity;\n let maxHeight = Infinity;\n\n // Fit the children and update the limits.\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let limits = this.children[i].fit(spacing, items);\n if (horizontal) {\n minHeight = Math.max(minHeight, limits.minHeight);\n minWidth += limits.minWidth;\n this.sizers[i].minSize = limits.minWidth;\n } else {\n minWidth = Math.max(minWidth, limits.minWidth);\n minHeight += limits.minHeight;\n this.sizers[i].minSize = limits.minHeight;\n }\n }\n\n // Return the computed limits for the layout node.\n return { minWidth, minHeight, maxWidth, maxHeight };\n }\n\n /**\n * Update the layout tree.\n */\n update(\n left: number,\n top: number,\n width: number,\n height: number,\n spacing: number,\n items: ItemMap\n ): void {\n // Compute the available layout space.\n let horizontal = this.orientation === 'horizontal';\n let fixed = Math.max(0, this.children.length - 1) * spacing;\n let space = Math.max(0, (horizontal ? width : height) - fixed);\n\n // De-normalize the sizes if needed.\n if (this.normalized) {\n each(this.sizers, sizer => {\n sizer.sizeHint *= space;\n });\n this.normalized = false;\n }\n\n // Distribute the layout space to the sizers.\n BoxEngine.calc(this.sizers, space);\n\n // Update the geometry of the child nodes and handles.\n for (let i = 0, n = this.children.length; i < n; ++i) {\n let child = this.children[i];\n let size = this.sizers[i].size;\n let handleStyle = this.handles[i].style;\n if (horizontal) {\n child.update(left, top, size, height, spacing, items);\n left += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${spacing}px`;\n handleStyle.height = `${height}px`;\n left += spacing;\n } else {\n child.update(left, top, width, size, spacing, items);\n top += size;\n handleStyle.top = `${top}px`;\n handleStyle.left = `${left}px`;\n handleStyle.width = `${width}px`;\n handleStyle.height = `${spacing}px`;\n top += spacing;\n }\n }\n }\n }\n\n export function addAria(widget: Widget, tabBar: TabBar) {\n widget.node.setAttribute('role', 'tabpanel');\n let renderer = tabBar.renderer;\n if (renderer instanceof TabBar.Renderer) {\n let tabId = renderer.createTabKey({\n title: widget.title,\n current: false,\n zIndex: 0\n });\n widget.node.setAttribute('aria-labelledby', tabId);\n }\n }\n\n export function removeAria(widget: Widget) {\n widget.node.removeAttribute('role');\n widget.node.removeAttribute('aria-labelledby');\n }\n\n /**\n * Normalize a tab area config and collect the visited widgets.\n */\n function normalizeTabAreaConfig(\n config: DockLayout.ITabAreaConfig,\n widgetSet: Set\n ): DockLayout.ITabAreaConfig | null {\n // Bail early if there is no content.\n if (config.widgets.length === 0) {\n return null;\n }\n\n // Setup the filtered widgets array.\n let widgets: Widget[] = [];\n\n // Filter the config for unique widgets.\n each(config.widgets, widget => {\n if (!widgetSet.has(widget)) {\n widgetSet.add(widget);\n widgets.push(widget);\n }\n });\n\n // Bail if there are no effective widgets.\n if (widgets.length === 0) {\n return null;\n }\n\n // Normalize the current index.\n let index = config.currentIndex;\n if (index !== -1 && (index < 0 || index >= widgets.length)) {\n index = 0;\n }\n\n // Return a normalized config object.\n return { type: 'tab-area', widgets, currentIndex: index };\n }\n\n /**\n * Normalize a split area config and collect the visited widgets.\n */\n function normalizeSplitAreaConfig(\n config: DockLayout.ISplitAreaConfig,\n widgetSet: Set\n ): DockLayout.AreaConfig | null {\n // Set up the result variables.\n let orientation = config.orientation;\n let children: DockLayout.AreaConfig[] = [];\n let sizes: number[] = [];\n\n // Normalize the config children.\n for (let i = 0, n = config.children.length; i < n; ++i) {\n // Normalize the child config.\n let child = normalizeAreaConfig(config.children[i], widgetSet);\n\n // Ignore an empty child.\n if (!child) {\n continue;\n }\n\n // Add the child or hoist its content as appropriate.\n if (child.type === 'tab-area' || child.orientation !== orientation) {\n children.push(child);\n sizes.push(Math.abs(config.sizes[i] || 0));\n } else {\n children.push(...child.children);\n sizes.push(...child.sizes);\n }\n }\n\n // Bail if there are no effective children.\n if (children.length === 0) {\n return null;\n }\n\n // If there is only one effective child, return that child.\n if (children.length === 1) {\n return children[0];\n }\n\n // Return a normalized config object.\n return { type: 'split-area', orientation, children, sizes };\n }\n\n /**\n * Convert a normalized tab area config into a layout tree.\n */\n function realizeTabAreaConfig(\n config: DockLayout.ITabAreaConfig,\n renderer: DockLayout.IRenderer,\n document: Document | ShadowRoot\n ): TabLayoutNode {\n // Create the tab bar for the layout node.\n let tabBar = renderer.createTabBar(document);\n\n // Hide each widget and add it to the tab bar.\n each(config.widgets, widget => {\n widget.hide();\n tabBar.addTab(widget.title);\n Private.addAria(widget, tabBar);\n });\n\n // Set the current index of the tab bar.\n tabBar.currentIndex = config.currentIndex;\n\n // Return the new tab layout node.\n return new TabLayoutNode(tabBar);\n }\n\n /**\n * Convert a normalized split area config into a layout tree.\n */\n function realizeSplitAreaConfig(\n config: DockLayout.ISplitAreaConfig,\n renderer: DockLayout.IRenderer,\n document: Document | ShadowRoot\n ): SplitLayoutNode {\n // Create the split layout node.\n let node = new SplitLayoutNode(config.orientation);\n\n // Add each child to the layout node.\n each(config.children, (child, i) => {\n // Create the child data for the layout node.\n let childNode = realizeAreaConfig(child, renderer, document);\n let sizer = createSizer(config.sizes[i]);\n let handle = renderer.createHandle();\n\n // Add the child data to the layout node.\n node.children.push(childNode);\n node.handles.push(handle);\n node.sizers.push(sizer);\n\n // Update the parent for the child node.\n childNode.parent = node;\n });\n\n // Synchronize the handle state for the layout node.\n node.syncHandles();\n\n // Normalize the sizes for the layout node.\n node.normalizeSizes();\n\n // Return the new layout node.\n return node;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, find, IIterator, toArray } from '@lumino/algorithm';\n\nimport { MimeData } from '@lumino/coreutils';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt, Platform } from '@lumino/domutils';\n\nimport { Drag, IDragEvent } from '@lumino/dragdrop';\n\nimport { ConflatableMessage, Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { DockLayout } from './docklayout';\n\nimport { TabBar } from './tabbar';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which provides a flexible docking area for widgets.\n */\nexport class DockPanel extends Widget {\n /**\n * Construct a new dock panel.\n *\n * @param options - The options for initializing the panel.\n */\n constructor(options: DockPanel.IOptions = {}) {\n super();\n this.addClass('lm-DockPanel');\n /* */\n this.addClass('p-DockPanel');\n /* */\n this._document = options.document || document;\n this._mode = options.mode || 'multiple-document';\n this._renderer = options.renderer || DockPanel.defaultRenderer;\n this._edges = options.edges || Private.DEFAULT_EDGES;\n if (options.tabsMovable !== undefined) {\n this._tabsMovable = options.tabsMovable;\n }\n if (options.tabsConstrained !== undefined) {\n this._tabsConstrained = options.tabsConstrained;\n }\n if (options.addButtonEnabled !== undefined) {\n this._addButtonEnabled = options.addButtonEnabled;\n }\n\n // Toggle the CSS mode attribute.\n this.dataset['mode'] = this._mode;\n\n // Create the delegate renderer for the layout.\n let renderer: DockPanel.IRenderer = {\n createTabBar: () => this._createTabBar(),\n createHandle: () => this._createHandle()\n };\n\n // Set up the dock layout for the panel.\n this.layout = new DockLayout({\n document: this._document,\n renderer,\n spacing: options.spacing,\n hiddenMode: options.hiddenMode\n });\n\n // Set up the overlay drop indicator.\n this.overlay = options.overlay || new DockPanel.Overlay();\n this.node.appendChild(this.overlay.node);\n }\n\n /**\n * Dispose of the resources held by the panel.\n */\n dispose(): void {\n // Ensure the mouse is released.\n this._releaseMouse();\n\n // Hide the overlay.\n this.overlay.hide(0);\n\n // Cancel a drag if one is in progress.\n if (this._drag) {\n this._drag.dispose();\n }\n\n // Dispose of the base class.\n super.dispose();\n }\n\n /**\n * The method for hiding widgets.\n */\n get hiddenMode(): Widget.HiddenMode {\n return (this.layout as DockLayout).hiddenMode;\n }\n\n /**\n * Set the method for hiding widgets.\n */\n set hiddenMode(v: Widget.HiddenMode) {\n (this.layout as DockLayout).hiddenMode = v;\n }\n\n /**\n * A signal emitted when the layout configuration is modified.\n *\n * #### Notes\n * This signal is emitted whenever the current layout configuration\n * may have changed.\n *\n * This signal is emitted asynchronously in a collapsed fashion, so\n * that multiple synchronous modifications results in only a single\n * emit of the signal.\n */\n get layoutModified(): ISignal {\n return this._layoutModified;\n }\n\n /**\n * A signal emitted when the add button on a tab bar is clicked.\n *\n */\n get addRequested(): ISignal> {\n return this._addRequested;\n }\n\n /**\n * The overlay used by the dock panel.\n */\n readonly overlay: DockPanel.IOverlay;\n\n /**\n * The renderer used by the dock panel.\n */\n get renderer(): DockPanel.IRenderer {\n return (this.layout as DockLayout).renderer;\n }\n\n /**\n * Get the spacing between the widgets.\n */\n get spacing(): number {\n return (this.layout as DockLayout).spacing;\n }\n\n /**\n * Set the spacing between the widgets.\n */\n set spacing(value: number) {\n (this.layout as DockLayout).spacing = value;\n }\n\n /**\n * Get the mode for the dock panel.\n */\n get mode(): DockPanel.Mode {\n return this._mode;\n }\n\n /**\n * Set the mode for the dock panel.\n *\n * #### Notes\n * Changing the mode is a destructive operation with respect to the\n * panel's layout configuration. If layout state must be preserved,\n * save the current layout config before changing the mode.\n */\n set mode(value: DockPanel.Mode) {\n // Bail early if the mode does not change.\n if (this._mode === value) {\n return;\n }\n\n // Update the internal mode.\n this._mode = value;\n\n // Toggle the CSS mode attribute.\n this.dataset['mode'] = value;\n\n // Get the layout for the panel.\n let layout = this.layout as DockLayout;\n\n // Configure the layout for the specified mode.\n switch (value) {\n case 'multiple-document':\n each(layout.tabBars(), tabBar => {\n tabBar.show();\n });\n break;\n case 'single-document':\n layout.restoreLayout(Private.createSingleDocumentConfig(this));\n break;\n default:\n throw 'unreachable';\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Whether the tabs can be dragged / moved at runtime.\n */\n get tabsMovable(): boolean {\n return this._tabsMovable;\n }\n\n /**\n * Enable / Disable draggable / movable tabs.\n */\n set tabsMovable(value: boolean) {\n this._tabsMovable = value;\n each(this.tabBars(), tabbar => {\n tabbar.tabsMovable = value;\n });\n }\n\n /**\n * Whether the tabs are constrained to their source dock panel\n */\n get tabsConstrained(): boolean {\n return this._tabsConstrained;\n }\n\n /**\n * Constrain/Allow tabs to be dragged outside of this dock panel\n */\n set tabsConstrained(value: boolean) {\n this._tabsConstrained = value;\n }\n\n /**\n * Whether the add buttons for each tab bar are enabled.\n */\n get addButtonEnabled(): boolean {\n return this._addButtonEnabled;\n }\n\n /**\n * Set whether the add buttons for each tab bar are enabled.\n */\n set addButtonEnabled(value: boolean) {\n this._addButtonEnabled = value;\n each(this.tabBars(), tabbar => {\n tabbar.addButtonEnabled = value;\n });\n }\n\n /**\n * Whether the dock panel is empty.\n */\n get isEmpty(): boolean {\n return (this.layout as DockLayout).isEmpty;\n }\n\n /**\n * Create an iterator over the user widgets in the panel.\n *\n * @returns A new iterator over the user widgets in the panel.\n *\n * #### Notes\n * This iterator does not include the generated tab bars.\n */\n widgets(): IIterator {\n return (this.layout as DockLayout).widgets();\n }\n\n /**\n * Create an iterator over the selected widgets in the panel.\n *\n * @returns A new iterator over the selected user widgets.\n *\n * #### Notes\n * This iterator yields the widgets corresponding to the current tab\n * of each tab bar in the panel.\n */\n selectedWidgets(): IIterator {\n return (this.layout as DockLayout).selectedWidgets();\n }\n\n /**\n * Create an iterator over the tab bars in the panel.\n *\n * @returns A new iterator over the tab bars in the panel.\n *\n * #### Notes\n * This iterator does not include the user widgets.\n */\n tabBars(): IIterator> {\n return (this.layout as DockLayout).tabBars();\n }\n\n /**\n * Create an iterator over the handles in the panel.\n *\n * @returns A new iterator over the handles in the panel.\n */\n handles(): IIterator {\n return (this.layout as DockLayout).handles();\n }\n\n /**\n * Select a specific widget in the dock panel.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * This will make the widget the current widget in its tab area.\n */\n selectWidget(widget: Widget): void {\n // Find the tab bar which contains the widget.\n let tabBar = find(this.tabBars(), bar => {\n return bar.titles.indexOf(widget.title) !== -1;\n });\n\n // Throw an error if no tab bar is found.\n if (!tabBar) {\n throw new Error('Widget is not contained in the dock panel.');\n }\n\n // Ensure the widget is the current widget.\n tabBar.currentTitle = widget.title;\n }\n\n /**\n * Activate a specified widget in the dock panel.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * This will select and activate the given widget.\n */\n activateWidget(widget: Widget): void {\n this.selectWidget(widget);\n widget.activate();\n }\n\n /**\n * Save the current layout configuration of the dock panel.\n *\n * @returns A new config object for the current layout state.\n *\n * #### Notes\n * The return value can be provided to the `restoreLayout` method\n * in order to restore the layout to its current configuration.\n */\n saveLayout(): DockPanel.ILayoutConfig {\n return (this.layout as DockLayout).saveLayout();\n }\n\n /**\n * Restore the layout to a previously saved configuration.\n *\n * @param config - The layout configuration to restore.\n *\n * #### Notes\n * Widgets which currently belong to the layout but which are not\n * contained in the config will be unparented.\n *\n * The dock panel automatically reverts to `'multiple-document'`\n * mode when a layout config is restored.\n */\n restoreLayout(config: DockPanel.ILayoutConfig): void {\n // Reset the mode.\n this._mode = 'multiple-document';\n\n // Restore the layout.\n (this.layout as DockLayout).restoreLayout(config);\n\n // Flush the message loop on IE and Edge to prevent flicker.\n if (Platform.IS_EDGE || Platform.IS_IE) {\n MessageLoop.flush();\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Add a widget to the dock panel.\n *\n * @param widget - The widget to add to the dock panel.\n *\n * @param options - The additional options for adding the widget.\n *\n * #### Notes\n * If the panel is in single document mode, the options are ignored\n * and the widget is always added as tab in the hidden tab bar.\n */\n addWidget(widget: Widget, options: DockPanel.IAddOptions = {}): void {\n // Add the widget to the layout.\n if (this._mode === 'single-document') {\n (this.layout as DockLayout).addWidget(widget);\n } else {\n (this.layout as DockLayout).addWidget(widget, options);\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Process a message sent to the widget.\n *\n * @param msg - The message sent to the widget.\n */\n processMessage(msg: Message): void {\n if (msg.type === 'layout-modified') {\n this._layoutModified.emit(undefined);\n } else {\n super.processMessage(msg);\n }\n }\n\n /**\n * Handle the DOM events for the dock panel.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the panel's DOM node. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'lm-dragenter':\n this._evtDragEnter(event as IDragEvent);\n break;\n case 'lm-dragleave':\n this._evtDragLeave(event as IDragEvent);\n break;\n case 'lm-dragover':\n this._evtDragOver(event as IDragEvent);\n break;\n case 'lm-drop':\n this._evtDrop(event as IDragEvent);\n break;\n case 'mousedown': // \n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove': // \n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup': // \n this._evtMouseUp(event as MouseEvent);\n break;\n case 'pointerdown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'pointermove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'pointerup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('lm-dragenter', this);\n this.node.addEventListener('lm-dragleave', this);\n this.node.addEventListener('lm-dragover', this);\n this.node.addEventListener('lm-drop', this);\n this.node.addEventListener('mousedown', this); // \n this.node.addEventListener('pointerdown', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('lm-dragenter', this);\n this.node.removeEventListener('lm-dragleave', this);\n this.node.removeEventListener('lm-dragover', this);\n this.node.removeEventListener('lm-drop', this);\n this.node.removeEventListener('mousedown', this); // \n this.node.removeEventListener('pointerdown', this);\n this._releaseMouse();\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n // Ignore the generated tab bars.\n if (Private.isGeneratedTabBarProperty.get(msg.child)) {\n return;\n }\n\n // Add the widget class to the child.\n msg.child.addClass('lm-DockPanel-widget');\n /* */\n msg.child.addClass('p-DockPanel-widget');\n /* */\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n // Ignore the generated tab bars.\n if (Private.isGeneratedTabBarProperty.get(msg.child)) {\n return;\n }\n\n // Remove the widget class from the child.\n msg.child.removeClass('lm-DockPanel-widget');\n /* */\n msg.child.removeClass('p-DockPanel-widget');\n /* */\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Handle the `'lm-dragenter'` event for the dock panel.\n */\n private _evtDragEnter(event: IDragEvent): void {\n // If the factory mime type is present, mark the event as\n // handled in order to get the rest of the drag events.\n if (event.mimeData.hasData('application/vnd.lumino.widget-factory')) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n\n /**\n * Handle the `'lm-dragleave'` event for the dock panel.\n */\n private _evtDragLeave(event: IDragEvent): void {\n // Mark the event as handled.\n event.preventDefault();\n\n if (this._tabsConstrained && event.source !== this) return;\n\n event.stopPropagation();\n\n // The new target might be a descendant, so we might still handle the drop.\n // Hide asynchronously so that if a lm-dragover event bubbles up to us, the\n // hide is cancelled by the lm-dragover handler's show overlay logic.\n this.overlay.hide(1);\n }\n\n /**\n * Handle the `'lm-dragover'` event for the dock panel.\n */\n private _evtDragOver(event: IDragEvent): void {\n // Mark the event as handled.\n event.preventDefault();\n\n // Show the drop indicator overlay and update the drop\n // action based on the drop target zone under the mouse.\n if (\n (this._tabsConstrained && event.source !== this) ||\n this._showOverlay(event.clientX, event.clientY) === 'invalid'\n ) {\n event.dropAction = 'none';\n } else {\n event.stopPropagation();\n event.dropAction = event.proposedAction;\n }\n }\n\n /**\n * Handle the `'lm-drop'` event for the dock panel.\n */\n private _evtDrop(event: IDragEvent): void {\n // Mark the event as handled.\n event.preventDefault();\n\n // Hide the drop indicator overlay.\n this.overlay.hide(0);\n\n // Bail if the proposed action is to do nothing.\n if (event.proposedAction === 'none') {\n event.dropAction = 'none';\n return;\n }\n\n // Find the drop target under the mouse.\n let { clientX, clientY } = event;\n let { zone, target } = Private.findDropTarget(\n this,\n clientX,\n clientY,\n this._edges\n );\n\n // Bail if the drop zone is invalid.\n if (\n (this._tabsConstrained && event.source !== this) ||\n zone === 'invalid'\n ) {\n event.dropAction = 'none';\n return;\n }\n\n // Bail if the factory mime type has invalid data.\n let mimeData = event.mimeData;\n let factory = mimeData.getData('application/vnd.lumino.widget-factory');\n if (typeof factory !== 'function') {\n event.dropAction = 'none';\n return;\n }\n\n // Bail if the factory does not produce a widget.\n let widget = factory();\n if (!(widget instanceof Widget)) {\n event.dropAction = 'none';\n return;\n }\n\n // Bail if the widget is an ancestor of the dock panel.\n if (widget.contains(this)) {\n event.dropAction = 'none';\n return;\n }\n\n // Find the reference widget for the drop target.\n let ref = target ? Private.getDropRef(target.tabBar) : null;\n\n // Add the widget according to the indicated drop zone.\n switch (zone) {\n case 'root-all':\n this.addWidget(widget);\n break;\n case 'root-top':\n this.addWidget(widget, { mode: 'split-top' });\n break;\n case 'root-left':\n this.addWidget(widget, { mode: 'split-left' });\n break;\n case 'root-right':\n this.addWidget(widget, { mode: 'split-right' });\n break;\n case 'root-bottom':\n this.addWidget(widget, { mode: 'split-bottom' });\n break;\n case 'widget-all':\n this.addWidget(widget, { mode: 'tab-after', ref });\n break;\n case 'widget-top':\n this.addWidget(widget, { mode: 'split-top', ref });\n break;\n case 'widget-left':\n this.addWidget(widget, { mode: 'split-left', ref });\n break;\n case 'widget-right':\n this.addWidget(widget, { mode: 'split-right', ref });\n break;\n case 'widget-bottom':\n this.addWidget(widget, { mode: 'split-bottom', ref });\n break;\n case 'widget-tab':\n this.addWidget(widget, { mode: 'tab-after', ref });\n break;\n default:\n throw 'unreachable';\n }\n\n // Accept the proposed drop action.\n event.dropAction = event.proposedAction;\n\n // Stop propagation if we have not bailed so far.\n event.stopPropagation();\n\n // Activate the dropped widget.\n this.activateWidget(widget);\n }\n\n /**\n * Handle the `'keydown'` event for the dock panel.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop input events during drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Release the mouse if `Escape` is pressed.\n if (event.keyCode === 27) {\n // Finalize the mouse release.\n this._releaseMouse();\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the dock panel.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if the left mouse button is not pressed.\n if (event.button !== 0) {\n return;\n }\n\n // Find the handle which contains the mouse target, if any.\n let layout = this.layout as DockLayout;\n let target = event.target as HTMLElement;\n let handle = find(layout.handles(), handle => handle.contains(target));\n if (!handle) {\n return;\n }\n\n // Stop the event when a handle is pressed.\n event.preventDefault();\n event.stopPropagation();\n\n // Add the extra document listeners.\n this._document.addEventListener('keydown', this, true);\n this._document.addEventListener('mouseup', this, true); // \n this._document.addEventListener('mousemove', this, true); // \n this._document.addEventListener('pointerup', this, true);\n this._document.addEventListener('pointermove', this, true);\n this._document.addEventListener('contextmenu', this, true);\n\n // Compute the offset deltas for the handle press.\n let rect = handle.getBoundingClientRect();\n let deltaX = event.clientX - rect.left;\n let deltaY = event.clientY - rect.top;\n\n // Override the cursor and store the press data.\n let style = window.getComputedStyle(handle);\n let override = Drag.overrideCursor(style.cursor!, this._document);\n this._pressData = { handle, deltaX, deltaY, override };\n }\n\n /**\n * Handle the `'mousemove'` event for the dock panel.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Bail early if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Stop the event when dragging a handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Compute the desired offset position for the handle.\n let rect = this.node.getBoundingClientRect();\n let xPos = event.clientX - rect.left - this._pressData.deltaX;\n let yPos = event.clientY - rect.top - this._pressData.deltaY;\n\n // Set the handle as close to the desired position as possible.\n let layout = this.layout as DockLayout;\n layout.moveHandle(this._pressData.handle, xPos, yPos);\n }\n\n /**\n * Handle the `'mouseup'` event for the dock panel.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if the left mouse button is not released.\n if (event.button !== 0) {\n return;\n }\n\n // Stop the event when releasing a handle.\n event.preventDefault();\n event.stopPropagation();\n\n // Finalize the mouse release.\n this._releaseMouse();\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Release the mouse grab for the dock panel.\n */\n private _releaseMouse(): void {\n // Bail early if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Clear the override cursor.\n this._pressData.override.dispose();\n this._pressData = null;\n\n // Remove the extra document listeners.\n this._document.removeEventListener('keydown', this, true);\n this._document.removeEventListener('mouseup', this, true); // \n this._document.removeEventListener('mousemove', this, true); // \n this._document.removeEventListener('pointerup', this, true);\n this._document.removeEventListener('pointermove', this, true);\n this._document.removeEventListener('contextmenu', this, true);\n }\n\n /**\n * Show the overlay indicator at the given client position.\n *\n * Returns the drop zone at the specified client position.\n *\n * #### Notes\n * If the position is not over a valid zone, the overlay is hidden.\n */\n private _showOverlay(clientX: number, clientY: number): Private.DropZone {\n // Find the dock target for the given client position.\n let { zone, target } = Private.findDropTarget(\n this,\n clientX,\n clientY,\n this._edges\n );\n\n // If the drop zone is invalid, hide the overlay and bail.\n if (zone === 'invalid') {\n this.overlay.hide(100);\n return zone;\n }\n\n // Setup the variables needed to compute the overlay geometry.\n let top: number;\n let left: number;\n let right: number;\n let bottom: number;\n let box = ElementExt.boxSizing(this.node); // TODO cache this?\n let rect = this.node.getBoundingClientRect();\n\n // Compute the overlay geometry based on the dock zone.\n switch (zone) {\n case 'root-all':\n top = box.paddingTop;\n left = box.paddingLeft;\n right = box.paddingRight;\n bottom = box.paddingBottom;\n break;\n case 'root-top':\n top = box.paddingTop;\n left = box.paddingLeft;\n right = box.paddingRight;\n bottom = rect.height * Private.GOLDEN_RATIO;\n break;\n case 'root-left':\n top = box.paddingTop;\n left = box.paddingLeft;\n right = rect.width * Private.GOLDEN_RATIO;\n bottom = box.paddingBottom;\n break;\n case 'root-right':\n top = box.paddingTop;\n left = rect.width * Private.GOLDEN_RATIO;\n right = box.paddingRight;\n bottom = box.paddingBottom;\n break;\n case 'root-bottom':\n top = rect.height * Private.GOLDEN_RATIO;\n left = box.paddingLeft;\n right = box.paddingRight;\n bottom = box.paddingBottom;\n break;\n case 'widget-all':\n top = target!.top;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom;\n break;\n case 'widget-top':\n top = target!.top;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom + target!.height / 2;\n break;\n case 'widget-left':\n top = target!.top;\n left = target!.left;\n right = target!.right + target!.width / 2;\n bottom = target!.bottom;\n break;\n case 'widget-right':\n top = target!.top;\n left = target!.left + target!.width / 2;\n right = target!.right;\n bottom = target!.bottom;\n break;\n case 'widget-bottom':\n top = target!.top + target!.height / 2;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom;\n break;\n case 'widget-tab':\n const tabHeight = target!.tabBar.node.getBoundingClientRect().height;\n top = target!.top;\n left = target!.left;\n right = target!.right;\n bottom = target!.bottom + target!.height - tabHeight;\n break;\n default:\n throw 'unreachable';\n }\n\n // Show the overlay with the computed geometry.\n this.overlay.show({ top, left, right, bottom });\n\n // Finally, return the computed drop zone.\n return zone;\n }\n\n /**\n * Create a new tab bar for use by the panel.\n */\n private _createTabBar(): TabBar {\n // Create the tab bar.\n let tabBar = this._renderer.createTabBar(this._document);\n\n // Set the generated tab bar property for the tab bar.\n Private.isGeneratedTabBarProperty.set(tabBar, true);\n\n // Hide the tab bar when in single document mode.\n if (this._mode === 'single-document') {\n tabBar.hide();\n }\n\n // Enforce necessary tab bar behavior.\n // TODO do we really want to enforce *all* of these?\n tabBar.tabsMovable = this._tabsMovable;\n tabBar.allowDeselect = false;\n tabBar.addButtonEnabled = this._addButtonEnabled;\n tabBar.removeBehavior = 'select-previous-tab';\n tabBar.insertBehavior = 'select-tab-if-needed';\n\n // Connect the signal handlers for the tab bar.\n tabBar.tabMoved.connect(this._onTabMoved, this);\n tabBar.currentChanged.connect(this._onCurrentChanged, this);\n tabBar.tabCloseRequested.connect(this._onTabCloseRequested, this);\n tabBar.tabDetachRequested.connect(this._onTabDetachRequested, this);\n tabBar.tabActivateRequested.connect(this._onTabActivateRequested, this);\n tabBar.addRequested.connect(this._onTabAddRequested, this);\n\n // Return the initialized tab bar.\n return tabBar;\n }\n\n /**\n * Create a new handle for use by the panel.\n */\n private _createHandle(): HTMLDivElement {\n return this._renderer.createHandle();\n }\n\n /**\n * Handle the `tabMoved` signal from a tab bar.\n */\n private _onTabMoved(): void {\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Handle the `currentChanged` signal from a tab bar.\n */\n private _onCurrentChanged(\n sender: TabBar,\n args: TabBar.ICurrentChangedArgs\n ): void {\n // Extract the previous and current title from the args.\n let { previousTitle, currentTitle } = args;\n\n // Hide the previous widget.\n if (previousTitle) {\n previousTitle.owner.hide();\n }\n\n // Show the current widget.\n if (currentTitle) {\n currentTitle.owner.show();\n }\n\n // Flush the message loop on IE and Edge to prevent flicker.\n if (Platform.IS_EDGE || Platform.IS_IE) {\n MessageLoop.flush();\n }\n\n // Schedule an emit of the layout modified signal.\n MessageLoop.postMessage(this, Private.LayoutModified);\n }\n\n /**\n * Handle the `addRequested` signal from a tab bar.\n */\n private _onTabAddRequested(sender: TabBar): void {\n this._addRequested.emit(sender);\n }\n\n /**\n * Handle the `tabActivateRequested` signal from a tab bar.\n */\n private _onTabActivateRequested(\n sender: TabBar,\n args: TabBar.ITabActivateRequestedArgs\n ): void {\n args.title.owner.activate();\n }\n\n /**\n * Handle the `tabCloseRequested` signal from a tab bar.\n */\n private _onTabCloseRequested(\n sender: TabBar,\n args: TabBar.ITabCloseRequestedArgs\n ): void {\n args.title.owner.close();\n }\n\n /**\n * Handle the `tabDetachRequested` signal from a tab bar.\n */\n private _onTabDetachRequested(\n sender: TabBar,\n args: TabBar.ITabDetachRequestedArgs\n ): void {\n // Do nothing if a drag is already in progress.\n if (this._drag) {\n return;\n }\n\n // Release the tab bar's hold on the mouse.\n sender.releaseMouse();\n\n // Extract the data from the args.\n let { title, tab, clientX, clientY } = args;\n\n // Setup the mime data for the drag operation.\n let mimeData = new MimeData();\n let factory = () => title.owner;\n mimeData.setData('application/vnd.lumino.widget-factory', factory);\n\n // Create the drag image for the drag operation.\n let dragImage = tab.cloneNode(true) as HTMLElement;\n\n // Create the drag object to manage the drag-drop operation.\n this._drag = new Drag({\n document: this._document,\n mimeData,\n dragImage,\n proposedAction: 'move',\n supportedActions: 'move',\n source: this\n });\n\n // Hide the tab node in the original tab.\n tab.classList.add('lm-mod-hidden');\n /* */\n tab.classList.add('p-mod-hidden'); // Create the cleanup callback.\n /* */ let cleanup = () => {\n this._drag = null;\n tab.classList.remove('lm-mod-hidden');\n /* */\n tab.classList.remove('p-mod-hidden');\n /* */\n };\n\n // Start the drag operation and cleanup when done.\n this._drag.start(clientX, clientY).then(cleanup);\n }\n\n private _edges: DockPanel.IEdges;\n private _document: Document | ShadowRoot;\n private _mode: DockPanel.Mode;\n private _drag: Drag | null = null;\n private _renderer: DockPanel.IRenderer;\n private _tabsMovable: boolean = true;\n private _tabsConstrained: boolean = false;\n private _addButtonEnabled: boolean = false;\n private _pressData: Private.IPressData | null = null;\n private _layoutModified = new Signal(this);\n\n private _addRequested = new Signal>(this);\n}\n\n/**\n * The namespace for the `DockPanel` class statics.\n */\nexport namespace DockPanel {\n /**\n * An options object for creating a dock panel.\n */\n export interface IOptions {\n /**\n * The document to use with the dock panel.\n *\n * The default is the global `document` instance.\n */\n\n document?: Document | ShadowRoot;\n /**\n * The overlay to use with the dock panel.\n *\n * The default is a new `Overlay` instance.\n */\n overlay?: IOverlay;\n\n /**\n * The renderer to use for the dock panel.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n\n /**\n * The spacing between the items in the panel.\n *\n * The default is `4`.\n */\n spacing?: number;\n\n /**\n * The mode for the dock panel.\n *\n * The default is `'multiple-document'`.\n */\n mode?: DockPanel.Mode;\n\n /**\n * The sizes of the edge drop zones, in pixels.\n * If not given, default values will be used.\n */\n edges?: IEdges;\n\n /**\n * The method for hiding widgets.\n *\n * The default is `Widget.HiddenMode.Display`.\n */\n hiddenMode?: Widget.HiddenMode;\n\n /**\n * Allow tabs to be draggable / movable by user.\n *\n * The default is `'true'`.\n */\n tabsMovable?: boolean;\n\n /**\n * Constrain tabs to this dock panel\n *\n * The default is `'false'`.\n */\n tabsConstrained?: boolean;\n\n /**\n * Enable add buttons in each of the dock panel's tab bars.\n *\n * The default is `'false'`.\n */\n addButtonEnabled?: boolean;\n }\n\n /**\n * The sizes of the edge drop zones, in pixels.\n */\n export interface IEdges {\n /**\n * The size of the top edge drop zone.\n */\n top: number;\n\n /**\n * The size of the right edge drop zone.\n */\n right: number;\n\n /**\n * The size of the bottom edge drop zone.\n */\n bottom: number;\n\n /**\n * The size of the left edge drop zone.\n */\n left: number;\n }\n\n /**\n * A type alias for the supported dock panel modes.\n */\n export type Mode =\n | /**\n * The single document mode.\n *\n * In this mode, only a single widget is visible at a time, and that\n * widget fills the available layout space. No tab bars are visible.\n */\n 'single-document'\n\n /**\n * The multiple document mode.\n *\n * In this mode, multiple documents are displayed in separate tab\n * areas, and those areas can be individually resized by the user.\n */\n | 'multiple-document';\n\n /**\n * A type alias for a layout configuration object.\n */\n export type ILayoutConfig = DockLayout.ILayoutConfig;\n\n /**\n * A type alias for the supported insertion modes.\n */\n export type InsertMode = DockLayout.InsertMode;\n\n /**\n * A type alias for the add widget options.\n */\n export type IAddOptions = DockLayout.IAddOptions;\n\n /**\n * An object which holds the geometry for overlay positioning.\n */\n export interface IOverlayGeometry {\n /**\n * The distance between the overlay and parent top edges.\n */\n top: number;\n\n /**\n * The distance between the overlay and parent left edges.\n */\n left: number;\n\n /**\n * The distance between the overlay and parent right edges.\n */\n right: number;\n\n /**\n * The distance between the overlay and parent bottom edges.\n */\n bottom: number;\n }\n\n /**\n * An object which manages the overlay node for a dock panel.\n */\n export interface IOverlay {\n /**\n * The DOM node for the overlay.\n */\n readonly node: HTMLDivElement;\n\n /**\n * Show the overlay using the given overlay geometry.\n *\n * @param geo - The desired geometry for the overlay.\n *\n * #### Notes\n * The given geometry values assume the node will use absolute\n * positioning.\n *\n * This is called on every mouse move event during a drag in order\n * to update the position of the overlay. It should be efficient.\n */\n show(geo: IOverlayGeometry): void;\n\n /**\n * Hide the overlay node.\n *\n * @param delay - The delay (in ms) before hiding the overlay.\n * A delay value <= 0 should hide the overlay immediately.\n *\n * #### Notes\n * This is called whenever the overlay node should been hidden.\n */\n hide(delay: number): void;\n }\n\n /**\n * A concrete implementation of `IOverlay`.\n *\n * This is the default overlay implementation for a dock panel.\n */\n export class Overlay implements IOverlay {\n /**\n * Construct a new overlay.\n */\n constructor() {\n this.node = document.createElement('div');\n this.node.classList.add('lm-DockPanel-overlay');\n this.node.classList.add('lm-mod-hidden');\n /* */\n this.node.classList.add('p-DockPanel-overlay');\n this.node.classList.add('p-mod-hidden');\n /* */ this.node.style.position = 'absolute';\n }\n\n /**\n * The DOM node for the overlay.\n */\n readonly node: HTMLDivElement;\n\n /**\n * Show the overlay using the given overlay geometry.\n *\n * @param geo - The desired geometry for the overlay.\n */\n show(geo: IOverlayGeometry): void {\n // Update the position of the overlay.\n let style = this.node.style;\n style.top = `${geo.top}px`;\n style.left = `${geo.left}px`;\n style.right = `${geo.right}px`;\n style.bottom = `${geo.bottom}px`;\n\n // Clear any pending hide timer.\n clearTimeout(this._timer);\n this._timer = -1;\n\n // If the overlay is already visible, we're done.\n if (!this._hidden) {\n return;\n }\n\n // Clear the hidden flag.\n this._hidden = false;\n\n // Finally, show the overlay.\n this.node.classList.remove('lm-mod-hidden');\n /* */\n this.node.classList.remove('p-mod-hidden');\n /* */\n }\n\n /**\n * Hide the overlay node.\n *\n * @param delay - The delay (in ms) before hiding the overlay.\n * A delay value <= 0 will hide the overlay immediately.\n */\n hide(delay: number): void {\n // Do nothing if the overlay is already hidden.\n if (this._hidden) {\n return;\n }\n\n // Hide immediately if the delay is <= 0.\n if (delay <= 0) {\n clearTimeout(this._timer);\n this._timer = -1;\n this._hidden = true;\n this.node.classList.add('lm-mod-hidden');\n /* */\n this.node.classList.add('p-mod-hidden');\n /* */ return;\n }\n\n // Do nothing if a hide is already pending.\n if (this._timer !== -1) {\n return;\n }\n\n // Otherwise setup the hide timer.\n this._timer = window.setTimeout(() => {\n this._timer = -1;\n this._hidden = true;\n this.node.classList.add('lm-mod-hidden');\n /* */\n this.node.classList.add('p-mod-hidden');\n /* */\n }, delay);\n }\n\n private _timer = -1;\n private _hidden = true;\n }\n\n /**\n * A type alias for a dock panel renderer;\n */\n export type IRenderer = DockLayout.IRenderer;\n\n /**\n * The default implementation of `IRenderer`.\n */\n export class Renderer implements IRenderer {\n /**\n * Create a new tab bar for use with a dock panel.\n *\n * @returns A new tab bar for a dock panel.\n */\n createTabBar(document?: Document | ShadowRoot): TabBar {\n let bar = new TabBar({ document });\n bar.addClass('lm-DockPanel-tabBar');\n /* */\n bar.addClass('p-DockPanel-tabBar');\n /* */\n return bar;\n }\n\n /**\n * Create a new handle node for use with a dock panel.\n *\n * @returns A new handle node for a dock panel.\n */\n createHandle(): HTMLDivElement {\n let handle = document.createElement('div');\n handle.className = 'lm-DockPanel-handle';\n /* */\n handle.classList.add('p-DockPanel-handle');\n /* */ return handle;\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A fraction used for sizing root panels; ~= `1 / golden_ratio`.\n */\n export const GOLDEN_RATIO = 0.618;\n\n /**\n * The default sizes for the edge drop zones, in pixels.\n */\n export const DEFAULT_EDGES = {\n /**\n * The size of the top edge dock zone for the root panel, in pixels.\n * This is different from the others to distinguish between the top\n * tab bar and the top root zone.\n */\n top: 12,\n\n /**\n * The size of the edge dock zone for the root panel, in pixels.\n */\n right: 40,\n\n /**\n * The size of the edge dock zone for the root panel, in pixels.\n */\n bottom: 40,\n\n /**\n * The size of the edge dock zone for the root panel, in pixels.\n */\n left: 40\n };\n\n /**\n * A singleton `'layout-modified'` conflatable message.\n */\n export const LayoutModified = new ConflatableMessage('layout-modified');\n\n /**\n * An object which holds mouse press data.\n */\n export interface IPressData {\n /**\n * The handle which was pressed.\n */\n handle: HTMLDivElement;\n\n /**\n * The X offset of the press in handle coordinates.\n */\n deltaX: number;\n\n /**\n * The Y offset of the press in handle coordinates.\n */\n deltaY: number;\n\n /**\n * The disposable which will clear the override cursor.\n */\n override: IDisposable;\n }\n\n /**\n * A type alias for a drop zone.\n */\n export type DropZone =\n | /**\n * An invalid drop zone.\n */\n 'invalid'\n\n /**\n * The entirety of the root dock area.\n */\n | 'root-all'\n\n /**\n * The top portion of the root dock area.\n */\n | 'root-top'\n\n /**\n * The left portion of the root dock area.\n */\n | 'root-left'\n\n /**\n * The right portion of the root dock area.\n */\n | 'root-right'\n\n /**\n * The bottom portion of the root dock area.\n */\n | 'root-bottom'\n\n /**\n * The entirety of a tabbed widget area.\n */\n | 'widget-all'\n\n /**\n * The top portion of tabbed widget area.\n */\n | 'widget-top'\n\n /**\n * The left portion of tabbed widget area.\n */\n | 'widget-left'\n\n /**\n * The right portion of tabbed widget area.\n */\n | 'widget-right'\n\n /**\n * The bottom portion of tabbed widget area.\n */\n | 'widget-bottom'\n\n /**\n * The the bar of a tabbed widget area.\n */\n | 'widget-tab';\n\n /**\n * An object which holds the drop target zone and widget.\n */\n export interface IDropTarget {\n /**\n * The semantic zone for the mouse position.\n */\n zone: DropZone;\n\n /**\n * The tab area geometry for the drop zone, or `null`.\n */\n target: DockLayout.ITabAreaGeometry | null;\n }\n\n /**\n * An attached property used to track generated tab bars.\n */\n export const isGeneratedTabBarProperty = new AttachedProperty<\n Widget,\n boolean\n >({\n name: 'isGeneratedTabBar',\n create: () => false\n });\n\n /**\n * Create a single document config for the widgets in a dock panel.\n */\n export function createSingleDocumentConfig(\n panel: DockPanel\n ): DockPanel.ILayoutConfig {\n // Return an empty config if the panel is empty.\n if (panel.isEmpty) {\n return { main: null };\n }\n\n // Get a flat array of the widgets in the panel.\n let widgets = toArray(panel.widgets());\n\n // Get the first selected widget in the panel.\n let selected = panel.selectedWidgets().next();\n\n // Compute the current index for the new config.\n let currentIndex = selected ? widgets.indexOf(selected) : -1;\n\n // Return the single document config.\n return { main: { type: 'tab-area', widgets, currentIndex } };\n }\n\n /**\n * Find the drop target at the given client position.\n */\n export function findDropTarget(\n panel: DockPanel,\n clientX: number,\n clientY: number,\n edges: DockPanel.IEdges\n ): IDropTarget {\n // Bail if the mouse is not over the dock panel.\n if (!ElementExt.hitTest(panel.node, clientX, clientY)) {\n return { zone: 'invalid', target: null };\n }\n\n // Look up the layout for the panel.\n let layout = panel.layout as DockLayout;\n\n // If the layout is empty, indicate the entire root drop zone.\n if (layout.isEmpty) {\n return { zone: 'root-all', target: null };\n }\n\n // Test the edge zones when in multiple document mode.\n if (panel.mode === 'multiple-document') {\n // Get the client rect for the dock panel.\n let panelRect = panel.node.getBoundingClientRect();\n\n // Compute the distance to each edge of the panel.\n let pl = clientX - panelRect.left + 1;\n let pt = clientY - panelRect.top + 1;\n let pr = panelRect.right - clientX;\n let pb = panelRect.bottom - clientY;\n\n // Find the minimum distance to an edge.\n let pd = Math.min(pt, pr, pb, pl);\n\n // Return a root zone if the mouse is within an edge.\n switch (pd) {\n case pt:\n if (pt < edges.top) {\n return { zone: 'root-top', target: null };\n }\n break;\n case pr:\n if (pr < edges.right) {\n return { zone: 'root-right', target: null };\n }\n break;\n case pb:\n if (pb < edges.bottom) {\n return { zone: 'root-bottom', target: null };\n }\n break;\n case pl:\n if (pl < edges.left) {\n return { zone: 'root-left', target: null };\n }\n break;\n default:\n throw 'unreachable';\n }\n }\n\n // Hit test the dock layout at the given client position.\n let target = layout.hitTestTabAreas(clientX, clientY);\n\n // Bail if no target area was found.\n if (!target) {\n return { zone: 'invalid', target: null };\n }\n\n // Return the whole tab area when in single document mode.\n if (panel.mode === 'single-document') {\n return { zone: 'widget-all', target };\n }\n\n // Compute the distance to each edge of the tab area.\n let al = target.x - target.left + 1;\n let at = target.y - target.top + 1;\n let ar = target.left + target.width - target.x;\n let ab = target.top + target.height - target.y;\n\n const tabHeight = target.tabBar.node.getBoundingClientRect().height;\n if (at < tabHeight) {\n return { zone: 'widget-tab', target };\n }\n\n // Get the X and Y edge sizes for the area.\n let rx = Math.round(target.width / 3);\n let ry = Math.round(target.height / 3);\n\n // If the mouse is not within an edge, indicate the entire area.\n if (al > rx && ar > rx && at > ry && ab > ry) {\n return { zone: 'widget-all', target };\n }\n\n // Scale the distances by the slenderness ratio.\n al /= rx;\n at /= ry;\n ar /= rx;\n ab /= ry;\n\n // Find the minimum distance to the area edge.\n let ad = Math.min(al, at, ar, ab);\n\n // Find the widget zone for the area edge.\n let zone: DropZone;\n switch (ad) {\n case al:\n zone = 'widget-left';\n break;\n case at:\n zone = 'widget-top';\n break;\n case ar:\n zone = 'widget-right';\n break;\n case ab:\n zone = 'widget-bottom';\n break;\n default:\n throw 'unreachable';\n }\n\n // Return the final drop target.\n return { zone, target };\n }\n\n /**\n * Get the drop reference widget for a tab bar.\n */\n export function getDropRef(tabBar: TabBar): Widget | null {\n if (tabBar.titles.length === 0) {\n return null;\n }\n if (tabBar.currentTitle) {\n return tabBar.currentTitle.owner;\n }\n return tabBar.titles[tabBar.titles.length - 1].owner;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each, IIterator, map } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { AttachedProperty } from '@lumino/properties';\n\nimport { BoxEngine, BoxSizer } from './boxengine';\n\nimport { Layout, LayoutItem } from './layout';\n\nimport { Widget } from './widget';\n\n/**\n * A layout which arranges its widgets in a grid.\n */\nexport class GridLayout extends Layout {\n /**\n * Construct a new grid layout.\n *\n * @param options - The options for initializing the layout.\n */\n constructor(options: GridLayout.IOptions = {}) {\n super(options);\n if (options.rowCount !== undefined) {\n Private.reallocSizers(this._rowSizers, options.rowCount);\n }\n if (options.columnCount !== undefined) {\n Private.reallocSizers(this._columnSizers, options.columnCount);\n }\n if (options.rowSpacing !== undefined) {\n this._rowSpacing = Private.clampValue(options.rowSpacing);\n }\n if (options.columnSpacing !== undefined) {\n this._columnSpacing = Private.clampValue(options.columnSpacing);\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the widgets and layout items.\n each(this._items, item => {\n let widget = item.widget;\n item.dispose();\n widget.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n this._rowStarts.length = 0;\n this._rowSizers.length = 0;\n this._columnStarts.length = 0;\n this._columnSizers.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * Get the number of rows in the layout.\n */\n get rowCount(): number {\n return this._rowSizers.length;\n }\n\n /**\n * Set the number of rows in the layout.\n *\n * #### Notes\n * The minimum row count is `1`.\n */\n set rowCount(value: number) {\n // Do nothing if the row count does not change.\n if (value === this.rowCount) {\n return;\n }\n\n // Reallocate the row sizers.\n Private.reallocSizers(this._rowSizers, value);\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the number of columns in the layout.\n */\n get columnCount(): number {\n return this._columnSizers.length;\n }\n\n /**\n * Set the number of columns in the layout.\n *\n * #### Notes\n * The minimum column count is `1`.\n */\n set columnCount(value: number) {\n // Do nothing if the column count does not change.\n if (value === this.columnCount) {\n return;\n }\n\n // Reallocate the column sizers.\n Private.reallocSizers(this._columnSizers, value);\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the row spacing for the layout.\n */\n get rowSpacing(): number {\n return this._rowSpacing;\n }\n\n /**\n * Set the row spacing for the layout.\n */\n set rowSpacing(value: number) {\n // Clamp the spacing to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the spacing does not change\n if (this._rowSpacing === value) {\n return;\n }\n\n // Update the internal spacing.\n this._rowSpacing = value;\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the column spacing for the layout.\n */\n get columnSpacing(): number {\n return this._columnSpacing;\n }\n\n /**\n * Set the col spacing for the layout.\n */\n set columnSpacing(value: number) {\n // Clamp the spacing to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the spacing does not change\n if (this._columnSpacing === value) {\n return;\n }\n\n // Update the internal spacing.\n this._columnSpacing = value;\n\n // Schedule a fit of the parent.\n if (this.parent) {\n this.parent.fit();\n }\n }\n\n /**\n * Get the stretch factor for a specific row.\n *\n * @param index - The row index of interest.\n *\n * @returns The stretch factor for the row.\n *\n * #### Notes\n * This returns `-1` if the index is out of range.\n */\n rowStretch(index: number): number {\n let sizer = this._rowSizers[index];\n return sizer ? sizer.stretch : -1;\n }\n\n /**\n * Set the stretch factor for a specific row.\n *\n * @param index - The row index of interest.\n *\n * @param value - The stretch factor for the row.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n setRowStretch(index: number, value: number): void {\n // Look up the row sizer.\n let sizer = this._rowSizers[index];\n\n // Bail if the index is out of range.\n if (!sizer) {\n return;\n }\n\n // Clamp the value to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the stretch does not change.\n if (sizer.stretch === value) {\n return;\n }\n\n // Update the sizer stretch.\n sizer.stretch = value;\n\n // Schedule an update of the parent.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Get the stretch factor for a specific column.\n *\n * @param index - The column index of interest.\n *\n * @returns The stretch factor for the column.\n *\n * #### Notes\n * This returns `-1` if the index is out of range.\n */\n columnStretch(index: number): number {\n let sizer = this._columnSizers[index];\n return sizer ? sizer.stretch : -1;\n }\n\n /**\n * Set the stretch factor for a specific column.\n *\n * @param index - The column index of interest.\n *\n * @param value - The stretch factor for the column.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n setColumnStretch(index: number, value: number): void {\n // Look up the column sizer.\n let sizer = this._columnSizers[index];\n\n // Bail if the index is out of range.\n if (!sizer) {\n return;\n }\n\n // Clamp the value to the allowed range.\n value = Private.clampValue(value);\n\n // Bail if the stretch does not change.\n if (sizer.stretch === value) {\n return;\n }\n\n // Update the sizer stretch.\n sizer.stretch = value;\n\n // Schedule an update of the parent.\n if (this.parent) {\n this.parent.update();\n }\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n */\n iter(): IIterator {\n return map(this._items, item => item.widget);\n }\n\n /**\n * Add a widget to the grid layout.\n *\n * @param widget - The widget to add to the layout.\n *\n * #### Notes\n * If the widget is already contained in the layout, this is no-op.\n */\n addWidget(widget: Widget): void {\n // Look up the index for the widget.\n let i = ArrayExt.findFirstIndex(this._items, it => it.widget === widget);\n\n // Bail if the widget is already in the layout.\n if (i !== -1) {\n return;\n }\n\n // Add the widget to the layout.\n this._items.push(new LayoutItem(widget));\n\n // Attach the widget to the parent.\n if (this.parent) {\n this.attachWidget(widget);\n }\n }\n\n /**\n * Remove a widget from the grid layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n // Look up the index for the widget.\n let i = ArrayExt.findFirstIndex(this._items, it => it.widget === widget);\n\n // Bail if the widget is not in the layout.\n if (i === -1) {\n return;\n }\n\n // Remove the widget from the layout.\n let item = ArrayExt.removeAt(this._items, i)!;\n\n // Detach the widget from the parent.\n if (this.parent) {\n this.detachWidget(widget);\n }\n\n // Dispose the layout item.\n item.dispose();\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n super.init();\n each(this, widget => {\n this.attachWidget(widget);\n });\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param widget - The widget to attach to the parent.\n */\n protected attachWidget(widget: Widget): void {\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param widget - The widget to detach from the parent.\n */\n protected detachWidget(widget: Widget): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Reset the min sizes of the sizers.\n for (let i = 0, n = this.rowCount; i < n; ++i) {\n this._rowSizers[i].minSize = 0;\n }\n for (let i = 0, n = this.columnCount; i < n; ++i) {\n this._columnSizers[i].minSize = 0;\n }\n\n // Filter for the visible layout items.\n let items = this._items.filter(it => !it.isHidden);\n\n // Fit the layout items.\n for (let i = 0, n = items.length; i < n; ++i) {\n items[i].fit();\n }\n\n // Get the max row and column index.\n let maxRow = this.rowCount - 1;\n let maxCol = this.columnCount - 1;\n\n // Sort the items by row span.\n items.sort(Private.rowSpanCmp);\n\n // Update the min sizes of the row sizers.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Fetch the item.\n let item = items[i];\n\n // Get the row bounds for the item.\n let config = GridLayout.getCellConfig(item.widget);\n let r1 = Math.min(config.row, maxRow);\n let r2 = Math.min(config.row + config.rowSpan - 1, maxRow);\n\n // Distribute the minimum height to the sizers as needed.\n Private.distributeMin(this._rowSizers, r1, r2, item.minHeight);\n }\n\n // Sort the items by column span.\n items.sort(Private.columnSpanCmp);\n\n // Update the min sizes of the column sizers.\n for (let i = 0, n = items.length; i < n; ++i) {\n // Fetch the item.\n let item = items[i];\n\n // Get the column bounds for the item.\n let config = GridLayout.getCellConfig(item.widget);\n let c1 = Math.min(config.column, maxCol);\n let c2 = Math.min(config.column + config.columnSpan - 1, maxCol);\n\n // Distribute the minimum width to the sizers as needed.\n Private.distributeMin(this._columnSizers, c1, c2, item.minWidth);\n }\n\n // If no size constraint is needed, just update the parent.\n if (this.fitPolicy === 'set-no-constraint') {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n return;\n }\n\n // Set up the computed min size.\n let minH = maxRow * this._rowSpacing;\n let minW = maxCol * this._columnSpacing;\n\n // Add the sizer minimums to the computed min size.\n for (let i = 0, n = this.rowCount; i < n; ++i) {\n minH += this._rowSizers[i].minSize;\n }\n for (let i = 0, n = this.columnCount; i < n; ++i) {\n minW += this._columnSizers[i].minSize;\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the layout area adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Get the max row and column index.\n let maxRow = this.rowCount - 1;\n let maxCol = this.columnCount - 1;\n\n // Compute the total fixed row and column space.\n let fixedRowSpace = maxRow * this._rowSpacing;\n let fixedColSpace = maxCol * this._columnSpacing;\n\n // Distribute the available space to the box sizers.\n BoxEngine.calc(this._rowSizers, Math.max(0, height - fixedRowSpace));\n BoxEngine.calc(this._columnSizers, Math.max(0, width - fixedColSpace));\n\n // Update the row start positions.\n for (let i = 0, pos = top, n = this.rowCount; i < n; ++i) {\n this._rowStarts[i] = pos;\n pos += this._rowSizers[i].size + this._rowSpacing;\n }\n\n // Update the column start positions.\n for (let i = 0, pos = left, n = this.columnCount; i < n; ++i) {\n this._columnStarts[i] = pos;\n pos += this._columnSizers[i].size + this._columnSpacing;\n }\n\n // Update the geometry of the layout items.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Fetch the cell bounds for the widget.\n let config = GridLayout.getCellConfig(item.widget);\n let r1 = Math.min(config.row, maxRow);\n let c1 = Math.min(config.column, maxCol);\n let r2 = Math.min(config.row + config.rowSpan - 1, maxRow);\n let c2 = Math.min(config.column + config.columnSpan - 1, maxCol);\n\n // Compute the cell geometry.\n let x = this._columnStarts[c1];\n let y = this._rowStarts[r1];\n let w = this._columnStarts[c2] + this._columnSizers[c2].size - x;\n let h = this._rowStarts[r2] + this._rowSizers[r2].size - y;\n\n // Update the geometry of the layout item.\n item.update(x, y, w, h);\n }\n }\n\n private _dirty = false;\n private _rowSpacing = 4;\n private _columnSpacing = 4;\n private _items: LayoutItem[] = [];\n private _rowStarts: number[] = [];\n private _columnStarts: number[] = [];\n private _rowSizers: BoxSizer[] = [new BoxSizer()];\n private _columnSizers: BoxSizer[] = [new BoxSizer()];\n private _box: ElementExt.IBoxSizing | null = null;\n}\n\n/**\n * The namespace for the `GridLayout` class statics.\n */\nexport namespace GridLayout {\n /**\n * An options object for initializing a grid layout.\n */\n export interface IOptions extends Layout.IOptions {\n /**\n * The initial row count for the layout.\n *\n * The default is `1`.\n */\n rowCount?: number;\n\n /**\n * The initial column count for the layout.\n *\n * The default is `1`.\n */\n columnCount?: number;\n\n /**\n * The spacing between rows in the layout.\n *\n * The default is `4`.\n */\n rowSpacing?: number;\n\n /**\n * The spacing between columns in the layout.\n *\n * The default is `4`.\n */\n columnSpacing?: number;\n }\n\n /**\n * An object which holds the cell configuration for a widget.\n */\n export interface ICellConfig {\n /**\n * The row index for the widget.\n */\n readonly row: number;\n\n /**\n * The column index for the widget.\n */\n readonly column: number;\n\n /**\n * The row span for the widget.\n */\n readonly rowSpan: number;\n\n /**\n * The column span for the widget.\n */\n readonly columnSpan: number;\n }\n\n /**\n * Get the cell config for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns The cell config for the widget.\n */\n export function getCellConfig(widget: Widget): ICellConfig {\n return Private.cellConfigProperty.get(widget);\n }\n\n /**\n * Set the cell config for the given widget.\n *\n * @param widget - The widget of interest.\n *\n * @param value - The value for the cell config.\n */\n export function setCellConfig(\n widget: Widget,\n value: Partial\n ): void {\n Private.cellConfigProperty.set(widget, Private.normalizeConfig(value));\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * The property descriptor for the widget cell config.\n */\n export const cellConfigProperty = new AttachedProperty<\n Widget,\n GridLayout.ICellConfig\n >({\n name: 'cellConfig',\n create: () => ({ row: 0, column: 0, rowSpan: 1, columnSpan: 1 }),\n changed: onChildCellConfigChanged\n });\n\n /**\n * Normalize a partial cell config object.\n */\n export function normalizeConfig(\n config: Partial\n ): GridLayout.ICellConfig {\n let row = Math.max(0, Math.floor(config.row || 0));\n let column = Math.max(0, Math.floor(config.column || 0));\n let rowSpan = Math.max(1, Math.floor(config.rowSpan || 0));\n let columnSpan = Math.max(1, Math.floor(config.columnSpan || 0));\n return { row, column, rowSpan, columnSpan };\n }\n\n /**\n * Clamp a value to an integer >= 0.\n */\n export function clampValue(value: number): number {\n return Math.max(0, Math.floor(value));\n }\n\n /**\n * A sort comparison function for row spans.\n */\n export function rowSpanCmp(a: LayoutItem, b: LayoutItem): number {\n let c1 = cellConfigProperty.get(a.widget);\n let c2 = cellConfigProperty.get(b.widget);\n return c1.rowSpan - c2.rowSpan;\n }\n\n /**\n * A sort comparison function for column spans.\n */\n export function columnSpanCmp(a: LayoutItem, b: LayoutItem): number {\n let c1 = cellConfigProperty.get(a.widget);\n let c2 = cellConfigProperty.get(b.widget);\n return c1.columnSpan - c2.columnSpan;\n }\n\n /**\n * Reallocate the box sizers for the given grid dimensions.\n */\n export function reallocSizers(sizers: BoxSizer[], count: number): void {\n // Coerce the count to the valid range.\n count = Math.max(1, Math.floor(count));\n\n // Add the missing sizers.\n while (sizers.length < count) {\n sizers.push(new BoxSizer());\n }\n\n // Remove the extra sizers.\n if (sizers.length > count) {\n sizers.length = count;\n }\n }\n\n /**\n * Distribute a min size constraint across a range of sizers.\n */\n export function distributeMin(\n sizers: BoxSizer[],\n i1: number,\n i2: number,\n minSize: number\n ): void {\n // Sanity check the indices.\n if (i2 < i1) {\n return;\n }\n\n // Handle the simple case of no cell span.\n if (i1 === i2) {\n let sizer = sizers[i1];\n sizer.minSize = Math.max(sizer.minSize, minSize);\n return;\n }\n\n // Compute the total current min size of the span.\n let totalMin = 0;\n for (let i = i1; i <= i2; ++i) {\n totalMin += sizers[i].minSize;\n }\n\n // Do nothing if the total is greater than the required.\n if (totalMin >= minSize) {\n return;\n }\n\n // Compute the portion of the space to allocate to each sizer.\n let portion = (minSize - totalMin) / (i2 - i1 + 1);\n\n // Add the portion to each sizer.\n for (let i = i1; i <= i2; ++i) {\n sizers[i].minSize += portion;\n }\n }\n\n /**\n * The change handler for the child cell config property.\n */\n function onChildCellConfigChanged(child: Widget): void {\n if (child.parent && child.parent.layout instanceof GridLayout) {\n child.parent.fit();\n }\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each, filter, find, max } from '@lumino/algorithm';\n\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Widget } from './widget';\n\n/**\n * A class which tracks focus among a set of widgets.\n *\n * This class is useful when code needs to keep track of the most\n * recently focused widget(s) among a set of related widgets.\n */\nexport class FocusTracker implements IDisposable {\n /**\n * Dispose of the resources held by the tracker.\n */\n dispose(): void {\n // Do nothing if the tracker is already disposed.\n if (this._counter < 0) {\n return;\n }\n\n // Mark the tracker as disposed.\n this._counter = -1;\n\n // Clear the connections for the tracker.\n Signal.clearData(this);\n\n // Remove all event listeners.\n each(this._widgets, w => {\n w.node.removeEventListener('focus', this, true);\n w.node.removeEventListener('blur', this, true);\n });\n\n // Clear the internal data structures.\n this._activeWidget = null;\n this._currentWidget = null;\n this._nodes.clear();\n this._numbers.clear();\n this._widgets.length = 0;\n }\n\n /**\n * A signal emitted when the current widget has changed.\n */\n get currentChanged(): ISignal> {\n return this._currentChanged;\n }\n\n /**\n * A signal emitted when the active widget has changed.\n */\n get activeChanged(): ISignal> {\n return this._activeChanged;\n }\n\n /**\n * A flag indicating whether the tracker is disposed.\n */\n get isDisposed(): boolean {\n return this._counter < 0;\n }\n\n /**\n * The current widget in the tracker.\n *\n * #### Notes\n * The current widget is the widget among the tracked widgets which\n * has the *descendant node* which has most recently been focused.\n *\n * The current widget will not be updated if the node loses focus. It\n * will only be updated when a different tracked widget gains focus.\n *\n * If the current widget is removed from the tracker, the previous\n * current widget will be restored.\n *\n * This behavior is intended to follow a user's conceptual model of\n * a semantically \"current\" widget, where the \"last thing of type X\"\n * to be interacted with is the \"current instance of X\", regardless\n * of whether that instance still has focus.\n */\n get currentWidget(): T | null {\n return this._currentWidget;\n }\n\n /**\n * The active widget in the tracker.\n *\n * #### Notes\n * The active widget is the widget among the tracked widgets which\n * has the *descendant node* which is currently focused.\n */\n get activeWidget(): T | null {\n return this._activeWidget;\n }\n\n /**\n * A read only array of the widgets being tracked.\n */\n get widgets(): ReadonlyArray {\n return this._widgets;\n }\n\n /**\n * Get the focus number for a particular widget in the tracker.\n *\n * @param widget - The widget of interest.\n *\n * @returns The focus number for the given widget, or `-1` if the\n * widget has not had focus since being added to the tracker, or\n * is not contained by the tracker.\n *\n * #### Notes\n * The focus number indicates the relative order in which the widgets\n * have gained focus. A widget with a larger number has gained focus\n * more recently than a widget with a smaller number.\n *\n * The `currentWidget` will always have the largest focus number.\n *\n * All widgets start with a focus number of `-1`, which indicates that\n * the widget has not been focused since being added to the tracker.\n */\n focusNumber(widget: T): number {\n let n = this._numbers.get(widget);\n return n === undefined ? -1 : n;\n }\n\n /**\n * Test whether the focus tracker contains a given widget.\n *\n * @param widget - The widget of interest.\n *\n * @returns `true` if the widget is tracked, `false` otherwise.\n */\n has(widget: T): boolean {\n return this._numbers.has(widget);\n }\n\n /**\n * Add a widget to the focus tracker.\n *\n * @param widget - The widget of interest.\n *\n * #### Notes\n * A widget will be automatically removed from the tracker if it\n * is disposed after being added.\n *\n * If the widget is already tracked, this is a no-op.\n */\n add(widget: T): void {\n // Do nothing if the widget is already tracked.\n if (this._numbers.has(widget)) {\n return;\n }\n\n // Test whether the widget has focus.\n let focused = widget.node.contains(document.activeElement);\n\n // Set up the initial focus number.\n let n = focused ? this._counter++ : -1;\n\n // Add the widget to the internal data structures.\n this._widgets.push(widget);\n this._numbers.set(widget, n);\n this._nodes.set(widget.node, widget);\n\n // Set up the event listeners. The capturing phase must be used\n // since the 'focus' and 'blur' events don't bubble and Firefox\n // doesn't support the 'focusin' or 'focusout' events.\n widget.node.addEventListener('focus', this, true);\n widget.node.addEventListener('blur', this, true);\n\n // Connect the disposed signal handler.\n widget.disposed.connect(this._onWidgetDisposed, this);\n\n // Set the current and active widgets if needed.\n if (focused) {\n this._setWidgets(widget, widget);\n }\n }\n\n /**\n * Remove a widget from the focus tracker.\n *\n * #### Notes\n * If the widget is the `currentWidget`, the previous current widget\n * will become the new `currentWidget`.\n *\n * A widget will be automatically removed from the tracker if it\n * is disposed after being added.\n *\n * If the widget is not tracked, this is a no-op.\n */\n remove(widget: T): void {\n // Bail early if the widget is not tracked.\n if (!this._numbers.has(widget)) {\n return;\n }\n\n // Disconnect the disposed signal handler.\n widget.disposed.disconnect(this._onWidgetDisposed, this);\n\n // Remove the event listeners.\n widget.node.removeEventListener('focus', this, true);\n widget.node.removeEventListener('blur', this, true);\n\n // Remove the widget from the internal data structures.\n ArrayExt.removeFirstOf(this._widgets, widget);\n this._nodes.delete(widget.node);\n this._numbers.delete(widget);\n\n // Bail early if the widget is not the current widget.\n if (this._currentWidget !== widget) {\n return;\n }\n\n // Filter the widgets for those which have had focus.\n let valid = filter(this._widgets, w => this._numbers.get(w) !== -1);\n\n // Get the valid widget with the max focus number.\n let previous =\n max(valid, (first, second) => {\n let a = this._numbers.get(first)!;\n let b = this._numbers.get(second)!;\n return a - b;\n }) || null;\n\n // Set the current and active widgets.\n this._setWidgets(previous, null);\n }\n\n /**\n * Handle the DOM events for the focus tracker.\n *\n * @param event - The DOM event sent to the panel.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the tracked nodes. It should\n * not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'focus':\n this._evtFocus(event as FocusEvent);\n break;\n case 'blur':\n this._evtBlur(event as FocusEvent);\n break;\n }\n }\n\n /**\n * Set the current and active widgets for the tracker.\n */\n private _setWidgets(current: T | null, active: T | null): void {\n // Swap the current widget.\n let oldCurrent = this._currentWidget;\n this._currentWidget = current;\n\n // Swap the active widget.\n let oldActive = this._activeWidget;\n this._activeWidget = active;\n\n // Emit the `currentChanged` signal if needed.\n if (oldCurrent !== current) {\n this._currentChanged.emit({ oldValue: oldCurrent, newValue: current });\n }\n\n // Emit the `activeChanged` signal if needed.\n if (oldActive !== active) {\n this._activeChanged.emit({ oldValue: oldActive, newValue: active });\n }\n }\n\n /**\n * Handle the `'focus'` event for a tracked widget.\n */\n private _evtFocus(event: FocusEvent): void {\n // Find the widget which gained focus, which is known to exist.\n let widget = this._nodes.get(event.currentTarget as HTMLElement)!;\n\n // Update the focus number if necessary.\n if (widget !== this._currentWidget) {\n this._numbers.set(widget, this._counter++);\n }\n\n // Set the current and active widgets.\n this._setWidgets(widget, widget);\n }\n\n /**\n * Handle the `'blur'` event for a tracked widget.\n */\n private _evtBlur(event: FocusEvent): void {\n // Find the widget which lost focus, which is known to exist.\n let widget = this._nodes.get(event.currentTarget as HTMLElement)!;\n\n // Get the node which being focused after this blur.\n let focusTarget = event.relatedTarget as HTMLElement;\n\n // If no other node is being focused, clear the active widget.\n if (!focusTarget) {\n this._setWidgets(this._currentWidget, null);\n return;\n }\n\n // Bail if the focus widget is not changing.\n if (widget.node.contains(focusTarget)) {\n return;\n }\n\n // If no tracked widget is being focused, clear the active widget.\n if (!find(this._widgets, w => w.node.contains(focusTarget))) {\n this._setWidgets(this._currentWidget, null);\n return;\n }\n }\n\n /**\n * Handle the `disposed` signal for a tracked widget.\n */\n private _onWidgetDisposed(sender: T): void {\n this.remove(sender);\n }\n\n private _counter = 0;\n private _widgets: T[] = [];\n private _activeWidget: T | null = null;\n private _currentWidget: T | null = null;\n private _numbers = new Map();\n private _nodes = new Map();\n private _activeChanged = new Signal>(this);\n private _currentChanged = new Signal>(\n this\n );\n}\n\n/**\n * The namespace for the `FocusTracker` class statics.\n */\nexport namespace FocusTracker {\n /**\n * An arguments object for the changed signals.\n */\n export interface IChangedArgs {\n /**\n * The old value for the widget.\n */\n oldValue: T | null;\n\n /**\n * The new value for the widget.\n */\n newValue: T | null;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { getKeyboardLayout } from '@lumino/keyboard';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport {\n ElementARIAAttrs,\n ElementDataset,\n h,\n VirtualDOM,\n VirtualElement\n} from '@lumino/virtualdom';\n\nimport { Menu } from './menu';\n\nimport { Title } from './title';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which displays menus as a canonical menu bar.\n */\nexport class MenuBar extends Widget {\n /**\n * Construct a new menu bar.\n *\n * @param options - The options for initializing the menu bar.\n */\n constructor(options: MenuBar.IOptions = {}) {\n super({ node: Private.createNode() });\n this.addClass('lm-MenuBar');\n /* */\n this.addClass('p-MenuBar');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n this.renderer = options.renderer || MenuBar.defaultRenderer;\n this._forceItemsPosition = options.forceItemsPosition || {\n forceX: true,\n forceY: true\n };\n }\n\n /**\n * Dispose of the resources held by the widget.\n */\n dispose(): void {\n this._closeChildMenu();\n this._menus.length = 0;\n super.dispose();\n }\n\n /**\n * The renderer used by the menu bar.\n */\n readonly renderer: MenuBar.IRenderer;\n\n /**\n * The child menu of the menu bar.\n *\n * #### Notes\n * This will be `null` if the menu bar does not have an open menu.\n */\n get childMenu(): Menu | null {\n return this._childMenu;\n }\n\n /**\n * Get the menu bar content node.\n *\n * #### Notes\n * This is the node which holds the menu title nodes.\n *\n * Modifying this node directly can lead to undefined behavior.\n */\n get contentNode(): HTMLUListElement {\n return this.node.getElementsByClassName(\n 'lm-MenuBar-content'\n )[0] as HTMLUListElement;\n }\n\n /**\n * Get the currently active menu.\n */\n get activeMenu(): Menu | null {\n return this._menus[this._activeIndex] || null;\n }\n\n /**\n * Set the currently active menu.\n *\n * #### Notes\n * If the menu does not exist, the menu will be set to `null`.\n */\n set activeMenu(value: Menu | null) {\n this.activeIndex = value ? this._menus.indexOf(value) : -1;\n }\n\n /**\n * Get the index of the currently active menu.\n *\n * #### Notes\n * This will be `-1` if no menu is active.\n */\n get activeIndex(): number {\n return this._activeIndex;\n }\n\n /**\n * Set the index of the currently active menu.\n *\n * #### Notes\n * If the menu cannot be activated, the index will be set to `-1`.\n */\n set activeIndex(value: number) {\n // Adjust the value for an out of range index.\n if (value < 0 || value >= this._menus.length) {\n value = -1;\n }\n\n // Bail early if the index will not change.\n if (this._activeIndex === value) {\n return;\n }\n\n // Update the active index.\n this._activeIndex = value;\n\n // Update the focus index.\n if (value !== -1) {\n this._tabFocusIndex = value;\n }\n\n // Update focus to new active index\n if (\n this._activeIndex >= 0 &&\n this.contentNode.childNodes[this._activeIndex]\n ) {\n (this.contentNode.childNodes[this._activeIndex] as HTMLElement).focus();\n }\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * A read-only array of the menus in the menu bar.\n */\n get menus(): ReadonlyArray {\n return this._menus;\n }\n\n /**\n * Open the active menu and activate its first menu item.\n *\n * #### Notes\n * If there is no active menu, this is a no-op.\n */\n openActiveMenu(): void {\n // Bail early if there is no active item.\n if (this._activeIndex === -1) {\n return;\n }\n\n // Open the child menu.\n this._openChildMenu();\n\n // Activate the first item in the child menu.\n if (this._childMenu) {\n this._childMenu.activeIndex = -1;\n this._childMenu.activateNextItem();\n }\n }\n\n /**\n * Add a menu to the end of the menu bar.\n *\n * @param menu - The menu to add to the menu bar.\n *\n * #### Notes\n * If the menu is already added to the menu bar, it will be moved.\n */\n addMenu(menu: Menu): void {\n this.insertMenu(this._menus.length, menu);\n }\n\n /**\n * Insert a menu into the menu bar at the specified index.\n *\n * @param index - The index at which to insert the menu.\n *\n * @param menu - The menu to insert into the menu bar.\n *\n * #### Notes\n * The index will be clamped to the bounds of the menus.\n *\n * If the menu is already added to the menu bar, it will be moved.\n */\n insertMenu(index: number, menu: Menu): void {\n // Close the child menu before making changes.\n this._closeChildMenu();\n\n // Look up the index of the menu.\n let i = this._menus.indexOf(menu);\n\n // Clamp the insert index to the array bounds.\n let j = Math.max(0, Math.min(index, this._menus.length));\n\n // If the menu is not in the array, insert it.\n if (i === -1) {\n // Insert the menu into the array.\n ArrayExt.insert(this._menus, j, menu);\n\n // Add the styling class to the menu.\n menu.addClass('lm-MenuBar-menu');\n /* */\n menu.addClass('p-MenuBar-menu');\n /* */\n\n // Connect to the menu signals.\n menu.aboutToClose.connect(this._onMenuAboutToClose, this);\n menu.menuRequested.connect(this._onMenuMenuRequested, this);\n menu.title.changed.connect(this._onTitleChanged, this);\n\n // Schedule an update of the items.\n this.update();\n\n // There is nothing more to do.\n return;\n }\n\n // Otherwise, the menu exists in the array and should be moved.\n\n // Adjust the index if the location is at the end of the array.\n if (j === this._menus.length) {\n j--;\n }\n\n // Bail if there is no effective move.\n if (i === j) {\n return;\n }\n\n // Move the menu to the new locations.\n ArrayExt.move(this._menus, i, j);\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Remove a menu from the menu bar.\n *\n * @param menu - The menu to remove from the menu bar.\n *\n * #### Notes\n * This is a no-op if the menu is not in the menu bar.\n */\n removeMenu(menu: Menu): void {\n this.removeMenuAt(this._menus.indexOf(menu));\n }\n\n /**\n * Remove the menu at a given index from the menu bar.\n *\n * @param index - The index of the menu to remove.\n *\n * #### Notes\n * This is a no-op if the index is out of range.\n */\n removeMenuAt(index: number): void {\n // Close the child menu before making changes.\n this._closeChildMenu();\n\n // Remove the menu from the array.\n let menu = ArrayExt.removeAt(this._menus, index);\n\n // Bail if the index is out of range.\n if (!menu) {\n return;\n }\n\n // Disconnect from the menu signals.\n menu.aboutToClose.disconnect(this._onMenuAboutToClose, this);\n menu.menuRequested.disconnect(this._onMenuMenuRequested, this);\n menu.title.changed.disconnect(this._onTitleChanged, this);\n\n // Remove the styling class from the menu.\n menu.removeClass('lm-MenuBar-menu');\n /* */\n menu.removeClass('p-MenuBar-menu');\n /* */\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Remove all menus from the menu bar.\n */\n clearMenus(): void {\n // Bail if there is nothing to remove.\n if (this._menus.length === 0) {\n return;\n }\n\n // Close the child menu before making changes.\n this._closeChildMenu();\n\n // Disconnect from the menu signals and remove the styling class.\n for (let menu of this._menus) {\n menu.aboutToClose.disconnect(this._onMenuAboutToClose, this);\n menu.menuRequested.disconnect(this._onMenuMenuRequested, this);\n menu.title.changed.disconnect(this._onTitleChanged, this);\n menu.removeClass('lm-MenuBar-menu');\n /* */\n menu.removeClass('p-MenuBar-menu');\n /* */\n }\n\n // Clear the menus array.\n this._menus.length = 0;\n\n // Schedule an update of the items.\n this.update();\n }\n\n /**\n * Handle the DOM events for the menu bar.\n *\n * @param event - The DOM event sent to the menu bar.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the menu bar's DOM nodes. It\n * should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseleave':\n this._evtMouseLeave(event as MouseEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('keydown', this);\n this.node.addEventListener('mousedown', this);\n this.node.addEventListener('mousemove', this);\n this.node.addEventListener('mouseleave', this);\n this.node.addEventListener('contextmenu', this);\n }\n\n /**\n * A message handler invoked on an `'after-detach'` message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('keydown', this);\n this.node.removeEventListener('mousedown', this);\n this.node.removeEventListener('mousemove', this);\n this.node.removeEventListener('mouseleave', this);\n this.node.removeEventListener('contextmenu', this);\n this._closeChildMenu();\n }\n\n /**\n * A message handler invoked on an `'activate-request'` message.\n */\n protected onActivateRequest(msg: Message): void {\n if (this.isAttached) {\n this.activeIndex = 0;\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n let menus = this._menus;\n let renderer = this.renderer;\n let activeIndex = this._activeIndex;\n let tabFocusIndex =\n this._tabFocusIndex >= 0 && this._tabFocusIndex < menus.length\n ? this._tabFocusIndex\n : 0;\n let content = new Array(menus.length);\n for (let i = 0, n = menus.length; i < n; ++i) {\n let title = menus[i].title;\n let active = i === activeIndex;\n if (active && menus[i].items.length == 0) {\n active = false;\n }\n content[i] = renderer.renderItem({\n title,\n active,\n tabbable: i === tabFocusIndex,\n onfocus: () => {\n this.activeIndex = i;\n }\n });\n }\n VirtualDOM.render(content, this.contentNode);\n }\n\n /**\n * Handle the `'keydown'` event for the menu bar.\n *\n * #### Notes\n * All keys are trapped except the tab key that is ignored.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Fetch the key code for the event.\n let kc = event.keyCode;\n\n // Reset the active index on tab, but do not trap the tab key.\n if (kc === 9) {\n this.activeIndex = -1;\n return;\n }\n\n // A menu bar handles all other keydown events.\n event.preventDefault();\n event.stopPropagation();\n\n // Enter, Space, Up Arrow, Down Arrow\n if (kc === 13 || kc === 32 || kc === 38 || kc === 40) {\n this.openActiveMenu();\n return;\n }\n\n // Escape\n if (kc === 27) {\n this._closeChildMenu();\n this.activeIndex = -1;\n this.node.blur();\n return;\n }\n\n // Left Arrow\n if (kc === 37) {\n let i = this._activeIndex;\n let n = this._menus.length;\n this.activeIndex = i === 0 ? n - 1 : i - 1;\n return;\n }\n\n // Right Arrow\n if (kc === 39) {\n let i = this._activeIndex;\n let n = this._menus.length;\n this.activeIndex = i === n - 1 ? 0 : i + 1;\n return;\n }\n\n // Get the pressed key character.\n let key = getKeyboardLayout().keyForKeydownEvent(event);\n\n // Bail if the key is not valid.\n if (!key) {\n return;\n }\n\n // Search for the next best matching mnemonic item.\n let start = this._activeIndex + 1;\n let result = Private.findMnemonic(this._menus, key, start);\n\n // Handle the requested mnemonic based on the search results.\n // If exactly one mnemonic is matched, that menu is opened.\n // Otherwise, the next mnemonic is activated if available,\n // followed by the auto mnemonic if available.\n if (result.index !== -1 && !result.multiple) {\n this.activeIndex = result.index;\n this.openActiveMenu();\n } else if (result.index !== -1) {\n this.activeIndex = result.index;\n } else if (result.auto !== -1) {\n this.activeIndex = result.auto;\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the menu bar.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Bail if the mouse press was not on the menu bar. This can occur\n // when the document listener is installed for an active menu bar.\n if (!ElementExt.hitTest(this.node, event.clientX, event.clientY)) {\n return;\n }\n\n // Stop the propagation of the event. Immediate propagation is\n // also stopped so that an open menu does not handle the event.\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n // Check if the mouse is over one of the menu items.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return ElementExt.hitTest(node, event.clientX, event.clientY);\n });\n\n // If the press was not on an item, close the child menu.\n if (index === -1) {\n this._closeChildMenu();\n return;\n }\n\n // If the press was not the left mouse button, do nothing further.\n if (event.button !== 0) {\n return;\n }\n\n // Otherwise, toggle the open state of the child menu.\n if (this._childMenu) {\n this._closeChildMenu();\n this.activeIndex = index;\n } else {\n const position = this._positionForMenu(index);\n Menu.saveWindowData();\n // Begin DOM modifications.\n this.activeIndex = index;\n this._openChildMenu(position);\n }\n }\n\n /**\n * Handle the `'mousemove'` event for the menu bar.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Check if the mouse is over one of the menu items.\n let index = ArrayExt.findFirstIndex(this.contentNode.children, node => {\n return ElementExt.hitTest(node, event.clientX, event.clientY);\n });\n\n // Bail early if the active index will not change.\n if (index === this._activeIndex) {\n return;\n }\n\n // Bail early if a child menu is open and the mouse is not over\n // an item. This allows the child menu to be kept open when the\n // mouse is over the empty part of the menu bar.\n if (index === -1 && this._childMenu) {\n return;\n }\n\n // Get position for the new menu >before< updating active index.\n const position = this._positionForMenu(index);\n\n // Before any modification, update window data.\n Menu.saveWindowData();\n\n // Begin DOM modifications.\n\n // Update the active index to the hovered item.\n this.activeIndex = index;\n\n // Open the new menu if a menu is already open.\n if (this._childMenu) {\n this._openChildMenu(position);\n }\n }\n\n /**\n * Find initial position for the menu based on menubar item position.\n *\n * NOTE: this should be called before updating active index to avoid\n * an additional layout and style invalidation as changing active\n * index modifies DOM.\n */\n private _positionForMenu(index: number): Private.IPosition {\n let itemNode = this.contentNode.children[index];\n let { left, bottom } = (itemNode as HTMLElement).getBoundingClientRect();\n return {\n top: bottom,\n left\n };\n }\n\n /**\n * Handle the `'mouseleave'` event for the menu bar.\n */\n private _evtMouseLeave(event: MouseEvent): void {\n // Reset the active index if there is no open menu.\n if (!this._childMenu) {\n this.activeIndex = -1;\n }\n }\n\n /**\n * Open the child menu at the active index immediately.\n *\n * If a different child menu is already open, it will be closed,\n * even if there is no active menu.\n */\n private _openChildMenu(options: { left?: number; top?: number } = {}): void {\n // If there is no active menu, close the current menu.\n let newMenu = this.activeMenu;\n if (!newMenu) {\n this._closeChildMenu();\n return;\n }\n\n // Bail if there is no effective menu change.\n let oldMenu = this._childMenu;\n if (oldMenu === newMenu) {\n return;\n }\n\n // Swap the internal menu reference.\n this._childMenu = newMenu;\n\n // Close the current menu, or setup for the new menu.\n if (oldMenu) {\n oldMenu.close();\n } else {\n document.addEventListener('mousedown', this, true);\n }\n\n // Ensure the menu bar is updated and look up the item node.\n MessageLoop.sendMessage(this, Widget.Msg.UpdateRequest);\n\n // Get the positioning data for the new menu.\n let { left, top } = options;\n if (typeof left === 'undefined' || typeof top === 'undefined') {\n ({ left, top } = this._positionForMenu(this._activeIndex));\n }\n // Begin DOM modifications\n\n if (!oldMenu) {\n // Continue setup for new menu\n this.addClass('lm-mod-active');\n /* */\n this.addClass('p-mod-active');\n /* */\n }\n\n // Open the new menu at the computed location.\n if (newMenu.items.length > 0) {\n newMenu.open(left, top, this._forceItemsPosition);\n }\n }\n\n /**\n * Close the child menu immediately.\n *\n * This is a no-op if a child menu is not open.\n */\n private _closeChildMenu(): void {\n // Bail if no child menu is open.\n if (!this._childMenu) {\n return;\n }\n // Remove the active class from the menu bar.\n this.removeClass('lm-mod-active');\n /* */\n this.removeClass('p-mod-active');\n /* */\n\n // Remove the document listeners.\n document.removeEventListener('mousedown', this, true);\n\n // Clear the internal menu reference.\n let menu = this._childMenu;\n this._childMenu = null;\n\n // Close the menu.\n menu.close();\n\n // Reset the active index.\n this.activeIndex = -1;\n }\n\n /**\n * Handle the `aboutToClose` signal of a menu.\n */\n private _onMenuAboutToClose(sender: Menu): void {\n // Bail if the sender is not the child menu.\n if (sender !== this._childMenu) {\n return;\n }\n\n // Remove the active class from the menu bar.\n this.removeClass('lm-mod-active');\n /* */\n this.removeClass('p-mod-active');\n /* */\n\n // Remove the document listeners.\n document.removeEventListener('mousedown', this, true);\n\n // Clear the internal menu reference.\n this._childMenu = null;\n\n // Reset the active index.\n this.activeIndex = -1;\n }\n\n /**\n * Handle the `menuRequested` signal of a child menu.\n */\n private _onMenuMenuRequested(sender: Menu, args: 'next' | 'previous'): void {\n // Bail if the sender is not the child menu.\n if (sender !== this._childMenu) {\n return;\n }\n\n // Look up the active index and menu count.\n let i = this._activeIndex;\n let n = this._menus.length;\n\n // Active the next requested index.\n switch (args) {\n case 'next':\n this.activeIndex = i === n - 1 ? 0 : i + 1;\n break;\n case 'previous':\n this.activeIndex = i === 0 ? n - 1 : i - 1;\n break;\n }\n\n // Open the active menu.\n this.openActiveMenu();\n }\n\n /**\n * Handle the `changed` signal of a title object.\n */\n private _onTitleChanged(): void {\n this.update();\n }\n\n // Track the index of the item that is currently focused. -1 means nothing focused.\n private _activeIndex = -1;\n // Track which item can be focused using the TAB key. Unlike _activeIndex will always point to a menuitem.\n private _tabFocusIndex = 0;\n private _forceItemsPosition: Menu.IOpenOptions;\n private _menus: Menu[] = [];\n private _childMenu: Menu | null = null;\n}\n\n/**\n * The namespace for the `MenuBar` class statics.\n */\nexport namespace MenuBar {\n /**\n * An options object for creating a menu bar.\n */\n export interface IOptions {\n /**\n * A custom renderer for creating menu bar content.\n *\n * The default is a shared renderer instance.\n */\n renderer?: IRenderer;\n /**\n * Whether to force the position of the menu. The MenuBar forces the\n * coordinates of its menus by default. With this option you can disable it.\n *\n * Setting to `false` will enable the logic which repositions the\n * coordinates of the menu if it will not fit entirely on screen.\n *\n * The default is `true`.\n */\n forceItemsPosition?: Menu.IOpenOptions;\n }\n\n /**\n * An object which holds the data to render a menu bar item.\n */\n export interface IRenderData {\n /**\n * The title to be rendered.\n */\n readonly title: Title;\n\n /**\n * Whether the item is the active item.\n */\n readonly active: boolean;\n\n /**\n * Whether the user can tab to the item.\n */\n readonly tabbable?: boolean;\n\n readonly onfocus?: (event: FocusEvent) => void;\n }\n\n /**\n * A renderer for use with a menu bar.\n */\n export interface IRenderer {\n /**\n * Render the virtual element for a menu bar item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement;\n }\n\n /**\n * The default implementation of `IRenderer`.\n *\n * #### Notes\n * Subclasses are free to reimplement rendering methods as needed.\n */\n export class Renderer implements IRenderer {\n /**\n * Render the virtual element for a menu bar item.\n *\n * @param data - The data to use for rendering the item.\n *\n * @returns A virtual element representing the item.\n */\n renderItem(data: IRenderData): VirtualElement {\n let className = this.createItemClass(data);\n let dataset = this.createItemDataset(data);\n let aria = this.createItemARIA(data);\n return h.li(\n {\n className,\n dataset,\n tabindex: data.tabbable ? '0' : '-1',\n onfocus: data.onfocus,\n ...aria\n },\n this.renderIcon(data),\n this.renderLabel(data)\n );\n }\n\n /**\n * Render the icon element for a menu bar item.\n *\n * @param data - The data to use for rendering the icon.\n *\n * @returns A virtual element representing the item icon.\n */\n renderIcon(data: IRenderData): VirtualElement {\n let className = this.createIconClass(data);\n\n /* */\n if (typeof data.title.icon === 'string') {\n return h.div({ className }, data.title.iconLabel);\n }\n /* */\n\n // if data.title.icon is undefined, it will be ignored\n return h.div({ className }, data.title.icon!, data.title.iconLabel);\n }\n\n /**\n * Render the label element for a menu item.\n *\n * @param data - The data to use for rendering the label.\n *\n * @returns A virtual element representing the item label.\n */\n renderLabel(data: IRenderData): VirtualElement {\n let content = this.formatLabel(data);\n return h.div(\n {\n className:\n 'lm-MenuBar-itemLabel' +\n /* */\n ' p-MenuBar-itemLabel'\n /* */\n },\n content\n );\n }\n\n /**\n * Create the class name for the menu bar item.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the menu item.\n */\n createItemClass(data: IRenderData): string {\n let name = 'lm-MenuBar-item';\n /* */\n name += ' p-MenuBar-item';\n /* */\n if (data.title.className) {\n name += ` ${data.title.className}`;\n }\n if (data.active) {\n name += ' lm-mod-active';\n /* */\n name += ' p-mod-active';\n /* */\n }\n return name;\n }\n\n /**\n * Create the dataset for a menu bar item.\n *\n * @param data - The data to use for the item.\n *\n * @returns The dataset for the menu bar item.\n */\n createItemDataset(data: IRenderData): ElementDataset {\n return data.title.dataset;\n }\n\n /**\n * Create the aria attributes for menu bar item.\n *\n * @param data - The data to use for the aria attributes.\n *\n * @returns The aria attributes object for the item.\n */\n createItemARIA(data: IRenderData): ElementARIAAttrs {\n return { role: 'menuitem', 'aria-haspopup': 'true' };\n }\n\n /**\n * Create the class name for the menu bar item icon.\n *\n * @param data - The data to use for the class name.\n *\n * @returns The full class name for the item icon.\n */\n createIconClass(data: IRenderData): string {\n let name = 'lm-MenuBar-itemIcon';\n /* */\n name += ' p-MenuBar-itemIcon';\n /* */\n let extra = data.title.iconClass;\n return extra ? `${name} ${extra}` : name;\n }\n\n /**\n * Create the render content for the label node.\n *\n * @param data - The data to use for the label content.\n *\n * @returns The content to add to the label node.\n */\n formatLabel(data: IRenderData): h.Child {\n // Fetch the label text and mnemonic index.\n let { label, mnemonic } = data.title;\n\n // If the index is out of range, do not modify the label.\n if (mnemonic < 0 || mnemonic >= label.length) {\n return label;\n }\n\n // Split the label into parts.\n let prefix = label.slice(0, mnemonic);\n let suffix = label.slice(mnemonic + 1);\n let char = label[mnemonic];\n\n // Wrap the mnemonic character in a span.\n let span = h.span(\n {\n className:\n 'lm-MenuBar-itemMnemonic' +\n /* */\n ' p-MenuBar-itemMnemonic'\n /* */\n },\n char\n );\n\n // Return the content parts.\n return [prefix, span, suffix];\n }\n }\n\n /**\n * The default `Renderer` instance.\n */\n export const defaultRenderer = new Renderer();\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create the DOM node for a menu bar.\n */\n export function createNode(): HTMLDivElement {\n let node = document.createElement('div');\n let content = document.createElement('ul');\n content.className = 'lm-MenuBar-content';\n /* */\n content.classList.add('p-MenuBar-content');\n /* */\n node.appendChild(content);\n content.setAttribute('role', 'menubar');\n return node;\n }\n\n /**\n * Position for the menu relative to top-left screen corner.\n */\n export interface IPosition {\n /**\n * Pixels right from screen origin.\n */\n left: number;\n /**\n * Pixels down from screen origin.\n */\n top: number;\n }\n\n /**\n * The results of a mnemonic search.\n */\n export interface IMnemonicResult {\n /**\n * The index of the first matching mnemonic item, or `-1`.\n */\n index: number;\n\n /**\n * Whether multiple mnemonic items matched.\n */\n multiple: boolean;\n\n /**\n * The index of the first auto matched non-mnemonic item.\n */\n auto: number;\n }\n\n /**\n * Find the best matching mnemonic item.\n *\n * The search starts at the given index and wraps around.\n */\n export function findMnemonic(\n menus: ReadonlyArray,\n key: string,\n start: number\n ): IMnemonicResult {\n // Setup the result variables.\n let index = -1;\n let auto = -1;\n let multiple = false;\n\n // Normalize the key to upper case.\n let upperKey = key.toUpperCase();\n\n // Search the items from the given start index.\n for (let i = 0, n = menus.length; i < n; ++i) {\n // Compute the wrapped index.\n let k = (i + start) % n;\n\n // Look up the menu title.\n let title = menus[k].title;\n\n // Ignore titles with an empty label.\n if (title.label.length === 0) {\n continue;\n }\n\n // Look up the mnemonic index for the label.\n let mn = title.mnemonic;\n\n // Handle a valid mnemonic index.\n if (mn >= 0 && mn < title.label.length) {\n if (title.label[mn].toUpperCase() === upperKey) {\n if (index === -1) {\n index = k;\n } else {\n multiple = true;\n }\n }\n continue;\n }\n\n // Finally, handle the auto index if possible.\n if (auto === -1 && title.label[0].toUpperCase() === upperKey) {\n auto = k;\n }\n }\n\n // Return the search results.\n return { index, multiple, auto };\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { IDisposable } from '@lumino/disposable';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Drag } from '@lumino/dragdrop';\n\nimport { Message } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which implements a canonical scroll bar.\n */\nexport class ScrollBar extends Widget {\n /**\n * Construct a new scroll bar.\n *\n * @param options - The options for initializing the scroll bar.\n */\n constructor(options: ScrollBar.IOptions = {}) {\n super({ node: Private.createNode() });\n this.addClass('lm-ScrollBar');\n /* */\n this.addClass('p-ScrollBar');\n /* */\n this.setFlag(Widget.Flag.DisallowLayout);\n\n // Set the orientation.\n this._orientation = options.orientation || 'vertical';\n this.dataset['orientation'] = this._orientation;\n\n // Parse the rest of the options.\n if (options.maximum !== undefined) {\n this._maximum = Math.max(0, options.maximum);\n }\n if (options.page !== undefined) {\n this._page = Math.max(0, options.page);\n }\n if (options.value !== undefined) {\n this._value = Math.max(0, Math.min(options.value, this._maximum));\n }\n }\n\n /**\n * A signal emitted when the user moves the scroll thumb.\n *\n * #### Notes\n * The payload is the current value of the scroll bar.\n */\n get thumbMoved(): ISignal {\n return this._thumbMoved;\n }\n\n /**\n * A signal emitted when the user clicks a step button.\n *\n * #### Notes\n * The payload is whether a decrease or increase is requested.\n */\n get stepRequested(): ISignal {\n return this._stepRequested;\n }\n\n /**\n * A signal emitted when the user clicks the scroll track.\n *\n * #### Notes\n * The payload is whether a decrease or increase is requested.\n */\n get pageRequested(): ISignal {\n return this._pageRequested;\n }\n\n /**\n * Get the orientation of the scroll bar.\n */\n get orientation(): ScrollBar.Orientation {\n return this._orientation;\n }\n\n /**\n * Set the orientation of the scroll bar.\n */\n set orientation(value: ScrollBar.Orientation) {\n // Do nothing if the orientation does not change.\n if (this._orientation === value) {\n return;\n }\n\n // Release the mouse before making changes.\n this._releaseMouse();\n\n // Update the internal orientation.\n this._orientation = value;\n this.dataset['orientation'] = value;\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * Get the current value of the scroll bar.\n */\n get value(): number {\n return this._value;\n }\n\n /**\n * Set the current value of the scroll bar.\n *\n * #### Notes\n * The value will be clamped to the range `[0, maximum]`.\n */\n set value(value: number) {\n // Clamp the value to the allowable range.\n value = Math.max(0, Math.min(value, this._maximum));\n\n // Do nothing if the value does not change.\n if (this._value === value) {\n return;\n }\n\n // Update the internal value.\n this._value = value;\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * Get the page size of the scroll bar.\n *\n * #### Notes\n * The page size is the amount of visible content in the scrolled\n * region, expressed in data units. It determines the size of the\n * scroll bar thumb.\n */\n get page(): number {\n return this._page;\n }\n\n /**\n * Set the page size of the scroll bar.\n *\n * #### Notes\n * The page size will be clamped to the range `[0, Infinity]`.\n */\n set page(value: number) {\n // Clamp the page size to the allowable range.\n value = Math.max(0, value);\n\n // Do nothing if the value does not change.\n if (this._page === value) {\n return;\n }\n\n // Update the internal page size.\n this._page = value;\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * Get the maximum value of the scroll bar.\n */\n get maximum(): number {\n return this._maximum;\n }\n\n /**\n * Set the maximum value of the scroll bar.\n *\n * #### Notes\n * The max size will be clamped to the range `[0, Infinity]`.\n */\n set maximum(value: number) {\n // Clamp the value to the allowable range.\n value = Math.max(0, value);\n\n // Do nothing if the value does not change.\n if (this._maximum === value) {\n return;\n }\n\n // Update the internal values.\n this._maximum = value;\n\n // Clamp the current value to the new range.\n this._value = Math.min(this._value, value);\n\n // Schedule an update the scroll bar.\n this.update();\n }\n\n /**\n * The scroll bar decrement button node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get decrementNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-button'\n )[0] as HTMLDivElement;\n }\n\n /**\n * The scroll bar increment button node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get incrementNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-button'\n )[1] as HTMLDivElement;\n }\n\n /**\n * The scroll bar track node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get trackNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-track'\n )[0] as HTMLDivElement;\n }\n\n /**\n * The scroll bar thumb node.\n *\n * #### Notes\n * Modifying this node directly can lead to undefined behavior.\n */\n get thumbNode(): HTMLDivElement {\n return this.node.getElementsByClassName(\n 'lm-ScrollBar-thumb'\n )[0] as HTMLDivElement;\n }\n\n /**\n * Handle the DOM events for the scroll bar.\n *\n * @param event - The DOM event sent to the scroll bar.\n *\n * #### Notes\n * This method implements the DOM `EventListener` interface and is\n * called in response to events on the scroll bar's DOM node.\n *\n * This should not be called directly by user code.\n */\n handleEvent(event: Event): void {\n switch (event.type) {\n case 'mousedown':\n this._evtMouseDown(event as MouseEvent);\n break;\n case 'mousemove':\n this._evtMouseMove(event as MouseEvent);\n break;\n case 'mouseup':\n this._evtMouseUp(event as MouseEvent);\n break;\n case 'keydown':\n this._evtKeyDown(event as KeyboardEvent);\n break;\n case 'contextmenu':\n event.preventDefault();\n event.stopPropagation();\n break;\n }\n }\n\n /**\n * A method invoked on a 'before-attach' message.\n */\n protected onBeforeAttach(msg: Message): void {\n this.node.addEventListener('mousedown', this);\n this.update();\n }\n\n /**\n * A method invoked on an 'after-detach' message.\n */\n protected onAfterDetach(msg: Message): void {\n this.node.removeEventListener('mousedown', this);\n this._releaseMouse();\n }\n\n /**\n * A method invoked on an 'update-request' message.\n */\n protected onUpdateRequest(msg: Message): void {\n // Convert the value and page into percentages.\n let value = (this._value * 100) / this._maximum;\n let page = (this._page * 100) / (this._page + this._maximum);\n\n // Clamp the value and page to the relevant range.\n value = Math.max(0, Math.min(value, 100));\n page = Math.max(0, Math.min(page, 100));\n\n // Fetch the thumb style.\n let thumbStyle = this.thumbNode.style;\n\n // Update the thumb style for the current orientation.\n if (this._orientation === 'horizontal') {\n thumbStyle.top = '';\n thumbStyle.height = '';\n thumbStyle.left = `${value}%`;\n thumbStyle.width = `${page}%`;\n thumbStyle.transform = `translate(${-value}%, 0%)`;\n } else {\n thumbStyle.left = '';\n thumbStyle.width = '';\n thumbStyle.top = `${value}%`;\n thumbStyle.height = `${page}%`;\n thumbStyle.transform = `translate(0%, ${-value}%)`;\n }\n }\n\n /**\n * Handle the `'keydown'` event for the scroll bar.\n */\n private _evtKeyDown(event: KeyboardEvent): void {\n // Stop all input events during drag.\n event.preventDefault();\n event.stopPropagation();\n\n // Ignore anything except the `Escape` key.\n if (event.keyCode !== 27) {\n return;\n }\n\n // Fetch the previous scroll value.\n let value = this._pressData ? this._pressData.value : -1;\n\n // Release the mouse.\n this._releaseMouse();\n\n // Restore the old scroll value if possible.\n if (value !== -1) {\n this._moveThumb(value);\n }\n }\n\n /**\n * Handle the `'mousedown'` event for the scroll bar.\n */\n private _evtMouseDown(event: MouseEvent): void {\n // Do nothing if it's not a left mouse press.\n if (event.button !== 0) {\n return;\n }\n\n // Send an activate request to the scroll bar. This can be\n // used by message hooks to activate something relevant.\n this.activate();\n\n // Do nothing if the mouse is already captured.\n if (this._pressData) {\n return;\n }\n\n // Find the pressed scroll bar part.\n let part = Private.findPart(this, event.target as HTMLElement);\n\n // Do nothing if the part is not of interest.\n if (!part) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Override the mouse cursor.\n let override = Drag.overrideCursor('default');\n\n // Set up the press data.\n this._pressData = {\n part,\n override,\n delta: -1,\n value: -1,\n mouseX: event.clientX,\n mouseY: event.clientY\n };\n\n // Add the extra event listeners.\n document.addEventListener('mousemove', this, true);\n document.addEventListener('mouseup', this, true);\n document.addEventListener('keydown', this, true);\n document.addEventListener('contextmenu', this, true);\n\n // Handle a thumb press.\n if (part === 'thumb') {\n // Fetch the thumb node.\n let thumbNode = this.thumbNode;\n\n // Fetch the client rect for the thumb.\n let thumbRect = thumbNode.getBoundingClientRect();\n\n // Update the press data delta for the current orientation.\n if (this._orientation === 'horizontal') {\n this._pressData.delta = event.clientX - thumbRect.left;\n } else {\n this._pressData.delta = event.clientY - thumbRect.top;\n }\n\n // Add the active class to the thumb node.\n thumbNode.classList.add('lm-mod-active');\n /* */\n thumbNode.classList.add('p-mod-active');\n /* */\n\n // Store the current value in the press data.\n this._pressData.value = this._value;\n\n // Finished.\n return;\n }\n\n // Handle a track press.\n if (part === 'track') {\n // Fetch the client rect for the thumb.\n let thumbRect = this.thumbNode.getBoundingClientRect();\n\n // Determine the direction for the page request.\n let dir: 'decrement' | 'increment';\n if (this._orientation === 'horizontal') {\n dir = event.clientX < thumbRect.left ? 'decrement' : 'increment';\n } else {\n dir = event.clientY < thumbRect.top ? 'decrement' : 'increment';\n }\n\n // Start the repeat timer.\n this._repeatTimer = window.setTimeout(this._onRepeat, 350);\n\n // Emit the page requested signal.\n this._pageRequested.emit(dir);\n\n // Finished.\n return;\n }\n\n // Handle a decrement button press.\n if (part === 'decrement') {\n // Add the active class to the decrement node.\n this.decrementNode.classList.add('lm-mod-active');\n /* */\n this.decrementNode.classList.add('p-mod-active');\n /* */\n\n // Start the repeat timer.\n this._repeatTimer = window.setTimeout(this._onRepeat, 350);\n\n // Emit the step requested signal.\n this._stepRequested.emit('decrement');\n\n // Finished.\n return;\n }\n\n // Handle an increment button press.\n if (part === 'increment') {\n // Add the active class to the increment node.\n this.incrementNode.classList.add('lm-mod-active');\n /* */\n this.incrementNode.classList.add('p-mod-active');\n /* */\n\n // Start the repeat timer.\n this._repeatTimer = window.setTimeout(this._onRepeat, 350);\n\n // Emit the step requested signal.\n this._stepRequested.emit('increment');\n\n // Finished.\n return;\n }\n }\n\n /**\n * Handle the `'mousemove'` event for the scroll bar.\n */\n private _evtMouseMove(event: MouseEvent): void {\n // Do nothing if no drag is in progress.\n if (!this._pressData) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Update the mouse position.\n this._pressData.mouseX = event.clientX;\n this._pressData.mouseY = event.clientY;\n\n // Bail if the thumb is not being dragged.\n if (this._pressData.part !== 'thumb') {\n return;\n }\n\n // Get the client rect for the thumb and track.\n let thumbRect = this.thumbNode.getBoundingClientRect();\n let trackRect = this.trackNode.getBoundingClientRect();\n\n // Fetch the scroll geometry based on the orientation.\n let trackPos: number;\n let trackSpan: number;\n if (this._orientation === 'horizontal') {\n trackPos = event.clientX - trackRect.left - this._pressData.delta;\n trackSpan = trackRect.width - thumbRect.width;\n } else {\n trackPos = event.clientY - trackRect.top - this._pressData.delta;\n trackSpan = trackRect.height - thumbRect.height;\n }\n\n // Compute the desired value from the scroll geometry.\n let value = trackSpan === 0 ? 0 : (trackPos * this._maximum) / trackSpan;\n\n // Move the thumb to the computed value.\n this._moveThumb(value);\n }\n\n /**\n * Handle the `'mouseup'` event for the scroll bar.\n */\n private _evtMouseUp(event: MouseEvent): void {\n // Do nothing if it's not a left mouse release.\n if (event.button !== 0) {\n return;\n }\n\n // Stop the event propagation.\n event.preventDefault();\n event.stopPropagation();\n\n // Release the mouse.\n this._releaseMouse();\n }\n\n /**\n * Release the mouse and restore the node states.\n */\n private _releaseMouse(): void {\n // Bail if there is no press data.\n if (!this._pressData) {\n return;\n }\n\n // Clear the repeat timer.\n clearTimeout(this._repeatTimer);\n this._repeatTimer = -1;\n\n // Clear the press data.\n this._pressData.override.dispose();\n this._pressData = null;\n\n // Remove the extra event listeners.\n document.removeEventListener('mousemove', this, true);\n document.removeEventListener('mouseup', this, true);\n document.removeEventListener('keydown', this, true);\n document.removeEventListener('contextmenu', this, true);\n\n // Remove the active classes from the nodes.\n this.thumbNode.classList.remove('lm-mod-active');\n this.decrementNode.classList.remove('lm-mod-active');\n this.incrementNode.classList.remove('lm-mod-active');\n /* */\n this.thumbNode.classList.remove('p-mod-active');\n this.decrementNode.classList.remove('p-mod-active');\n this.incrementNode.classList.remove('p-mod-active');\n /* */\n }\n\n /**\n * Move the thumb to the specified position.\n */\n private _moveThumb(value: number): void {\n // Clamp the value to the allowed range.\n value = Math.max(0, Math.min(value, this._maximum));\n\n // Bail if the value does not change.\n if (this._value === value) {\n return;\n }\n\n // Update the internal value.\n this._value = value;\n\n // Schedule an update of the scroll bar.\n this.update();\n\n // Emit the thumb moved signal.\n this._thumbMoved.emit(value);\n }\n\n /**\n * A timeout callback for repeating the mouse press.\n */\n private _onRepeat = () => {\n // Clear the repeat timer id.\n this._repeatTimer = -1;\n\n // Bail if the mouse has been released.\n if (!this._pressData) {\n return;\n }\n\n // Look up the part that was pressed.\n let part = this._pressData.part;\n\n // Bail if the thumb was pressed.\n if (part === 'thumb') {\n return;\n }\n\n // Schedule the timer for another repeat.\n this._repeatTimer = window.setTimeout(this._onRepeat, 20);\n\n // Get the current mouse position.\n let mouseX = this._pressData.mouseX;\n let mouseY = this._pressData.mouseY;\n\n // Handle a decrement button repeat.\n if (part === 'decrement') {\n // Bail if the mouse is not over the button.\n if (!ElementExt.hitTest(this.decrementNode, mouseX, mouseY)) {\n return;\n }\n\n // Emit the step requested signal.\n this._stepRequested.emit('decrement');\n\n // Finished.\n return;\n }\n\n // Handle an increment button repeat.\n if (part === 'increment') {\n // Bail if the mouse is not over the button.\n if (!ElementExt.hitTest(this.incrementNode, mouseX, mouseY)) {\n return;\n }\n\n // Emit the step requested signal.\n this._stepRequested.emit('increment');\n\n // Finished.\n return;\n }\n\n // Handle a track repeat.\n if (part === 'track') {\n // Bail if the mouse is not over the track.\n if (!ElementExt.hitTest(this.trackNode, mouseX, mouseY)) {\n return;\n }\n\n // Fetch the thumb node.\n let thumbNode = this.thumbNode;\n\n // Bail if the mouse is over the thumb.\n if (ElementExt.hitTest(thumbNode, mouseX, mouseY)) {\n return;\n }\n\n // Fetch the client rect for the thumb.\n let thumbRect = thumbNode.getBoundingClientRect();\n\n // Determine the direction for the page request.\n let dir: 'decrement' | 'increment';\n if (this._orientation === 'horizontal') {\n dir = mouseX < thumbRect.left ? 'decrement' : 'increment';\n } else {\n dir = mouseY < thumbRect.top ? 'decrement' : 'increment';\n }\n\n // Emit the page requested signal.\n this._pageRequested.emit(dir);\n\n // Finished.\n return;\n }\n };\n\n private _value = 0;\n private _page = 10;\n private _maximum = 100;\n private _repeatTimer = -1;\n private _orientation: ScrollBar.Orientation;\n private _pressData: Private.IPressData | null = null;\n private _thumbMoved = new Signal(this);\n private _stepRequested = new Signal(this);\n private _pageRequested = new Signal(this);\n}\n\n/**\n * The namespace for the `ScrollBar` class statics.\n */\nexport namespace ScrollBar {\n /**\n * A type alias for a scroll bar orientation.\n */\n export type Orientation = 'horizontal' | 'vertical';\n\n /**\n * An options object for creating a scroll bar.\n */\n export interface IOptions {\n /**\n * The orientation of the scroll bar.\n *\n * The default is `'vertical'`.\n */\n orientation?: Orientation;\n\n /**\n * The value for the scroll bar.\n *\n * The default is `0`.\n */\n value?: number;\n\n /**\n * The page size for the scroll bar.\n *\n * The default is `10`.\n */\n page?: number;\n\n /**\n * The maximum value for the scroll bar.\n *\n * The default is `100`.\n */\n maximum?: number;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * A type alias for the parts of a scroll bar.\n */\n export type ScrollBarPart = 'thumb' | 'track' | 'decrement' | 'increment';\n\n /**\n * An object which holds mouse press data.\n */\n export interface IPressData {\n /**\n * The scroll bar part which was pressed.\n */\n part: ScrollBarPart;\n\n /**\n * The offset of the press in thumb coordinates, or -1.\n */\n delta: number;\n\n /**\n * The scroll value at the time the thumb was pressed, or -1.\n */\n value: number;\n\n /**\n * The disposable which will clear the override cursor.\n */\n override: IDisposable;\n\n /**\n * The current X position of the mouse.\n */\n mouseX: number;\n\n /**\n * The current Y position of the mouse.\n */\n mouseY: number;\n }\n\n /**\n * Create the DOM node for a scroll bar.\n */\n export function createNode(): HTMLElement {\n let node = document.createElement('div');\n let decrement = document.createElement('div');\n let increment = document.createElement('div');\n let track = document.createElement('div');\n let thumb = document.createElement('div');\n decrement.className = 'lm-ScrollBar-button';\n increment.className = 'lm-ScrollBar-button';\n decrement.dataset['action'] = 'decrement';\n increment.dataset['action'] = 'increment';\n track.className = 'lm-ScrollBar-track';\n thumb.className = 'lm-ScrollBar-thumb';\n /* */\n decrement.classList.add('p-ScrollBar-button');\n increment.classList.add('p-ScrollBar-button');\n track.classList.add('p-ScrollBar-track');\n thumb.classList.add('p-ScrollBar-thumb');\n /* */\n track.appendChild(thumb);\n node.appendChild(decrement);\n node.appendChild(track);\n node.appendChild(increment);\n return node;\n }\n\n /**\n * Find the scroll bar part which contains the given target.\n */\n export function findPart(\n scrollBar: ScrollBar,\n target: HTMLElement\n ): ScrollBarPart | null {\n // Test the thumb.\n if (scrollBar.thumbNode.contains(target)) {\n return 'thumb';\n }\n\n // Test the track.\n if (scrollBar.trackNode.contains(target)) {\n return 'track';\n }\n\n // Test the decrement button.\n if (scrollBar.decrementNode.contains(target)) {\n return 'decrement';\n }\n\n // Test the increment button.\n if (scrollBar.incrementNode.contains(target)) {\n return 'increment';\n }\n\n // Indicate no match.\n return null;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { Panel } from './panel';\n\nimport { StackedLayout } from './stackedlayout';\n\nimport { Widget } from './widget';\n\n/**\n * A panel where visible widgets are stacked atop one another.\n *\n * #### Notes\n * This class provides a convenience wrapper around a [[StackedLayout]].\n */\nexport class StackedPanel extends Panel {\n /**\n * Construct a new stacked panel.\n *\n * @param options - The options for initializing the panel.\n */\n constructor(options: StackedPanel.IOptions = {}) {\n super({ layout: Private.createLayout(options) });\n this.addClass('lm-StackedPanel');\n /* */\n this.addClass('p-StackedPanel');\n /* */\n }\n\n /**\n * The method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n get hiddenMode(): Widget.HiddenMode {\n return (this.layout as StackedLayout).hiddenMode;\n }\n\n /**\n * Set the method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n set hiddenMode(v: Widget.HiddenMode) {\n (this.layout as StackedLayout).hiddenMode = v;\n }\n\n /**\n * A signal emitted when a widget is removed from a stacked panel.\n */\n get widgetRemoved(): ISignal {\n return this._widgetRemoved;\n }\n\n /**\n * A message handler invoked on a `'child-added'` message.\n */\n protected onChildAdded(msg: Widget.ChildMessage): void {\n msg.child.addClass('lm-StackedPanel-child');\n /* */\n msg.child.addClass('p-StackedPanel-child');\n /* */\n }\n\n /**\n * A message handler invoked on a `'child-removed'` message.\n */\n protected onChildRemoved(msg: Widget.ChildMessage): void {\n msg.child.removeClass('lm-StackedPanel-child');\n /* */\n msg.child.removeClass('p-StackedPanel-child');\n /* */\n this._widgetRemoved.emit(msg.child);\n }\n\n private _widgetRemoved = new Signal(this);\n}\n\n/**\n * The namespace for the `StackedPanel` class statics.\n */\nexport namespace StackedPanel {\n /**\n * An options object for creating a stacked panel.\n */\n export interface IOptions {\n /**\n * The stacked layout to use for the stacked panel.\n *\n * The default is a new `StackedLayout`.\n */\n layout?: StackedLayout;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Create a stacked layout for the given panel options.\n */\n export function createLayout(options: StackedPanel.IOptions): StackedLayout {\n return options.layout || new StackedLayout();\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, empty, IIterator, once } from '@lumino/algorithm';\n\nimport { MessageLoop } from '@lumino/messaging';\n\nimport { Layout } from './layout';\n\nimport { Widget } from './widget';\n\n/**\n * A concrete layout implementation which holds a single widget.\n *\n * #### Notes\n * This class is useful for creating simple container widgets which\n * hold a single child. The child should be positioned with CSS.\n */\nexport class SingletonLayout extends Layout {\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n if (this._widget) {\n let widget = this._widget;\n this._widget = null;\n widget.dispose();\n }\n super.dispose();\n }\n\n /**\n * Get the child widget for the layout.\n */\n get widget(): Widget | null {\n return this._widget;\n }\n\n /**\n * Set the child widget for the layout.\n *\n * #### Notes\n * Setting the child widget will cause the old child widget to be\n * automatically disposed. If that is not desired, set the parent\n * of the old child to `null` before assigning a new child.\n */\n set widget(widget: Widget | null) {\n // Remove the widget from its current parent. This is a no-op\n // if the widget's parent is already the layout parent widget.\n if (widget) {\n widget.parent = this.parent;\n }\n\n // Bail early if the widget does not change.\n if (this._widget === widget) {\n return;\n }\n\n // Dispose of the old child widget.\n if (this._widget) {\n this._widget.dispose();\n }\n\n // Update the internal widget.\n this._widget = widget;\n\n // Attach the new child widget if needed.\n if (this.parent && widget) {\n this.attachWidget(widget);\n }\n }\n\n /**\n * Create an iterator over the widgets in the layout.\n *\n * @returns A new iterator over the widgets in the layout.\n */\n iter(): IIterator {\n return this._widget ? once(this._widget) : empty();\n }\n\n /**\n * Remove a widget from the layout.\n *\n * @param widget - The widget to remove from the layout.\n *\n * #### Notes\n * A widget is automatically removed from the layout when its `parent`\n * is set to `null`. This method should only be invoked directly when\n * removing a widget from a layout which has yet to be installed on a\n * parent widget.\n *\n * This method does *not* modify the widget's `parent`.\n */\n removeWidget(widget: Widget): void {\n // Bail early if the widget does not exist in the layout.\n if (this._widget !== widget) {\n return;\n }\n\n // Clear the internal widget.\n this._widget = null;\n\n // If the layout is parented, detach the widget from the DOM.\n if (this.parent) {\n this.detachWidget(widget);\n }\n }\n\n /**\n * Perform layout initialization which requires the parent widget.\n */\n protected init(): void {\n super.init();\n each(this, widget => {\n this.attachWidget(widget);\n });\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This method is called automatically by the single layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation adds the widgets's node to the parent's\n * node at the proper location, and sends the appropriate attach\n * messages to the widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is added to the parent's node.\n */\n protected attachWidget(widget: Widget): void {\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This method is called automatically by the single layout at the\n * appropriate time. It should not be called directly by user code.\n *\n * The default implementation removes the widget's node from the\n * parent's node, and sends the appropriate detach messages to the\n * widget if the parent is attached to the DOM.\n *\n * Subclasses may reimplement this method to control how the widget's\n * node is removed from the parent's node.\n */\n protected detachWidget(widget: Widget): void {\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n }\n\n private _widget: Widget | null = null;\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { ArrayExt, each } from '@lumino/algorithm';\n\nimport { ElementExt } from '@lumino/domutils';\n\nimport { Message, MessageLoop } from '@lumino/messaging';\n\nimport { Layout, LayoutItem } from './layout';\n\nimport { PanelLayout } from './panellayout';\n\nimport { Widget } from './widget';\n\n/**\n * A layout where visible widgets are stacked atop one another.\n *\n * #### Notes\n * The Z-order of the visible widgets follows their layout order.\n */\nexport class StackedLayout extends PanelLayout {\n constructor(options: StackedLayout.IOptions = {}) {\n super(options);\n this._hiddenMode =\n options.hiddenMode !== undefined\n ? options.hiddenMode\n : Widget.HiddenMode.Display;\n }\n\n /**\n * The method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n get hiddenMode(): Widget.HiddenMode {\n return this._hiddenMode;\n }\n\n /**\n * Set the method for hiding widgets.\n *\n * #### Notes\n * If there is only one child widget, `Display` hiding mode will be used\n * regardless of this setting.\n */\n set hiddenMode(v: Widget.HiddenMode) {\n if (this._hiddenMode === v) {\n return;\n }\n this._hiddenMode = v;\n if (this.widgets.length > 1) {\n this.widgets.forEach(w => {\n w.hiddenMode = this._hiddenMode;\n });\n }\n }\n\n /**\n * Dispose of the resources held by the layout.\n */\n dispose(): void {\n // Dispose of the layout items.\n each(this._items, item => {\n item.dispose();\n });\n\n // Clear the layout state.\n this._box = null;\n this._items.length = 0;\n\n // Dispose of the rest of the layout.\n super.dispose();\n }\n\n /**\n * Attach a widget to the parent's DOM node.\n *\n * @param index - The current index of the widget in the layout.\n *\n * @param widget - The widget to attach to the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected attachWidget(index: number, widget: Widget): void {\n // Using transform create an additional layer in the pixel pipeline\n // to limit the number of layer, it is set only if there is more than one widget.\n if (\n this._hiddenMode === Widget.HiddenMode.Scale &&\n this._items.length > 0\n ) {\n if (this._items.length === 1) {\n this.widgets[0].hiddenMode = Widget.HiddenMode.Scale;\n }\n widget.hiddenMode = Widget.HiddenMode.Scale;\n } else {\n widget.hiddenMode = Widget.HiddenMode.Display;\n }\n\n // Create and add a new layout item for the widget.\n ArrayExt.insert(this._items, index, new LayoutItem(widget));\n\n // Send a `'before-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeAttach);\n }\n\n // Add the widget's node to the parent.\n this.parent!.node.appendChild(widget.node);\n\n // Send an `'after-attach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterAttach);\n }\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * Move a widget in the parent's DOM node.\n *\n * @param fromIndex - The previous index of the widget in the layout.\n *\n * @param toIndex - The current index of the widget in the layout.\n *\n * @param widget - The widget to move in the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected moveWidget(\n fromIndex: number,\n toIndex: number,\n widget: Widget\n ): void {\n // Move the layout item for the widget.\n ArrayExt.move(this._items, fromIndex, toIndex);\n\n // Post an update request for the parent widget.\n this.parent!.update();\n }\n\n /**\n * Detach a widget from the parent's DOM node.\n *\n * @param index - The previous index of the widget in the layout.\n *\n * @param widget - The widget to detach from the parent.\n *\n * #### Notes\n * This is a reimplementation of the superclass method.\n */\n protected detachWidget(index: number, widget: Widget): void {\n // Remove the layout item for the widget.\n let item = ArrayExt.removeAt(this._items, index);\n\n // Send a `'before-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.BeforeDetach);\n }\n\n // Remove the widget's node from the parent.\n this.parent!.node.removeChild(widget.node);\n\n // Send an `'after-detach'` message if the parent is attached.\n if (this.parent!.isAttached) {\n MessageLoop.sendMessage(widget, Widget.Msg.AfterDetach);\n }\n\n // Reset the z-index for the widget.\n item!.widget.node.style.zIndex = '';\n\n // Reset the hidden mode for the widget.\n if (this._hiddenMode === Widget.HiddenMode.Scale) {\n widget.hiddenMode = Widget.HiddenMode.Display;\n\n // Reset the hidden mode for the first widget if necessary.\n if (this._items.length === 1) {\n this._items[0].widget.hiddenMode = Widget.HiddenMode.Display;\n }\n }\n\n // Dispose of the layout item.\n item!.dispose();\n\n // Post a fit request for the parent widget.\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'before-show'` message.\n */\n protected onBeforeShow(msg: Message): void {\n super.onBeforeShow(msg);\n this.parent!.update();\n }\n\n /**\n * A message handler invoked on a `'before-attach'` message.\n */\n protected onBeforeAttach(msg: Message): void {\n super.onBeforeAttach(msg);\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-shown'` message.\n */\n protected onChildShown(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'child-hidden'` message.\n */\n protected onChildHidden(msg: Widget.ChildMessage): void {\n this.parent!.fit();\n }\n\n /**\n * A message handler invoked on a `'resize'` message.\n */\n protected onResize(msg: Widget.ResizeMessage): void {\n if (this.parent!.isVisible) {\n this._update(msg.width, msg.height);\n }\n }\n\n /**\n * A message handler invoked on an `'update-request'` message.\n */\n protected onUpdateRequest(msg: Message): void {\n if (this.parent!.isVisible) {\n this._update(-1, -1);\n }\n }\n\n /**\n * A message handler invoked on a `'fit-request'` message.\n */\n protected onFitRequest(msg: Message): void {\n if (this.parent!.isAttached) {\n this._fit();\n }\n }\n\n /**\n * Fit the layout to the total size required by the widgets.\n */\n private _fit(): void {\n // Set up the computed minimum size.\n let minW = 0;\n let minH = 0;\n\n // Update the computed minimum size.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Update the size limits for the item.\n item.fit();\n\n // Update the computed minimum size.\n minW = Math.max(minW, item.minWidth);\n minH = Math.max(minH, item.minHeight);\n }\n\n // Update the box sizing and add it to the computed min size.\n let box = (this._box = ElementExt.boxSizing(this.parent!.node));\n minW += box.horizontalSum;\n minH += box.verticalSum;\n\n // Update the parent's min size constraints.\n let style = this.parent!.node.style;\n style.minWidth = `${minW}px`;\n style.minHeight = `${minH}px`;\n\n // Set the dirty flag to ensure only a single update occurs.\n this._dirty = true;\n\n // Notify the ancestor that it should fit immediately. This may\n // cause a resize of the parent, fulfilling the required update.\n if (this.parent!.parent) {\n MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest);\n }\n\n // If the dirty flag is still set, the parent was not resized.\n // Trigger the required update on the parent widget immediately.\n if (this._dirty) {\n MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest);\n }\n }\n\n /**\n * Update the layout position and size of the widgets.\n *\n * The parent offset dimensions should be `-1` if unknown.\n */\n private _update(offsetWidth: number, offsetHeight: number): void {\n // Clear the dirty flag to indicate the update occurred.\n this._dirty = false;\n\n // Compute the visible item count.\n let nVisible = 0;\n for (let i = 0, n = this._items.length; i < n; ++i) {\n nVisible += +!this._items[i].isHidden;\n }\n\n // Bail early if there are no visible items to layout.\n if (nVisible === 0) {\n return;\n }\n\n // Measure the parent if the offset dimensions are unknown.\n if (offsetWidth < 0) {\n offsetWidth = this.parent!.node.offsetWidth;\n }\n if (offsetHeight < 0) {\n offsetHeight = this.parent!.node.offsetHeight;\n }\n\n // Ensure the parent box sizing data is computed.\n if (!this._box) {\n this._box = ElementExt.boxSizing(this.parent!.node);\n }\n\n // Compute the actual layout bounds adjusted for border and padding.\n let top = this._box.paddingTop;\n let left = this._box.paddingLeft;\n let width = offsetWidth - this._box.horizontalSum;\n let height = offsetHeight - this._box.verticalSum;\n\n // Update the widget stacking order and layout geometry.\n for (let i = 0, n = this._items.length; i < n; ++i) {\n // Fetch the item.\n let item = this._items[i];\n\n // Ignore hidden items.\n if (item.isHidden) {\n continue;\n }\n\n // Set the z-index for the widget.\n item.widget.node.style.zIndex = `${i}`;\n\n // Update the item geometry.\n item.update(left, top, width, height);\n }\n }\n\n private _dirty = false;\n private _items: LayoutItem[] = [];\n private _box: ElementExt.IBoxSizing | null = null;\n private _hiddenMode: Widget.HiddenMode;\n}\n\n/**\n * The namespace for the `StackedLayout` class statics.\n */\nexport namespace StackedLayout {\n /**\n * An options object for initializing a stacked layout.\n */\n export interface IOptions extends Layout.IOptions {\n /**\n * The method for hiding widgets.\n *\n * The default is `Widget.HiddenMode.Display`.\n */\n hiddenMode?: Widget.HiddenMode;\n }\n}\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { Platform } from '@lumino/domutils';\n\nimport { MessageLoop } from '@lumino/messaging';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\nimport { BoxLayout } from './boxlayout';\n\nimport { StackedPanel } from './stackedpanel';\n\nimport { TabBar } from './tabbar';\n\nimport { Widget } from './widget';\n\n/**\n * A widget which combines a `TabBar` and a `StackedPanel`.\n *\n * #### Notes\n * This is a simple panel which handles the common case of a tab bar\n * placed next to a content area. The selected tab controls the widget\n * which is shown in the content area.\n *\n * For use cases which require more control than is provided by this\n * panel, the `TabBar` widget may be used independently.\n */\nexport class TabPanel extends Widget {\n /**\n * Construct a new tab panel.\n *\n * @param options - The options for initializing the tab panel.\n */\n constructor(options: TabPanel.IOptions = {}) {\n super();\n this.addClass('lm-TabPanel');\n /* */\n this.addClass('p-TabPanel');\n /* */\n\n // Create the tab bar and stacked panel.\n this.tabBar = new TabBar(options);\n this.tabBar.addClass('lm-TabPanel-tabBar');\n this.stackedPanel = new StackedPanel();\n this.stackedPanel.addClass('lm-TabPanel-stackedPanel');\n /* */\n this.tabBar.addClass('p-TabPanel-tabBar');\n this.stackedPanel.addClass('p-TabPanel-stackedPanel');\n /* */\n\n // Connect the tab bar signal handlers.\n this.tabBar.tabMoved.connect(this._onTabMoved, this);\n this.tabBar.currentChanged.connect(this._onCurrentChanged, this);\n this.tabBar.tabCloseRequested.connect(this._onTabCloseRequested, this);\n this.tabBar.tabActivateRequested.connect(\n this._onTabActivateRequested,\n this\n );\n this.tabBar.addRequested.connect(this._onTabAddRequested, this);\n\n // Connect the stacked panel signal handlers.\n this.stackedPanel.widgetRemoved.connect(this._onWidgetRemoved, this);\n\n // Get the data related to the placement.\n this._tabPlacement = options.tabPlacement || 'top';\n let direction = Private.directionFromPlacement(this._tabPlacement);\n let orientation = Private.orientationFromPlacement(this._tabPlacement);\n\n // Configure the tab bar for the placement.\n this.tabBar.orientation = orientation;\n this.tabBar.dataset['placement'] = this._tabPlacement;\n\n // Create the box layout.\n let layout = new BoxLayout({ direction, spacing: 0 });\n\n // Set the stretch factors for the child widgets.\n BoxLayout.setStretch(this.tabBar, 0);\n BoxLayout.setStretch(this.stackedPanel, 1);\n\n // Add the child widgets to the layout.\n layout.addWidget(this.tabBar);\n layout.addWidget(this.stackedPanel);\n\n // Install the layout on the tab panel.\n this.layout = layout;\n }\n\n /**\n * A signal emitted when the current tab is changed.\n *\n * #### Notes\n * This signal is emitted when the currently selected tab is changed\n * either through user or programmatic interaction.\n *\n * Notably, this signal is not emitted when the index of the current\n * tab changes due to tabs being inserted, removed, or moved. It is\n * only emitted when the actual current tab node is changed.\n */\n get currentChanged(): ISignal {\n return this._currentChanged;\n }\n\n /**\n * Get the index of the currently selected tab.\n *\n * #### Notes\n * This will be `-1` if no tab is selected.\n */\n get currentIndex(): number {\n return this.tabBar.currentIndex;\n }\n\n /**\n * Set the index of the currently selected tab.\n *\n * #### Notes\n * If the index is out of range, it will be set to `-1`.\n */\n set currentIndex(value: number) {\n this.tabBar.currentIndex = value;\n }\n\n /**\n * Get the currently selected widget.\n *\n * #### Notes\n * This will be `null` if there is no selected tab.\n */\n get currentWidget(): Widget | null {\n let title = this.tabBar.currentTitle;\n return title ? title.owner : null;\n }\n\n /**\n * Set the currently selected widget.\n *\n * #### Notes\n * If the widget is not in the panel, it will be set to `null`.\n */\n set currentWidget(value: Widget | null) {\n this.tabBar.currentTitle = value ? value.title : null;\n }\n\n /**\n * Get the whether the tabs are movable by the user.\n *\n * #### Notes\n * Tabs can always be moved programmatically.\n */\n get tabsMovable(): boolean {\n return this.tabBar.tabsMovable;\n }\n\n /**\n * Set the whether the tabs are movable by the user.\n *\n * #### Notes\n * Tabs can always be moved programmatically.\n */\n set tabsMovable(value: boolean) {\n this.tabBar.tabsMovable = value;\n }\n\n /**\n * Get the whether the add button is enabled.\n *\n */\n get addButtonEnabled(): boolean {\n return this.tabBar.addButtonEnabled;\n }\n\n /**\n * Set the whether the add button is enabled.\n *\n */\n set addButtonEnabled(value: boolean) {\n this.tabBar.addButtonEnabled = value;\n }\n\n /**\n * Get the tab placement for the tab panel.\n *\n * #### Notes\n * This controls the position of the tab bar relative to the content.\n */\n get tabPlacement(): TabPanel.TabPlacement {\n return this._tabPlacement;\n }\n\n /**\n * Set the tab placement for the tab panel.\n *\n * #### Notes\n * This controls the position of the tab bar relative to the content.\n */\n set tabPlacement(value: TabPanel.TabPlacement) {\n // Bail if the placement does not change.\n if (this._tabPlacement === value) {\n return;\n }\n\n // Update the internal value.\n this._tabPlacement = value;\n\n // Get the values related to the placement.\n let direction = Private.directionFromPlacement(value);\n let orientation = Private.orientationFromPlacement(value);\n\n // Configure the tab bar for the placement.\n this.tabBar.orientation = orientation;\n this.tabBar.dataset['placement'] = value;\n\n // Update the layout direction.\n (this.layout as BoxLayout).direction = direction;\n }\n\n /**\n * A signal emitted when the add button on a tab bar is clicked.\n *\n */\n get addRequested(): ISignal> {\n return this._addRequested;\n }\n\n /**\n * The tab bar used by the tab panel.\n *\n * #### Notes\n * Modifying the tab bar directly can lead to undefined behavior.\n */\n readonly tabBar: TabBar;\n\n /**\n * The stacked panel used by the tab panel.\n *\n * #### Notes\n * Modifying the panel directly can lead to undefined behavior.\n */\n readonly stackedPanel: StackedPanel;\n\n /**\n * A read-only array of the widgets in the panel.\n */\n get widgets(): ReadonlyArray {\n return this.stackedPanel.widgets;\n }\n\n /**\n * Add a widget to the end of the tab panel.\n *\n * @param widget - The widget to add to the tab panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n *\n * The widget's `title` is used to populate the tab.\n */\n addWidget(widget: Widget): void {\n this.insertWidget(this.widgets.length, widget);\n }\n\n /**\n * Insert a widget into the tab panel at a specified index.\n *\n * @param index - The index at which to insert the widget.\n *\n * @param widget - The widget to insert into to the tab panel.\n *\n * #### Notes\n * If the widget is already contained in the panel, it will be moved.\n *\n * The widget's `title` is used to populate the tab.\n */\n insertWidget(index: number, widget: Widget): void {\n if (widget !== this.currentWidget) {\n widget.hide();\n }\n this.stackedPanel.insertWidget(index, widget);\n this.tabBar.insertTab(index, widget.title);\n\n widget.node.setAttribute('role', 'tabpanel');\n\n let renderer = this.tabBar.renderer;\n if (renderer instanceof TabBar.Renderer) {\n let tabId = renderer.createTabKey({\n title: widget.title,\n current: false,\n zIndex: 0\n });\n widget.node.setAttribute('aria-labelledby', tabId);\n }\n }\n\n /**\n * Handle the `currentChanged` signal from the tab bar.\n */\n private _onCurrentChanged(\n sender: TabBar,\n args: TabBar.ICurrentChangedArgs\n ): void {\n // Extract the previous and current title from the args.\n let { previousIndex, previousTitle, currentIndex, currentTitle } = args;\n\n // Extract the widgets from the titles.\n let previousWidget = previousTitle ? previousTitle.owner : null;\n let currentWidget = currentTitle ? currentTitle.owner : null;\n\n // Hide the previous widget.\n if (previousWidget) {\n previousWidget.hide();\n }\n\n // Show the current widget.\n if (currentWidget) {\n currentWidget.show();\n }\n\n // Emit the `currentChanged` signal for the tab panel.\n this._currentChanged.emit({\n previousIndex,\n previousWidget,\n currentIndex,\n currentWidget\n });\n\n // Flush the message loop on IE and Edge to prevent flicker.\n if (Platform.IS_EDGE || Platform.IS_IE) {\n MessageLoop.flush();\n }\n }\n\n /**\n * Handle the `tabAddRequested` signal from the tab bar.\n */\n private _onTabAddRequested(sender: TabBar, args: void): void {\n this._addRequested.emit(sender);\n }\n\n /**\n * Handle the `tabActivateRequested` signal from the tab bar.\n */\n private _onTabActivateRequested(\n sender: TabBar,\n args: TabBar.ITabActivateRequestedArgs\n ): void {\n args.title.owner.activate();\n }\n\n /**\n * Handle the `tabCloseRequested` signal from the tab bar.\n */\n private _onTabCloseRequested(\n sender: TabBar,\n args: TabBar.ITabCloseRequestedArgs\n ): void {\n args.title.owner.close();\n }\n\n /**\n * Handle the `tabMoved` signal from the tab bar.\n */\n private _onTabMoved(\n sender: TabBar,\n args: TabBar.ITabMovedArgs\n ): void {\n this.stackedPanel.insertWidget(args.toIndex, args.title.owner);\n }\n\n /**\n * Handle the `widgetRemoved` signal from the stacked panel.\n */\n private _onWidgetRemoved(sender: StackedPanel, widget: Widget): void {\n widget.node.removeAttribute('role');\n widget.node.removeAttribute('aria-labelledby');\n this.tabBar.removeTab(widget.title);\n }\n\n private _tabPlacement: TabPanel.TabPlacement;\n private _currentChanged = new Signal(\n this\n );\n\n private _addRequested = new Signal>(this);\n}\n\n/**\n * The namespace for the `TabPanel` class statics.\n */\nexport namespace TabPanel {\n /**\n * A type alias for tab placement in a tab bar.\n */\n export type TabPlacement =\n | /**\n * The tabs are placed as a row above the content.\n */\n 'top'\n\n /**\n * The tabs are placed as a column to the left of the content.\n */\n | 'left'\n\n /**\n * The tabs are placed as a column to the right of the content.\n */\n | 'right'\n\n /**\n * The tabs are placed as a row below the content.\n */\n | 'bottom';\n\n /**\n * An options object for initializing a tab panel.\n */\n export interface IOptions {\n /**\n * The document to use with the tab panel.\n *\n * The default is the global `document` instance.\n */\n document?: Document | ShadowRoot;\n\n /**\n * Whether the tabs are movable by the user.\n *\n * The default is `false`.\n */\n tabsMovable?: boolean;\n\n /**\n * Whether the button to add new tabs is enabled.\n *\n * The default is `false`.\n */\n addButtonEnabled?: boolean;\n\n /**\n * The placement of the tab bar relative to the content.\n *\n * The default is `'top'`.\n */\n tabPlacement?: TabPlacement;\n\n /**\n * The renderer for the panel's tab bar.\n *\n * The default is a shared renderer instance.\n */\n renderer?: TabBar.IRenderer;\n }\n\n /**\n * The arguments object for the `currentChanged` signal.\n */\n export interface ICurrentChangedArgs {\n /**\n * The previously selected index.\n */\n previousIndex: number;\n\n /**\n * The previously selected widget.\n */\n previousWidget: Widget | null;\n\n /**\n * The currently selected index.\n */\n currentIndex: number;\n\n /**\n * The currently selected widget.\n */\n currentWidget: Widget | null;\n }\n}\n\n/**\n * The namespace for the module implementation details.\n */\nnamespace Private {\n /**\n * Convert a tab placement to tab bar orientation.\n */\n export function orientationFromPlacement(\n plc: TabPanel.TabPlacement\n ): TabBar.Orientation {\n return placementToOrientationMap[plc];\n }\n\n /**\n * Convert a tab placement to a box layout direction.\n */\n export function directionFromPlacement(\n plc: TabPanel.TabPlacement\n ): BoxLayout.Direction {\n return placementToDirectionMap[plc];\n }\n\n /**\n * A mapping of tab placement to tab bar orientation.\n */\n const placementToOrientationMap: { [key: string]: TabBar.Orientation } = {\n top: 'horizontal',\n left: 'vertical',\n right: 'vertical',\n bottom: 'horizontal'\n };\n\n /**\n * A mapping of tab placement to box layout direction.\n */\n const placementToDirectionMap: { [key: string]: BoxLayout.Direction } = {\n top: 'top-to-bottom',\n left: 'left-to-right',\n right: 'right-to-left',\n bottom: 'bottom-to-top'\n };\n}\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","BoxEngine","__assign","assign","t","s","i","n","arguments","length","apply","sizeHint","minSize","maxSize","Infinity","stretch","size","done","calc","sizers","space","count","totalMin","totalMax","totalSize","totalStretch","stretchCount","min","sizer","max","hint","Math","nearZero","notDoneCount","freeSpace","distSpace","distStretch","amt","adjust","index","delta","growLimit","shrinkLimit","grow","limit","shrink","growSizer","shrinkSizer","Private","options","_label","_caption","_mnemonic","_iconClass","_iconLabel","_className","_closable","_changed","Signal","_isDisposed","owner","undefined","label","mnemonic","icon","_icon","iconClass","iconLabel","iconRenderer","caption","className","closable","_dataset","dataset","value","emit","dispose","isDisposed","_flags","_layout","_parent","_disposed","_hiddenMode","Widget","HiddenMode","Display","node","createNode","addClass","setFlag","Flag","IsDisposed","parent","isAttached","detach","title","MessageLoop","AttachedProperty","testFlag","IsAttached","IsHidden","IsVisible","titleProperty","get","id","isHidden","_toggleHidden","Scale","style","willChange","contains","Error","msg","ChildMessage","Msg","ParentChanged","DisallowLayout","children","iter","empty","widget","hasClass","name","classList","add","removeClass","remove","toggleClass","force","toggle","update","UpdateRequest","fit","FitRequest","activate","ActivateRequest","close","CloseRequest","show","isVisible","BeforeShow","clearFlag","removeAttribute","AfterShow","hide","BeforeHide","setAttribute","AfterHide","setHidden","hidden","flag","processMessage","type","notifyLayout","onResize","onUpdateRequest","onFitRequest","onBeforeShow","onAfterShow","onBeforeHide","onAfterHide","onBeforeAttach","onAfterAttach","onBeforeDetach","onAfterDetach","onActivateRequest","onCloseRequest","onChildAdded","onChildRemoved","processParentMessage","transform","ContentVisibility","contentVisibility","zIndex","Message","BeforeAttach","AfterAttach","BeforeDetach","AfterDetach","ConflatableMessage","child","width","height","ResizeMessage","UnknownSize","attach","host","ref","isConnected","insertBefore","parentNode","removeChild","Title","document","createElement","tag","_fitPolicy","fitPolicy","layout","init","minWidth","minHeight","maxWidth","maxHeight","onChildShown","onChildHidden","each","removeWidget","Layout","getHorizontalAlignment","horizontalAlignmentProperty","setHorizontalAlignment","set","getVerticalAlignment","verticalAlignmentProperty","setVerticalAlignment","_top","NaN","_left","_width","_height","_minWidth","_minHeight","_maxWidth","_maxHeight","position","top","left","limits","ElementExt","clampW","clampH","resized","onAlignmentChanged","changed","Utils","_widgets","pop","addWidget","insertWidget","indexOf","j","ArrayExt","attachWidget","moveWidget","removeWidgetAt","detachWidget","fromIndex","toIndex","clampDimension","floor","widgetOffset","_fixed","_spacing","_dirty","_hasNormedSizes","_sizers","_items","_handles","_box","_alignment","_orientation","renderer","orientation","alignment","spacing","item","absoluteSizes","map","relativeSizes","normalize","setRelativeSizes","sizes","temp","slice","push","normed","moveHandle","handle","offsetLeft","offsetTop","LayoutItem","createHandle","average","averageSize","createSizer","appendChild","_update","_fit","updateItemPosition","isHorizontal","handleStyle","nVisible","lastHandleIndex","horz","minW","minH","SplitLayout","getStretch","box","horizontalSum","verticalSum","offsetWidth","offsetHeight","paddingTop","paddingLeft","extra","offset","fullOffset","PanelLayout","stretchProperty","setStretch","coerce","BoxSizer","reduce","v","values","sum","a","abs","_titles","titleSpace","updateTitle","oldTitle","expanded","newTitle","createTitle","replaceChild","titleStyle","data","createSectionTitle","createLayout","widgets","_handleMoved","_pressData","_releaseMouse","handles","handleEvent","event","_evtMouseDown","_evtMouseMove","_evtMouseUp","_evtKeyDown","preventDefault","stopPropagation","addEventListener","removeEventListener","keyCode","button","target","rect","getBoundingClientRect","clientX","clientY","window","getComputedStyle","override","Drag","cursor","pos","Panel","SplitPanel","Renderer","defaultRenderer","_widgetSizesCache","WeakMap","titles","connect","_onTitleChanged","collapse","_toggleExpansion","expand","_evtClick","_eventKeyDown","sender","_computeWidgetSize","widgetSizes","prev","curr","newSize","il","r","k","jl","widgetToCollapse","sz","lastIndexOf","forEach","_","idx","currentSize","defaultPrevented","handled","toString","key","match","click","direction","newIndex","focus","AccordionPanel","titleClassName","_titleID","_titleKeys","_uuid","_nInstance","createCollapseIcon","aData","createTitleKey","textContent","AccordionLayout","_direction","BoxLayout","getSizeBasis","sizeBasisProperty","setSizeBasis","onChildSizingChanged","dir","clampSpacing","BoxPanel","_activeIndex","_results","commands","CommandPalette","commandChanged","_onGenericChange","keyBindingChanged","getElementsByClassName","addItem","createItem","refresh","addItems","items","newItems","removeItem","removeItemAt","clearItems","inputNode","display","_toggleFocused","input","select","query","contentNode","results","search","canActivate","renderEmptyMessage","VirtualDOM","activeIndex","content","result","indices","category","renderHeader","active","renderItem","scrollTop","element","_execute","altKey","ctrlKey","metaKey","shiftKey","_activatePreviousItem","_activateNextItem","ai","start","stop","part","toLowerCase","isEnabled","execute","command","args","focused","activeElement","formatHeader","h","createItemClass","createItemDataset","isToggleable","role","isToggled","renderItemIcon","renderItemContent","renderItemShortcut","formatEmptyMessage","createIconClass","renderItemLabel","renderItemCaption","formatItemLabel","formatItemCaption","formatItemShortcut","StringExt","kb","keyBinding","CommandRegistry","keys","fuzzySearch","source","score","rgx","rgxMatch","exec","pivot","categoryIndices","labelIndices","matchType","scoreCmp","m1","d1","i1","i2","d2","localeCompare","r1","rank","r2","wrapper","clear","spellcheck","CommandItem","scores","replace","matchItems","sort","visited","createResults","_commands","trim","JSONExt","keyBindings","_childIndex","_openTimerID","_closeTimerID","_childMenu","_parentMenu","_aboutToClose","_menuRequested","Menu","menu","childNodes","activateNextItem","activatePreviousItem","triggerActiveItem","activeItem","_cancelOpenTimer","_cancelCloseTimer","rootMenu","console","log","_openChildMenu","insertItem","open","x","y","forceX","forceY","openRootMenu","_evtMouseEnter","_evtMouseLeave","collapsedFlags","computeCollapsed","collapsed","onfocus","childMenu","parentMenu","kc","getKeyboardLayout","keyForKeydownEvent","findMnemonic","multiple","auto","_startCloseTimer","submenu","_startOpenTimer","hitTestMenus","activateFirst","saveWindowData","_closeChildMenu","itemNode","openSubmenu","setTimeout","TIMER_DELAY","clearTimeout","aria","createItemARIA","tabindex","renderIcon","renderLabel","renderShortcut","renderSubmenu","formatLabel","formatShortcut","prefix","suffix","char","SUBMENU_OVERLAP","transientWindowDataCache","transientCacheCounter","getWindowData","_getWindowData","pageXOffset","pageYOffset","clientWidth","documentElement","clientHeight","tabIndex","MenuItem","k1","k2","windowData","px","py","cw","ch","opacity","body","itemRect","right","borderTop","bottom","borderBottom","paddingBottom","upperKey","toUpperCase","mn","_groupByTarget","_idTick","_sortBySelector","groupByTarget","sortBySelector","e","getOwnPropertySymbols","propertyIsEnumerable","others","DisposableDelegate","itemCmpRank","itemCmp","s1","Selector","selector","s2","validateSelector","currentTarget","elementFromPoint","availableItems","matches","parentElement","_currentIndex","_titlesEditable","_previousTitle","_dragData","_addButtonEnabled","_tabMoved","_currentChanged","_addRequested","_tabCloseRequested","_tabDetachRequested","_tabActivateRequested","_document","tabsMovable","titlesEditable","allowDeselect","addButtonEnabled","insertBehavior","removeBehavior","TabBar","currentIndex","pi","pt","ci","ct","previousIndex","previousTitle","currentTitle","_name","addButtonNode","addTab","insertTab","asTitle","_adjustCurrentForInsert","_adjustCurrentForMove","removeTab","removeTabAt","disconnect","_adjustCurrentForRemove","clearTabs","releaseMouse","_evtDblClick","current","renderTab","tabs","tab","querySelector","innerHTML","addButtonClicked","pressX","pressY","tabPos","tabSize","tabPressPos","targetIndex","tabLayout","contentRect","dragActive","dragAborted","detachRequested","closeIconSelector","dragExceeded","tabRect","snapTabLayout","detachExceeded","layoutTabs","finalizeTabPosition","duration","parseTransitionDuration","resetTabPositions","bh","_tabID","_tabKeys","createTabKey","createTabStyle","createTabClass","createTabDataset","createTabARIA","renderCloseIcon","addButtonSelector","DRAG_THRESHOLD","DETACH_THRESHOLD","parseFloat","transitionDuration","margin","marginLeft","marginTop","dx","dy","pressPos","localPos","clientPos","clientSize","targetPos","targetEnd","pxPos","threshold","ideal","tgt","final","_root","Map","hiddenMode","tabBars","bar","iterAllWidgets","iterUserWidgets","selectedWidgets","iterSelectedWidgets","iterTabBars","iterHandles","offsetX","offsetY","findSplitNode","holdSizes","saveLayout","holdAllSizes","main","createConfig","restoreLayout","config","mainConfig","widgetSet","Set","normalizeAreaConfig","oldWidgets","oldTabBars","oldHandles","has","tabBar","realizeAreaConfig","createTabBar","_createTabBar","_createHandle","mode","refNode","findTabNode","_insertTab","_insertSplit","_removeWidget","hitTestTabAreas","borderLeft","tabNode","hitTestTabNodes","borderWidth","borderRight","borderHeight","delete","removeAria","splitNode","syncHandles","maybeParent","childNode","childHandle","TabLayoutNode","splitHandle","gChild","gHandle","gSizer","after","addAria","findFirstTabNode","root","_splitRoot","normalizeSizes","GOLDEN_RATIO","SplitLayoutNode","normalized","oldRoot","newRoot","normalizeTabAreaConfig","normalizeSplitAreaConfig","realizeTabAreaConfig","realizeSplitAreaConfig","tabSizer","widgetSizer","chain","once","tabBarItem","widgetItem","tabBarSizer","ChainIterator","createNormalizedSizes","horizontal","fixed","tabId","_drag","_tabsMovable","_tabsConstrained","_layoutModified","_mode","_renderer","DockPanel","_edges","edges","DEFAULT_EDGES","tabsConstrained","DockLayout","overlay","Overlay","createSingleDocumentConfig","LayoutModified","tabbar","isEmpty","selectWidget","find","activateWidget","Platform","_evtDragEnter","_evtDragLeave","_evtDragOver","_evtDrop","isGeneratedTabBarProperty","mimeData","hasData","_showOverlay","dropAction","proposedAction","zone","factory","getData","getDropRef","deltaX","deltaY","xPos","yPos","paddingRight","tabHeight","tabMoved","_onTabMoved","currentChanged","_onCurrentChanged","tabCloseRequested","_onTabCloseRequested","tabDetachRequested","_onTabDetachRequested","tabActivateRequested","_onTabActivateRequested","addRequested","_onTabAddRequested","MimeData","setData","dragImage","cloneNode","supportedActions","then","_timer","_hidden","geo","delay","panel","toArray","selected","next","findDropTarget","panelRect","pl","pr","pb","al","at","ar","ab","rx","round","ry","_counter","_activeWidget","_currentWidget","_numbers","_nodes","_activeChanged","w","focusNumber","disposed","_onWidgetDisposed","_setWidgets","valid","filter","previous","first","second","_evtFocus","_evtBlur","oldCurrent","oldActive","oldValue","newValue","focusTarget","relatedTarget","_rowSpacing","_columnSpacing","_rowStarts","_columnStarts","_rowSizers","_columnSizers","rowCount","reallocSizers","columnCount","rowSpacing","clampValue","columnSpacing","rowStretch","setRowStretch","columnStretch","setColumnStretch","it","maxRow","maxCol","rowSpanCmp","GridLayout","getCellConfig","row","rowSpan","distributeMin","columnSpanCmp","c1","column","c2","columnSpan","fixedRowSpace","fixedColSpace","cellConfigProperty","setCellConfig","normalizeConfig","portion","_tabFocusIndex","_menus","MenuBar","_forceItemsPosition","forceItemsPosition","openActiveMenu","addMenu","insertMenu","aboutToClose","_onMenuAboutToClose","menuRequested","_onMenuMenuRequested","removeMenu","removeMenuAt","clearMenus","menus","tabFocusIndex","tabbable","blur","stopImmediatePropagation","_positionForMenu","newMenu","activeMenu","oldMenu","_onRepeat","_repeatTimer","mouseX","mouseY","trackNode","thumbNode","thumbRect","_pageRequested","incrementNode","_stepRequested","decrementNode","_value","_page","_maximum","_thumbMoved","maximum","page","thumbStyle","_moveThumb","findPart","trackPos","trackSpan","trackRect","decrement","increment","track","thumb","scrollBar","_widget","_widgetRemoved","StackedLayout","stackedPanel","StackedPanel","widgetRemoved","_onWidgetRemoved","_tabPlacement","tabPlacement","directionFromPlacement","orientationFromPlacement","currentWidget","previousWidget","plc","placementToOrientationMap","placementToDirectionMap"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5710.70d0b1d.js b/_static/build/5710.70d0b1d.js new file mode 100644 index 0000000..047aee2 --- /dev/null +++ b/_static/build/5710.70d0b1d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5710],{85073:(r,o,t)=>{t.d(o,{Z:()=>a});var n=t(34663),e=t.n(n),c=t(7638),i=t.n(c)()(e());i.push([r.id,"/*\n\n Name: Tomorrow Night - Bright\n Author: Chris Kempson\n\n Port done by Gerard Braad \n\n*/\n\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\n\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\n\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\n\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\n\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/tomorrow-night-bright.css"],names:[],mappings:"AAAA;;;;;;;CAOC;;AAED,yCAAyC,mBAAmB,EAAE,cAAc,EAAE;AAC9E,sDAAsD,mBAAmB,EAAE;AAC3E,kDAAkD,mBAAmB,EAAE,iBAAiB,EAAE;AAC1F,uDAAuD,cAAc,EAAE;AACvE,8DAA8D,WAAW,EAAE;AAC3E,qDAAqD,cAAc,EAAE;AACrE,iDAAiD,8BAA8B,EAAE;;AAEjF,8CAA8C,cAAc,EAAE;AAC9D,2CAA2C,cAAc,EAAE;AAC3D,6CAA6C,cAAc,EAAE;;AAE7D,8FAA8F,cAAc,EAAE;AAC9G,8CAA8C,cAAc,EAAE;AAC9D,6CAA6C,cAAc,EAAE;;AAE7D,+CAA+C,cAAc,EAAE;AAC/D,iDAAiD,cAAc,EAAE;AACjE,0CAA0C,cAAc,EAAE;AAC1D,8CAA8C,cAAc,EAAE;AAC9D,0CAA0C,cAAc,EAAE;AAC1D,2CAA2C,cAAc,EAAE;AAC3D,4CAA4C,mBAAmB,EAAE,cAAc,EAAE;;AAEjF,gEAAgE,mBAAmB,EAAE;AACrF,0DAA0D,0BAA0B,EAAE,uBAAuB,EAAE",sourcesContent:["/*\n\n Name: Tomorrow Night - Bright\n Author: Chris Kempson\n\n Port done by Gerard Braad \n\n*/\n\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\n\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\n\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\n\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\n\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"],sourceRoot:""}]);const a=i},7638:r=>{r.exports=function(r){var o=[];return o.toString=function(){return this.map((function(o){var t="",n=void 0!==o[5];return o[4]&&(t+="@supports (".concat(o[4],") {")),o[2]&&(t+="@media ".concat(o[2]," {")),n&&(t+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),t+=r(o),n&&(t+="}"),o[2]&&(t+="}"),o[4]&&(t+="}"),t})).join("")},o.i=function(r,t,n,e,c){"string"==typeof r&&(r=[[null,r,void 0]]);var i={};if(n)for(var a=0;a0?" ".concat(m[5]):""," {").concat(m[1],"}")),m[5]=c),t&&(m[2]?(m[1]="@media ".concat(m[2]," {").concat(m[1],"}"),m[2]=t):m[2]=t),e&&(m[4]?(m[1]="@supports (".concat(m[4],") {").concat(m[1],"}"),m[4]=e):m[4]="".concat(e)),o.push(m))}},o}},34663:r=>{r.exports=function(r){var o=r[1],t=r[3];if(!t)return o;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),e="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),c="/*# ".concat(e," */"),i=t.sources.map((function(r){return"/*# sourceURL=".concat(t.sourceRoot||"").concat(r," */")}));return[o].concat(i).concat([c]).join("\n")}return[o].join("\n")}},45710:(r,o,t)=>{t.r(o),t.d(o,{default:()=>b});var n=t(1892),e=t.n(n),c=t(95760),i=t.n(c),a=t(38311),A=t.n(a),s=t(58192),m=t.n(s),g=t(38060),h=t.n(g),u=t(54865),d=t.n(u),l=t(85073),p={};p.styleTagTransform=d(),p.setAttributes=m(),p.insert=A().bind(null,"head"),p.domAPI=i(),p.insertStyleElement=h(),e()(l.Z,p);const b=l.Z&&l.Z.locals?l.Z.locals:void 0},1892:r=>{var o=[];function t(r){for(var t=-1,n=0;n{var o={};r.exports=function(r,t){var n=function(r){if(void 0===o[r]){var t=document.querySelector(r);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(r){t=null}o[r]=t}return o[r]}(r);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(t)}},38060:r=>{r.exports=function(r){var o=document.createElement("style");return r.setAttributes(o,r.attributes),r.insert(o,r.options),o}},58192:(r,o,t)=>{r.exports=function(r){var o=t.nc;o&&r.setAttribute("nonce",o)}},95760:r=>{r.exports=function(r){var o=r.insertStyleElement(r);return{update:function(t){!function(r,o,t){var n="";t.supports&&(n+="@supports (".concat(t.supports,") {")),t.media&&(n+="@media ".concat(t.media," {"));var e=void 0!==t.layer;e&&(n+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),n+=t.css,e&&(n+="}"),t.media&&(n+="}"),t.supports&&(n+="}");var c=t.sourceMap;c&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(c))))," */")),o.styleTagTransform(n,r,o.options)}(o,r,t)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(o)}}}},54865:r=>{r.exports=function(r,o){if(o.styleSheet)o.styleSheet.cssText=r;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=5710.70d0b1d.js.map \ No newline at end of file diff --git a/_static/build/5710.70d0b1d.js.map b/_static/build/5710.70d0b1d.js.map new file mode 100644 index 0000000..503bd7d --- /dev/null +++ b/_static/build/5710.70d0b1d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5710.70d0b1d.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/tomorrow-night-bright.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/tomorrow-night-bright.css?0d4b","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n\\n Name: Tomorrow Night - Bright\\n Author: Chris Kempson\\n\\n Port done by Gerard Braad \\n\\n*/\\n\\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\\n\\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\\n\\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/tomorrow-night-bright.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;CAOC;;AAED,yCAAyC,mBAAmB,EAAE,cAAc,EAAE;AAC9E,sDAAsD,mBAAmB,EAAE;AAC3E,kDAAkD,mBAAmB,EAAE,iBAAiB,EAAE;AAC1F,uDAAuD,cAAc,EAAE;AACvE,8DAA8D,WAAW,EAAE;AAC3E,qDAAqD,cAAc,EAAE;AACrE,iDAAiD,8BAA8B,EAAE;;AAEjF,8CAA8C,cAAc,EAAE;AAC9D,2CAA2C,cAAc,EAAE;AAC3D,6CAA6C,cAAc,EAAE;;AAE7D,8FAA8F,cAAc,EAAE;AAC9G,8CAA8C,cAAc,EAAE;AAC9D,6CAA6C,cAAc,EAAE;;AAE7D,+CAA+C,cAAc,EAAE;AAC/D,iDAAiD,cAAc,EAAE;AACjE,0CAA0C,cAAc,EAAE;AAC1D,8CAA8C,cAAc,EAAE;AAC9D,0CAA0C,cAAc,EAAE;AAC1D,2CAA2C,cAAc,EAAE;AAC3D,4CAA4C,mBAAmB,EAAE,cAAc,EAAE;;AAEjF,gEAAgE,mBAAmB,EAAE;AACrF,0DAA0D,0BAA0B,EAAE,uBAAuB,EAAE\",\"sourcesContent\":[\"/*\\n\\n Name: Tomorrow Night - Bright\\n Author: Chris Kempson\\n\\n Port done by Gerard Braad \\n\\n*/\\n\\n.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }\\n.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }\\n.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }\\n.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }\\n.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }\\n.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }\\n\\n.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }\\n.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }\\n\\n.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }\\n.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }\\n.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }\\n.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }\\n.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }\\n.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }\\n.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }\\n\\n.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }\\n.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./tomorrow-night-bright.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./tomorrow-night-bright.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5747.94ad626.js b/_static/build/5747.94ad626.js new file mode 100644 index 0000000..664643b --- /dev/null +++ b/_static/build/5747.94ad626.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5747],{25747:function(e){e.exports=function(){"use strict";var e=navigator.userAgent,t=navigator.platform,r=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),l=n||i||o,s=l&&(n?document.documentMode||6:+(o||i)[1]),a=!o&&/WebKit\//.test(e),u=a&&/Qt\/\d+\.\d+/.test(e),c=!o&&/Chrome\//.test(e),h=/Opera\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),p=/PhantomJS/.test(e),g=f&&(/Mobile\/\w+/.test(e)||navigator.maxTouchPoints>2),v=/Android/.test(e),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=g||/Mac/.test(t),b=/\bCrOS\b/.test(e),w=/win/i.test(t),x=h&&e.match(/Version\/(\d*\.\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(h=!1,a=!0);var C=y&&(u||h&&(null==x||x<12.11)),S=r||l&&s>=9;function L(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var k,T=function(e,t){var r=e.className,n=L(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function M(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function N(e,t){return M(e).appendChild(t)}function O(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}}g?P=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:l&&(P=function(e){try{e.select()}catch(e){}});var z=function(){this.id=null,this.f=null,this.time=0,this.handler=E(this.onTimeout,this)};function B(e,t){for(var r=0;r=t)return n+Math.min(l,t-i);if(i+=o-n,n=o+1,(i+=r-i%r)>=t)return n}}var X=[""];function Y(e){for(;X.length<=e;)X.push(_(X)+" ");return X[e]}function _(e){return e[e.length-1]}function $(e,t){for(var r=[],n=0;n"€"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function ee(e,t){return t?!!(t.source.indexOf("\\w")>-1&&Q(e))||t.test(e):Q(e)}function te(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var re=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ne(e){return e.charCodeAt(0)>=768&&re.test(e)}function ie(e,t,r){for(;(r<0?t>0:tr?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}var le=null;function se(e,t,r){var n;le=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:le=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:le=i)}return null!=n?n:le}var ae=function(){var e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,t=/[stwN]/,r=/[LRr]/,n=/[Lb1n]/,i=/[1n]/;function o(e,t,r){this.level=e,this.from=t,this.to=r}return function(l,s){var a,u="ltr"==s?"L":"R";if(0==l.length||"ltr"==s&&!e.test(l))return!1;for(var c=l.length,h=[],f=0;f-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function pe(e,t){var r=fe(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i0}function ye(e){e.prototype.on=function(e,t){he(this,e,t)},e.prototype.off=function(e,t){de(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function we(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function xe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Ce(e){be(e),we(e)}function Se(e){return e.target||e.srcElement}function Le(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var ke,Te,Me=function(){if(l&&s<9)return!1;var e=O("div");return"draggable"in e||"dragDrop"in e}();function Ne(e){if(null==ke){var t=O("span","​");N(e,O("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(ke=t.offsetWidth<=1&&t.offsetHeight>2&&!(l&&s<8))}var r=ke?O("span","​"):O("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function Oe(e){if(null!=Te)return Te;var t=N(e,document.createTextNode("AخA")),r=k(t,0,1).getBoundingClientRect(),n=k(t,1,2).getBoundingClientRect();return M(e),!(!r||r.left==r.right)&&(Te=n.right-r.right<3)}var Ae,De=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},We=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},He="oncopy"in(Ae=O("div"))||(Ae.setAttribute("oncopy","return;"),"function"==typeof Ae.oncopy),Fe=null;var Pe={},Ee={};function Re(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Pe[e]=t}function Ie(e){if("string"==typeof e&&Ee.hasOwnProperty(e))e=Ee[e];else if(e&&"string"==typeof e.name&&Ee.hasOwnProperty(e.name)){var t=Ee[e.name];"string"==typeof t&&(t={name:t}),(e=Z(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ie("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ie("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function ze(e,t){t=Ie(t);var r=Pe[t.name];if(!r)return ze(e,"text/plain");var n=r(e,t);if(Be.hasOwnProperty(t.name)){var i=Be[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)n[l]=t.modeProps[l];return n}var Be={};function Ge(e,t){R(t,Be.hasOwnProperty(e)?Be[e]:Be[e]={})}function Ue(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Ve(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Ke(e,t,r){return!e.startState||e.startState(t,r)}var je=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};function Xe(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t=e.first&&tr?et(r,Xe(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?et(e.line,t):r<0?et(e.line,0):e}(t,Xe(e,t.line).text.length)}function at(e,t){for(var r=[],n=0;n=this.string.length},je.prototype.sol=function(){return this.pos==this.lineStart},je.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},je.prototype.next=function(){if(this.post},je.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},je.prototype.skipToEnd=function(){this.pos=this.string.length},je.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},je.prototype.backUp=function(e){this.pos-=e},je.prototype.column=function(){return this.lastColumnPos0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},je.prototype.current=function(){return this.string.slice(this.start,this.pos)},je.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},je.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},je.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ut=function(e,t){this.state=e,this.lookAhead=t},ct=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function ht(e,t,r,n){var i=[e.state.modeGen],o={};wt(e,t.text,e.doc.mode,r,(function(e,t){return i.push(e,t)}),o,n);for(var l=r.state,s=function(n){r.baseTokens=i;var s=e.state.overlays[n],a=1,u=0;r.state=!0,wt(e,t.text,s.mode,r,(function(e,t){for(var r=a;ue&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;re.options.maxHighlightLength&&Ue(e.doc.mode,n.state),o=ht(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function dt(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new ct(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=Xe(o,s-1),u=a.stateAfter;if(u&&(!r||s+(u instanceof ut?u.lookAhead:0)<=o.modeFrontier))return s;var c=I(a.text,null,e.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}(e,t,r),l=o>n.first&&Xe(n,o-1).stateAfter,s=l?ct.fromSaved(n,l,o):new ct(n,Ke(n.mode),o);return n.iter(o,t,(function(r){pt(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&nt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}ct.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ct.fromSaved=function(e,t,r){return t instanceof ut?new ct(e,Ue(e.mode,t.state),r,t.lookAhead):new ct(e,Ue(e.mode,t),r)},ct.prototype.save=function(e){var t=!1!==e?Ue(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ut(t,this.maxLookAhead):t};var mt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function yt(e,t,r,n){var i,o,l=e.doc,s=l.mode,a=Xe(l,(t=st(l,t)).line),u=dt(e,t.line,r),c=new je(a.text,e.options.tabSize,u);for(n&&(o=[]);(n||c.pose.options.maxHighlightLength?(s=!1,l&&pt(e,t,n,h.pos),h.pos=t.length,a=null):a=bt(vt(r,h,n.state,f),o),f){var d=f[0].name;d&&(a="m-"+(a?d+" "+a:d))}if(!s||c!=a){for(;u=t:o.to>t);(n||(n=[])).push(new St(l,o.from,s?null:o.to))}}return n}(r,i,l),a=function(e,t,r){var n;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==l.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;bt)&&(!r||Wt(r,o.marker)<0)&&(r=o.marker)}return r}function Rt(e,t,r,n,i){var o=Xe(e,t),l=Ct&&o.markedSpans;if(l)for(var s=0;s=0&&h<=0||c<=0&&h>=0)&&(c<=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?tt(u.to,r)>=0:tt(u.to,r)>0)||c>=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?tt(u.from,n)<=0:tt(u.from,n)<0)))return!0}}}function It(e){for(var t;t=Ft(e);)e=t.find(-1,!0).line;return e}function zt(e,t){var r=Xe(e,t),n=It(r);return r==n?t:qe(n)}function Bt(e,t){if(t>e.lastLine())return t;var r,n=Xe(e,t);if(!Gt(e,n))return t;for(;r=Pt(n);)n=r.find(1,!0).line;return qe(n)+1}function Gt(e,t){var r=Ct&&t.markedSpans;if(r)for(var n=void 0,i=0;it.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)}))}var Xt=function(e,t,r){this.text=e,Ot(this,t),this.height=r?r(this):1};function Yt(e){e.parent=null,Nt(e)}Xt.prototype.lineNo=function(){return qe(this)},ye(Xt);var _t={},$t={};function qt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?$t:_t;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Zt(e,t){var r=A("span",null,null,a?"padding-right: .1px":null),n={pre:A("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,l=void 0;n.pos=0,n.addToken=Qt,Oe(e.display.measure)&&(l=ue(o,e.doc.direction))&&(n.addToken=er(n.addToken,l)),n.map=[],rr(o,n,ft(e,o,t!=e.display.externalMeasured&&qe(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=F(o.styleClasses.bgClass,n.bgClass||"")),o.styleClasses.textClass&&(n.textClass=F(o.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Ne(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(a){var s=n.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return pe(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=F(n.pre.className,n.textClass||"")),n}function Jt(e){var t=O("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Qt(e,t,r,n,i,o,a){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;iu&&h.from<=u);f++);if(h.to>=c)return e(r,n,i,o,l,s,a);e(r,n.slice(0,h.to-u),i,o,null,s,a),o=null,n=n.slice(h.to-u),u=h.to}}}function tr(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function rr(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,h,f,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){a=u=c=s="",f=null,h=null,m=1/0;for(var y=[],b=void 0,w=0;wp||C.collapsed&&x.to==p&&x.from==p)){if(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,u=""),C.className&&(a+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&x.from==p&&(c+=" "+C.startStyle),C.endStyle&&x.to==m&&(b||(b=[])).push(C.endStyle,x.to),C.title&&((f||(f={})).title=C.title),C.attributes)for(var S in C.attributes)(f||(f={}))[S]=C.attributes[S];C.collapsed&&(!h||Wt(h.marker,C)<0)&&(h=x)}else x.from>p&&m>x.from&&(m=x.from)}if(b)for(var L=0;L=d)break;for(var T=Math.min(d,m);;){if(v){var M=p+v.length;if(!h){var N=M>T?v.slice(0,T-p):v;t.addToken(t,N,l?l+a:a,c,p+N.length==m?u:"",s,f)}if(M>=T){v=v.slice(T-p),p=T;break}p=M,c=""}v=i.slice(o,o=r[g++]),l=qt(r[g++],t.cm.options)}}else for(var O=1;Or)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Or(e,t,r,n){return Wr(e,Dr(e,t),r,n)}function Ar(e,t){if(t>=e.display.viewFrom&&t=r.lineN&&t2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Pr(t.map,r,n),a=o.node,u=o.start,c=o.end,h=o.collapse;if(3==a.nodeType){for(var f=0;f<4;f++){for(;u&&ne(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c1}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var d;u>0&&(h=n="right"),i=e.options.lineWrapping&&(d=a.getClientRects()).length>1?d["right"==n?d.length-1:0]:a.getBoundingClientRect()}if(l&&s<9&&!u&&(!i||!i.left&&!i.right)){var p=a.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+nn(e.display),top:p.top,bottom:p.bottom}:Fr}for(var g=i.top-t.rect.top,v=i.bottom-t.rect.top,m=(g+v)/2,y=t.view.measure.heights,b=0;bt)&&(i=(o=a-s)-1,t>=a&&(l="right")),null!=i){if(n=e[u+2],s==a&&r==(n.insertLeft?"left":"right")&&(l=r),"left"==r&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)n=e[2+(u-=3)],l="left";if("right"==r&&i==a-s)for(;u=0&&(r=e[i]).left==r.right;i--);return r}function Rr(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=n.text.length?(a=n.text.length,u="before"):a<=0&&(a=0,u="after"),!s)return l("before"==u?a-1:a,"before"==u);function c(e,t,r){return l(r?e-1:e,1==s[t].level!=r)}var h=se(s,a,u),f=le,d=c(a,h,"before"==u);return null!=f&&(d.other=c(a,f,"before"!=u)),d}function Yr(e,t){var r=0;t=st(e.doc,t),e.options.lineWrapping||(r=nn(e.display)*t.ch);var n=Xe(e.doc,t.line),i=Vt(n)+Cr(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function _r(e,t,r,n,i){var o=et(e,t,r);return o.xRel=i,n&&(o.outside=n),o}function $r(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return _r(n.first,0,null,-1,-1);var i=Ze(n,r),o=n.first+n.size-1;if(i>o)return _r(n.first+n.size-1,Xe(n,o).text.length,null,1,1);t<0&&(t=0);for(var l=Xe(n,i);;){var s=Qr(e,l,i,t,r),a=Et(l,s.ch+(s.xRel>0||s.outside>0?1:0));if(!a)return s;var u=a.find(1);if(u.line==i)return u;l=Xe(n,i=u.line)}}function qr(e,t,r,n){n-=Ur(t);var i=t.text.length,o=oe((function(t){return Wr(e,r,t-1).bottom<=n}),i,0);return{begin:o,end:i=oe((function(t){return Wr(e,r,t).top>n}),o,i)}}function Zr(e,t,r,n){return r||(r=Dr(e,t)),qr(e,t,r,Vr(e,t,Wr(e,r,n),"line").top)}function Jr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Qr(e,t,r,n,i){i-=Vt(t);var o=Dr(e,t),l=Ur(t),s=0,a=t.text.length,u=!0,c=ue(t,e.doc.direction);if(c){var h=(e.options.lineWrapping?tn:en)(e,t,r,o,c,n,i);s=(u=1!=h.level)?h.from:h.to-1,a=u?h.to:h.from-1}var f,d,p=null,g=null,v=oe((function(t){var r=Wr(e,o,t);return r.top+=l,r.bottom+=l,!!Jr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,g=r),!0)}),s,a),m=!1;if(g){var y=n-g.left=w.bottom?1:0}return _r(r,v=ie(t.text,v,1),d,m,n-f)}function en(e,t,r,n,i,o,l){var s=oe((function(s){var a=i[s],u=1!=a.level;return Jr(Xr(e,et(r,u?a.to:a.from,u?"before":"after"),"line",t,n),o,l,!0)}),0,i.length-1),a=i[s];if(s>0){var u=1!=a.level,c=Xr(e,et(r,u?a.from:a.to,u?"after":"before"),"line",t,n);Jr(c,o,l,!0)&&c.top>l&&(a=i[s-1])}return a}function tn(e,t,r,n,i,o,l){var s=qr(e,t,n,l),a=s.begin,u=s.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,h=null,f=0;f=u||d.to<=a)){var p=Wr(e,n,1!=d.level?Math.min(u,d.to)-1:Math.max(a,d.from)).right,g=pg)&&(c=d,h=g)}}return c||(c=i[i.length-1]),c.fromu&&(c={from:c.from,to:u,level:c.level}),c}function rn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Hr){Hr=O("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)Hr.appendChild(document.createTextNode("x")),Hr.appendChild(O("br"));Hr.appendChild(document.createTextNode("x"))}N(e.measure,Hr);var r=Hr.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),M(e.measure),r||1}function nn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=O("span","xxxxxxxxxx"),r=O("pre",[t],"CodeMirror-line-like");N(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function on(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l){var s=e.display.gutterSpecs[l].className;r[s]=o.offsetLeft+o.clientLeft+i,n[s]=o.clientWidth}return{fixedPos:ln(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function ln(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function sn(e){var t=rn(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/nn(e.display)-3);return function(i){if(Gt(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l0&&(a=Xe(e.doc,u.line).text).length==u.ch){var c=I(a,a.length,e.options.tabSize)-a.length;u=et(u.line,Math.max(0,Math.round((o-Lr(e.display).left)/nn(e.display))-c))}return u}function cn(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;nt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Ct&&zt(e.doc,t)i.viewFrom?dn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)dn(e);else if(t<=i.viewFrom){var o=pn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):dn(e)}else if(r>=i.viewTo){var l=pn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):dn(e)}else{var s=pn(e,t,t,-1),a=pn(e,r,r+n,1);s&&a?(i.view=i.view.slice(0,s.index).concat(ir(e,s.lineN,a.lineN)).concat(i.view.slice(a.index)),i.viewTo+=n):dn(e)}var u=i.externalMeasured;u&&(r=i.lineN&&t=n.viewTo)){var o=n.view[cn(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==B(l,r)&&l.push(r)}}}function dn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function pn(e,t,r,n){var i,o=cn(e,t),l=e.display.view;if(!Ct||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,a=0;a0){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;zt(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function gn(e){for(var t=e.display.view,r=0,n=0;n=e.display.viewTo||s.to().linet||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}(g,r||0,null==n?f:n,(function(e,t,i,h){var v="ltr"==i,m=d(e,v?"left":"right"),y=d(t-1,v?"right":"left"),b=null==r&&0==e,w=null==n&&t==f,x=0==h,C=!g||h==g.length-1;if(y.top-m.top<=3){var S=(u?w:b)&&C,L=(u?b:w)&&x?s:(v?m:y).left,k=S?a:(v?y:m).right;c(L,m.top,k-L,m.bottom)}else{var T,M,N,O;v?(T=u&&b&&x?s:m.left,M=u?a:p(e,i,"before"),N=u?s:p(t,i,"after"),O=u&&w&&C?a:y.right):(T=u?p(e,i,"before"):s,M=!u&&b&&x?a:m.right,N=!u&&w&&C?s:y.left,O=u?p(t,i,"after"):a),c(T,m.top,M-T,m.bottom),m.bottom0?t.blinker=setInterval((function(){e.hasFocus()||kn(e),t.cursorDiv.style.visibility=(r=!r)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Cn(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||Ln(e))}function Sn(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&kn(e))}),100)}function Ln(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(pe(e,"focus",e,t),e.state.focused=!0,H(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),a&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),xn(e))}function kn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(pe(e,"blur",e,t),e.state.focused=!1,T(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Tn(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n.005||f<-.005)&&($e(i.line,a),Mn(i.line),i.rest))for(var d=0;de.display.sizerWidth){var p=Math.ceil(u/nn(e.display));p>e.display.maxLineLength&&(e.display.maxLineLength=p,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function Mn(e){if(e.widgets)for(var t=0;t=l&&(o=Ze(t,Vt(Xe(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function On(e,t){var r=e.display,n=rn(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Mr(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+Sr(r),a=t.tops-n;if(t.topi+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(l.scrollTop=c)}var h=e.options.fixedGutter?0:r.gutters.offsetWidth,f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft-h,d=Tr(e)-r.gutters.offsetWidth,p=t.right-t.left>d;return p&&(t.right=t.left+d),t.left<10?l.scrollLeft=0:t.leftd+f-3&&(l.scrollLeft=t.right+(p?0:10)-d),l}function An(e,t){null!=t&&(Hn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Dn(e){Hn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Wn(e,t,r){null==t&&null==r||Hn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function Hn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Fn(e,Yr(e,t.from),Yr(e,t.to),t.margin))}function Fn(e,t,r,n){var i=On(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Wn(e,i.scrollLeft,i.scrollTop)}function Pn(e,t){Math.abs(e.doc.scrollTop-t)<2||(r||ai(e,{top:t}),En(e,t,!0),r&&ai(e),ni(e,100))}function En(e,t,r){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Rn(e,t,r,n){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,hi(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function In(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+Sr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+kr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var zn=function(e,t,r){this.cm=r;var n=this.vert=O("div",[O("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=O("div",[O("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),he(n,"scroll",(function(){n.clientHeight&&t(n.scrollTop,"vertical")})),he(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,l&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};zn.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},zn.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},zn.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},zn.prototype.zeroWidthHack=function(){var e=y&&!d?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new z,this.disableVert=new z},zn.prototype.enableZeroWidthBar=function(e,t,r){e.style.pointerEvents="auto",t.set(1e3,(function n(){var i=e.getBoundingClientRect();("vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,n)}))},zn.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Bn=function(){};function Gn(e,t){t||(t=In(e));var r=e.display.barWidth,n=e.display.barHeight;Un(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Tn(e),Un(e,In(e)),r=e.display.barWidth,n=e.display.barHeight}function Un(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}Bn.prototype.update=function(){return{bottom:0,right:0}},Bn.prototype.setScrollLeft=function(){},Bn.prototype.setScrollTop=function(){},Bn.prototype.clear=function(){};var Vn={native:zn,null:Bn};function Kn(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Vn[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),he(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,r){"horizontal"==r?Rn(e,t):Pn(e,t)}),e),e.display.scrollbars.addClass&&H(e.display.wrapper,e.display.scrollbars.addClass)}var jn=0;function Xn(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++jn,markArrays:null},t=e.curOp,or?or.ops.push(t):t.ownsGroup=or={ops:[t],delayedCallbacks:[]}}function Yn(e){var t=e.curOp;t&&function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new oi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function $n(e){e.updatedDisplay=e.mustUpdate&&li(e.cm,e.update)}function qn(e){var t=e.cm,r=t.display;e.updatedDisplay&&Tn(t),e.barMeasure=In(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Or(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+kr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Tr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Zn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=O("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Cr(e.display))+"px;\n height: "+(t.bottom-t.top+kr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r="before"==t.sticky?et(t.line,t.ch+1,"before"):t,t=t.ch?et(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t);for(var o=0;o<5;o++){var l=!1,s=Xr(e,t),a=r&&r!=t?Xr(e,r):s,u=On(e,i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-n,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+n}),c=e.doc.scrollTop,h=e.doc.scrollLeft;if(null!=u.scrollTop&&(Pn(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(Rn(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-h)>1&&(l=!0)),!l)break}return i}(t,st(n,e.scrollToPos.from),st(n,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l=e.display.viewTo)){var r=+new Date+e.options.workTime,n=dt(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(n.line>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength?Ue(t.mode,n.state):null,a=ht(e,o,n,!0);s&&(n.state=s),o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var h=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),f=0;!h&&fr)return ni(e,e.options.workDelay),!0})),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&Qn(e,(function(){for(var t=0;t=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==gn(e))return!1;fi(e)&&(dn(e),t.dims=on(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFroml&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),Ct&&(o=zt(e.doc,o),l=Bt(e.doc,l));var s=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;(function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=ir(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=ir(e,t,n.viewFrom).concat(n.view):n.viewFromr&&(n.view=n.view.slice(0,cn(e,r)))),n.viewTo=r})(e,o,l),r.viewOffset=Vt(Xe(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var u=gn(e);if(!s&&0==u&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=W();if(!t||!D(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&D(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return u>4&&(r.lineDiv.style.display="none"),function(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function s(t){var r=t.nextSibling;return a&&y&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var u=n.view,c=n.viewFrom,h=0;h-1&&(d=!1),ur(e,f,c,r)),d&&(M(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(Qe(e.options,c)))),l=f.node.nextSibling}else{var p=vr(e,f,c,r);o.insertBefore(p,l)}c+=f.size}for(;l;)l=s(l)}(e,r.updateLineNumbers,t.dims),u>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=W()&&(e.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName)&&e.anchorNode&&D(document.body,e.anchorNode)&&D(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(c),M(r.cursorDiv),M(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,s&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ni(e,400)),r.updateLineNumbers=null,!0}function si(e,t){for(var r=t.viewport,n=!0;;n=!1){if(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Tr(e))n&&(t.visible=Nn(e.display,e.doc,r));else if(r&&null!=r.top&&(r={top:Math.min(e.doc.height+Sr(e.display)-Mr(e),r.top)}),t.visible=Nn(e.display,e.doc,r),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!li(e,t))break;Tn(e);var i=In(e);vn(e),Gn(e,i),ci(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ai(e,t){var r=new oi(e,t);if(li(e,r)){Tn(e),si(e,r);var n=In(e);vn(e),Gn(e,n),ci(e,n),r.finish()}}function ui(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",sr(e,"gutterChanged",e)}function ci(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+kr(e)+"px"}function hi(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=ln(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;ls.clientWidth,c=s.scrollHeight>s.clientHeight;if(i&&u||o&&c){if(o&&y&&a)e:for(var f=t.target,d=l.view;f!=s;f=f.parentNode)for(var p=0;p=0&&tt(e,n.to())<=0)return r}return-1};var Si=function(e,t){this.anchor=e,this.head=t};function Li(e,t,r){var n=e&&e.options.selectionsMayTouch,i=t[r];t.sort((function(e,t){return tt(e.from(),t.from())})),r=B(t,i);for(var o=1;o0:a>=0){var u=ot(s.from(),l.from()),c=it(s.to(),l.to()),h=s.empty()?l.from()==l.head:s.from()==s.head;o<=r&&--r,t.splice(--o,2,new Si(h?c:u,h?u:c))}}return new Ci(t,r)}function ki(e,t){return new Ci([new Si(e,t||e)],0)}function Ti(e){return e.text?et(e.from.line+e.text.length-1,_(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Mi(e,t){if(tt(e,t.from)<0)return e;if(tt(e,t.to)<=0)return Ti(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Ti(t).ch-t.to.ch),et(r,n)}function Ni(e,t){for(var r=[],n=0;n1&&e.remove(s.line+1,p-1),e.insert(s.line+1,m)}sr(e,"change",e,t)}function Fi(e,t,r){!function e(n,i,o){if(n.linked)for(var l=0;ls-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(zi(e.done),_(e.done)):e.done.length&&!_(e.done).ranges?_(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),_(e.done)):void 0}(i,i.lastOp==n)))l=_(o.changes),0==tt(t.from,t.to)&&0==tt(t.from,l.to)?l.to=Ti(t):o.changes.push(Ii(e,t));else{var a=_(i.done);for(a&&a.ranges||Ui(e.sel,i.done),o={changes:[Ii(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,l||pe(e,"historyAdded")}function Gi(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,_(i.done),t))?i.done[i.done.length-1]=t:Ui(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&zi(i.undone)}function Ui(e,t){var r=_(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Vi(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),(function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o}))}function Ki(e){if(!e)return null;for(var t,r=0;r-1&&(_(s)[h]=u[h],delete u[h])}}}return n}function Yi(e,t,r,n){if(n){var i=e.anchor;if(r){var o=tt(t,i)<0;o!=tt(r,i)<0?(i=t,t=r):o!=tt(t,r)<0&&(t=r)}return new Si(i,t)}return new Si(r||t,t)}function _i(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Qi(e,new Ci([Yi(e.sel.primary(),t,r,i)],0),n)}function $i(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(pe(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var h=a.find(n<0?1:-1),f=void 0;if((n<0?c:u)&&(h=lo(e,h,-n,h&&h.line==t.line?o:null)),h&&h.line==t.line&&(f=tt(h,r))&&(n<0?f<0:f>0))return io(e,h,t,n,i)}var d=a.find(n<0?-1:1);return(n<0?u:c)&&(d=lo(e,d,n,d.line==t.line?o:null)),d?io(e,d,t,n,i):null}}return t}function oo(e,t,r,n,i){var o=n||1;return io(e,t,r,o,i)||!i&&io(e,t,r,o,!0)||io(e,t,r,-o,i)||!i&&io(e,t,r,-o,!0)||(e.cantEdit=!0,et(e.first,0))}function lo(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?st(e,et(t.line-1)):null:r>0&&t.ch==(n||Xe(e,t.line)).text.length?t.line0)){var c=[a,1],h=tt(u.from,s.from),f=tt(u.to,s.to);(h<0||!l.inclusiveLeft&&!h)&&c.push({from:u.from,to:s.from}),(f>0||!l.inclusiveRight&&!f)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)co(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else co(e,t)}}function co(e,t){if(1!=t.text.length||""!=t.text[0]||0!=tt(t.from,t.to)){var r=Ni(e,t);Bi(e,t,r,e.cm?e.cm.curOp.id:NaN),po(e,t,r,Tt(e,t));var n=[];Fi(e,(function(e,r){r||-1!=B(n,e.history)||(yo(e.history,t),n.push(e.history)),po(e,t,null,Tt(e,t))}))}}function ho(e,t,r){var n=e.cm&&e.cm.state.suppressEdits;if(!n||r){for(var i,o=e.history,l=e.sel,s="undo"==t?o.done:o.undone,a="undo"==t?o.undone:o.done,u=0;u=0;--d){var p=f(d);if(p)return p.v}}}}function fo(e,t){if(0!=t&&(e.first+=t,e.sel=new Ci($(e.sel.ranges,(function(e){return new Si(et(e.anchor.line+t,e.anchor.ch),et(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){hn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;ne.lastLine())){if(t.from.lineo&&(t={from:t.from,to:et(o,Xe(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ye(e,t.from,t.to),r||(r=Ni(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=qe(It(Xe(n,o.line))),n.iter(a,l.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),n.sel.contains(t.from,t.to)>-1&&ve(e),Hi(n,t,r,sn(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,(function(e){var t=Kt(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontierr;n--){var i=Xe(e,n).stateAfter;if(i&&(!(i instanceof ut)||n+i.lookAhead1||!(this.children[0]instanceof wo))){var s=[];this.collapse(s),this.children=[new wo(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var l=i.lines.length%25+25,s=l;s10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n0||0==l&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A("span",[o.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Rt(e,t.line,t,r,o)||t.line!=r.line&&Rt(e,r.line,t,r,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ct=!0}o.addToHistory&&Bi(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,a=t.line,u=e.cm;if(e.iter(a,r.line+1,(function(n){u&&o.collapsed&&!u.options.lineWrapping&&It(n)==u.display.maxLine&&(s=!0),o.collapsed&&a!=t.line&&$e(n,0),function(e,t,r){var n=r&&window.WeakSet&&(r.markedSpans||(r.markedSpans=new WeakSet));n&&n.has(e.markedSpans)?e.markedSpans.push(t):(e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],n&&n.add(e.markedSpans)),t.marker.attachLine(e)}(n,new St(o,a==t.line?t.ch:null,a==r.line?r.ch:null),e.cm&&e.cm.curOp),++a})),o.collapsed&&e.iter(t.line,r.line+1,(function(t){Gt(e,t)&&$e(t,0)})),o.clearOnEnter&&he(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(xt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++Lo,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)hn(u,t.line,r.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var c=t.line;c<=r.line;c++)fn(u,c,"text");o.atomic&&ro(u.doc),sr(u,"markerAdded",u,o)}return o}ko.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Xn(e),me(this,"clear")){var r=this.find();r&&sr(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=u,e.display.maxLineLength=c,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&hn(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&ro(e.doc)),e&&sr(e,"markerCleared",e,this,n,i),t&&Yn(e),this.parent&&this.parent.clear()}},ko.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;a--)uo(this,n[a]);s?Ji(this,s):this.cm&&Dn(this.cm)})),undo:ri((function(){ho(this,"undo")})),redo:ri((function(){ho(this,"redo")})),undoSelection:ri((function(){ho(this,"undo",!0)})),redoSelection:ri((function(){ho(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=st(this,e),t=st(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var l=o.markedSpans;if(l)for(var s=0;s=a.to||null==a.from&&i!=e.line||null!=a.from&&i==t.line&&a.from>=t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i})),n},getAllMarks:function(){var e=[];return this.iter((function(t){var r=t.markedSpans;if(r)for(var n=0;ne)return t=e,!0;e-=o,++r})),st(this,et(r,t))},indexFromPos:function(e){var t=(e=st(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var h=e.dataTransfer.getData("Text");if(h){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),eo(t.doc,ki(r,r)),f)for(var d=0;d=0;t--)go(e.doc,"",n[t].from,n[t].to,"+delete");Dn(e)}))}function Jo(e,t,r){var n=ie(e.text,t+r,r);return n<0||n>e.text.length?null:n}function Qo(e,t,r){var n=Jo(e,t.ch,r);return null==n?null:new et(t.line,n,r<0?"after":"before")}function el(e,t,r,n,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=ue(r,t.doc.direction);if(o){var l,s=i<0?_(o):o[0],a=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var u=Dr(t,r);l=i<0?r.text.length-1:0;var c=Wr(t,u,l).top;l=oe((function(e){return Wr(t,u,e).top==c}),i<0==(1==s.level)?s.from:s.to-1,l),"before"==a&&(l=Jo(r,l,1))}else l=i<0?s.to:s.from;return new et(n,l,a)}}return new et(n,i<0?r.text.length:0,i<0?"before":"after")}Vo.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Vo.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Vo.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Vo.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Vo.default=y?Vo.macDefault:Vo.pcDefault;var tl={selectAll:so,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),U)},killLine:function(e){return Zo(e,(function(t){if(t.empty()){var r=Xe(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line0)i=new et(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),et(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=Xe(e.doc,i.line-1).text;l&&(i=new et(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),et(i.line-1,l.length-1),i,"+transpose"))}r.push(new Si(i,i))}e.setSelections(r)}))},newlineAndIndent:function(e){return Qn(e,(function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n-1&&(tt((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(tt(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,u=ei(e,(function(t){a&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:Sn(e)),de(i.wrapper.ownerDocument,"mouseup",u),de(i.wrapper.ownerDocument,"mousemove",c),de(i.scroller,"dragstart",h),de(i.scroller,"drop",u),o||(be(t),n.addNew||_i(e.doc,r,null,null,n.extend),a&&!f||l&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},h=function(){return o=!0};a&&(i.scroller.draggable=!0),e.state.draggingText=u,u.copy=!n.moveOnDrag,he(i.wrapper.ownerDocument,"mouseup",u),he(i.wrapper.ownerDocument,"mousemove",c),he(i.scroller,"dragstart",h),he(i.scroller,"drop",u),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}(e,n,t,o):function(e,t,r,n){l&&Sn(e);var i=e.display,o=e.doc;be(t);var s,a,u=o.sel,c=u.ranges;if(n.addNew&&!n.extend?(a=o.sel.contains(r),s=a>-1?c[a]:new Si(r,r)):(s=o.sel.primary(),a=o.sel.primIndex),"rectangle"==n.unit)n.addNew||(s=new Si(r,r)),r=un(e,t,!0,!0),a=-1;else{var h=ml(e,r,n.unit);s=n.extend?Yi(s,h.anchor,h.head,n.extend):h}n.addNew?-1==a?(a=c.length,Qi(o,Li(e,c.concat([s]),a),{scroll:!1,origin:"*mouse"})):c.length>1&&c[a].empty()&&"char"==n.unit&&!n.extend?(Qi(o,Li(e,c.slice(0,a).concat(c.slice(a+1)),0),{scroll:!1,origin:"*mouse"}),u=o.sel):qi(o,a,s,V):(a=0,Qi(o,new Ci([s],0),V),u=o.sel);var f=r;function d(t){if(0!=tt(f,t))if(f=t,"rectangle"==n.unit){for(var i=[],l=e.options.tabSize,c=I(Xe(o,r.line).text,r.ch,l),h=I(Xe(o,t.line).text,t.ch,l),d=Math.min(c,h),p=Math.max(c,h),g=Math.min(r.line,t.line),v=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=v;g++){var m=Xe(o,g).text,y=j(m,d,l);d==p?i.push(new Si(et(g,y),et(g,y))):m.length>y&&i.push(new Si(et(g,y),et(g,j(m,p,l))))}i.length||i.push(new Si(r,r)),Qi(o,Li(e,u.ranges.slice(0,a).concat(i),a),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b,w=s,x=ml(e,t,n.unit),C=w.anchor;tt(x.anchor,C)>0?(b=x.head,C=ot(w.from(),x.anchor)):(b=x.anchor,C=it(w.to(),x.head));var S=u.ranges.slice(0);S[a]=function(e,t){var r=t.anchor,n=t.head,i=Xe(e.doc,r.line);if(0==tt(r,n)&&r.sticky==n.sticky)return t;var o=ue(i);if(!o)return t;var l=se(o,r.ch,r.sticky),s=o[l];if(s.from!=r.ch&&s.to!=r.ch)return t;var a,u=l+(s.from==r.ch==(1!=s.level)?0:1);if(0==u||u==o.length)return t;if(n.line!=r.line)a=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=se(o,n.ch,n.sticky),h=c-l||(n.ch-r.ch)*(1==s.level?-1:1);a=c==u-1||c==u?h<0:h>0}var f=o[u+(a?-1:0)],d=a==(1==f.level),p=d?f.from:f.to,g=d?"after":"before";return r.ch==p&&r.sticky==g?t:new Si(new et(r.line,p,g),n)}(e,new Si(st(o,C),b)),Qi(o,Li(e,S,a),V)}}var p=i.wrapper.getBoundingClientRect(),g=0;function v(t){var r=++g,l=un(e,t,!0,"rectangle"==n.unit);if(l)if(0!=tt(l,f)){e.curOp.focus=W(),d(l);var s=Nn(i,o);(l.line>=s.to||l.linep.bottom?20:0;a&&setTimeout(ei(e,(function(){g==r&&(i.scroller.scrollTop+=a,v(t))})),50)}}function m(t){e.state.selectingText=!1,g=1/0,t&&(be(t),i.input.focus()),de(i.wrapper.ownerDocument,"mousemove",y),de(i.wrapper.ownerDocument,"mouseup",b),o.history.lastSelOrigin=null}var y=ei(e,(function(e){0!==e.buttons&&Le(e)?v(e):m(e)})),b=ei(e,m);e.state.selectingText=b,he(i.wrapper.ownerDocument,"mousemove",y),he(i.wrapper.ownerDocument,"mouseup",b)}(e,n,t,o)}(t,n,o,e):Se(e)==r.scroller&&be(e):2==i?(n&&_i(t.doc,n),setTimeout((function(){return r.input.focus()}),20)):3==i&&(S?t.display.input.onContextMenu(e):Sn(t)))}}function ml(e,t,r){if("char"==r)return new Si(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new Si(et(t.line,0),st(e.doc,et(t.line+1,0)));var n=r(e,t);return new Si(n.from,n.to)}function yl(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(e){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&be(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!me(e,r))return xe(t);o-=s.top-l.viewOffset;for(var a=0;a=i)return pe(e,r,e,Ze(e.doc,o),e.display.gutterSpecs[a].className,t),xe(t)}}function bl(e,t){return yl(e,t,"gutterClick",!0)}function wl(e,t){xr(e.display,t)||function(e,t){return!!me(e,"gutterContextMenu")&&yl(e,t,"gutterContextMenu",!1)}(e,t)||ge(e,t,"contextmenu")||S||e.display.input.onContextMenu(t)}function xl(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),zr(e)}gl.prototype.compare=function(e,t,r){return this.time+400>e&&0==tt(t,this.pos)&&r==this.button};var Cl={toString:function(){return"CodeMirror.Init"}},Sl={},Ll={};function kl(e,t,r){if(!t!=!(r&&r!=Cl)){var n=e.display.dragFunctions,i=t?he:de;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function Tl(e){e.options.lineWrapping?(H(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(T(e.display.wrapper,"CodeMirror-wrap"),jt(e)),an(e),hn(e),zr(e),setTimeout((function(){return Gn(e)}),100)}function Ml(e,t){var r=this;if(!(this instanceof Ml))return new Ml(e,t);this.options=t=t?R(t):{},R(Sl,t,!1);var n=t.value;"string"==typeof n?n=new Do(n,t.mode,null,t.lineSeparator,t.direction):t.mode&&(n.modeOption=t.mode),this.doc=n;var i=new Ml.inputStyles[t.inputStyle](this),o=this.display=new vi(e,n,i,t);for(var u in o.wrapper.CodeMirror=this,xl(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Kn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new z,keySeq:null,specialChars:null},t.autofocus&&!m&&o.input.focus(),l&&s<11&&setTimeout((function(){return r.display.input.reset(!0)}),20),function(e){var t=e.display;he(t.scroller,"mousedown",ei(e,vl)),he(t.scroller,"dblclick",l&&s<11?ei(e,(function(t){if(!ge(e,t)){var r=un(e,t);if(r&&!bl(e,t)&&!xr(e.display,t)){be(t);var n=e.findWordAt(r);_i(e.doc,n.anchor,n.head)}}})):function(t){return ge(e,t)||be(t)}),he(t.scroller,"contextmenu",(function(t){return wl(e,t)})),he(t.input.getField(),"contextmenu",(function(r){t.scroller.contains(r.target)||wl(e,r)}));var r,n={end:0};function i(){t.activeTouch&&(r=setTimeout((function(){return t.activeTouch=null}),1e3),(n=t.activeTouch).end=+new Date)}function o(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function a(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}he(t.scroller,"touchstart",(function(i){if(!ge(e,i)&&!o(i)&&!bl(e,i)){t.input.ensurePolled(),clearTimeout(r);var l=+new Date;t.activeTouch={start:l,moved:!1,prev:l-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),he(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),he(t.scroller,"touchend",(function(r){var n=t.activeTouch;if(n&&!xr(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var o,l=e.coordsChar(t.activeTouch,"page");o=!n.prev||a(n,n.prev)?new Si(l,l):!n.prev.prev||a(n,n.prev.prev)?e.findWordAt(l):new Si(et(l.line,0),st(e.doc,et(l.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),be(r)}i()})),he(t.scroller,"touchcancel",i),he(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(Pn(e,t.scroller.scrollTop),Rn(e,t.scroller.scrollLeft,!0),pe(e,"scroll",e))})),he(t.scroller,"mousewheel",(function(t){return xi(e,t)})),he(t.scroller,"DOMMouseScroll",(function(t){return xi(e,t)})),he(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){ge(e,t)||Ce(t)},over:function(t){ge(e,t)||(function(e,t){var r=un(e,t);if(r){var n=document.createDocumentFragment();yn(e,r,n),e.display.dragCursor||(e.display.dragCursor=O("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),N(e.display.dragCursor,n)}}(e,t),Ce(t))},start:function(t){return function(e,t){if(l&&(!e.state.draggingText||+new Date-Wo<100))Ce(t);else if(!ge(e,t)&&!xr(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!f)){var r=O("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",h&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),h&&r.parentNode.removeChild(r)}}(e,t)},drop:ei(e,Ho),leave:function(t){ge(e,t)||Fo(e)}};var u=t.input.getField();he(u,"keyup",(function(t){return hl.call(e,t)})),he(u,"keydown",ei(e,cl)),he(u,"keypress",ei(e,fl)),he(u,"focus",(function(t){return Ln(e,t)})),he(u,"blur",(function(t){return kn(e,t)}))}(this),Ro(),Xn(this),this.curOp.forceUpdate=!0,Pi(this,n),t.autofocus&&!m||this.hasFocus()?setTimeout((function(){r.hasFocus()&&!r.state.focused&&Ln(r)}),20):kn(this),Ll)Ll.hasOwnProperty(u)&&Ll[u](this,t[u],Cl);fi(this),t.finishInit&&t.finishInit(this);for(var c=0;c150)){if(!n)return;r="prev"}}else u=0,r="not";"prev"==r?u=t>o.first?I(Xe(o,t-1).text,null,l):0:"add"==r?u=a+e.options.indentUnit:"subtract"==r?u=a-e.options.indentUnit:"number"==typeof r&&(u=a+r),u=Math.max(0,u);var h="",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(u/l);d;--d)f+=l,h+="\t";if(fl,a=De(t),u=null;if(s&&n.ranges.length>1)if(Al&&Al.text.join("\n")==t){if(n.ranges.length%Al.text.length==0){u=[];for(var c=0;c=0;f--){var d=n.ranges[f],p=d.from(),g=d.to();d.empty()&&(r&&r>0?p=et(p.line,p.ch-r):e.state.overwrite&&!s?g=et(g.line,Math.min(Xe(o,g.line).text.length,g.ch+_(a).length)):s&&Al&&Al.lineWise&&Al.text.join("\n")==a.join("\n")&&(p=g=et(p.line,0)));var v={from:p,to:g,text:u?u[f%u.length]:a,origin:i||(s?"paste":e.state.cutIncoming>l?"cut":"+input")};uo(e.doc,v),sr(e,"inputRead",e,v)}t&&!s&&Fl(e,t),Dn(e),e.curOp.updateInput<2&&(e.curOp.updateInput=h),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Hl(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Qn(t,(function(){return Wl(t,r,0,null,"paste")})),!0}function Fl(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s-1){l=Ol(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xe(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=Ol(e,i.head.line,"smart"));l&&sr(e,"electricInput",e,i.head.line)}}}function Pl(e){for(var t=[],r=[],n=0;n0?0:-1));if(isNaN(c))l=null;else{var h=r>0?c>=55296&&c<56320:c>=56320&&c<57343;l=new et(t.line,Math.max(0,Math.min(s.text.length,t.ch+r*(h?2:1))),-r)}}else l=i?function(e,t,r,n){var i=ue(t,e.doc.direction);if(!i)return Qo(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=se(i,r.ch,r.sticky),l=i[o];if("ltr"==e.doc.direction&&l.level%2==0&&(n>0?l.to>r.ch:l.from=l.from&&f>=c.begin)){var d=h?"before":"after";return new et(r.line,f,d)}}var p=function(e,t,n){for(var o=function(e,t){return t?new et(r.line,a(e,1),"before"):new et(r.line,e,"after")};e>=0&&e0==(1!=l.level),u=s?n.begin:a(n.end,-1);if(l.from<=u&&u0?c.end:a(c.begin,-1);return null==v||n>0&&v==t.text.length||!(g=p(n>0?0:i.length-1,n,u(v)))?null:g}(e.cm,s,t,r):Qo(s,t,r);if(null==l){if(o||((u=t.line+a)=e.first+e.size||(t=new et(u,t.ch,t.sticky),!(s=Xe(e,u)))))return!1;t=el(i,e.cm,s,t.line,a)}else t=l;return!0}if("char"==n||"codepoint"==n)u();else if("column"==n)u(!0);else if("word"==n||"group"==n)for(var c=null,h="group"==n,f=e.cm&&e.cm.getHelper(t,"wordChars"),d=!0;!(r<0)||u(!d);d=!1){var p=s.text.charAt(t.ch)||"\n",g=ee(p,f)?"w":h&&"\n"==p?"n":!h||/\s/.test(p)?null:"p";if(!h||d||g||(g="s"),c&&c!=g){r<0&&(r=1,u(),t.sticky="after");break}if(g&&(c=g),r>0&&!u(!d))break}var v=oo(e,t,o,l,!0);return rt(o,v)&&(v.hitSide=!0),v}function zl(e,t,r,n){var i,o,l=e.doc,s=t.left;if("page"==n){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(a-.5*rn(e.display),3);i=(r>0?t.bottom:t.top)+r*u}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(;(o=$r(e,s,i)).outside;){if(r<0?i<=0:i>=l.height){o.hitSide=!0;break}i+=5*r}return o}var Bl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new z,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Gl(e,t){var r=Ar(e,t.line);if(!r||r.hidden)return null;var n=Xe(e.doc,t.line),i=Nr(r,n,t.line),o=ue(n,e.doc.direction),l="left";o&&(l=se(o,t.ch)%2?"right":"left");var s=Pr(i.map,t.ch,l);return s.offset="right"==s.collapse?s.end:s.start,s}function Ul(e,t){return t&&(e.bad=!0),e}function Vl(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Ul(e.clipPos(et(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&Gl(t,i)||{node:a[0].measure.map[2],offset:0},c=o.linen.firstLine()&&(l=et(l.line-1,Xe(n.doc,l.line-1).length)),s.ch==Xe(n.doc,s.line).text.length&&s.linei.viewTo-1)return!1;l.line==i.viewFrom||0==(e=cn(n,l.line))?(t=qe(i.view[0].line),r=i.view[0].node):(t=qe(i.view[e].line),r=i.view[e-1].node.nextSibling);var a,u,c=cn(n,s.line);if(c==i.view.length-1?(a=i.viewTo-1,u=i.lineDiv.lastChild):(a=qe(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!r)return!1;for(var h=n.doc.splitLines(function(e,t,r,n,i){var o="",l=!1,s=e.doc.lineSeparator(),a=!1;function u(){l&&(o+=s,a&&(o+=s),l=a=!1)}function c(e){e&&(u(),o+=e)}function h(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(r)return void c(r);var o,f=t.getAttribute("cm-marker");if(f){var d=e.findMarks(et(n,0),et(i+1,0),(v=+f,function(e){return e.id==v}));return void(d.length&&(o=d[0].find(0))&&c(Ye(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var p=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;p&&u();for(var g=0;g1&&f.length>1;)if(_(h)==_(f))h.pop(),f.pop(),a--;else{if(h[0]!=f[0])break;h.shift(),f.shift(),t++}for(var d=0,p=0,g=h[0],v=f[0],m=Math.min(g.length,v.length);dl.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;h[h.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),h[0]=h[0].slice(d).replace(/\u200b+$/,"");var x=et(t,d),C=et(a,f.length?_(f).length-p:0);return h.length>1||h[0]||tt(x,C)?(go(n.doc,h,x,C,"+input"),!0):void 0},Bl.prototype.ensurePolled=function(){this.forceCompositionEnd()},Bl.prototype.reset=function(){this.forceCompositionEnd()},Bl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Bl.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Bl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Qn(this.cm,(function(){return hn(e.cm)}))},Bl.prototype.setUneditable=function(e){e.contentEditable="false"},Bl.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||ei(this.cm,Wl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Bl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Bl.prototype.onContextMenu=function(){},Bl.prototype.resetPosition=function(){},Bl.prototype.needsContentAttribute=!0;var jl=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new z,this.hasSelection=!1,this.composing=null};jl.prototype.init=function(e){var t=this,r=this,n=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!ge(n,e)){if(n.somethingSelected())Dl({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Pl(n);Dl({lineWise:!0,text:t.text}),"cut"==e.type?n.setSelections(t.ranges,null,U):(r.prevInput="",i.value=t.text.join("\n"),P(i))}"cut"==e.type&&(n.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),g&&(i.style.width="0px"),he(i,"input",(function(){l&&s>=9&&t.hasSelection&&(t.hasSelection=null),r.poll()})),he(i,"paste",(function(e){ge(n,e)||Hl(e,n)||(n.state.pasteIncoming=+new Date,r.fastPoll())})),he(i,"cut",o),he(i,"copy",o),he(e.scroller,"paste",(function(t){if(!xr(e,t)&&!ge(n,t)){if(!i.dispatchEvent)return n.state.pasteIncoming=+new Date,void r.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),he(e.lineSpace,"selectstart",(function(t){xr(e,t)||be(t)})),he(i,"compositionstart",(function(){var e=n.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor("to"),{className:"CodeMirror-composing"})}})),he(i,"compositionend",(function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)}))},jl.prototype.createField=function(e){this.wrapper=Rl(),this.textarea=this.wrapper.firstChild},jl.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},jl.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=mn(e);if(e.options.moveInputWithCursor){var i=Xr(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},jl.prototype.showSelection=function(e){var t=this.cm.display;N(t.cursorDiv,e.cursors),N(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},jl.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&P(this.textarea),l&&s>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",l&&s>=9&&(this.hasSelection=null))}},jl.prototype.getField=function(){return this.textarea},jl.prototype.supportsTouch=function(){return!1},jl.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!m||W()!=this.textarea))try{this.textarea.focus()}catch(e){}},jl.prototype.blur=function(){this.textarea.blur()},jl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},jl.prototype.receivedFocus=function(){this.slowPoll()},jl.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},jl.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function r(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))}))},jl.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||We(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(l&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var a=0,u=Math.min(n.length,i.length);a1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},jl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},jl.prototype.onKeyPress=function(){l&&s>=9&&(this.hasSelection=null),this.fastPoll()},jl.prototype.onContextMenu=function(e){var t=this,r=t.cm,n=r.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=un(r,e),u=n.scroller.scrollTop;if(o&&!h){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(o)&&ei(r,Qi)(r.doc,ki(o),U);var c,f=i.style.cssText,d=t.wrapper.style.cssText,p=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-p.top-5)+"px; left: "+(e.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(l?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",a&&(c=window.scrollY),n.input.focus(),a&&window.scrollTo(null,c),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=m,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),l&&s>=9&&v(),S){Ce(e);var g=function(){de(window,"mouseup",g),setTimeout(m,20)};he(window,"mouseup",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var e=r.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function m(){if(t.contextMenuPending==m&&(t.contextMenuPending=!1,t.wrapper.style.cssText=d,i.style.cssText=f,l&&s<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=u),null!=i.selectionStart)){(!l||l&&s<9)&&v();var e=0,o=function(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?ei(r,so)(r):e++<10?n.detectingSelectAll=setTimeout(o,500):(n.selForContextMenu=null,n.input.reset())};n.detectingSelectAll=setTimeout(o,200)}}},jl.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},jl.prototype.setUneditable=function(){},jl.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function r(r,n,i,o){e.defaults[r]=n,i&&(t[r]=o?function(e,t,r){r!=Cl&&i(e,t,r)}:i)}e.defineOption=r,e.Init=Cl,r("value","",(function(e,t){return e.setValue(t)}),!0),r("mode",null,(function(e,t){e.doc.modeOption=t,Ai(e)}),!0),r("indentUnit",2,Ai,!0),r("indentWithTabs",!1),r("smartIndent",!0),r("tabSize",4,(function(e){Di(e),zr(e),hn(e)}),!0),r("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(et(n,o))}n++}));for(var i=r.length-1;i>=0;i--)go(e.doc,t,r[i],et(r[i].line,r[i].ch+t.length))}})),r("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=Cl&&e.refresh()})),r("specialCharPlaceholder",Jt,(function(e){return e.refresh()}),!0),r("electricChars",!0),r("inputStyle",m?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),r("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),r("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),r("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),r("rtlMoveVisually",!w),r("wholeLineUpdateBefore",!0),r("theme","default",(function(e){xl(e),gi(e)}),!0),r("keyMap","default",(function(e,t,r){var n=qo(t),i=r!=Cl&&qo(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)})),r("extraKeys",null),r("configureMouse",null),r("lineWrapping",!1,Tl,!0),r("gutters",[],(function(e,t){e.display.gutterSpecs=di(t,e.options.lineNumbers),gi(e)}),!0),r("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?ln(e.display)+"px":"0",e.refresh()}),!0),r("coverGutterNextToScrollbar",!1,(function(e){return Gn(e)}),!0),r("scrollbarStyle","native",(function(e){Kn(e),Gn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),r("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=di(e.options.gutters,t),gi(e)}),!0),r("firstLineNumber",1,gi,!0),r("lineNumberFormatter",(function(e){return e}),gi,!0),r("showCursorWhenSelecting",!1,vn,!0),r("resetSelectionOnContextMenu",!0),r("lineWiseCopyCut",!0),r("pasteLinesPerSelection",!0),r("selectionsMayTouch",!1),r("readOnly",!1,(function(e,t){"nocursor"==t&&(kn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),r("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),r("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),r("dragDrop",!0,kl),r("allowDropFileTypes",null),r("cursorBlinkRate",530),r("cursorScrollMargin",0),r("cursorHeight",1,vn,!0),r("singleCursorHeightPerLine",!0,vn,!0),r("workTime",100),r("workDelay",100),r("flattenSpans",!0,Di,!0),r("addModeClass",!1,Di,!0),r("pollInterval",100),r("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),r("historyEventDelay",1250),r("viewportMargin",10,(function(e){return e.refresh()}),!0),r("maxHighlightLength",1e4,Di,!0),r("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),r("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),r("autofocus",null),r("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),r("phrases",null)}(Ml),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&ei(this,t[e])(this,r,i),pe(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](qo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;rr&&(Ol(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&Dn(this));else{var o=i.from(),l=i.to(),s=Math.max(r,o.line);r=Math.min(this.lastLine(),l.line-(l.ch?0:1))+1;for(var a=s;a0&&qi(this.doc,n,new Si(o,u[n].to()),U)}}})),getTokenAt:function(e,t){return yt(this,e,t)},getLineTokens:function(e,t){return yt(this,et(e),t,!0)},getTokenTypeAt:function(e){e=st(this.doc,e);var t,r=ft(this,Xe(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]o&&(e=o,i=!0),n=Xe(this.doc,e)}else n=e;return Vr(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-Vt(n):0)},defaultTextHeight:function(){return rn(this.display)},defaultCharWidth:function(){return nn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o,l,s,a=this.display,u=(e=Xr(this,st(this.doc,e))).bottom,c=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),a.sizer.appendChild(t),"over"==n)u=e.top;else if("above"==n||"near"==n){var h=Math.max(a.wrapper.clientHeight,this.doc.height),f=Math.max(a.sizer.clientWidth,a.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>h)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=h&&(u=e.bottom),c+t.offsetWidth>f&&(c=f-t.offsetWidth)}t.style.top=u+"px",t.style.left=t.style.right="","right"==i?(c=a.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?c=0:"middle"==i&&(c=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+"px"),r&&(o=this,l={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=On(o,l)).scrollTop&&Pn(o,s.scrollTop),null!=s.scrollLeft&&Rn(o,s.scrollLeft))},triggerOnKeyDown:ti(cl),triggerOnKeyPress:ti(fl),triggerOnKeyUp:hl,triggerOnMouseDown:ti(vl),execCommand:function(e){if(tl.hasOwnProperty(e))return tl[e].call(null,this)},triggerElectric:ti((function(e){Fl(this,e)})),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=st(this.doc,e),l=0;l0&&l(t.charAt(r-1));)--r;for(;n.5||this.options.lineWrapping)&&an(this),pe(this,"refresh",this)})),swapDoc:ti((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Pi(this,e),zr(this),this.display.input.reset(),Wn(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sr(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ye(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Ml);var Xl="iter insert remove copy getEditor constructor".split(" ");for(var Yl in Do.prototype)Do.prototype.hasOwnProperty(Yl)&&B(Xl,Yl)<0&&(Ml.prototype[Yl]=function(e){return function(){return e.apply(this.doc,arguments)}}(Do.prototype[Yl]));return ye(Do),Ml.inputStyles={textarea:jl,contenteditable:Bl},Ml.defineMode=function(e){Ml.defaults.mode||"null"==e||(Ml.defaults.mode=e),Re.apply(this,arguments)},Ml.defineMIME=function(e,t){Ee[e]=t},Ml.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Ml.defineMIME("text/plain","null"),Ml.defineExtension=function(e,t){Ml.prototype[e]=t},Ml.defineDocExtension=function(e,t){Do.prototype[e]=t},Ml.fromTextArea=function(e,t){if((t=t?R(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=W();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}function n(){e.value=s.getValue()}var i;if(e.form&&(he(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(r){r.save=n,r.getTextArea=function(){return e},r.toTextArea=function(){r.toTextArea=isNaN,n(),e.parentNode.removeChild(r.getWrapperElement()),e.style.display="",e.form&&(de(e.form,"submit",n),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Ml((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s},function(e){e.off=de,e.on=he,e.wheelEventPixels=wi,e.Doc=Do,e.splitLines=De,e.countColumn=I,e.findColumn=j,e.isWordChar=Q,e.Pass=G,e.signal=pe,e.Line=Xt,e.changeEnd=Ti,e.scrollbarModel=Vn,e.Pos=et,e.cmpPos=tt,e.modes=Pe,e.mimeModes=Ee,e.resolveMode=Ie,e.getMode=ze,e.modeExtensions=Be,e.extendMode=Ge,e.copyState=Ue,e.startState=Ke,e.innerMode=Ve,e.commands=tl,e.keyMap=Vo,e.keyName=$o,e.isModifierKey=Yo,e.lookupKey=Xo,e.normalizeKeyMap=jo,e.StringStream=je,e.SharedTextMarker=Mo,e.TextMarker=ko,e.LineWidget=Co,e.e_preventDefault=be,e.e_stopPropagation=we,e.e_stop=Ce,e.addClass=H,e.contains=D,e.rmClass=T,e.keyNames=zo}(Ml),Ml.version="5.61.1",Ml}()}}]); +//# sourceMappingURL=5747.94ad626.js.map \ No newline at end of file diff --git a/_static/build/5747.94ad626.js.map b/_static/build/5747.94ad626.js.map new file mode 100644 index 0000000..e1a1b22 --- /dev/null +++ b/_static/build/5747.94ad626.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5747.94ad626.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/lib/codemirror.js"],"sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// This is CodeMirror (https://codemirror.net), a code editor\n// implemented in JavaScript on top of the browser's DOM.\n//\n// You can find some technical background for some of the code below\n// at http://marijnhaverbeke.nl/blog/#cm-internals .\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.CodeMirror = factory());\n}(this, (function () { 'use strict';\n\n // Kludges for bugs and behavior differences that can't be feature\n // detected are enabled based on userAgent etc sniffing.\n var userAgent = navigator.userAgent;\n var platform = navigator.platform;\n\n var gecko = /gecko\\/\\d/i.test(userAgent);\n var ie_upto10 = /MSIE \\d/.test(userAgent);\n var ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(userAgent);\n var edge = /Edge\\/(\\d+)/.exec(userAgent);\n var ie = ie_upto10 || ie_11up || edge;\n var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);\n var webkit = !edge && /WebKit\\//.test(userAgent);\n var qtwebkit = webkit && /Qt\\/\\d+\\.\\d+/.test(userAgent);\n var chrome = !edge && /Chrome\\//.test(userAgent);\n var presto = /Opera\\//.test(userAgent);\n var safari = /Apple Computer/.test(navigator.vendor);\n var mac_geMountainLion = /Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(userAgent);\n var phantom = /PhantomJS/.test(userAgent);\n\n var ios = safari && (/Mobile\\/\\w+/.test(userAgent) || navigator.maxTouchPoints > 2);\n var android = /Android/.test(userAgent);\n // This is woefully incomplete. Suggestions for alternative methods welcome.\n var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);\n var mac = ios || /Mac/.test(platform);\n var chromeOS = /\\bCrOS\\b/.test(userAgent);\n var windows = /win/i.test(platform);\n\n var presto_version = presto && userAgent.match(/Version\\/(\\d*\\.\\d*)/);\n if (presto_version) { presto_version = Number(presto_version[1]); }\n if (presto_version && presto_version >= 15) { presto = false; webkit = true; }\n // Some browsers use the wrong event properties to signal cmd/ctrl on OS X\n var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));\n var captureRightClick = gecko || (ie && ie_version >= 9);\n\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n var rmClass = function(node, cls) {\n var current = node.className;\n var match = classTest(cls).exec(current);\n if (match) {\n var after = current.slice(match.index + match[0].length);\n node.className = current.slice(0, match.index) + (after ? match[1] + after : \"\");\n }\n };\n\n function removeChildren(e) {\n for (var count = e.childNodes.length; count > 0; --count)\n { e.removeChild(e.firstChild); }\n return e\n }\n\n function removeChildrenAndAdd(parent, e) {\n return removeChildren(parent).appendChild(e)\n }\n\n function elt(tag, content, className, style) {\n var e = document.createElement(tag);\n if (className) { e.className = className; }\n if (style) { e.style.cssText = style; }\n if (typeof content == \"string\") { e.appendChild(document.createTextNode(content)); }\n else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }\n return e\n }\n // wrapper for elt, which removes the elt from the accessibility tree\n function eltP(tag, content, className, style) {\n var e = elt(tag, content, className, style);\n e.setAttribute(\"role\", \"presentation\");\n return e\n }\n\n var range;\n if (document.createRange) { range = function(node, start, end, endNode) {\n var r = document.createRange();\n r.setEnd(endNode || node, end);\n r.setStart(node, start);\n return r\n }; }\n else { range = function(node, start, end) {\n var r = document.body.createTextRange();\n try { r.moveToElementText(node.parentNode); }\n catch(e) { return r }\n r.collapse(true);\n r.moveEnd(\"character\", end);\n r.moveStart(\"character\", start);\n return r\n }; }\n\n function contains(parent, child) {\n if (child.nodeType == 3) // Android browser always returns false when child is a textnode\n { child = child.parentNode; }\n if (parent.contains)\n { return parent.contains(child) }\n do {\n if (child.nodeType == 11) { child = child.host; }\n if (child == parent) { return true }\n } while (child = child.parentNode)\n }\n\n function activeElt() {\n // IE and Edge may throw an \"Unspecified Error\" when accessing document.activeElement.\n // IE < 10 will throw when accessed while the page is loading or in an iframe.\n // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.\n var activeElement;\n try {\n activeElement = document.activeElement;\n } catch(e) {\n activeElement = document.body || null;\n }\n while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)\n { activeElement = activeElement.shadowRoot.activeElement; }\n return activeElement\n }\n\n function addClass(node, cls) {\n var current = node.className;\n if (!classTest(cls).test(current)) { node.className += (current ? \" \" : \"\") + cls; }\n }\n function joinClasses(a, b) {\n var as = a.split(\" \");\n for (var i = 0; i < as.length; i++)\n { if (as[i] && !classTest(as[i]).test(b)) { b += \" \" + as[i]; } }\n return b\n }\n\n var selectInput = function(node) { node.select(); };\n if (ios) // Mobile Safari apparently has a bug where select() is broken.\n { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }\n else if (ie) // Suppress mysterious IE10 errors\n { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }\n\n function bind(f) {\n var args = Array.prototype.slice.call(arguments, 1);\n return function(){return f.apply(null, args)}\n }\n\n function copyObj(obj, target, overwrite) {\n if (!target) { target = {}; }\n for (var prop in obj)\n { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))\n { target[prop] = obj[prop]; } }\n return target\n }\n\n // Counts the column offset in a string, taking tabs into account.\n // Used mostly to find indentation.\n function countColumn(string, end, tabSize, startIndex, startValue) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1) { end = string.length; }\n }\n for (var i = startIndex || 0, n = startValue || 0;;) {\n var nextTab = string.indexOf(\"\\t\", i);\n if (nextTab < 0 || nextTab >= end)\n { return n + (end - i) }\n n += nextTab - i;\n n += tabSize - (n % tabSize);\n i = nextTab + 1;\n }\n }\n\n var Delayed = function() {\n this.id = null;\n this.f = null;\n this.time = 0;\n this.handler = bind(this.onTimeout, this);\n };\n Delayed.prototype.onTimeout = function (self) {\n self.id = 0;\n if (self.time <= +new Date) {\n self.f();\n } else {\n setTimeout(self.handler, self.time - +new Date);\n }\n };\n Delayed.prototype.set = function (ms, f) {\n this.f = f;\n var time = +new Date + ms;\n if (!this.id || time < this.time) {\n clearTimeout(this.id);\n this.id = setTimeout(this.handler, ms);\n this.time = time;\n }\n };\n\n function indexOf(array, elt) {\n for (var i = 0; i < array.length; ++i)\n { if (array[i] == elt) { return i } }\n return -1\n }\n\n // Number of pixels added to scroller and sizer to hide scrollbar\n var scrollerGap = 50;\n\n // Returned or thrown by various protocols to signal 'I'm not\n // handling this'.\n var Pass = {toString: function(){return \"CodeMirror.Pass\"}};\n\n // Reused option objects for setSelection & friends\n var sel_dontScroll = {scroll: false}, sel_mouse = {origin: \"*mouse\"}, sel_move = {origin: \"+move\"};\n\n // The inverse of countColumn -- find the offset that corresponds to\n // a particular column.\n function findColumn(string, goal, tabSize) {\n for (var pos = 0, col = 0;;) {\n var nextTab = string.indexOf(\"\\t\", pos);\n if (nextTab == -1) { nextTab = string.length; }\n var skipped = nextTab - pos;\n if (nextTab == string.length || col + skipped >= goal)\n { return pos + Math.min(skipped, goal - col) }\n col += nextTab - pos;\n col += tabSize - (col % tabSize);\n pos = nextTab + 1;\n if (col >= goal) { return pos }\n }\n }\n\n var spaceStrs = [\"\"];\n function spaceStr(n) {\n while (spaceStrs.length <= n)\n { spaceStrs.push(lst(spaceStrs) + \" \"); }\n return spaceStrs[n]\n }\n\n function lst(arr) { return arr[arr.length-1] }\n\n function map(array, f) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }\n return out\n }\n\n function insertSorted(array, value, score) {\n var pos = 0, priority = score(value);\n while (pos < array.length && score(array[pos]) <= priority) { pos++; }\n array.splice(pos, 0, value);\n }\n\n function nothing() {}\n\n function createObj(base, props) {\n var inst;\n if (Object.create) {\n inst = Object.create(base);\n } else {\n nothing.prototype = base;\n inst = new nothing();\n }\n if (props) { copyObj(props, inst); }\n return inst\n }\n\n var nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\n function isWordCharBasic(ch) {\n return /\\w/.test(ch) || ch > \"\\x80\" &&\n (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))\n }\n function isWordChar(ch, helper) {\n if (!helper) { return isWordCharBasic(ch) }\n if (helper.source.indexOf(\"\\\\w\") > -1 && isWordCharBasic(ch)) { return true }\n return helper.test(ch)\n }\n\n function isEmpty(obj) {\n for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }\n return true\n }\n\n // Extending unicode characters. A series of a non-extending char +\n // any number of extending chars is treated as a single unit as far\n // as editing and measuring is concerned. This is not fully correct,\n // since some scripts/fonts/browsers also treat other configurations\n // of code points as a group.\n var extendingChars = /[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;\n function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }\n\n // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.\n function skipExtendingChars(str, pos, dir) {\n while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }\n return pos\n }\n\n // Returns the value from the range [`from`; `to`] that satisfies\n // `pred` and is closest to `from`. Assumes that at least `to`\n // satisfies `pred`. Supports `from` being greater than `to`.\n function findFirst(pred, from, to) {\n // At any point we are certain `to` satisfies `pred`, don't know\n // whether `from` does.\n var dir = from > to ? -1 : 1;\n for (;;) {\n if (from == to) { return from }\n var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);\n if (mid == from) { return pred(mid) ? from : to }\n if (pred(mid)) { to = mid; }\n else { from = mid + dir; }\n }\n }\n\n // BIDI HELPERS\n\n function iterateBidiSections(order, from, to, f) {\n if (!order) { return f(from, to, \"ltr\", 0) }\n var found = false;\n for (var i = 0; i < order.length; ++i) {\n var part = order[i];\n if (part.from < to && part.to > from || from == to && part.to == from) {\n f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? \"rtl\" : \"ltr\", i);\n found = true;\n }\n }\n if (!found) { f(from, to, \"ltr\"); }\n }\n\n var bidiOther = null;\n function getBidiPartAt(order, ch, sticky) {\n var found;\n bidiOther = null;\n for (var i = 0; i < order.length; ++i) {\n var cur = order[i];\n if (cur.from < ch && cur.to > ch) { return i }\n if (cur.to == ch) {\n if (cur.from != cur.to && sticky == \"before\") { found = i; }\n else { bidiOther = i; }\n }\n if (cur.from == ch) {\n if (cur.from != cur.to && sticky != \"before\") { found = i; }\n else { bidiOther = i; }\n }\n }\n return found != null ? found : bidiOther\n }\n\n // Bidirectional ordering algorithm\n // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm\n // that this (partially) implements.\n\n // One-char codes used for character types:\n // L (L): Left-to-Right\n // R (R): Right-to-Left\n // r (AL): Right-to-Left Arabic\n // 1 (EN): European Number\n // + (ES): European Number Separator\n // % (ET): European Number Terminator\n // n (AN): Arabic Number\n // , (CS): Common Number Separator\n // m (NSM): Non-Spacing Mark\n // b (BN): Boundary Neutral\n // s (B): Paragraph Separator\n // t (S): Segment Separator\n // w (WS): Whitespace\n // N (ON): Other Neutrals\n\n // Returns null if characters are ordered as they appear\n // (left-to-right), or an array of sections ({from, to, level}\n // objects) in the order in which they occur visually.\n var bidiOrdering = (function() {\n // Character types for codepoints 0 to 0xff\n var lowTypes = \"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\";\n // Character types for codepoints 0x600 to 0x6f9\n var arabicTypes = \"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";\n function charType(code) {\n if (code <= 0xf7) { return lowTypes.charAt(code) }\n else if (0x590 <= code && code <= 0x5f4) { return \"R\" }\n else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }\n else if (0x6ee <= code && code <= 0x8ac) { return \"r\" }\n else if (0x2000 <= code && code <= 0x200b) { return \"w\" }\n else if (code == 0x200c) { return \"b\" }\n else { return \"L\" }\n }\n\n var bidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;\n\n function BidiSpan(level, from, to) {\n this.level = level;\n this.from = from; this.to = to;\n }\n\n return function(str, direction) {\n var outerType = direction == \"ltr\" ? \"L\" : \"R\";\n\n if (str.length == 0 || direction == \"ltr\" && !bidiRE.test(str)) { return false }\n var len = str.length, types = [];\n for (var i = 0; i < len; ++i)\n { types.push(charType(str.charCodeAt(i))); }\n\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {\n var type = types[i$1];\n if (type == \"m\") { types[i$1] = prev; }\n else { prev = type; }\n }\n\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {\n var type$1 = types[i$2];\n if (type$1 == \"1\" && cur == \"r\") { types[i$2] = \"n\"; }\n else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == \"r\") { types[i$2] = \"R\"; } }\n }\n\n // W4. A single European separator between two European numbers\n // changes to a European number. A single common separator between\n // two numbers of the same type changes to that type.\n for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {\n var type$2 = types[i$3];\n if (type$2 == \"+\" && prev$1 == \"1\" && types[i$3+1] == \"1\") { types[i$3] = \"1\"; }\n else if (type$2 == \",\" && prev$1 == types[i$3+1] &&\n (prev$1 == \"1\" || prev$1 == \"n\")) { types[i$3] = prev$1; }\n prev$1 = type$2;\n }\n\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n for (var i$4 = 0; i$4 < len; ++i$4) {\n var type$3 = types[i$4];\n if (type$3 == \",\") { types[i$4] = \"N\"; }\n else if (type$3 == \"%\") {\n var end = (void 0);\n for (end = i$4 + 1; end < len && types[end] == \"%\"; ++end) {}\n var replace = (i$4 && types[i$4-1] == \"!\") || (end < len && types[end] == \"1\") ? \"1\" : \"N\";\n for (var j = i$4; j < end; ++j) { types[j] = replace; }\n i$4 = end - 1;\n }\n }\n\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {\n var type$4 = types[i$5];\n if (cur$1 == \"L\" && type$4 == \"1\") { types[i$5] = \"L\"; }\n else if (isStrong.test(type$4)) { cur$1 = type$4; }\n }\n\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n for (var i$6 = 0; i$6 < len; ++i$6) {\n if (isNeutral.test(types[i$6])) {\n var end$1 = (void 0);\n for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}\n var before = (i$6 ? types[i$6-1] : outerType) == \"L\";\n var after = (end$1 < len ? types[end$1] : outerType) == \"L\";\n var replace$1 = before == after ? (before ? \"L\" : \"R\") : outerType;\n for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }\n i$6 = end$1 - 1;\n }\n }\n\n // Here we depart from the documented algorithm, in order to avoid\n // building up an actual levels array. Since there are only three\n // levels (0, 1, 2) in an implementation that doesn't take\n // explicit embedding into account, we can build up the order on\n // the fly, without following the level-based algorithm.\n var order = [], m;\n for (var i$7 = 0; i$7 < len;) {\n if (countsAsLeft.test(types[i$7])) {\n var start = i$7;\n for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}\n order.push(new BidiSpan(0, start, i$7));\n } else {\n var pos = i$7, at = order.length, isRTL = direction == \"rtl\" ? 1 : 0;\n for (++i$7; i$7 < len && types[i$7] != \"L\"; ++i$7) {}\n for (var j$2 = pos; j$2 < i$7;) {\n if (countsAsNum.test(types[j$2])) {\n if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; }\n var nstart = j$2;\n for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}\n order.splice(at, 0, new BidiSpan(2, nstart, j$2));\n at += isRTL;\n pos = j$2;\n } else { ++j$2; }\n }\n if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }\n }\n }\n if (direction == \"ltr\") {\n if (order[0].level == 1 && (m = str.match(/^\\s+/))) {\n order[0].from = m[0].length;\n order.unshift(new BidiSpan(0, 0, m[0].length));\n }\n if (lst(order).level == 1 && (m = str.match(/\\s+$/))) {\n lst(order).to -= m[0].length;\n order.push(new BidiSpan(0, len - m[0].length, len));\n }\n }\n\n return direction == \"rtl\" ? order.reverse() : order\n }\n })();\n\n // Get the bidi ordering for the given line (and cache it). Returns\n // false for lines that are fully left-to-right, and an array of\n // BidiSpan objects otherwise.\n function getOrder(line, direction) {\n var order = line.order;\n if (order == null) { order = line.order = bidiOrdering(line.text, direction); }\n return order\n }\n\n // EVENT HANDLING\n\n // Lightweight event framework. on/off also work on DOM nodes,\n // registering native DOM handlers.\n\n var noHandlers = [];\n\n var on = function(emitter, type, f) {\n if (emitter.addEventListener) {\n emitter.addEventListener(type, f, false);\n } else if (emitter.attachEvent) {\n emitter.attachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers || (emitter._handlers = {});\n map[type] = (map[type] || noHandlers).concat(f);\n }\n };\n\n function getHandlers(emitter, type) {\n return emitter._handlers && emitter._handlers[type] || noHandlers\n }\n\n function off(emitter, type, f) {\n if (emitter.removeEventListener) {\n emitter.removeEventListener(type, f, false);\n } else if (emitter.detachEvent) {\n emitter.detachEvent(\"on\" + type, f);\n } else {\n var map = emitter._handlers, arr = map && map[type];\n if (arr) {\n var index = indexOf(arr, f);\n if (index > -1)\n { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }\n }\n }\n }\n\n function signal(emitter, type /*, values...*/) {\n var handlers = getHandlers(emitter, type);\n if (!handlers.length) { return }\n var args = Array.prototype.slice.call(arguments, 2);\n for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }\n }\n\n // The DOM events that CodeMirror handles can be overridden by\n // registering a (non-DOM) handler on the editor for the event name,\n // and preventDefault-ing the event in that handler.\n function signalDOMEvent(cm, e, override) {\n if (typeof e == \"string\")\n { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }\n signal(cm, override || e.type, cm, e);\n return e_defaultPrevented(e) || e.codemirrorIgnore\n }\n\n function signalCursorActivity(cm) {\n var arr = cm._handlers && cm._handlers.cursorActivity;\n if (!arr) { return }\n var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);\n for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)\n { set.push(arr[i]); } }\n }\n\n function hasHandler(emitter, type) {\n return getHandlers(emitter, type).length > 0\n }\n\n // Add on and off methods to a constructor's prototype, to make\n // registering events on such objects more convenient.\n function eventMixin(ctor) {\n ctor.prototype.on = function(type, f) {on(this, type, f);};\n ctor.prototype.off = function(type, f) {off(this, type, f);};\n }\n\n // Due to the fact that we still support jurassic IE versions, some\n // compatibility wrappers are needed.\n\n function e_preventDefault(e) {\n if (e.preventDefault) { e.preventDefault(); }\n else { e.returnValue = false; }\n }\n function e_stopPropagation(e) {\n if (e.stopPropagation) { e.stopPropagation(); }\n else { e.cancelBubble = true; }\n }\n function e_defaultPrevented(e) {\n return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false\n }\n function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}\n\n function e_target(e) {return e.target || e.srcElement}\n function e_button(e) {\n var b = e.which;\n if (b == null) {\n if (e.button & 1) { b = 1; }\n else if (e.button & 2) { b = 3; }\n else if (e.button & 4) { b = 2; }\n }\n if (mac && e.ctrlKey && b == 1) { b = 3; }\n return b\n }\n\n // Detect drag-and-drop\n var dragAndDrop = function() {\n // There is *some* kind of drag-and-drop support in IE6-8, but I\n // couldn't get it to work yet.\n if (ie && ie_version < 9) { return false }\n var div = elt('div');\n return \"draggable\" in div || \"dragDrop\" in div\n }();\n\n var zwspSupported;\n function zeroWidthElement(measure) {\n if (zwspSupported == null) {\n var test = elt(\"span\", \"\\u200b\");\n removeChildrenAndAdd(measure, elt(\"span\", [test, document.createTextNode(\"x\")]));\n if (measure.firstChild.offsetHeight != 0)\n { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }\n }\n var node = zwspSupported ? elt(\"span\", \"\\u200b\") :\n elt(\"span\", \"\\u00a0\", null, \"display: inline-block; width: 1px; margin-right: -1px\");\n node.setAttribute(\"cm-text\", \"\");\n return node\n }\n\n // Feature-detect IE's crummy client rect reporting for bidi text\n var badBidiRects;\n function hasBadBidiRects(measure) {\n if (badBidiRects != null) { return badBidiRects }\n var txt = removeChildrenAndAdd(measure, document.createTextNode(\"A\\u062eA\"));\n var r0 = range(txt, 0, 1).getBoundingClientRect();\n var r1 = range(txt, 1, 2).getBoundingClientRect();\n removeChildren(measure);\n if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)\n return badBidiRects = (r1.right - r0.right < 3)\n }\n\n // See if \"\".split is the broken IE version, if so, provide an\n // alternative way to split lines.\n var splitLinesAuto = \"\\n\\nb\".split(/\\n/).length != 3 ? function (string) {\n var pos = 0, result = [], l = string.length;\n while (pos <= l) {\n var nl = string.indexOf(\"\\n\", pos);\n if (nl == -1) { nl = string.length; }\n var line = string.slice(pos, string.charAt(nl - 1) == \"\\r\" ? nl - 1 : nl);\n var rt = line.indexOf(\"\\r\");\n if (rt != -1) {\n result.push(line.slice(0, rt));\n pos += rt + 1;\n } else {\n result.push(line);\n pos = nl + 1;\n }\n }\n return result\n } : function (string) { return string.split(/\\r\\n?|\\n/); };\n\n var hasSelection = window.getSelection ? function (te) {\n try { return te.selectionStart != te.selectionEnd }\n catch(e) { return false }\n } : function (te) {\n var range;\n try {range = te.ownerDocument.selection.createRange();}\n catch(e) {}\n if (!range || range.parentElement() != te) { return false }\n return range.compareEndPoints(\"StartToEnd\", range) != 0\n };\n\n var hasCopyEvent = (function () {\n var e = elt(\"div\");\n if (\"oncopy\" in e) { return true }\n e.setAttribute(\"oncopy\", \"return;\");\n return typeof e.oncopy == \"function\"\n })();\n\n var badZoomedRects = null;\n function hasBadZoomedRects(measure) {\n if (badZoomedRects != null) { return badZoomedRects }\n var node = removeChildrenAndAdd(measure, elt(\"span\", \"x\"));\n var normal = node.getBoundingClientRect();\n var fromRange = range(node, 0, 1).getBoundingClientRect();\n return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1\n }\n\n // Known modes, by name and by MIME\n var modes = {}, mimeModes = {};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n function defineMode(name, mode) {\n if (arguments.length > 2)\n { mode.dependencies = Array.prototype.slice.call(arguments, 2); }\n modes[name] = mode;\n }\n\n function defineMIME(mime, spec) {\n mimeModes[mime] = spec;\n }\n\n // Given a MIME type, a {name, ...options} config object, or a name\n // string, return a mode config object.\n function resolveMode(spec) {\n if (typeof spec == \"string\" && mimeModes.hasOwnProperty(spec)) {\n spec = mimeModes[spec];\n } else if (spec && typeof spec.name == \"string\" && mimeModes.hasOwnProperty(spec.name)) {\n var found = mimeModes[spec.name];\n if (typeof found == \"string\") { found = {name: found}; }\n spec = createObj(found, spec);\n spec.name = found.name;\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(spec)) {\n return resolveMode(\"application/xml\")\n } else if (typeof spec == \"string\" && /^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(spec)) {\n return resolveMode(\"application/json\")\n }\n if (typeof spec == \"string\") { return {name: spec} }\n else { return spec || {name: \"null\"} }\n }\n\n // Given a mode spec (anything that resolveMode accepts), find and\n // initialize an actual mode object.\n function getMode(options, spec) {\n spec = resolveMode(spec);\n var mfactory = modes[spec.name];\n if (!mfactory) { return getMode(options, \"text/plain\") }\n var modeObj = mfactory(options, spec);\n if (modeExtensions.hasOwnProperty(spec.name)) {\n var exts = modeExtensions[spec.name];\n for (var prop in exts) {\n if (!exts.hasOwnProperty(prop)) { continue }\n if (modeObj.hasOwnProperty(prop)) { modeObj[\"_\" + prop] = modeObj[prop]; }\n modeObj[prop] = exts[prop];\n }\n }\n modeObj.name = spec.name;\n if (spec.helperType) { modeObj.helperType = spec.helperType; }\n if (spec.modeProps) { for (var prop$1 in spec.modeProps)\n { modeObj[prop$1] = spec.modeProps[prop$1]; } }\n\n return modeObj\n }\n\n // This can be used to attach properties to mode objects from\n // outside the actual mode definition.\n var modeExtensions = {};\n function extendMode(mode, properties) {\n var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});\n copyObj(properties, exts);\n }\n\n function copyState(mode, state) {\n if (state === true) { return state }\n if (mode.copyState) { return mode.copyState(state) }\n var nstate = {};\n for (var n in state) {\n var val = state[n];\n if (val instanceof Array) { val = val.concat([]); }\n nstate[n] = val;\n }\n return nstate\n }\n\n // Given a mode and a state (for that mode), find the inner mode and\n // state at the position that the state refers to.\n function innerMode(mode, state) {\n var info;\n while (mode.innerMode) {\n info = mode.innerMode(state);\n if (!info || info.mode == mode) { break }\n state = info.state;\n mode = info.mode;\n }\n return info || {mode: mode, state: state}\n }\n\n function startState(mode, a1, a2) {\n return mode.startState ? mode.startState(a1, a2) : true\n }\n\n // STRING STREAM\n\n // Fed to the mode parsers, provides helper functions to make\n // parsers more succinct.\n\n var StringStream = function(string, tabSize, lineOracle) {\n this.pos = this.start = 0;\n this.string = string;\n this.tabSize = tabSize || 8;\n this.lastColumnPos = this.lastColumnValue = 0;\n this.lineStart = 0;\n this.lineOracle = lineOracle;\n };\n\n StringStream.prototype.eol = function () {return this.pos >= this.string.length};\n StringStream.prototype.sol = function () {return this.pos == this.lineStart};\n StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};\n StringStream.prototype.next = function () {\n if (this.pos < this.string.length)\n { return this.string.charAt(this.pos++) }\n };\n StringStream.prototype.eat = function (match) {\n var ch = this.string.charAt(this.pos);\n var ok;\n if (typeof match == \"string\") { ok = ch == match; }\n else { ok = ch && (match.test ? match.test(ch) : match(ch)); }\n if (ok) {++this.pos; return ch}\n };\n StringStream.prototype.eatWhile = function (match) {\n var start = this.pos;\n while (this.eat(match)){}\n return this.pos > start\n };\n StringStream.prototype.eatSpace = function () {\n var start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; }\n return this.pos > start\n };\n StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};\n StringStream.prototype.skipTo = function (ch) {\n var found = this.string.indexOf(ch, this.pos);\n if (found > -1) {this.pos = found; return true}\n };\n StringStream.prototype.backUp = function (n) {this.pos -= n;};\n StringStream.prototype.column = function () {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.indentation = function () {\n return countColumn(this.string, null, this.tabSize) -\n (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)\n };\n StringStream.prototype.match = function (pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };\n var substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false) { this.pos += pattern.length; }\n return true\n }\n } else {\n var match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0) { return null }\n if (match && consume !== false) { this.pos += match[0].length; }\n return match\n }\n };\n StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};\n StringStream.prototype.hideFirstChars = function (n, inner) {\n this.lineStart += n;\n try { return inner() }\n finally { this.lineStart -= n; }\n };\n StringStream.prototype.lookAhead = function (n) {\n var oracle = this.lineOracle;\n return oracle && oracle.lookAhead(n)\n };\n StringStream.prototype.baseToken = function () {\n var oracle = this.lineOracle;\n return oracle && oracle.baseToken(this.pos)\n };\n\n // Find the line object corresponding to the given line number.\n function getLine(doc, n) {\n n -= doc.first;\n if (n < 0 || n >= doc.size) { throw new Error(\"There is no line \" + (n + doc.first) + \" in the document.\") }\n var chunk = doc;\n while (!chunk.lines) {\n for (var i = 0;; ++i) {\n var child = chunk.children[i], sz = child.chunkSize();\n if (n < sz) { chunk = child; break }\n n -= sz;\n }\n }\n return chunk.lines[n]\n }\n\n // Get the part of a document between two positions, as an array of\n // strings.\n function getBetween(doc, start, end) {\n var out = [], n = start.line;\n doc.iter(start.line, end.line + 1, function (line) {\n var text = line.text;\n if (n == end.line) { text = text.slice(0, end.ch); }\n if (n == start.line) { text = text.slice(start.ch); }\n out.push(text);\n ++n;\n });\n return out\n }\n // Get the lines between from and to, as array of strings.\n function getLines(doc, from, to) {\n var out = [];\n doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value\n return out\n }\n\n // Update the height of a line, propagating the height change\n // upwards to parent nodes.\n function updateLineHeight(line, height) {\n var diff = height - line.height;\n if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }\n }\n\n // Given a line object, find its line number by walking up through\n // its parent links.\n function lineNo(line) {\n if (line.parent == null) { return null }\n var cur = line.parent, no = indexOf(cur.lines, line);\n for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {\n for (var i = 0;; ++i) {\n if (chunk.children[i] == cur) { break }\n no += chunk.children[i].chunkSize();\n }\n }\n return no + cur.first\n }\n\n // Find the line at the given vertical position, using the height\n // information in the document tree.\n function lineAtHeight(chunk, h) {\n var n = chunk.first;\n outer: do {\n for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {\n var child = chunk.children[i$1], ch = child.height;\n if (h < ch) { chunk = child; continue outer }\n h -= ch;\n n += child.chunkSize();\n }\n return n\n } while (!chunk.lines)\n var i = 0;\n for (; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i], lh = line.height;\n if (h < lh) { break }\n h -= lh;\n }\n return n + i\n }\n\n function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}\n\n function lineNumberFor(options, i) {\n return String(options.lineNumberFormatter(i + options.firstLineNumber))\n }\n\n // A Pos instance represents a position within the text.\n function Pos(line, ch, sticky) {\n if ( sticky === void 0 ) sticky = null;\n\n if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }\n this.line = line;\n this.ch = ch;\n this.sticky = sticky;\n }\n\n // Compare two positions, return 0 if they are the same, a negative\n // number when a is less, and a positive number otherwise.\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch }\n\n function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }\n\n function copyPos(x) {return Pos(x.line, x.ch)}\n function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }\n function minPos(a, b) { return cmp(a, b) < 0 ? a : b }\n\n // Most of the external API clips given positions to make sure they\n // actually exist within the document.\n function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}\n function clipPos(doc, pos) {\n if (pos.line < doc.first) { return Pos(doc.first, 0) }\n var last = doc.first + doc.size - 1;\n if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }\n return clipToLen(pos, getLine(doc, pos.line).text.length)\n }\n function clipToLen(pos, linelen) {\n var ch = pos.ch;\n if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }\n else if (ch < 0) { return Pos(pos.line, 0) }\n else { return pos }\n }\n function clipPosArray(doc, array) {\n var out = [];\n for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }\n return out\n }\n\n var SavedContext = function(state, lookAhead) {\n this.state = state;\n this.lookAhead = lookAhead;\n };\n\n var Context = function(doc, state, line, lookAhead) {\n this.state = state;\n this.doc = doc;\n this.line = line;\n this.maxLookAhead = lookAhead || 0;\n this.baseTokens = null;\n this.baseTokenPos = 1;\n };\n\n Context.prototype.lookAhead = function (n) {\n var line = this.doc.getLine(this.line + n);\n if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }\n return line\n };\n\n Context.prototype.baseToken = function (n) {\n if (!this.baseTokens) { return null }\n while (this.baseTokens[this.baseTokenPos] <= n)\n { this.baseTokenPos += 2; }\n var type = this.baseTokens[this.baseTokenPos + 1];\n return {type: type && type.replace(/( |^)overlay .*/, \"\"),\n size: this.baseTokens[this.baseTokenPos] - n}\n };\n\n Context.prototype.nextLine = function () {\n this.line++;\n if (this.maxLookAhead > 0) { this.maxLookAhead--; }\n };\n\n Context.fromSaved = function (doc, saved, line) {\n if (saved instanceof SavedContext)\n { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }\n else\n { return new Context(doc, copyState(doc.mode, saved), line) }\n };\n\n Context.prototype.save = function (copy) {\n var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;\n return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state\n };\n\n\n // Compute a style array (an array starting with a mode generation\n // -- for invalidation -- followed by pairs of end positions and\n // style strings), which is used to highlight the tokens on the\n // line.\n function highlightLine(cm, line, context, forceToEnd) {\n // A styles array always starts with a number identifying the\n // mode/overlays that it is based on (for easy invalidation).\n var st = [cm.state.modeGen], lineClasses = {};\n // Compute the base array of styles\n runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },\n lineClasses, forceToEnd);\n var state = context.state;\n\n // Run overlays, adjust style array.\n var loop = function ( o ) {\n context.baseTokens = st;\n var overlay = cm.state.overlays[o], i = 1, at = 0;\n context.state = true;\n runMode(cm, line.text, overlay.mode, context, function (end, style) {\n var start = i;\n // Ensure there's a token end at the current position, and that i points at it\n while (at < end) {\n var i_end = st[i];\n if (i_end > end)\n { st.splice(i, 1, end, st[i+1], i_end); }\n i += 2;\n at = Math.min(end, i_end);\n }\n if (!style) { return }\n if (overlay.opaque) {\n st.splice(start, i - start, end, \"overlay \" + style);\n i = start + 2;\n } else {\n for (; start < i; start += 2) {\n var cur = st[start+1];\n st[start+1] = (cur ? cur + \" \" : \"\") + \"overlay \" + style;\n }\n }\n }, lineClasses);\n context.state = state;\n context.baseTokens = null;\n context.baseTokenPos = 1;\n };\n\n for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );\n\n return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}\n }\n\n function getLineStyles(cm, line, updateFrontier) {\n if (!line.styles || line.styles[0] != cm.state.modeGen) {\n var context = getContextBefore(cm, lineNo(line));\n var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);\n var result = highlightLine(cm, line, context);\n if (resetState) { context.state = resetState; }\n line.stateAfter = context.save(!resetState);\n line.styles = result.styles;\n if (result.classes) { line.styleClasses = result.classes; }\n else if (line.styleClasses) { line.styleClasses = null; }\n if (updateFrontier === cm.doc.highlightFrontier)\n { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }\n }\n return line.styles\n }\n\n function getContextBefore(cm, n, precise) {\n var doc = cm.doc, display = cm.display;\n if (!doc.mode.startState) { return new Context(doc, true, n) }\n var start = findStartLine(cm, n, precise);\n var saved = start > doc.first && getLine(doc, start - 1).stateAfter;\n var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);\n\n doc.iter(start, n, function (line) {\n processLine(cm, line.text, context);\n var pos = context.line;\n line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;\n context.nextLine();\n });\n if (precise) { doc.modeFrontier = context.line; }\n return context\n }\n\n // Lightweight form of highlight -- proceed over this line and\n // update state, but don't save a style array. Used for lines that\n // aren't currently visible.\n function processLine(cm, text, context, startAt) {\n var mode = cm.doc.mode;\n var stream = new StringStream(text, cm.options.tabSize, context);\n stream.start = stream.pos = startAt || 0;\n if (text == \"\") { callBlankLine(mode, context.state); }\n while (!stream.eol()) {\n readToken(mode, stream, context.state);\n stream.start = stream.pos;\n }\n }\n\n function callBlankLine(mode, state) {\n if (mode.blankLine) { return mode.blankLine(state) }\n if (!mode.innerMode) { return }\n var inner = innerMode(mode, state);\n if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }\n }\n\n function readToken(mode, stream, state, inner) {\n for (var i = 0; i < 10; i++) {\n if (inner) { inner[0] = innerMode(mode, state).mode; }\n var style = mode.token(stream, state);\n if (stream.pos > stream.start) { return style }\n }\n throw new Error(\"Mode \" + mode.name + \" failed to advance stream.\")\n }\n\n var Token = function(stream, type, state) {\n this.start = stream.start; this.end = stream.pos;\n this.string = stream.current();\n this.type = type || null;\n this.state = state;\n };\n\n // Utility for getTokenAt and getLineTokens\n function takeToken(cm, pos, precise, asArray) {\n var doc = cm.doc, mode = doc.mode, style;\n pos = clipPos(doc, pos);\n var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);\n var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;\n if (asArray) { tokens = []; }\n while ((asArray || stream.pos < pos.ch) && !stream.eol()) {\n stream.start = stream.pos;\n style = readToken(mode, stream, context.state);\n if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }\n }\n return asArray ? tokens : new Token(stream, style, context.state)\n }\n\n function extractLineClasses(type, output) {\n if (type) { for (;;) {\n var lineClass = type.match(/(?:^|\\s+)line-(background-)?(\\S+)/);\n if (!lineClass) { break }\n type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);\n var prop = lineClass[1] ? \"bgClass\" : \"textClass\";\n if (output[prop] == null)\n { output[prop] = lineClass[2]; }\n else if (!(new RegExp(\"(?:^|\\\\s)\" + lineClass[2] + \"(?:$|\\\\s)\")).test(output[prop]))\n { output[prop] += \" \" + lineClass[2]; }\n } }\n return type\n }\n\n // Run the given mode's parser over a line, calling f for each token.\n function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {\n var flattenSpans = mode.flattenSpans;\n if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }\n var curStart = 0, curStyle = null;\n var stream = new StringStream(text, cm.options.tabSize, context), style;\n var inner = cm.options.addModeClass && [null];\n if (text == \"\") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }\n while (!stream.eol()) {\n if (stream.pos > cm.options.maxHighlightLength) {\n flattenSpans = false;\n if (forceToEnd) { processLine(cm, text, context, stream.pos); }\n stream.pos = text.length;\n style = null;\n } else {\n style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);\n }\n if (inner) {\n var mName = inner[0].name;\n if (mName) { style = \"m-\" + (style ? mName + \" \" + style : mName); }\n }\n if (!flattenSpans || curStyle != style) {\n while (curStart < stream.start) {\n curStart = Math.min(stream.start, curStart + 5000);\n f(curStart, curStyle);\n }\n curStyle = style;\n }\n stream.start = stream.pos;\n }\n while (curStart < stream.pos) {\n // Webkit seems to refuse to render text nodes longer than 57444\n // characters, and returns inaccurate measurements in nodes\n // starting around 5000 chars.\n var pos = Math.min(stream.pos, curStart + 5000);\n f(pos, curStyle);\n curStart = pos;\n }\n }\n\n // Finds the line to start with when starting a parse. Tries to\n // find a line with a stateAfter, so that it can start with a\n // valid state. If that fails, it returns the line with the\n // smallest indentation, which tends to need the least context to\n // parse correctly.\n function findStartLine(cm, n, precise) {\n var minindent, minline, doc = cm.doc;\n var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);\n for (var search = n; search > lim; --search) {\n if (search <= doc.first) { return doc.first }\n var line = getLine(doc, search - 1), after = line.stateAfter;\n if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))\n { return search }\n var indented = countColumn(line.text, null, cm.options.tabSize);\n if (minline == null || minindent > indented) {\n minline = search - 1;\n minindent = indented;\n }\n }\n return minline\n }\n\n function retreatFrontier(doc, n) {\n doc.modeFrontier = Math.min(doc.modeFrontier, n);\n if (doc.highlightFrontier < n - 10) { return }\n var start = doc.first;\n for (var line = n - 1; line > start; line--) {\n var saved = getLine(doc, line).stateAfter;\n // change is on 3\n // state on line 1 looked ahead 2 -- so saw 3\n // test 1 + 2 < 3 should cover this\n if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {\n start = line + 1;\n break\n }\n }\n doc.highlightFrontier = Math.min(doc.highlightFrontier, start);\n }\n\n // Optimize some code when these features are not used.\n var sawReadOnlySpans = false, sawCollapsedSpans = false;\n\n function seeReadOnlySpans() {\n sawReadOnlySpans = true;\n }\n\n function seeCollapsedSpans() {\n sawCollapsedSpans = true;\n }\n\n // TEXTMARKER SPANS\n\n function MarkedSpan(marker, from, to) {\n this.marker = marker;\n this.from = from; this.to = to;\n }\n\n // Search an array of spans for a span matching the given marker.\n function getMarkedSpanFor(spans, marker) {\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.marker == marker) { return span }\n } }\n }\n\n // Remove a span from an array, returning undefined if no spans are\n // left (we don't store arrays for lines without spans).\n function removeMarkedSpan(spans, span) {\n var r;\n for (var i = 0; i < spans.length; ++i)\n { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }\n return r\n }\n\n // Add a span to a line.\n function addMarkedSpan(line, span, op) {\n var inThisOp = op && window.WeakSet && (op.markedSpans || (op.markedSpans = new WeakSet));\n if (inThisOp && inThisOp.has(line.markedSpans)) {\n line.markedSpans.push(span);\n } else {\n line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];\n if (inThisOp) { inThisOp.add(line.markedSpans); }\n }\n span.marker.attachLine(line);\n }\n\n // Used for the algorithm that adjusts markers for a change in the\n // document. These functions cut an array of spans at a given\n // character position, returning an array of remaining chunks (or\n // undefined if nothing remains).\n function markedSpansBefore(old, startCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);\n if (startsBefore || span.from == startCh && marker.type == \"bookmark\" && (!isInsert || !span.marker.insertLeft)) {\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));\n }\n } }\n return nw\n }\n function markedSpansAfter(old, endCh, isInsert) {\n var nw;\n if (old) { for (var i = 0; i < old.length; ++i) {\n var span = old[i], marker = span.marker;\n var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);\n if (endsAfter || span.from == endCh && marker.type == \"bookmark\" && (!isInsert || span.marker.insertLeft)) {\n var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)\n ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,\n span.to == null ? null : span.to - endCh));\n }\n } }\n return nw\n }\n\n // Given a change object, compute the new set of marker spans that\n // cover the line in which the change took place. Removes spans\n // entirely within the change, reconnects spans belonging to the\n // same marker that appear on both sides of the change, and cuts off\n // spans partially within the change. Returns an array of span\n // arrays with one element for each line in (after) the change.\n function stretchSpansOverChange(doc, change) {\n if (change.full) { return null }\n var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;\n var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;\n if (!oldFirst && !oldLast) { return null }\n\n var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;\n // Get the spans that 'stick out' on both sides\n var first = markedSpansBefore(oldFirst, startCh, isInsert);\n var last = markedSpansAfter(oldLast, endCh, isInsert);\n\n // Next, merge those two ends\n var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);\n if (first) {\n // Fix up .to properties of first\n for (var i = 0; i < first.length; ++i) {\n var span = first[i];\n if (span.to == null) {\n var found = getMarkedSpanFor(last, span.marker);\n if (!found) { span.to = startCh; }\n else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }\n }\n }\n }\n if (last) {\n // Fix up .from in last (or move them into first in case of sameLine)\n for (var i$1 = 0; i$1 < last.length; ++i$1) {\n var span$1 = last[i$1];\n if (span$1.to != null) { span$1.to += offset; }\n if (span$1.from == null) {\n var found$1 = getMarkedSpanFor(first, span$1.marker);\n if (!found$1) {\n span$1.from = offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n } else {\n span$1.from += offset;\n if (sameLine) { (first || (first = [])).push(span$1); }\n }\n }\n }\n // Make sure we didn't create any zero-length spans\n if (first) { first = clearEmptySpans(first); }\n if (last && last != first) { last = clearEmptySpans(last); }\n\n var newMarkers = [first];\n if (!sameLine) {\n // Fill gap with whole-line-spans\n var gap = change.text.length - 2, gapMarkers;\n if (gap > 0 && first)\n { for (var i$2 = 0; i$2 < first.length; ++i$2)\n { if (first[i$2].to == null)\n { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }\n for (var i$3 = 0; i$3 < gap; ++i$3)\n { newMarkers.push(gapMarkers); }\n newMarkers.push(last);\n }\n return newMarkers\n }\n\n // Remove spans that are empty and don't have a clearWhenEmpty\n // option of false.\n function clearEmptySpans(spans) {\n for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)\n { spans.splice(i--, 1); }\n }\n if (!spans.length) { return null }\n return spans\n }\n\n // Used to 'clip' out readOnly ranges when making a change.\n function removeReadOnlyRanges(doc, from, to) {\n var markers = null;\n doc.iter(from.line, to.line + 1, function (line) {\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var mark = line.markedSpans[i].marker;\n if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))\n { (markers || (markers = [])).push(mark); }\n } }\n });\n if (!markers) { return null }\n var parts = [{from: from, to: to}];\n for (var i = 0; i < markers.length; ++i) {\n var mk = markers[i], m = mk.find(0);\n for (var j = 0; j < parts.length; ++j) {\n var p = parts[j];\n if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }\n var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);\n if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)\n { newParts.push({from: p.from, to: m.from}); }\n if (dto > 0 || !mk.inclusiveRight && !dto)\n { newParts.push({from: m.to, to: p.to}); }\n parts.splice.apply(parts, newParts);\n j += newParts.length - 3;\n }\n }\n return parts\n }\n\n // Connect or disconnect spans from a line.\n function detachMarkedSpans(line) {\n var spans = line.markedSpans;\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.detachLine(line); }\n line.markedSpans = null;\n }\n function attachMarkedSpans(line, spans) {\n if (!spans) { return }\n for (var i = 0; i < spans.length; ++i)\n { spans[i].marker.attachLine(line); }\n line.markedSpans = spans;\n }\n\n // Helpers used when computing which overlapping collapsed span\n // counts as the larger one.\n function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }\n function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }\n\n // Returns a number indicating which of two overlapping collapsed\n // spans is larger (and thus includes the other). Falls back to\n // comparing ids when the spans cover exactly the same range.\n function compareCollapsedMarkers(a, b) {\n var lenDiff = a.lines.length - b.lines.length;\n if (lenDiff != 0) { return lenDiff }\n var aPos = a.find(), bPos = b.find();\n var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);\n if (fromCmp) { return -fromCmp }\n var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);\n if (toCmp) { return toCmp }\n return b.id - a.id\n }\n\n // Find out whether a line ends or starts in a collapsed span. If\n // so, return the marker for that span.\n function collapsedSpanAtSide(line, start) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0))\n { found = sp.marker; }\n } }\n return found\n }\n function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }\n function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }\n\n function collapsedSpanAround(line, ch) {\n var sps = sawCollapsedSpans && line.markedSpans, found;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&\n (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }\n } }\n return found\n }\n\n // Test whether there exists a collapsed span that partially\n // overlaps (covers the start or end, but not both) of a new span.\n // Such overlap is not allowed.\n function conflictingCollapsedRange(doc, lineNo, from, to, marker) {\n var line = getLine(doc, lineNo);\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i) {\n var sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n var found = sp.marker.find(0);\n var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);\n var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);\n if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }\n if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||\n fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))\n { return true }\n } }\n }\n\n // A visual line is a line as drawn on the screen. Folding, for\n // example, can cause multiple logical lines to appear on the same\n // visual line. This finds the start of the visual line that the\n // given line is part of (usually that is the line itself).\n function visualLine(line) {\n var merged;\n while (merged = collapsedSpanAtStart(line))\n { line = merged.find(-1, true).line; }\n return line\n }\n\n function visualLineEnd(line) {\n var merged;\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return line\n }\n\n // Returns an array of logical lines that continue the visual line\n // started by the argument, or undefined if there are no such lines.\n function visualLineContinued(line) {\n var merged, lines;\n while (merged = collapsedSpanAtEnd(line)) {\n line = merged.find(1, true).line\n ;(lines || (lines = [])).push(line);\n }\n return lines\n }\n\n // Get the line number of the start of the visual line that the\n // given line number is part of.\n function visualLineNo(doc, lineN) {\n var line = getLine(doc, lineN), vis = visualLine(line);\n if (line == vis) { return lineN }\n return lineNo(vis)\n }\n\n // Get the line number of the start of the next visual line after\n // the given line.\n function visualLineEndNo(doc, lineN) {\n if (lineN > doc.lastLine()) { return lineN }\n var line = getLine(doc, lineN), merged;\n if (!lineIsHidden(doc, line)) { return lineN }\n while (merged = collapsedSpanAtEnd(line))\n { line = merged.find(1, true).line; }\n return lineNo(line) + 1\n }\n\n // Compute whether a line is hidden. Lines count as hidden when they\n // are part of a visual line that starts with another line, or when\n // they are entirely covered by collapsed, non-widget span.\n function lineIsHidden(doc, line) {\n var sps = sawCollapsedSpans && line.markedSpans;\n if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {\n sp = sps[i];\n if (!sp.marker.collapsed) { continue }\n if (sp.from == null) { return true }\n if (sp.marker.widgetNode) { continue }\n if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))\n { return true }\n } }\n }\n function lineIsHiddenInner(doc, line, span) {\n if (span.to == null) {\n var end = span.marker.find(1, true);\n return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))\n }\n if (span.marker.inclusiveRight && span.to == line.text.length)\n { return true }\n for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {\n sp = line.markedSpans[i];\n if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&\n (sp.to == null || sp.to != span.from) &&\n (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&\n lineIsHiddenInner(doc, line, sp)) { return true }\n }\n }\n\n // Find the height above the given line.\n function heightAtLine(lineObj) {\n lineObj = visualLine(lineObj);\n\n var h = 0, chunk = lineObj.parent;\n for (var i = 0; i < chunk.lines.length; ++i) {\n var line = chunk.lines[i];\n if (line == lineObj) { break }\n else { h += line.height; }\n }\n for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {\n for (var i$1 = 0; i$1 < p.children.length; ++i$1) {\n var cur = p.children[i$1];\n if (cur == chunk) { break }\n else { h += cur.height; }\n }\n }\n return h\n }\n\n // Compute the character length of a line, taking into account\n // collapsed ranges (see markText) that might hide parts, and join\n // other lines onto it.\n function lineLength(line) {\n if (line.height == 0) { return 0 }\n var len = line.text.length, merged, cur = line;\n while (merged = collapsedSpanAtStart(cur)) {\n var found = merged.find(0, true);\n cur = found.from.line;\n len += found.from.ch - found.to.ch;\n }\n cur = line;\n while (merged = collapsedSpanAtEnd(cur)) {\n var found$1 = merged.find(0, true);\n len -= cur.text.length - found$1.from.ch;\n cur = found$1.to.line;\n len += cur.text.length - found$1.to.ch;\n }\n return len\n }\n\n // Find the longest line in the document.\n function findMaxLine(cm) {\n var d = cm.display, doc = cm.doc;\n d.maxLine = getLine(doc, doc.first);\n d.maxLineLength = lineLength(d.maxLine);\n d.maxLineChanged = true;\n doc.iter(function (line) {\n var len = lineLength(line);\n if (len > d.maxLineLength) {\n d.maxLineLength = len;\n d.maxLine = line;\n }\n });\n }\n\n // LINE DATA STRUCTURE\n\n // Line objects. These hold state related to a line, including\n // highlighting info (the styles array).\n var Line = function(text, markedSpans, estimateHeight) {\n this.text = text;\n attachMarkedSpans(this, markedSpans);\n this.height = estimateHeight ? estimateHeight(this) : 1;\n };\n\n Line.prototype.lineNo = function () { return lineNo(this) };\n eventMixin(Line);\n\n // Change the content (text, markers) of a line. Automatically\n // invalidates cached information and tries to re-estimate the\n // line's height.\n function updateLine(line, text, markedSpans, estimateHeight) {\n line.text = text;\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n if (line.order != null) { line.order = null; }\n detachMarkedSpans(line);\n attachMarkedSpans(line, markedSpans);\n var estHeight = estimateHeight ? estimateHeight(line) : 1;\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n }\n\n // Detach a line from the document tree and its markers.\n function cleanUpLine(line) {\n line.parent = null;\n detachMarkedSpans(line);\n }\n\n // Convert a style as returned by a mode (either null, or a string\n // containing one or more styles) to a CSS style. This is cached,\n // and also looks for line-wide styles.\n var styleToClassCache = {}, styleToClassCacheWithMode = {};\n function interpretTokenStyle(style, options) {\n if (!style || /^\\s*$/.test(style)) { return null }\n var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;\n return cache[style] ||\n (cache[style] = style.replace(/\\S+/g, \"cm-$&\"))\n }\n\n // Render the DOM representation of the text of a line. Also builds\n // up a 'line map', which points at the DOM nodes that represent\n // specific stretches of text, and is used by the measuring code.\n // The returned object contains the DOM node, this map, and\n // information about line-wide styles that were set by the mode.\n function buildLineContent(cm, lineView) {\n // The padding-right forces the element to have a 'border', which\n // is needed on Webkit to be able to get line-level bounding\n // rectangles for it (in measureChar).\n var content = eltP(\"span\", null, null, webkit ? \"padding-right: .1px\" : null);\n var builder = {pre: eltP(\"pre\", [content], \"CodeMirror-line\"), content: content,\n col: 0, pos: 0, cm: cm,\n trailingSpace: false,\n splitSpaces: cm.getOption(\"lineWrapping\")};\n lineView.measure = {};\n\n // Iterate over the logical lines that make up this visual line.\n for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {\n var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);\n builder.pos = 0;\n builder.addToken = buildToken;\n // Optionally wire in some hacks into the token-rendering\n // algorithm, to deal with browser quirks.\n if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))\n { builder.addToken = buildTokenBadBidi(builder.addToken, order); }\n builder.map = [];\n var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);\n insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));\n if (line.styleClasses) {\n if (line.styleClasses.bgClass)\n { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || \"\"); }\n if (line.styleClasses.textClass)\n { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || \"\"); }\n }\n\n // Ensure at least a single node is present, for measuring.\n if (builder.map.length == 0)\n { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }\n\n // Store the map and a cache object for the current logical line\n if (i == 0) {\n lineView.measure.map = builder.map;\n lineView.measure.cache = {};\n } else {\n (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)\n ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});\n }\n }\n\n // See issue #2901\n if (webkit) {\n var last = builder.content.lastChild;\n if (/\\bcm-tab\\b/.test(last.className) || (last.querySelector && last.querySelector(\".cm-tab\")))\n { builder.content.className = \"cm-tab-wrap-hack\"; }\n }\n\n signal(cm, \"renderLine\", cm, lineView.line, builder.pre);\n if (builder.pre.className)\n { builder.textClass = joinClasses(builder.pre.className, builder.textClass || \"\"); }\n\n return builder\n }\n\n function defaultSpecialCharPlaceholder(ch) {\n var token = elt(\"span\", \"\\u2022\", \"cm-invalidchar\");\n token.title = \"\\\\u\" + ch.charCodeAt(0).toString(16);\n token.setAttribute(\"aria-label\", token.title);\n return token\n }\n\n // Build up the DOM representation for a single token, and add it to\n // the line map. Takes care to render special characters separately.\n function buildToken(builder, text, style, startStyle, endStyle, css, attributes) {\n if (!text) { return }\n var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;\n var special = builder.cm.state.specialChars, mustWrap = false;\n var content;\n if (!special.test(text)) {\n builder.col += text.length;\n content = document.createTextNode(displayText);\n builder.map.push(builder.pos, builder.pos + text.length, content);\n if (ie && ie_version < 9) { mustWrap = true; }\n builder.pos += text.length;\n } else {\n content = document.createDocumentFragment();\n var pos = 0;\n while (true) {\n special.lastIndex = pos;\n var m = special.exec(text);\n var skipped = m ? m.index - pos : text.length - pos;\n if (skipped) {\n var txt = document.createTextNode(displayText.slice(pos, pos + skipped));\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt])); }\n else { content.appendChild(txt); }\n builder.map.push(builder.pos, builder.pos + skipped, txt);\n builder.col += skipped;\n builder.pos += skipped;\n }\n if (!m) { break }\n pos += skipped + 1;\n var txt$1 = (void 0);\n if (m[0] == \"\\t\") {\n var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;\n txt$1 = content.appendChild(elt(\"span\", spaceStr(tabWidth), \"cm-tab\"));\n txt$1.setAttribute(\"role\", \"presentation\");\n txt$1.setAttribute(\"cm-text\", \"\\t\");\n builder.col += tabWidth;\n } else if (m[0] == \"\\r\" || m[0] == \"\\n\") {\n txt$1 = content.appendChild(elt(\"span\", m[0] == \"\\r\" ? \"\\u240d\" : \"\\u2424\", \"cm-invalidchar\"));\n txt$1.setAttribute(\"cm-text\", m[0]);\n builder.col += 1;\n } else {\n txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);\n txt$1.setAttribute(\"cm-text\", m[0]);\n if (ie && ie_version < 9) { content.appendChild(elt(\"span\", [txt$1])); }\n else { content.appendChild(txt$1); }\n builder.col += 1;\n }\n builder.map.push(builder.pos, builder.pos + 1, txt$1);\n builder.pos++;\n }\n }\n builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;\n if (style || startStyle || endStyle || mustWrap || css || attributes) {\n var fullStyle = style || \"\";\n if (startStyle) { fullStyle += startStyle; }\n if (endStyle) { fullStyle += endStyle; }\n var token = elt(\"span\", [content], fullStyle, css);\n if (attributes) {\n for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != \"style\" && attr != \"class\")\n { token.setAttribute(attr, attributes[attr]); } }\n }\n return builder.content.appendChild(token)\n }\n builder.content.appendChild(content);\n }\n\n // Change some spaces to NBSP to prevent the browser from collapsing\n // trailing spaces at the end of a line when rendering text (issue #1362).\n function splitSpaces(text, trailingBefore) {\n if (text.length > 1 && !/ /.test(text)) { return text }\n var spaceBefore = trailingBefore, result = \"\";\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch == \" \" && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))\n { ch = \"\\u00a0\"; }\n result += ch;\n spaceBefore = ch == \" \";\n }\n return result\n }\n\n // Work around nonsense dimensions being reported for stretches of\n // right-to-left text.\n function buildTokenBadBidi(inner, order) {\n return function (builder, text, style, startStyle, endStyle, css, attributes) {\n style = style ? style + \" cm-force-border\" : \"cm-force-border\";\n var start = builder.pos, end = start + text.length;\n for (;;) {\n // Find the part that overlaps with the start of this text\n var part = (void 0);\n for (var i = 0; i < order.length; i++) {\n part = order[i];\n if (part.to > start && part.from <= start) { break }\n }\n if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) }\n inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes);\n startStyle = null;\n text = text.slice(part.to - start);\n start = part.to;\n }\n }\n }\n\n function buildCollapsedSpan(builder, size, marker, ignoreWidget) {\n var widget = !ignoreWidget && marker.widgetNode;\n if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }\n if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {\n if (!widget)\n { widget = builder.content.appendChild(document.createElement(\"span\")); }\n widget.setAttribute(\"cm-marker\", marker.id);\n }\n if (widget) {\n builder.cm.display.input.setUneditable(widget);\n builder.content.appendChild(widget);\n }\n builder.pos += size;\n builder.trailingSpace = false;\n }\n\n // Outputs a number of spans to make up a line, taking highlighting\n // and marked text into account.\n function insertLineContent(line, builder, styles) {\n var spans = line.markedSpans, allText = line.text, at = 0;\n if (!spans) {\n for (var i$1 = 1; i$1 < styles.length; i$1+=2)\n { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }\n return\n }\n\n var len = allText.length, pos = 0, i = 1, text = \"\", style, css;\n var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes;\n for (;;) {\n if (nextChange == pos) { // Update current marker set\n spanStyle = spanEndStyle = spanStartStyle = css = \"\";\n attributes = null;\n collapsed = null; nextChange = Infinity;\n var foundBookmarks = [], endStyles = (void 0);\n for (var j = 0; j < spans.length; ++j) {\n var sp = spans[j], m = sp.marker;\n if (m.type == \"bookmark\" && sp.from == pos && m.widgetNode) {\n foundBookmarks.push(m);\n } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {\n if (sp.to != null && sp.to != pos && nextChange > sp.to) {\n nextChange = sp.to;\n spanEndStyle = \"\";\n }\n if (m.className) { spanStyle += \" \" + m.className; }\n if (m.css) { css = (css ? css + \";\" : \"\") + m.css; }\n if (m.startStyle && sp.from == pos) { spanStartStyle += \" \" + m.startStyle; }\n if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }\n // support for the old title property\n // https://github.com/codemirror/CodeMirror/pull/5673\n if (m.title) { (attributes || (attributes = {})).title = m.title; }\n if (m.attributes) {\n for (var attr in m.attributes)\n { (attributes || (attributes = {}))[attr] = m.attributes[attr]; }\n }\n if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))\n { collapsed = sp; }\n } else if (sp.from > pos && nextChange > sp.from) {\n nextChange = sp.from;\n }\n }\n if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)\n { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += \" \" + endStyles[j$1]; } } }\n\n if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)\n { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }\n if (collapsed && (collapsed.from || 0) == pos) {\n buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,\n collapsed.marker, collapsed.from == null);\n if (collapsed.to == null) { return }\n if (collapsed.to == pos) { collapsed = false; }\n }\n }\n if (pos >= len) { break }\n\n var upto = Math.min(len, nextChange);\n while (true) {\n if (text) {\n var end = pos + text.length;\n if (!collapsed) {\n var tokenText = end > upto ? text.slice(0, upto - pos) : text;\n builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,\n spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : \"\", css, attributes);\n }\n if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}\n pos = end;\n spanStartStyle = \"\";\n }\n text = allText.slice(at, at = styles[i++]);\n style = interpretTokenStyle(styles[i++], builder.cm.options);\n }\n }\n }\n\n\n // These objects are used to represent the visible (currently drawn)\n // part of the document. A LineView may correspond to multiple\n // logical lines, if those are connected by collapsed ranges.\n function LineView(doc, line, lineN) {\n // The starting line\n this.line = line;\n // Continuing lines, if any\n this.rest = visualLineContinued(line);\n // Number of logical lines in this visual line\n this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;\n this.node = this.text = null;\n this.hidden = lineIsHidden(doc, line);\n }\n\n // Create a range of LineView objects for the given lines.\n function buildViewArray(cm, from, to) {\n var array = [], nextPos;\n for (var pos = from; pos < to; pos = nextPos) {\n var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);\n nextPos = pos + view.size;\n array.push(view);\n }\n return array\n }\n\n var operationGroup = null;\n\n function pushOperation(op) {\n if (operationGroup) {\n operationGroup.ops.push(op);\n } else {\n op.ownsGroup = operationGroup = {\n ops: [op],\n delayedCallbacks: []\n };\n }\n }\n\n function fireCallbacksForOps(group) {\n // Calls delayed callbacks and cursorActivity handlers until no\n // new ones appear\n var callbacks = group.delayedCallbacks, i = 0;\n do {\n for (; i < callbacks.length; i++)\n { callbacks[i].call(null); }\n for (var j = 0; j < group.ops.length; j++) {\n var op = group.ops[j];\n if (op.cursorActivityHandlers)\n { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)\n { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }\n }\n } while (i < callbacks.length)\n }\n\n function finishOperation(op, endCb) {\n var group = op.ownsGroup;\n if (!group) { return }\n\n try { fireCallbacksForOps(group); }\n finally {\n operationGroup = null;\n endCb(group);\n }\n }\n\n var orphanDelayedCallbacks = null;\n\n // Often, we want to signal events at a point where we are in the\n // middle of some work, but don't want the handler to start calling\n // other methods on the editor, which might be in an inconsistent\n // state or simply not expect any other events to happen.\n // signalLater looks whether there are any handlers, and schedules\n // them to be executed when the last operation ends, or, if no\n // operation is active, when a timeout fires.\n function signalLater(emitter, type /*, values...*/) {\n var arr = getHandlers(emitter, type);\n if (!arr.length) { return }\n var args = Array.prototype.slice.call(arguments, 2), list;\n if (operationGroup) {\n list = operationGroup.delayedCallbacks;\n } else if (orphanDelayedCallbacks) {\n list = orphanDelayedCallbacks;\n } else {\n list = orphanDelayedCallbacks = [];\n setTimeout(fireOrphanDelayed, 0);\n }\n var loop = function ( i ) {\n list.push(function () { return arr[i].apply(null, args); });\n };\n\n for (var i = 0; i < arr.length; ++i)\n loop( i );\n }\n\n function fireOrphanDelayed() {\n var delayed = orphanDelayedCallbacks;\n orphanDelayedCallbacks = null;\n for (var i = 0; i < delayed.length; ++i) { delayed[i](); }\n }\n\n // When an aspect of a line changes, a string is added to\n // lineView.changes. This updates the relevant part of the line's\n // DOM structure.\n function updateLineForChanges(cm, lineView, lineN, dims) {\n for (var j = 0; j < lineView.changes.length; j++) {\n var type = lineView.changes[j];\n if (type == \"text\") { updateLineText(cm, lineView); }\n else if (type == \"gutter\") { updateLineGutter(cm, lineView, lineN, dims); }\n else if (type == \"class\") { updateLineClasses(cm, lineView); }\n else if (type == \"widget\") { updateLineWidgets(cm, lineView, dims); }\n }\n lineView.changes = null;\n }\n\n // Lines with gutter elements, widgets or a background class need to\n // be wrapped, and have the extra elements added to the wrapper div\n function ensureLineWrapped(lineView) {\n if (lineView.node == lineView.text) {\n lineView.node = elt(\"div\", null, null, \"position: relative\");\n if (lineView.text.parentNode)\n { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }\n lineView.node.appendChild(lineView.text);\n if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }\n }\n return lineView.node\n }\n\n function updateLineBackground(cm, lineView) {\n var cls = lineView.bgClass ? lineView.bgClass + \" \" + (lineView.line.bgClass || \"\") : lineView.line.bgClass;\n if (cls) { cls += \" CodeMirror-linebackground\"; }\n if (lineView.background) {\n if (cls) { lineView.background.className = cls; }\n else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }\n } else if (cls) {\n var wrap = ensureLineWrapped(lineView);\n lineView.background = wrap.insertBefore(elt(\"div\", null, cls), wrap.firstChild);\n cm.display.input.setUneditable(lineView.background);\n }\n }\n\n // Wrapper around buildLineContent which will reuse the structure\n // in display.externalMeasured when possible.\n function getLineContent(cm, lineView) {\n var ext = cm.display.externalMeasured;\n if (ext && ext.line == lineView.line) {\n cm.display.externalMeasured = null;\n lineView.measure = ext.measure;\n return ext.built\n }\n return buildLineContent(cm, lineView)\n }\n\n // Redraw the line's text. Interacts with the background and text\n // classes because the mode may output tokens that influence these\n // classes.\n function updateLineText(cm, lineView) {\n var cls = lineView.text.className;\n var built = getLineContent(cm, lineView);\n if (lineView.text == lineView.node) { lineView.node = built.pre; }\n lineView.text.parentNode.replaceChild(built.pre, lineView.text);\n lineView.text = built.pre;\n if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {\n lineView.bgClass = built.bgClass;\n lineView.textClass = built.textClass;\n updateLineClasses(cm, lineView);\n } else if (cls) {\n lineView.text.className = cls;\n }\n }\n\n function updateLineClasses(cm, lineView) {\n updateLineBackground(cm, lineView);\n if (lineView.line.wrapClass)\n { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }\n else if (lineView.node != lineView.text)\n { lineView.node.className = \"\"; }\n var textClass = lineView.textClass ? lineView.textClass + \" \" + (lineView.line.textClass || \"\") : lineView.line.textClass;\n lineView.text.className = textClass || \"\";\n }\n\n function updateLineGutter(cm, lineView, lineN, dims) {\n if (lineView.gutter) {\n lineView.node.removeChild(lineView.gutter);\n lineView.gutter = null;\n }\n if (lineView.gutterBackground) {\n lineView.node.removeChild(lineView.gutterBackground);\n lineView.gutterBackground = null;\n }\n if (lineView.line.gutterClass) {\n var wrap = ensureLineWrapped(lineView);\n lineView.gutterBackground = elt(\"div\", null, \"CodeMirror-gutter-background \" + lineView.line.gutterClass,\n (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px; width: \" + (dims.gutterTotalWidth) + \"px\"));\n cm.display.input.setUneditable(lineView.gutterBackground);\n wrap.insertBefore(lineView.gutterBackground, lineView.text);\n }\n var markers = lineView.line.gutterMarkers;\n if (cm.options.lineNumbers || markers) {\n var wrap$1 = ensureLineWrapped(lineView);\n var gutterWrap = lineView.gutter = elt(\"div\", null, \"CodeMirror-gutter-wrapper\", (\"left: \" + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + \"px\"));\n gutterWrap.setAttribute(\"aria-hidden\", \"true\");\n cm.display.input.setUneditable(gutterWrap);\n wrap$1.insertBefore(gutterWrap, lineView.text);\n if (lineView.line.gutterClass)\n { gutterWrap.className += \" \" + lineView.line.gutterClass; }\n if (cm.options.lineNumbers && (!markers || !markers[\"CodeMirror-linenumbers\"]))\n { lineView.lineNumber = gutterWrap.appendChild(\n elt(\"div\", lineNumberFor(cm.options, lineN),\n \"CodeMirror-linenumber CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[\"CodeMirror-linenumbers\"]) + \"px; width: \" + (cm.display.lineNumInnerWidth) + \"px\"))); }\n if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) {\n var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id];\n if (found)\n { gutterWrap.appendChild(elt(\"div\", [found], \"CodeMirror-gutter-elt\",\n (\"left: \" + (dims.gutterLeft[id]) + \"px; width: \" + (dims.gutterWidth[id]) + \"px\"))); }\n } }\n }\n }\n\n function updateLineWidgets(cm, lineView, dims) {\n if (lineView.alignable) { lineView.alignable = null; }\n var isWidget = classTest(\"CodeMirror-linewidget\");\n for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {\n next = node.nextSibling;\n if (isWidget.test(node.className)) { lineView.node.removeChild(node); }\n }\n insertLineWidgets(cm, lineView, dims);\n }\n\n // Build a line's DOM representation from scratch\n function buildLineElement(cm, lineView, lineN, dims) {\n var built = getLineContent(cm, lineView);\n lineView.text = lineView.node = built.pre;\n if (built.bgClass) { lineView.bgClass = built.bgClass; }\n if (built.textClass) { lineView.textClass = built.textClass; }\n\n updateLineClasses(cm, lineView);\n updateLineGutter(cm, lineView, lineN, dims);\n insertLineWidgets(cm, lineView, dims);\n return lineView.node\n }\n\n // A lineView may contain multiple logical lines (when merged by\n // collapsed spans). The widgets for all of them need to be drawn.\n function insertLineWidgets(cm, lineView, dims) {\n insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }\n }\n\n function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {\n if (!line.widgets) { return }\n var wrap = ensureLineWrapped(lineView);\n for (var i = 0, ws = line.widgets; i < ws.length; ++i) {\n var widget = ws[i], node = elt(\"div\", [widget.node], \"CodeMirror-linewidget\" + (widget.className ? \" \" + widget.className : \"\"));\n if (!widget.handleMouseEvents) { node.setAttribute(\"cm-ignore-events\", \"true\"); }\n positionLineWidget(widget, node, lineView, dims);\n cm.display.input.setUneditable(node);\n if (allowAbove && widget.above)\n { wrap.insertBefore(node, lineView.gutter || lineView.text); }\n else\n { wrap.appendChild(node); }\n signalLater(widget, \"redraw\");\n }\n }\n\n function positionLineWidget(widget, node, lineView, dims) {\n if (widget.noHScroll) {\n (lineView.alignable || (lineView.alignable = [])).push(node);\n var width = dims.wrapperWidth;\n node.style.left = dims.fixedPos + \"px\";\n if (!widget.coverGutter) {\n width -= dims.gutterTotalWidth;\n node.style.paddingLeft = dims.gutterTotalWidth + \"px\";\n }\n node.style.width = width + \"px\";\n }\n if (widget.coverGutter) {\n node.style.zIndex = 5;\n node.style.position = \"relative\";\n if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + \"px\"; }\n }\n }\n\n function widgetHeight(widget) {\n if (widget.height != null) { return widget.height }\n var cm = widget.doc.cm;\n if (!cm) { return 0 }\n if (!contains(document.body, widget.node)) {\n var parentStyle = \"position: relative;\";\n if (widget.coverGutter)\n { parentStyle += \"margin-left: -\" + cm.display.gutters.offsetWidth + \"px;\"; }\n if (widget.noHScroll)\n { parentStyle += \"width: \" + cm.display.wrapper.clientWidth + \"px;\"; }\n removeChildrenAndAdd(cm.display.measure, elt(\"div\", [widget.node], null, parentStyle));\n }\n return widget.height = widget.node.parentNode.offsetHeight\n }\n\n // Return true when the given mouse event happened in a widget\n function eventInWidget(display, e) {\n for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {\n if (!n || (n.nodeType == 1 && n.getAttribute(\"cm-ignore-events\") == \"true\") ||\n (n.parentNode == display.sizer && n != display.mover))\n { return true }\n }\n }\n\n // POSITION MEASUREMENT\n\n function paddingTop(display) {return display.lineSpace.offsetTop}\n function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}\n function paddingH(display) {\n if (display.cachedPaddingH) { return display.cachedPaddingH }\n var e = removeChildrenAndAdd(display.measure, elt(\"pre\", \"x\", \"CodeMirror-line-like\"));\n var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;\n var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};\n if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }\n return data\n }\n\n function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }\n function displayWidth(cm) {\n return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth\n }\n function displayHeight(cm) {\n return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight\n }\n\n // Ensure the lineView.wrapping.heights array is populated. This is\n // an array of bottom offsets for the lines that make up a drawn\n // line. When lineWrapping is on, there might be more than one\n // height.\n function ensureLineHeights(cm, lineView, rect) {\n var wrapping = cm.options.lineWrapping;\n var curWidth = wrapping && displayWidth(cm);\n if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {\n var heights = lineView.measure.heights = [];\n if (wrapping) {\n lineView.measure.width = curWidth;\n var rects = lineView.text.firstChild.getClientRects();\n for (var i = 0; i < rects.length - 1; i++) {\n var cur = rects[i], next = rects[i + 1];\n if (Math.abs(cur.bottom - next.bottom) > 2)\n { heights.push((cur.bottom + next.top) / 2 - rect.top); }\n }\n }\n heights.push(rect.bottom - rect.top);\n }\n }\n\n // Find a line map (mapping character offsets to text nodes) and a\n // measurement cache for the given line number. (A line view might\n // contain multiple lines when collapsed ranges are present.)\n function mapFromLineView(lineView, line, lineN) {\n if (lineView.line == line)\n { return {map: lineView.measure.map, cache: lineView.measure.cache} }\n for (var i = 0; i < lineView.rest.length; i++)\n { if (lineView.rest[i] == line)\n { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }\n for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)\n { if (lineNo(lineView.rest[i$1]) > lineN)\n { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }\n }\n\n // Render a line into the hidden node display.externalMeasured. Used\n // when measurement is needed for a line that's not in the viewport.\n function updateExternalMeasurement(cm, line) {\n line = visualLine(line);\n var lineN = lineNo(line);\n var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);\n view.lineN = lineN;\n var built = view.built = buildLineContent(cm, view);\n view.text = built.pre;\n removeChildrenAndAdd(cm.display.lineMeasure, built.pre);\n return view\n }\n\n // Get a {top, bottom, left, right} box (in line-local coordinates)\n // for a given character.\n function measureChar(cm, line, ch, bias) {\n return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)\n }\n\n // Find a line view that corresponds to the given line number.\n function findViewForLine(cm, lineN) {\n if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)\n { return cm.display.view[findViewIndex(cm, lineN)] }\n var ext = cm.display.externalMeasured;\n if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)\n { return ext }\n }\n\n // Measurement can be split in two steps, the set-up work that\n // applies to the whole line, and the measurement of the actual\n // character. Functions like coordsChar, that need to do a lot of\n // measurements in a row, can thus ensure that the set-up work is\n // only done once.\n function prepareMeasureForLine(cm, line) {\n var lineN = lineNo(line);\n var view = findViewForLine(cm, lineN);\n if (view && !view.text) {\n view = null;\n } else if (view && view.changes) {\n updateLineForChanges(cm, view, lineN, getDimensions(cm));\n cm.curOp.forceUpdate = true;\n }\n if (!view)\n { view = updateExternalMeasurement(cm, line); }\n\n var info = mapFromLineView(view, line, lineN);\n return {\n line: line, view: view, rect: null,\n map: info.map, cache: info.cache, before: info.before,\n hasHeights: false\n }\n }\n\n // Given a prepared measurement object, measures the position of an\n // actual character (or fetches it from the cache).\n function measureCharPrepared(cm, prepared, ch, bias, varHeight) {\n if (prepared.before) { ch = -1; }\n var key = ch + (bias || \"\"), found;\n if (prepared.cache.hasOwnProperty(key)) {\n found = prepared.cache[key];\n } else {\n if (!prepared.rect)\n { prepared.rect = prepared.view.text.getBoundingClientRect(); }\n if (!prepared.hasHeights) {\n ensureLineHeights(cm, prepared.view, prepared.rect);\n prepared.hasHeights = true;\n }\n found = measureCharInner(cm, prepared, ch, bias);\n if (!found.bogus) { prepared.cache[key] = found; }\n }\n return {left: found.left, right: found.right,\n top: varHeight ? found.rtop : found.top,\n bottom: varHeight ? found.rbottom : found.bottom}\n }\n\n var nullRect = {left: 0, right: 0, top: 0, bottom: 0};\n\n function nodeAndOffsetInLineMap(map, ch, bias) {\n var node, start, end, collapse, mStart, mEnd;\n // First, search the line map for the text node corresponding to,\n // or closest to, the target character.\n for (var i = 0; i < map.length; i += 3) {\n mStart = map[i];\n mEnd = map[i + 1];\n if (ch < mStart) {\n start = 0; end = 1;\n collapse = \"left\";\n } else if (ch < mEnd) {\n start = ch - mStart;\n end = start + 1;\n } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {\n end = mEnd - mStart;\n start = end - 1;\n if (ch >= mEnd) { collapse = \"right\"; }\n }\n if (start != null) {\n node = map[i + 2];\n if (mStart == mEnd && bias == (node.insertLeft ? \"left\" : \"right\"))\n { collapse = bias; }\n if (bias == \"left\" && start == 0)\n { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {\n node = map[(i -= 3) + 2];\n collapse = \"left\";\n } }\n if (bias == \"right\" && start == mEnd - mStart)\n { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {\n node = map[(i += 3) + 2];\n collapse = \"right\";\n } }\n break\n }\n }\n return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}\n }\n\n function getUsefulRect(rects, bias) {\n var rect = nullRect;\n if (bias == \"left\") { for (var i = 0; i < rects.length; i++) {\n if ((rect = rects[i]).left != rect.right) { break }\n } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {\n if ((rect = rects[i$1]).left != rect.right) { break }\n } }\n return rect\n }\n\n function measureCharInner(cm, prepared, ch, bias) {\n var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);\n var node = place.node, start = place.start, end = place.end, collapse = place.collapse;\n\n var rect;\n if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.\n for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned\n while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }\n while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }\n if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)\n { rect = node.parentNode.getBoundingClientRect(); }\n else\n { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }\n if (rect.left || rect.right || start == 0) { break }\n end = start;\n start = start - 1;\n collapse = \"right\";\n }\n if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }\n } else { // If it is a widget, simply get the box for the whole widget.\n if (start > 0) { collapse = bias = \"right\"; }\n var rects;\n if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)\n { rect = rects[bias == \"right\" ? rects.length - 1 : 0]; }\n else\n { rect = node.getBoundingClientRect(); }\n }\n if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {\n var rSpan = node.parentNode.getClientRects()[0];\n if (rSpan)\n { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }\n else\n { rect = nullRect; }\n }\n\n var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;\n var mid = (rtop + rbot) / 2;\n var heights = prepared.view.measure.heights;\n var i = 0;\n for (; i < heights.length - 1; i++)\n { if (mid < heights[i]) { break } }\n var top = i ? heights[i - 1] : 0, bot = heights[i];\n var result = {left: (collapse == \"right\" ? rect.right : rect.left) - prepared.rect.left,\n right: (collapse == \"left\" ? rect.left : rect.right) - prepared.rect.left,\n top: top, bottom: bot};\n if (!rect.left && !rect.right) { result.bogus = true; }\n if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }\n\n return result\n }\n\n // Work around problem with bounding client rects on ranges being\n // returned incorrectly when zoomed on IE10 and below.\n function maybeUpdateRectForZooming(measure, rect) {\n if (!window.screen || screen.logicalXDPI == null ||\n screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))\n { return rect }\n var scaleX = screen.logicalXDPI / screen.deviceXDPI;\n var scaleY = screen.logicalYDPI / screen.deviceYDPI;\n return {left: rect.left * scaleX, right: rect.right * scaleX,\n top: rect.top * scaleY, bottom: rect.bottom * scaleY}\n }\n\n function clearLineMeasurementCacheFor(lineView) {\n if (lineView.measure) {\n lineView.measure.cache = {};\n lineView.measure.heights = null;\n if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)\n { lineView.measure.caches[i] = {}; } }\n }\n }\n\n function clearLineMeasurementCache(cm) {\n cm.display.externalMeasure = null;\n removeChildren(cm.display.lineMeasure);\n for (var i = 0; i < cm.display.view.length; i++)\n { clearLineMeasurementCacheFor(cm.display.view[i]); }\n }\n\n function clearCaches(cm) {\n clearLineMeasurementCache(cm);\n cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;\n if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }\n cm.display.lineNumChars = null;\n }\n\n function pageScrollX() {\n // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206\n // which causes page_Offset and bounding client rects to use\n // different reference viewports and invalidate our calculations.\n if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }\n return window.pageXOffset || (document.documentElement || document.body).scrollLeft\n }\n function pageScrollY() {\n if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }\n return window.pageYOffset || (document.documentElement || document.body).scrollTop\n }\n\n function widgetTopHeight(lineObj) {\n var height = 0;\n if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)\n { height += widgetHeight(lineObj.widgets[i]); } } }\n return height\n }\n\n // Converts a {top, bottom, left, right} box from line-local\n // coordinates into another coordinate system. Context may be one of\n // \"line\", \"div\" (display.lineDiv), \"local\"./null (editor), \"window\",\n // or \"page\".\n function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {\n if (!includeWidgets) {\n var height = widgetTopHeight(lineObj);\n rect.top += height; rect.bottom += height;\n }\n if (context == \"line\") { return rect }\n if (!context) { context = \"local\"; }\n var yOff = heightAtLine(lineObj);\n if (context == \"local\") { yOff += paddingTop(cm.display); }\n else { yOff -= cm.display.viewOffset; }\n if (context == \"page\" || context == \"window\") {\n var lOff = cm.display.lineSpace.getBoundingClientRect();\n yOff += lOff.top + (context == \"window\" ? 0 : pageScrollY());\n var xOff = lOff.left + (context == \"window\" ? 0 : pageScrollX());\n rect.left += xOff; rect.right += xOff;\n }\n rect.top += yOff; rect.bottom += yOff;\n return rect\n }\n\n // Coverts a box from \"div\" coords to another coordinate system.\n // Context may be \"window\", \"page\", \"div\", or \"local\"./null.\n function fromCoordSystem(cm, coords, context) {\n if (context == \"div\") { return coords }\n var left = coords.left, top = coords.top;\n // First move into \"page\" coordinate system\n if (context == \"page\") {\n left -= pageScrollX();\n top -= pageScrollY();\n } else if (context == \"local\" || !context) {\n var localBox = cm.display.sizer.getBoundingClientRect();\n left += localBox.left;\n top += localBox.top;\n }\n\n var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();\n return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}\n }\n\n function charCoords(cm, pos, context, lineObj, bias) {\n if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }\n return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)\n }\n\n // Returns a box for a given cursor position, which may have an\n // 'other' property containing the position of the secondary cursor\n // on a bidi boundary.\n // A cursor Pos(line, char, \"before\") is on the same visual line as `char - 1`\n // and after `char - 1` in writing order of `char - 1`\n // A cursor Pos(line, char, \"after\") is on the same visual line as `char`\n // and before `char` in writing order of `char`\n // Examples (upper-case letters are RTL, lower-case are LTR):\n // Pos(0, 1, ...)\n // before after\n // ab a|b a|b\n // aB a|B aB|\n // Ab |Ab A|b\n // AB B|A B|A\n // Every position after the last character on a line is considered to stick\n // to the last character on the line.\n function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {\n lineObj = lineObj || getLine(cm.doc, pos.line);\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n function get(ch, right) {\n var m = measureCharPrepared(cm, preparedMeasure, ch, right ? \"right\" : \"left\", varHeight);\n if (right) { m.left = m.right; } else { m.right = m.left; }\n return intoCoordSystem(cm, lineObj, m, context)\n }\n var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;\n if (ch >= lineObj.text.length) {\n ch = lineObj.text.length;\n sticky = \"before\";\n } else if (ch <= 0) {\n ch = 0;\n sticky = \"after\";\n }\n if (!order) { return get(sticky == \"before\" ? ch - 1 : ch, sticky == \"before\") }\n\n function getBidi(ch, partPos, invert) {\n var part = order[partPos], right = part.level == 1;\n return get(invert ? ch - 1 : ch, right != invert)\n }\n var partPos = getBidiPartAt(order, ch, sticky);\n var other = bidiOther;\n var val = getBidi(ch, partPos, sticky == \"before\");\n if (other != null) { val.other = getBidi(ch, other, sticky != \"before\"); }\n return val\n }\n\n // Used to cheaply estimate the coordinates for a position. Used for\n // intermediate scroll updates.\n function estimateCoords(cm, pos) {\n var left = 0;\n pos = clipPos(cm.doc, pos);\n if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }\n var lineObj = getLine(cm.doc, pos.line);\n var top = heightAtLine(lineObj) + paddingTop(cm.display);\n return {left: left, right: left, top: top, bottom: top + lineObj.height}\n }\n\n // Positions returned by coordsChar contain some extra information.\n // xRel is the relative x position of the input coordinates compared\n // to the found position (so xRel > 0 means the coordinates are to\n // the right of the character position, for example). When outside\n // is true, that means the coordinates lie outside the line's\n // vertical range.\n function PosWithInfo(line, ch, sticky, outside, xRel) {\n var pos = Pos(line, ch, sticky);\n pos.xRel = xRel;\n if (outside) { pos.outside = outside; }\n return pos\n }\n\n // Compute the character position closest to the given coordinates.\n // Input must be lineSpace-local (\"div\" coordinate system).\n function coordsChar(cm, x, y) {\n var doc = cm.doc;\n y += cm.display.viewOffset;\n if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) }\n var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;\n if (lineN > last)\n { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) }\n if (x < 0) { x = 0; }\n\n var lineObj = getLine(doc, lineN);\n for (;;) {\n var found = coordsCharInner(cm, lineObj, lineN, x, y);\n var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0));\n if (!collapsed) { return found }\n var rangeEnd = collapsed.find(1);\n if (rangeEnd.line == lineN) { return rangeEnd }\n lineObj = getLine(doc, lineN = rangeEnd.line);\n }\n }\n\n function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {\n y -= widgetTopHeight(lineObj);\n var end = lineObj.text.length;\n var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);\n end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);\n return {begin: begin, end: end}\n }\n\n function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {\n if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }\n var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), \"line\").top;\n return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)\n }\n\n // Returns true if the given side of a box is after the given\n // coordinates, in top-to-bottom, left-to-right order.\n function boxIsAfter(box, x, y, left) {\n return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x\n }\n\n function coordsCharInner(cm, lineObj, lineNo, x, y) {\n // Move y into line-local coordinate space\n y -= heightAtLine(lineObj);\n var preparedMeasure = prepareMeasureForLine(cm, lineObj);\n // When directly calling `measureCharPrepared`, we have to adjust\n // for the widgets at this line.\n var widgetHeight = widgetTopHeight(lineObj);\n var begin = 0, end = lineObj.text.length, ltr = true;\n\n var order = getOrder(lineObj, cm.doc.direction);\n // If the line isn't plain left-to-right text, first figure out\n // which bidi section the coordinates fall into.\n if (order) {\n var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)\n (cm, lineObj, lineNo, preparedMeasure, order, x, y);\n ltr = part.level != 1;\n // The awkward -1 offsets are needed because findFirst (called\n // on these below) will treat its first bound as inclusive,\n // second as exclusive, but we want to actually address the\n // characters in the part's range\n begin = ltr ? part.from : part.to - 1;\n end = ltr ? part.to : part.from - 1;\n }\n\n // A binary search to find the first character whose bounding box\n // starts after the coordinates. If we run across any whose box wrap\n // the coordinates, store that.\n var chAround = null, boxAround = null;\n var ch = findFirst(function (ch) {\n var box = measureCharPrepared(cm, preparedMeasure, ch);\n box.top += widgetHeight; box.bottom += widgetHeight;\n if (!boxIsAfter(box, x, y, false)) { return false }\n if (box.top <= y && box.left <= x) {\n chAround = ch;\n boxAround = box;\n }\n return true\n }, begin, end);\n\n var baseX, sticky, outside = false;\n // If a box around the coordinates was found, use that\n if (boxAround) {\n // Distinguish coordinates nearer to the left or right side of the box\n var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;\n ch = chAround + (atStart ? 0 : 1);\n sticky = atStart ? \"after\" : \"before\";\n baseX = atLeft ? boxAround.left : boxAround.right;\n } else {\n // (Adjust for extended bound, if necessary.)\n if (!ltr && (ch == end || ch == begin)) { ch++; }\n // To determine which side to associate with, get the box to the\n // left of the character and compare it's vertical position to the\n // coordinates\n sticky = ch == 0 ? \"after\" : ch == lineObj.text.length ? \"before\" :\n (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ?\n \"after\" : \"before\";\n // Now get accurate coordinates for this place, in order to get a\n // base X position\n var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), \"line\", lineObj, preparedMeasure);\n baseX = coords.left;\n outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0;\n }\n\n ch = skipExtendingChars(lineObj.text, ch, 1);\n return PosWithInfo(lineNo, ch, sticky, outside, x - baseX)\n }\n\n function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) {\n // Bidi parts are sorted left-to-right, and in a non-line-wrapping\n // situation, we can take this ordering to correspond to the visual\n // ordering. This finds the first part whose end is after the given\n // coordinates.\n var index = findFirst(function (i) {\n var part = order[i], ltr = part.level != 1;\n return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? \"before\" : \"after\"),\n \"line\", lineObj, preparedMeasure), x, y, true)\n }, 0, order.length - 1);\n var part = order[index];\n // If this isn't the first part, the part's start is also after\n // the coordinates, and the coordinates aren't on the same line as\n // that start, move one part back.\n if (index > 0) {\n var ltr = part.level != 1;\n var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? \"after\" : \"before\"),\n \"line\", lineObj, preparedMeasure);\n if (boxIsAfter(start, x, y, true) && start.top > y)\n { part = order[index - 1]; }\n }\n return part\n }\n\n function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {\n // In a wrapped line, rtl text on wrapping boundaries can do things\n // that don't correspond to the ordering in our `order` array at\n // all, so a binary search doesn't work, and we want to return a\n // part that only spans one line so that the binary search in\n // coordsCharInner is safe. As such, we first find the extent of the\n // wrapped line, and then do a flat search in which we discard any\n // spans that aren't on the line.\n var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);\n var begin = ref.begin;\n var end = ref.end;\n if (/\\s/.test(lineObj.text.charAt(end - 1))) { end--; }\n var part = null, closestDist = null;\n for (var i = 0; i < order.length; i++) {\n var p = order[i];\n if (p.from >= end || p.to <= begin) { continue }\n var ltr = p.level != 1;\n var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;\n // Weigh against spans ending before this, so that they are only\n // picked if nothing ends after\n var dist = endX < x ? x - endX + 1e9 : endX - x;\n if (!part || closestDist > dist) {\n part = p;\n closestDist = dist;\n }\n }\n if (!part) { part = order[order.length - 1]; }\n // Clip the part to the wrapped line.\n if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }\n if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }\n return part\n }\n\n var measureText;\n // Compute the default text height.\n function textHeight(display) {\n if (display.cachedTextHeight != null) { return display.cachedTextHeight }\n if (measureText == null) {\n measureText = elt(\"pre\", null, \"CodeMirror-line-like\");\n // Measure a bunch of lines, for browsers that compute\n // fractional heights.\n for (var i = 0; i < 49; ++i) {\n measureText.appendChild(document.createTextNode(\"x\"));\n measureText.appendChild(elt(\"br\"));\n }\n measureText.appendChild(document.createTextNode(\"x\"));\n }\n removeChildrenAndAdd(display.measure, measureText);\n var height = measureText.offsetHeight / 50;\n if (height > 3) { display.cachedTextHeight = height; }\n removeChildren(display.measure);\n return height || 1\n }\n\n // Compute the default character width.\n function charWidth(display) {\n if (display.cachedCharWidth != null) { return display.cachedCharWidth }\n var anchor = elt(\"span\", \"xxxxxxxxxx\");\n var pre = elt(\"pre\", [anchor], \"CodeMirror-line-like\");\n removeChildrenAndAdd(display.measure, pre);\n var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;\n if (width > 2) { display.cachedCharWidth = width; }\n return width || 10\n }\n\n // Do a bulk-read of the DOM positions and sizes needed to draw the\n // view, so that we don't interleave reading and writing to the DOM.\n function getDimensions(cm) {\n var d = cm.display, left = {}, width = {};\n var gutterLeft = d.gutters.clientLeft;\n for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {\n var id = cm.display.gutterSpecs[i].className;\n left[id] = n.offsetLeft + n.clientLeft + gutterLeft;\n width[id] = n.clientWidth;\n }\n return {fixedPos: compensateForHScroll(d),\n gutterTotalWidth: d.gutters.offsetWidth,\n gutterLeft: left,\n gutterWidth: width,\n wrapperWidth: d.wrapper.clientWidth}\n }\n\n // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,\n // but using getBoundingClientRect to get a sub-pixel-accurate\n // result.\n function compensateForHScroll(display) {\n return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left\n }\n\n // Returns a function that estimates the height of a line, to use as\n // first approximation until the line becomes visible (and is thus\n // properly measurable).\n function estimateHeight(cm) {\n var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;\n var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);\n return function (line) {\n if (lineIsHidden(cm.doc, line)) { return 0 }\n\n var widgetsHeight = 0;\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {\n if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }\n } }\n\n if (wrapping)\n { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }\n else\n { return widgetsHeight + th }\n }\n }\n\n function estimateLineHeights(cm) {\n var doc = cm.doc, est = estimateHeight(cm);\n doc.iter(function (line) {\n var estHeight = est(line);\n if (estHeight != line.height) { updateLineHeight(line, estHeight); }\n });\n }\n\n // Given a mouse event, find the corresponding position. If liberal\n // is false, it checks whether a gutter or scrollbar was clicked,\n // and returns null if it was. forRect is used by rectangular\n // selections, and tries to estimate a character position even for\n // coordinates beyond the right of the text.\n function posFromMouse(cm, e, liberal, forRect) {\n var display = cm.display;\n if (!liberal && e_target(e).getAttribute(\"cm-not-content\") == \"true\") { return null }\n\n var x, y, space = display.lineSpace.getBoundingClientRect();\n // Fails unpredictably on IE[67] when mouse is dragged around quickly.\n try { x = e.clientX - space.left; y = e.clientY - space.top; }\n catch (e$1) { return null }\n var coords = coordsChar(cm, x, y), line;\n if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {\n var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;\n coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));\n }\n return coords\n }\n\n // Find the view element corresponding to a given line. Return null\n // when the line isn't visible.\n function findViewIndex(cm, n) {\n if (n >= cm.display.viewTo) { return null }\n n -= cm.display.viewFrom;\n if (n < 0) { return null }\n var view = cm.display.view;\n for (var i = 0; i < view.length; i++) {\n n -= view[i].size;\n if (n < 0) { return i }\n }\n }\n\n // Updates the display.view data structure for a given change to the\n // document. From and to are in pre-change coordinates. Lendiff is\n // the amount of lines added or subtracted by the change. This is\n // used for changes that span multiple lines, or change the way\n // lines are divided into visual lines. regLineChange (below)\n // registers single-line changes.\n function regChange(cm, from, to, lendiff) {\n if (from == null) { from = cm.doc.first; }\n if (to == null) { to = cm.doc.first + cm.doc.size; }\n if (!lendiff) { lendiff = 0; }\n\n var display = cm.display;\n if (lendiff && to < display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers > from))\n { display.updateLineNumbers = from; }\n\n cm.curOp.viewChanged = true;\n\n if (from >= display.viewTo) { // Change after\n if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)\n { resetView(cm); }\n } else if (to <= display.viewFrom) { // Change before\n if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {\n resetView(cm);\n } else {\n display.viewFrom += lendiff;\n display.viewTo += lendiff;\n }\n } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap\n resetView(cm);\n } else if (from <= display.viewFrom) { // Top overlap\n var cut = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cut) {\n display.view = display.view.slice(cut.index);\n display.viewFrom = cut.lineN;\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n } else if (to >= display.viewTo) { // Bottom overlap\n var cut$1 = viewCuttingPoint(cm, from, from, -1);\n if (cut$1) {\n display.view = display.view.slice(0, cut$1.index);\n display.viewTo = cut$1.lineN;\n } else {\n resetView(cm);\n }\n } else { // Gap in the middle\n var cutTop = viewCuttingPoint(cm, from, from, -1);\n var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);\n if (cutTop && cutBot) {\n display.view = display.view.slice(0, cutTop.index)\n .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))\n .concat(display.view.slice(cutBot.index));\n display.viewTo += lendiff;\n } else {\n resetView(cm);\n }\n }\n\n var ext = display.externalMeasured;\n if (ext) {\n if (to < ext.lineN)\n { ext.lineN += lendiff; }\n else if (from < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n }\n }\n\n // Register a change to a single line. Type must be one of \"text\",\n // \"gutter\", \"class\", \"widget\"\n function regLineChange(cm, line, type) {\n cm.curOp.viewChanged = true;\n var display = cm.display, ext = cm.display.externalMeasured;\n if (ext && line >= ext.lineN && line < ext.lineN + ext.size)\n { display.externalMeasured = null; }\n\n if (line < display.viewFrom || line >= display.viewTo) { return }\n var lineView = display.view[findViewIndex(cm, line)];\n if (lineView.node == null) { return }\n var arr = lineView.changes || (lineView.changes = []);\n if (indexOf(arr, type) == -1) { arr.push(type); }\n }\n\n // Clear the view.\n function resetView(cm) {\n cm.display.viewFrom = cm.display.viewTo = cm.doc.first;\n cm.display.view = [];\n cm.display.viewOffset = 0;\n }\n\n function viewCuttingPoint(cm, oldN, newN, dir) {\n var index = findViewIndex(cm, oldN), diff, view = cm.display.view;\n if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)\n { return {index: index, lineN: newN} }\n var n = cm.display.viewFrom;\n for (var i = 0; i < index; i++)\n { n += view[i].size; }\n if (n != oldN) {\n if (dir > 0) {\n if (index == view.length - 1) { return null }\n diff = (n + view[index].size) - oldN;\n index++;\n } else {\n diff = n - oldN;\n }\n oldN += diff; newN += diff;\n }\n while (visualLineNo(cm.doc, newN) != newN) {\n if (index == (dir < 0 ? 0 : view.length - 1)) { return null }\n newN += dir * view[index - (dir < 0 ? 1 : 0)].size;\n index += dir;\n }\n return {index: index, lineN: newN}\n }\n\n // Force the view to cover a given range, adding empty view element\n // or clipping off existing ones as needed.\n function adjustView(cm, from, to) {\n var display = cm.display, view = display.view;\n if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {\n display.view = buildViewArray(cm, from, to);\n display.viewFrom = from;\n } else {\n if (display.viewFrom > from)\n { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }\n else if (display.viewFrom < from)\n { display.view = display.view.slice(findViewIndex(cm, from)); }\n display.viewFrom = from;\n if (display.viewTo < to)\n { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }\n else if (display.viewTo > to)\n { display.view = display.view.slice(0, findViewIndex(cm, to)); }\n }\n display.viewTo = to;\n }\n\n // Count the number of lines in the view whose DOM representation is\n // out of date (or nonexistent).\n function countDirtyView(cm) {\n var view = cm.display.view, dirty = 0;\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }\n }\n return dirty\n }\n\n function updateSelection(cm) {\n cm.display.input.showSelection(cm.display.input.prepareSelection());\n }\n\n function prepareSelection(cm, primary) {\n if ( primary === void 0 ) primary = true;\n\n var doc = cm.doc, result = {};\n var curFragment = result.cursors = document.createDocumentFragment();\n var selFragment = result.selection = document.createDocumentFragment();\n\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n if (!primary && i == doc.sel.primIndex) { continue }\n var range = doc.sel.ranges[i];\n if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue }\n var collapsed = range.empty();\n if (collapsed || cm.options.showCursorWhenSelecting)\n { drawSelectionCursor(cm, range.head, curFragment); }\n if (!collapsed)\n { drawSelectionRange(cm, range, selFragment); }\n }\n return result\n }\n\n // Draws a cursor for the given range\n function drawSelectionCursor(cm, head, output) {\n var pos = cursorCoords(cm, head, \"div\", null, null, !cm.options.singleCursorHeightPerLine);\n\n var cursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor\"));\n cursor.style.left = pos.left + \"px\";\n cursor.style.top = pos.top + \"px\";\n cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + \"px\";\n\n if (pos.other) {\n // Secondary cursor, shown when on a 'jump' in bi-directional text\n var otherCursor = output.appendChild(elt(\"div\", \"\\u00a0\", \"CodeMirror-cursor CodeMirror-secondarycursor\"));\n otherCursor.style.display = \"\";\n otherCursor.style.left = pos.other.left + \"px\";\n otherCursor.style.top = pos.other.top + \"px\";\n otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + \"px\";\n }\n }\n\n function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }\n\n // Draws the given range as a highlighted selection\n function drawSelectionRange(cm, range, output) {\n var display = cm.display, doc = cm.doc;\n var fragment = document.createDocumentFragment();\n var padding = paddingH(cm.display), leftSide = padding.left;\n var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;\n var docLTR = doc.direction == \"ltr\";\n\n function add(left, top, width, bottom) {\n if (top < 0) { top = 0; }\n top = Math.round(top);\n bottom = Math.round(bottom);\n fragment.appendChild(elt(\"div\", null, \"CodeMirror-selected\", (\"position: absolute; left: \" + left + \"px;\\n top: \" + top + \"px; width: \" + (width == null ? rightSide - left : width) + \"px;\\n height: \" + (bottom - top) + \"px\")));\n }\n\n function drawForLine(line, fromArg, toArg) {\n var lineObj = getLine(doc, line);\n var lineLen = lineObj.text.length;\n var start, end;\n function coords(ch, bias) {\n return charCoords(cm, Pos(line, ch), \"div\", lineObj, bias)\n }\n\n function wrapX(pos, dir, side) {\n var extent = wrappedLineExtentChar(cm, lineObj, null, pos);\n var prop = (dir == \"ltr\") == (side == \"after\") ? \"left\" : \"right\";\n var ch = side == \"after\" ? extent.begin : extent.end - (/\\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);\n return coords(ch, prop)[prop]\n }\n\n var order = getOrder(lineObj, doc.direction);\n iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {\n var ltr = dir == \"ltr\";\n var fromPos = coords(from, ltr ? \"left\" : \"right\");\n var toPos = coords(to - 1, ltr ? \"right\" : \"left\");\n\n var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;\n var first = i == 0, last = !order || i == order.length - 1;\n if (toPos.top - fromPos.top <= 3) { // Single line\n var openLeft = (docLTR ? openStart : openEnd) && first;\n var openRight = (docLTR ? openEnd : openStart) && last;\n var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;\n var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;\n add(left, fromPos.top, right - left, fromPos.bottom);\n } else { // Multiple lines\n var topLeft, topRight, botLeft, botRight;\n if (ltr) {\n topLeft = docLTR && openStart && first ? leftSide : fromPos.left;\n topRight = docLTR ? rightSide : wrapX(from, dir, \"before\");\n botLeft = docLTR ? leftSide : wrapX(to, dir, \"after\");\n botRight = docLTR && openEnd && last ? rightSide : toPos.right;\n } else {\n topLeft = !docLTR ? leftSide : wrapX(from, dir, \"before\");\n topRight = !docLTR && openStart && first ? rightSide : fromPos.right;\n botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;\n botRight = !docLTR ? rightSide : wrapX(to, dir, \"after\");\n }\n add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);\n if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }\n add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);\n }\n\n if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }\n if (cmpCoords(toPos, start) < 0) { start = toPos; }\n if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }\n if (cmpCoords(toPos, end) < 0) { end = toPos; }\n });\n return {start: start, end: end}\n }\n\n var sFrom = range.from(), sTo = range.to();\n if (sFrom.line == sTo.line) {\n drawForLine(sFrom.line, sFrom.ch, sTo.ch);\n } else {\n var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);\n var singleVLine = visualLine(fromLine) == visualLine(toLine);\n var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;\n var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;\n if (singleVLine) {\n if (leftEnd.top < rightStart.top - 2) {\n add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);\n add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);\n } else {\n add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);\n }\n }\n if (leftEnd.bottom < rightStart.top)\n { add(leftSide, leftEnd.bottom, null, rightStart.top); }\n }\n\n output.appendChild(fragment);\n }\n\n // Cursor-blinking\n function restartBlink(cm) {\n if (!cm.state.focused) { return }\n var display = cm.display;\n clearInterval(display.blinker);\n var on = true;\n display.cursorDiv.style.visibility = \"\";\n if (cm.options.cursorBlinkRate > 0)\n { display.blinker = setInterval(function () {\n if (!cm.hasFocus()) { onBlur(cm); }\n display.cursorDiv.style.visibility = (on = !on) ? \"\" : \"hidden\";\n }, cm.options.cursorBlinkRate); }\n else if (cm.options.cursorBlinkRate < 0)\n { display.cursorDiv.style.visibility = \"hidden\"; }\n }\n\n function ensureFocus(cm) {\n if (!cm.hasFocus()) {\n cm.display.input.focus();\n if (!cm.state.focused) { onFocus(cm); }\n }\n }\n\n function delayBlurEvent(cm) {\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { if (cm.state.delayingBlurEvent) {\n cm.state.delayingBlurEvent = false;\n if (cm.state.focused) { onBlur(cm); }\n } }, 100);\n }\n\n function onFocus(cm, e) {\n if (cm.state.delayingBlurEvent && !cm.state.draggingText) { cm.state.delayingBlurEvent = false; }\n\n if (cm.options.readOnly == \"nocursor\") { return }\n if (!cm.state.focused) {\n signal(cm, \"focus\", cm, e);\n cm.state.focused = true;\n addClass(cm.display.wrapper, \"CodeMirror-focused\");\n // This test prevents this from firing when a context\n // menu is closed (since the input reset would kill the\n // select-all detection hack)\n if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {\n cm.display.input.reset();\n if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730\n }\n cm.display.input.receivedFocus();\n }\n restartBlink(cm);\n }\n function onBlur(cm, e) {\n if (cm.state.delayingBlurEvent) { return }\n\n if (cm.state.focused) {\n signal(cm, \"blur\", cm, e);\n cm.state.focused = false;\n rmClass(cm.display.wrapper, \"CodeMirror-focused\");\n }\n clearInterval(cm.display.blinker);\n setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);\n }\n\n // Read the actual heights of the rendered lines, and update their\n // stored heights to match.\n function updateHeightsInViewport(cm) {\n var display = cm.display;\n var prevBottom = display.lineDiv.offsetTop;\n for (var i = 0; i < display.view.length; i++) {\n var cur = display.view[i], wrapping = cm.options.lineWrapping;\n var height = (void 0), width = 0;\n if (cur.hidden) { continue }\n if (ie && ie_version < 8) {\n var bot = cur.node.offsetTop + cur.node.offsetHeight;\n height = bot - prevBottom;\n prevBottom = bot;\n } else {\n var box = cur.node.getBoundingClientRect();\n height = box.bottom - box.top;\n // Check that lines don't extend past the right of the current\n // editor width\n if (!wrapping && cur.text.firstChild)\n { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; }\n }\n var diff = cur.line.height - height;\n if (diff > .005 || diff < -.005) {\n updateLineHeight(cur.line, height);\n updateWidgetHeight(cur.line);\n if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)\n { updateWidgetHeight(cur.rest[j]); } }\n }\n if (width > cm.display.sizerWidth) {\n var chWidth = Math.ceil(width / charWidth(cm.display));\n if (chWidth > cm.display.maxLineLength) {\n cm.display.maxLineLength = chWidth;\n cm.display.maxLine = cur.line;\n cm.display.maxLineChanged = true;\n }\n }\n }\n }\n\n // Read and store the height of line widgets associated with the\n // given line.\n function updateWidgetHeight(line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {\n var w = line.widgets[i], parent = w.node.parentNode;\n if (parent) { w.height = parent.offsetHeight; }\n } }\n }\n\n // Compute the lines that are visible in a given viewport (defaults\n // the the current scroll position). viewport may contain top,\n // height, and ensure (see op.scrollToPos) properties.\n function visibleLines(display, doc, viewport) {\n var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;\n top = Math.floor(top - paddingTop(display));\n var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;\n\n var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);\n // Ensure is a {from: {line, ch}, to: {line, ch}} object, and\n // forces those lines into the viewport (if possible).\n if (viewport && viewport.ensure) {\n var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;\n if (ensureFrom < from) {\n from = ensureFrom;\n to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);\n } else if (Math.min(ensureTo, doc.lastLine()) >= to) {\n from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);\n to = ensureTo;\n }\n }\n return {from: from, to: Math.max(to, from + 1)}\n }\n\n // SCROLLING THINGS INTO VIEW\n\n // If an editor sits on the top or bottom of the window, partially\n // scrolled out of view, this ensures that the cursor is visible.\n function maybeScrollWindow(cm, rect) {\n if (signalDOMEvent(cm, \"scrollCursorIntoView\")) { return }\n\n var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;\n if (rect.top + box.top < 0) { doScroll = true; }\n else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }\n if (doScroll != null && !phantom) {\n var scrollNode = elt(\"div\", \"\\u200b\", null, (\"position: absolute;\\n top: \" + (rect.top - display.viewOffset - paddingTop(cm.display)) + \"px;\\n height: \" + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + \"px;\\n left: \" + (rect.left) + \"px; width: \" + (Math.max(2, rect.right - rect.left)) + \"px;\"));\n cm.display.lineSpace.appendChild(scrollNode);\n scrollNode.scrollIntoView(doScroll);\n cm.display.lineSpace.removeChild(scrollNode);\n }\n }\n\n // Scroll a given position into view (immediately), verifying that\n // it actually became visible (as line heights are accurately\n // measured, the position of something may 'drift' during drawing).\n function scrollPosIntoView(cm, pos, end, margin) {\n if (margin == null) { margin = 0; }\n var rect;\n if (!cm.options.lineWrapping && pos == end) {\n // Set pos and end to the cursor positions around the character pos sticks to\n // If pos.sticky == \"before\", that is around pos.ch - 1, otherwise around pos.ch\n // If pos == Pos(_, 0, \"before\"), pos and end are unchanged\n end = pos.sticky == \"before\" ? Pos(pos.line, pos.ch + 1, \"before\") : pos;\n pos = pos.ch ? Pos(pos.line, pos.sticky == \"before\" ? pos.ch - 1 : pos.ch, \"after\") : pos;\n }\n for (var limit = 0; limit < 5; limit++) {\n var changed = false;\n var coords = cursorCoords(cm, pos);\n var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);\n rect = {left: Math.min(coords.left, endCoords.left),\n top: Math.min(coords.top, endCoords.top) - margin,\n right: Math.max(coords.left, endCoords.left),\n bottom: Math.max(coords.bottom, endCoords.bottom) + margin};\n var scrollPos = calculateScrollPos(cm, rect);\n var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;\n if (scrollPos.scrollTop != null) {\n updateScrollTop(cm, scrollPos.scrollTop);\n if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }\n }\n if (scrollPos.scrollLeft != null) {\n setScrollLeft(cm, scrollPos.scrollLeft);\n if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }\n }\n if (!changed) { break }\n }\n return rect\n }\n\n // Scroll a given set of coordinates into view (immediately).\n function scrollIntoView(cm, rect) {\n var scrollPos = calculateScrollPos(cm, rect);\n if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }\n if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }\n }\n\n // Calculate a new scroll position needed to scroll the given\n // rectangle into view. Returns an object with scrollTop and\n // scrollLeft properties. When these are undefined, the\n // vertical/horizontal position does not need to be adjusted.\n function calculateScrollPos(cm, rect) {\n var display = cm.display, snapMargin = textHeight(cm.display);\n if (rect.top < 0) { rect.top = 0; }\n var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;\n var screen = displayHeight(cm), result = {};\n if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }\n var docBottom = cm.doc.height + paddingVert(display);\n var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;\n if (rect.top < screentop) {\n result.scrollTop = atTop ? 0 : rect.top;\n } else if (rect.bottom > screentop + screen) {\n var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);\n if (newTop != screentop) { result.scrollTop = newTop; }\n }\n\n var gutterSpace = cm.options.fixedGutter ? 0 : display.gutters.offsetWidth;\n var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft - gutterSpace;\n var screenw = displayWidth(cm) - display.gutters.offsetWidth;\n var tooWide = rect.right - rect.left > screenw;\n if (tooWide) { rect.right = rect.left + screenw; }\n if (rect.left < 10)\n { result.scrollLeft = 0; }\n else if (rect.left < screenleft)\n { result.scrollLeft = Math.max(0, rect.left + gutterSpace - (tooWide ? 0 : 10)); }\n else if (rect.right > screenw + screenleft - 3)\n { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }\n return result\n }\n\n // Store a relative adjustment to the scroll position in the current\n // operation (to be applied when the operation finishes).\n function addToScrollTop(cm, top) {\n if (top == null) { return }\n resolveScrollToPos(cm);\n cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;\n }\n\n // Make sure that at the end of the operation the current cursor is\n // shown.\n function ensureCursorVisible(cm) {\n resolveScrollToPos(cm);\n var cur = cm.getCursor();\n cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};\n }\n\n function scrollToCoords(cm, x, y) {\n if (x != null || y != null) { resolveScrollToPos(cm); }\n if (x != null) { cm.curOp.scrollLeft = x; }\n if (y != null) { cm.curOp.scrollTop = y; }\n }\n\n function scrollToRange(cm, range) {\n resolveScrollToPos(cm);\n cm.curOp.scrollToPos = range;\n }\n\n // When an operation has its scrollToPos property set, and another\n // scroll action is applied before the end of the operation, this\n // 'simulates' scrolling that position into view in a cheap way, so\n // that the effect of intermediate scroll commands is not ignored.\n function resolveScrollToPos(cm) {\n var range = cm.curOp.scrollToPos;\n if (range) {\n cm.curOp.scrollToPos = null;\n var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);\n scrollToCoordsRange(cm, from, to, range.margin);\n }\n }\n\n function scrollToCoordsRange(cm, from, to, margin) {\n var sPos = calculateScrollPos(cm, {\n left: Math.min(from.left, to.left),\n top: Math.min(from.top, to.top) - margin,\n right: Math.max(from.right, to.right),\n bottom: Math.max(from.bottom, to.bottom) + margin\n });\n scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);\n }\n\n // Sync the scrollable area and scrollbars, ensure the viewport\n // covers the visible area.\n function updateScrollTop(cm, val) {\n if (Math.abs(cm.doc.scrollTop - val) < 2) { return }\n if (!gecko) { updateDisplaySimple(cm, {top: val}); }\n setScrollTop(cm, val, true);\n if (gecko) { updateDisplaySimple(cm); }\n startWorker(cm, 100);\n }\n\n function setScrollTop(cm, val, forceScroll) {\n val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val));\n if (cm.display.scroller.scrollTop == val && !forceScroll) { return }\n cm.doc.scrollTop = val;\n cm.display.scrollbars.setScrollTop(val);\n if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }\n }\n\n // Sync scroller and scrollbar, ensure the gutter elements are\n // aligned.\n function setScrollLeft(cm, val, isScroller, forceScroll) {\n val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth));\n if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }\n cm.doc.scrollLeft = val;\n alignHorizontally(cm);\n if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }\n cm.display.scrollbars.setScrollLeft(val);\n }\n\n // SCROLLBARS\n\n // Prepare DOM reads needed to update the scrollbars. Done in one\n // shot to minimize update/measure roundtrips.\n function measureForScrollbars(cm) {\n var d = cm.display, gutterW = d.gutters.offsetWidth;\n var docH = Math.round(cm.doc.height + paddingVert(cm.display));\n return {\n clientHeight: d.scroller.clientHeight,\n viewHeight: d.wrapper.clientHeight,\n scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,\n viewWidth: d.wrapper.clientWidth,\n barLeft: cm.options.fixedGutter ? gutterW : 0,\n docHeight: docH,\n scrollHeight: docH + scrollGap(cm) + d.barHeight,\n nativeBarWidth: d.nativeBarWidth,\n gutterWidth: gutterW\n }\n }\n\n var NativeScrollbars = function(place, scroll, cm) {\n this.cm = cm;\n var vert = this.vert = elt(\"div\", [elt(\"div\", null, null, \"min-width: 1px\")], \"CodeMirror-vscrollbar\");\n var horiz = this.horiz = elt(\"div\", [elt(\"div\", null, null, \"height: 100%; min-height: 1px\")], \"CodeMirror-hscrollbar\");\n vert.tabIndex = horiz.tabIndex = -1;\n place(vert); place(horiz);\n\n on(vert, \"scroll\", function () {\n if (vert.clientHeight) { scroll(vert.scrollTop, \"vertical\"); }\n });\n on(horiz, \"scroll\", function () {\n if (horiz.clientWidth) { scroll(horiz.scrollLeft, \"horizontal\"); }\n });\n\n this.checkedZeroWidth = false;\n // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).\n if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = \"18px\"; }\n };\n\n NativeScrollbars.prototype.update = function (measure) {\n var needsH = measure.scrollWidth > measure.clientWidth + 1;\n var needsV = measure.scrollHeight > measure.clientHeight + 1;\n var sWidth = measure.nativeBarWidth;\n\n if (needsV) {\n this.vert.style.display = \"block\";\n this.vert.style.bottom = needsH ? sWidth + \"px\" : \"0\";\n var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);\n // A bug in IE8 can cause this value to be negative, so guard it.\n this.vert.firstChild.style.height =\n Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + \"px\";\n } else {\n this.vert.style.display = \"\";\n this.vert.firstChild.style.height = \"0\";\n }\n\n if (needsH) {\n this.horiz.style.display = \"block\";\n this.horiz.style.right = needsV ? sWidth + \"px\" : \"0\";\n this.horiz.style.left = measure.barLeft + \"px\";\n var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);\n this.horiz.firstChild.style.width =\n Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + \"px\";\n } else {\n this.horiz.style.display = \"\";\n this.horiz.firstChild.style.width = \"0\";\n }\n\n if (!this.checkedZeroWidth && measure.clientHeight > 0) {\n if (sWidth == 0) { this.zeroWidthHack(); }\n this.checkedZeroWidth = true;\n }\n\n return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}\n };\n\n NativeScrollbars.prototype.setScrollLeft = function (pos) {\n if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }\n if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, \"horiz\"); }\n };\n\n NativeScrollbars.prototype.setScrollTop = function (pos) {\n if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }\n if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, \"vert\"); }\n };\n\n NativeScrollbars.prototype.zeroWidthHack = function () {\n var w = mac && !mac_geMountainLion ? \"12px\" : \"18px\";\n this.horiz.style.height = this.vert.style.width = w;\n this.horiz.style.pointerEvents = this.vert.style.pointerEvents = \"none\";\n this.disableHoriz = new Delayed;\n this.disableVert = new Delayed;\n };\n\n NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {\n bar.style.pointerEvents = \"auto\";\n function maybeDisable() {\n // To find out whether the scrollbar is still visible, we\n // check whether the element under the pixel in the bottom\n // right corner of the scrollbar box is the scrollbar box\n // itself (when the bar is still visible) or its filler child\n // (when the bar is hidden). If it is still visible, we keep\n // it enabled, if it's hidden, we disable pointer events.\n var box = bar.getBoundingClientRect();\n var elt = type == \"vert\" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)\n : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);\n if (elt != bar) { bar.style.pointerEvents = \"none\"; }\n else { delay.set(1000, maybeDisable); }\n }\n delay.set(1000, maybeDisable);\n };\n\n NativeScrollbars.prototype.clear = function () {\n var parent = this.horiz.parentNode;\n parent.removeChild(this.horiz);\n parent.removeChild(this.vert);\n };\n\n var NullScrollbars = function () {};\n\n NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };\n NullScrollbars.prototype.setScrollLeft = function () {};\n NullScrollbars.prototype.setScrollTop = function () {};\n NullScrollbars.prototype.clear = function () {};\n\n function updateScrollbars(cm, measure) {\n if (!measure) { measure = measureForScrollbars(cm); }\n var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;\n updateScrollbarsInner(cm, measure);\n for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {\n if (startWidth != cm.display.barWidth && cm.options.lineWrapping)\n { updateHeightsInViewport(cm); }\n updateScrollbarsInner(cm, measureForScrollbars(cm));\n startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;\n }\n }\n\n // Re-synchronize the fake scrollbars with the actual size of the\n // content.\n function updateScrollbarsInner(cm, measure) {\n var d = cm.display;\n var sizes = d.scrollbars.update(measure);\n\n d.sizer.style.paddingRight = (d.barWidth = sizes.right) + \"px\";\n d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + \"px\";\n d.heightForcer.style.borderBottom = sizes.bottom + \"px solid transparent\";\n\n if (sizes.right && sizes.bottom) {\n d.scrollbarFiller.style.display = \"block\";\n d.scrollbarFiller.style.height = sizes.bottom + \"px\";\n d.scrollbarFiller.style.width = sizes.right + \"px\";\n } else { d.scrollbarFiller.style.display = \"\"; }\n if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {\n d.gutterFiller.style.display = \"block\";\n d.gutterFiller.style.height = sizes.bottom + \"px\";\n d.gutterFiller.style.width = measure.gutterWidth + \"px\";\n } else { d.gutterFiller.style.display = \"\"; }\n }\n\n var scrollbarModel = {\"native\": NativeScrollbars, \"null\": NullScrollbars};\n\n function initScrollbars(cm) {\n if (cm.display.scrollbars) {\n cm.display.scrollbars.clear();\n if (cm.display.scrollbars.addClass)\n { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {\n cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);\n // Prevent clicks in the scrollbars from killing focus\n on(node, \"mousedown\", function () {\n if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }\n });\n node.setAttribute(\"cm-not-content\", \"true\");\n }, function (pos, axis) {\n if (axis == \"horizontal\") { setScrollLeft(cm, pos); }\n else { updateScrollTop(cm, pos); }\n }, cm);\n if (cm.display.scrollbars.addClass)\n { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }\n }\n\n // Operations are used to wrap a series of changes to the editor\n // state in such a way that each change won't have to update the\n // cursor and display (which would be awkward, slow, and\n // error-prone). Instead, display updates are batched and then all\n // combined and executed at once.\n\n var nextOpId = 0;\n // Start a new operation.\n function startOperation(cm) {\n cm.curOp = {\n cm: cm,\n viewChanged: false, // Flag that indicates that lines might need to be redrawn\n startHeight: cm.doc.height, // Used to detect need to update scrollbar\n forceUpdate: false, // Used to force a redraw\n updateInput: 0, // Whether to reset the input textarea\n typing: false, // Whether this reset should be careful to leave existing text (for compositing)\n changeObjs: null, // Accumulated changes, for firing change events\n cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on\n cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already\n selectionChanged: false, // Whether the selection needs to be redrawn\n updateMaxLine: false, // Set when the widest line needs to be determined anew\n scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet\n scrollToPos: null, // Used to scroll to a specific position\n focus: false,\n id: ++nextOpId, // Unique ID\n markArrays: null // Used by addMarkedSpan\n };\n pushOperation(cm.curOp);\n }\n\n // Finish an operation, updating the display and signalling delayed events\n function endOperation(cm) {\n var op = cm.curOp;\n if (op) { finishOperation(op, function (group) {\n for (var i = 0; i < group.ops.length; i++)\n { group.ops[i].cm.curOp = null; }\n endOperations(group);\n }); }\n }\n\n // The DOM updates done when an operation finishes are batched so\n // that the minimum number of relayouts are required.\n function endOperations(group) {\n var ops = group.ops;\n for (var i = 0; i < ops.length; i++) // Read DOM\n { endOperation_R1(ops[i]); }\n for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)\n { endOperation_W1(ops[i$1]); }\n for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM\n { endOperation_R2(ops[i$2]); }\n for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)\n { endOperation_W2(ops[i$3]); }\n for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM\n { endOperation_finish(ops[i$4]); }\n }\n\n function endOperation_R1(op) {\n var cm = op.cm, display = cm.display;\n maybeClipScrollbars(cm);\n if (op.updateMaxLine) { findMaxLine(cm); }\n\n op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||\n op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||\n op.scrollToPos.to.line >= display.viewTo) ||\n display.maxLineChanged && cm.options.lineWrapping;\n op.update = op.mustUpdate &&\n new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);\n }\n\n function endOperation_W1(op) {\n op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);\n }\n\n function endOperation_R2(op) {\n var cm = op.cm, display = cm.display;\n if (op.updatedDisplay) { updateHeightsInViewport(cm); }\n\n op.barMeasure = measureForScrollbars(cm);\n\n // If the max line changed since it was last measured, measure it,\n // and ensure the document's width matches it.\n // updateDisplay_W2 will use these properties to do the actual resizing\n if (display.maxLineChanged && !cm.options.lineWrapping) {\n op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;\n cm.display.sizerWidth = op.adjustWidthTo;\n op.barMeasure.scrollWidth =\n Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);\n op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));\n }\n\n if (op.updatedDisplay || op.selectionChanged)\n { op.preparedSelection = display.input.prepareSelection(); }\n }\n\n function endOperation_W2(op) {\n var cm = op.cm;\n\n if (op.adjustWidthTo != null) {\n cm.display.sizer.style.minWidth = op.adjustWidthTo + \"px\";\n if (op.maxScrollLeft < cm.doc.scrollLeft)\n { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }\n cm.display.maxLineChanged = false;\n }\n\n var takeFocus = op.focus && op.focus == activeElt();\n if (op.preparedSelection)\n { cm.display.input.showSelection(op.preparedSelection, takeFocus); }\n if (op.updatedDisplay || op.startHeight != cm.doc.height)\n { updateScrollbars(cm, op.barMeasure); }\n if (op.updatedDisplay)\n { setDocumentHeight(cm, op.barMeasure); }\n\n if (op.selectionChanged) { restartBlink(cm); }\n\n if (cm.state.focused && op.updateInput)\n { cm.display.input.reset(op.typing); }\n if (takeFocus) { ensureFocus(op.cm); }\n }\n\n function endOperation_finish(op) {\n var cm = op.cm, display = cm.display, doc = cm.doc;\n\n if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }\n\n // Abort mouse wheel delta measurement, when scrolling explicitly\n if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))\n { display.wheelStartX = display.wheelStartY = null; }\n\n // Propagate the scroll position to the actual DOM scroller\n if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }\n\n if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }\n // If we need to scroll a specific position into view, do so.\n if (op.scrollToPos) {\n var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),\n clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);\n maybeScrollWindow(cm, rect);\n }\n\n // Fire events for markers that are hidden/unidden by editing or\n // undoing\n var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;\n if (hidden) { for (var i = 0; i < hidden.length; ++i)\n { if (!hidden[i].lines.length) { signal(hidden[i], \"hide\"); } } }\n if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)\n { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], \"unhide\"); } } }\n\n if (display.wrapper.offsetHeight)\n { doc.scrollTop = cm.display.scroller.scrollTop; }\n\n // Fire change events, and delayed event handlers\n if (op.changeObjs)\n { signal(cm, \"changes\", cm, op.changeObjs); }\n if (op.update)\n { op.update.finish(); }\n }\n\n // Run the given function in an operation\n function runInOp(cm, f) {\n if (cm.curOp) { return f() }\n startOperation(cm);\n try { return f() }\n finally { endOperation(cm); }\n }\n // Wraps a function in an operation. Returns the wrapped function.\n function operation(cm, f) {\n return function() {\n if (cm.curOp) { return f.apply(cm, arguments) }\n startOperation(cm);\n try { return f.apply(cm, arguments) }\n finally { endOperation(cm); }\n }\n }\n // Used to add methods to editor and doc instances, wrapping them in\n // operations.\n function methodOp(f) {\n return function() {\n if (this.curOp) { return f.apply(this, arguments) }\n startOperation(this);\n try { return f.apply(this, arguments) }\n finally { endOperation(this); }\n }\n }\n function docMethodOp(f) {\n return function() {\n var cm = this.cm;\n if (!cm || cm.curOp) { return f.apply(this, arguments) }\n startOperation(cm);\n try { return f.apply(this, arguments) }\n finally { endOperation(cm); }\n }\n }\n\n // HIGHLIGHT WORKER\n\n function startWorker(cm, time) {\n if (cm.doc.highlightFrontier < cm.display.viewTo)\n { cm.state.highlight.set(time, bind(highlightWorker, cm)); }\n }\n\n function highlightWorker(cm) {\n var doc = cm.doc;\n if (doc.highlightFrontier >= cm.display.viewTo) { return }\n var end = +new Date + cm.options.workTime;\n var context = getContextBefore(cm, doc.highlightFrontier);\n var changedLines = [];\n\n doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {\n if (context.line >= cm.display.viewFrom) { // Visible\n var oldStyles = line.styles;\n var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;\n var highlighted = highlightLine(cm, line, context, true);\n if (resetState) { context.state = resetState; }\n line.styles = highlighted.styles;\n var oldCls = line.styleClasses, newCls = highlighted.classes;\n if (newCls) { line.styleClasses = newCls; }\n else if (oldCls) { line.styleClasses = null; }\n var ischange = !oldStyles || oldStyles.length != line.styles.length ||\n oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);\n for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }\n if (ischange) { changedLines.push(context.line); }\n line.stateAfter = context.save();\n context.nextLine();\n } else {\n if (line.text.length <= cm.options.maxHighlightLength)\n { processLine(cm, line.text, context); }\n line.stateAfter = context.line % 5 == 0 ? context.save() : null;\n context.nextLine();\n }\n if (+new Date > end) {\n startWorker(cm, cm.options.workDelay);\n return true\n }\n });\n doc.highlightFrontier = context.line;\n doc.modeFrontier = Math.max(doc.modeFrontier, context.line);\n if (changedLines.length) { runInOp(cm, function () {\n for (var i = 0; i < changedLines.length; i++)\n { regLineChange(cm, changedLines[i], \"text\"); }\n }); }\n }\n\n // DISPLAY DRAWING\n\n var DisplayUpdate = function(cm, viewport, force) {\n var display = cm.display;\n\n this.viewport = viewport;\n // Store some values that we'll need later (but don't want to force a relayout for)\n this.visible = visibleLines(display, cm.doc, viewport);\n this.editorIsHidden = !display.wrapper.offsetWidth;\n this.wrapperHeight = display.wrapper.clientHeight;\n this.wrapperWidth = display.wrapper.clientWidth;\n this.oldDisplayWidth = displayWidth(cm);\n this.force = force;\n this.dims = getDimensions(cm);\n this.events = [];\n };\n\n DisplayUpdate.prototype.signal = function (emitter, type) {\n if (hasHandler(emitter, type))\n { this.events.push(arguments); }\n };\n DisplayUpdate.prototype.finish = function () {\n for (var i = 0; i < this.events.length; i++)\n { signal.apply(null, this.events[i]); }\n };\n\n function maybeClipScrollbars(cm) {\n var display = cm.display;\n if (!display.scrollbarsClipped && display.scroller.offsetWidth) {\n display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;\n display.heightForcer.style.height = scrollGap(cm) + \"px\";\n display.sizer.style.marginBottom = -display.nativeBarWidth + \"px\";\n display.sizer.style.borderRightWidth = scrollGap(cm) + \"px\";\n display.scrollbarsClipped = true;\n }\n }\n\n function selectionSnapshot(cm) {\n if (cm.hasFocus()) { return null }\n var active = activeElt();\n if (!active || !contains(cm.display.lineDiv, active)) { return null }\n var result = {activeElt: active};\n if (window.getSelection) {\n var sel = window.getSelection();\n if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {\n result.anchorNode = sel.anchorNode;\n result.anchorOffset = sel.anchorOffset;\n result.focusNode = sel.focusNode;\n result.focusOffset = sel.focusOffset;\n }\n }\n return result\n }\n\n function restoreSelection(snapshot) {\n if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }\n snapshot.activeElt.focus();\n if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) &&\n snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {\n var sel = window.getSelection(), range = document.createRange();\n range.setEnd(snapshot.anchorNode, snapshot.anchorOffset);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n sel.extend(snapshot.focusNode, snapshot.focusOffset);\n }\n }\n\n // Does the actual updating of the line display. Bails out\n // (returning false) when there is nothing to be done and forced is\n // false.\n function updateDisplayIfNeeded(cm, update) {\n var display = cm.display, doc = cm.doc;\n\n if (update.editorIsHidden) {\n resetView(cm);\n return false\n }\n\n // Bail out if the visible area is already rendered and nothing changed.\n if (!update.force &&\n update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&\n display.renderedView == display.view && countDirtyView(cm) == 0)\n { return false }\n\n if (maybeUpdateLineNumberWidth(cm)) {\n resetView(cm);\n update.dims = getDimensions(cm);\n }\n\n // Compute a suitable new viewport (from & to)\n var end = doc.first + doc.size;\n var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);\n var to = Math.min(end, update.visible.to + cm.options.viewportMargin);\n if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }\n if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }\n if (sawCollapsedSpans) {\n from = visualLineNo(cm.doc, from);\n to = visualLineEndNo(cm.doc, to);\n }\n\n var different = from != display.viewFrom || to != display.viewTo ||\n display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;\n adjustView(cm, from, to);\n\n display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));\n // Position the mover div to align with the current scroll position\n cm.display.mover.style.top = display.viewOffset + \"px\";\n\n var toUpdate = countDirtyView(cm);\n if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&\n (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))\n { return false }\n\n // For big changes, we hide the enclosing element during the\n // update, since that speeds up the operations on most browsers.\n var selSnapshot = selectionSnapshot(cm);\n if (toUpdate > 4) { display.lineDiv.style.display = \"none\"; }\n patchDisplay(cm, display.updateLineNumbers, update.dims);\n if (toUpdate > 4) { display.lineDiv.style.display = \"\"; }\n display.renderedView = display.view;\n // There might have been a widget with a focused element that got\n // hidden or updated, if so re-focus it.\n restoreSelection(selSnapshot);\n\n // Prevent selection and cursors from interfering with the scroll\n // width and height.\n removeChildren(display.cursorDiv);\n removeChildren(display.selectionDiv);\n display.gutters.style.height = display.sizer.style.minHeight = 0;\n\n if (different) {\n display.lastWrapHeight = update.wrapperHeight;\n display.lastWrapWidth = update.wrapperWidth;\n startWorker(cm, 400);\n }\n\n display.updateLineNumbers = null;\n\n return true\n }\n\n function postUpdateDisplay(cm, update) {\n var viewport = update.viewport;\n\n for (var first = true;; first = false) {\n if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {\n // Clip forced viewport to actual scrollable area.\n if (viewport && viewport.top != null)\n { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }\n // Updated line heights might result in the drawn area not\n // actually covering the viewport. Keep looping until it does.\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)\n { break }\n } else if (first) {\n update.visible = visibleLines(cm.display, cm.doc, viewport);\n }\n if (!updateDisplayIfNeeded(cm, update)) { break }\n updateHeightsInViewport(cm);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.force = false;\n }\n\n update.signal(cm, \"update\", cm);\n if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {\n update.signal(cm, \"viewportChange\", cm, cm.display.viewFrom, cm.display.viewTo);\n cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;\n }\n }\n\n function updateDisplaySimple(cm, viewport) {\n var update = new DisplayUpdate(cm, viewport);\n if (updateDisplayIfNeeded(cm, update)) {\n updateHeightsInViewport(cm);\n postUpdateDisplay(cm, update);\n var barMeasure = measureForScrollbars(cm);\n updateSelection(cm);\n updateScrollbars(cm, barMeasure);\n setDocumentHeight(cm, barMeasure);\n update.finish();\n }\n }\n\n // Sync the actual display DOM structure with display.view, removing\n // nodes for lines that are no longer in view, and creating the ones\n // that are not there yet, and updating the ones that are out of\n // date.\n function patchDisplay(cm, updateNumbersFrom, dims) {\n var display = cm.display, lineNumbers = cm.options.lineNumbers;\n var container = display.lineDiv, cur = container.firstChild;\n\n function rm(node) {\n var next = node.nextSibling;\n // Works around a throw-scroll bug in OS X Webkit\n if (webkit && mac && cm.display.currentWheelTarget == node)\n { node.style.display = \"none\"; }\n else\n { node.parentNode.removeChild(node); }\n return next\n }\n\n var view = display.view, lineN = display.viewFrom;\n // Loop over the elements in the view, syncing cur (the DOM nodes\n // in display.lineDiv) with the view as we go.\n for (var i = 0; i < view.length; i++) {\n var lineView = view[i];\n if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet\n var node = buildLineElement(cm, lineView, lineN, dims);\n container.insertBefore(node, cur);\n } else { // Already drawn\n while (cur != lineView.node) { cur = rm(cur); }\n var updateNumber = lineNumbers && updateNumbersFrom != null &&\n updateNumbersFrom <= lineN && lineView.lineNumber;\n if (lineView.changes) {\n if (indexOf(lineView.changes, \"gutter\") > -1) { updateNumber = false; }\n updateLineForChanges(cm, lineView, lineN, dims);\n }\n if (updateNumber) {\n removeChildren(lineView.lineNumber);\n lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));\n }\n cur = lineView.node.nextSibling;\n }\n lineN += lineView.size;\n }\n while (cur) { cur = rm(cur); }\n }\n\n function updateGutterSpace(display) {\n var width = display.gutters.offsetWidth;\n display.sizer.style.marginLeft = width + \"px\";\n // Send an event to consumers responding to changes in gutter width.\n signalLater(display, \"gutterChanged\", display);\n }\n\n function setDocumentHeight(cm, measure) {\n cm.display.sizer.style.minHeight = measure.docHeight + \"px\";\n cm.display.heightForcer.style.top = measure.docHeight + \"px\";\n cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + \"px\";\n }\n\n // Re-align line numbers and gutter marks to compensate for\n // horizontal scrolling.\n function alignHorizontally(cm) {\n var display = cm.display, view = display.view;\n if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }\n var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;\n var gutterW = display.gutters.offsetWidth, left = comp + \"px\";\n for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {\n if (cm.options.fixedGutter) {\n if (view[i].gutter)\n { view[i].gutter.style.left = left; }\n if (view[i].gutterBackground)\n { view[i].gutterBackground.style.left = left; }\n }\n var align = view[i].alignable;\n if (align) { for (var j = 0; j < align.length; j++)\n { align[j].style.left = left; } }\n } }\n if (cm.options.fixedGutter)\n { display.gutters.style.left = (comp + gutterW) + \"px\"; }\n }\n\n // Used to ensure that the line number gutter is still the right\n // size for the current document size. Returns true when an update\n // is needed.\n function maybeUpdateLineNumberWidth(cm) {\n if (!cm.options.lineNumbers) { return false }\n var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;\n if (last.length != display.lineNumChars) {\n var test = display.measure.appendChild(elt(\"div\", [elt(\"div\", last)],\n \"CodeMirror-linenumber CodeMirror-gutter-elt\"));\n var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;\n display.lineGutter.style.width = \"\";\n display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;\n display.lineNumWidth = display.lineNumInnerWidth + padding;\n display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;\n display.lineGutter.style.width = display.lineNumWidth + \"px\";\n updateGutterSpace(cm.display);\n return true\n }\n return false\n }\n\n function getGutters(gutters, lineNumbers) {\n var result = [], sawLineNumbers = false;\n for (var i = 0; i < gutters.length; i++) {\n var name = gutters[i], style = null;\n if (typeof name != \"string\") { style = name.style; name = name.className; }\n if (name == \"CodeMirror-linenumbers\") {\n if (!lineNumbers) { continue }\n else { sawLineNumbers = true; }\n }\n result.push({className: name, style: style});\n }\n if (lineNumbers && !sawLineNumbers) { result.push({className: \"CodeMirror-linenumbers\", style: null}); }\n return result\n }\n\n // Rebuild the gutter elements, ensure the margin to the left of the\n // code matches their width.\n function renderGutters(display) {\n var gutters = display.gutters, specs = display.gutterSpecs;\n removeChildren(gutters);\n display.lineGutter = null;\n for (var i = 0; i < specs.length; ++i) {\n var ref = specs[i];\n var className = ref.className;\n var style = ref.style;\n var gElt = gutters.appendChild(elt(\"div\", null, \"CodeMirror-gutter \" + className));\n if (style) { gElt.style.cssText = style; }\n if (className == \"CodeMirror-linenumbers\") {\n display.lineGutter = gElt;\n gElt.style.width = (display.lineNumWidth || 1) + \"px\";\n }\n }\n gutters.style.display = specs.length ? \"\" : \"none\";\n updateGutterSpace(display);\n }\n\n function updateGutters(cm) {\n renderGutters(cm.display);\n regChange(cm);\n alignHorizontally(cm);\n }\n\n // The display handles the DOM integration, both for input reading\n // and content drawing. It holds references to DOM nodes and\n // display-related state.\n\n function Display(place, doc, input, options) {\n var d = this;\n this.input = input;\n\n // Covers bottom-right square when both scrollbars are present.\n d.scrollbarFiller = elt(\"div\", null, \"CodeMirror-scrollbar-filler\");\n d.scrollbarFiller.setAttribute(\"cm-not-content\", \"true\");\n // Covers bottom of gutter when coverGutterNextToScrollbar is on\n // and h scrollbar is present.\n d.gutterFiller = elt(\"div\", null, \"CodeMirror-gutter-filler\");\n d.gutterFiller.setAttribute(\"cm-not-content\", \"true\");\n // Will contain the actual code, positioned to cover the viewport.\n d.lineDiv = eltP(\"div\", null, \"CodeMirror-code\");\n // Elements are added to these to represent selection and cursors.\n d.selectionDiv = elt(\"div\", null, null, \"position: relative; z-index: 1\");\n d.cursorDiv = elt(\"div\", null, \"CodeMirror-cursors\");\n // A visibility: hidden element used to find the size of things.\n d.measure = elt(\"div\", null, \"CodeMirror-measure\");\n // When lines outside of the viewport are measured, they are drawn in this.\n d.lineMeasure = elt(\"div\", null, \"CodeMirror-measure\");\n // Wraps everything that needs to exist inside the vertically-padded coordinate system\n d.lineSpace = eltP(\"div\", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],\n null, \"position: relative; outline: none\");\n var lines = eltP(\"div\", [d.lineSpace], \"CodeMirror-lines\");\n // Moved around its parent to cover visible view.\n d.mover = elt(\"div\", [lines], null, \"position: relative\");\n // Set to the height of the document, allowing scrolling.\n d.sizer = elt(\"div\", [d.mover], \"CodeMirror-sizer\");\n d.sizerWidth = null;\n // Behavior of elts with overflow: auto and padding is\n // inconsistent across browsers. This is used to ensure the\n // scrollable area is big enough.\n d.heightForcer = elt(\"div\", null, null, \"position: absolute; height: \" + scrollerGap + \"px; width: 1px;\");\n // Will contain the gutters, if any.\n d.gutters = elt(\"div\", null, \"CodeMirror-gutters\");\n d.lineGutter = null;\n // Actual scrollable element.\n d.scroller = elt(\"div\", [d.sizer, d.heightForcer, d.gutters], \"CodeMirror-scroll\");\n d.scroller.setAttribute(\"tabIndex\", \"-1\");\n // The element in which the editor lives.\n d.wrapper = elt(\"div\", [d.scrollbarFiller, d.gutterFiller, d.scroller], \"CodeMirror\");\n\n // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)\n if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }\n if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }\n\n if (place) {\n if (place.appendChild) { place.appendChild(d.wrapper); }\n else { place(d.wrapper); }\n }\n\n // Current rendered range (may be bigger than the view window).\n d.viewFrom = d.viewTo = doc.first;\n d.reportedViewFrom = d.reportedViewTo = doc.first;\n // Information about the rendered lines.\n d.view = [];\n d.renderedView = null;\n // Holds info about a single rendered line when it was rendered\n // for measurement, while not in view.\n d.externalMeasured = null;\n // Empty space (in pixels) above the view\n d.viewOffset = 0;\n d.lastWrapHeight = d.lastWrapWidth = 0;\n d.updateLineNumbers = null;\n\n d.nativeBarWidth = d.barHeight = d.barWidth = 0;\n d.scrollbarsClipped = false;\n\n // Used to only resize the line number gutter when necessary (when\n // the amount of lines crosses a boundary that makes its width change)\n d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;\n // Set to true when a non-horizontal-scrolling line widget is\n // added. As an optimization, line widget aligning is skipped when\n // this is false.\n d.alignWidgets = false;\n\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n\n // Tracks the maximum line length so that the horizontal scrollbar\n // can be kept static when scrolling.\n d.maxLine = null;\n d.maxLineLength = 0;\n d.maxLineChanged = false;\n\n // Used for measuring wheel scrolling granularity\n d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;\n\n // True when shift is held down.\n d.shift = false;\n\n // Used to track whether anything happened since the context menu\n // was opened.\n d.selForContextMenu = null;\n\n d.activeTouch = null;\n\n d.gutterSpecs = getGutters(options.gutters, options.lineNumbers);\n renderGutters(d);\n\n input.init(d);\n }\n\n // Since the delta values reported on mouse wheel events are\n // unstandardized between browsers and even browser versions, and\n // generally horribly unpredictable, this code starts by measuring\n // the scroll effect that the first few mouse wheel events have,\n // and, from that, detects the way it can convert deltas to pixel\n // offsets afterwards.\n //\n // The reason we want to know the amount a wheel event will scroll\n // is that it gives us a chance to update the display before the\n // actual scrolling happens, reducing flickering.\n\n var wheelSamples = 0, wheelPixelsPerUnit = null;\n // Fill in a browser-detected starting value on browsers where we\n // know one. These don't have to be accurate -- the result of them\n // being wrong would just be a slight flicker on the first wheel\n // scroll (if it is large enough).\n if (ie) { wheelPixelsPerUnit = -.53; }\n else if (gecko) { wheelPixelsPerUnit = 15; }\n else if (chrome) { wheelPixelsPerUnit = -.7; }\n else if (safari) { wheelPixelsPerUnit = -1/3; }\n\n function wheelEventDelta(e) {\n var dx = e.wheelDeltaX, dy = e.wheelDeltaY;\n if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }\n if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }\n else if (dy == null) { dy = e.wheelDelta; }\n return {x: dx, y: dy}\n }\n function wheelEventPixels(e) {\n var delta = wheelEventDelta(e);\n delta.x *= wheelPixelsPerUnit;\n delta.y *= wheelPixelsPerUnit;\n return delta\n }\n\n function onScrollWheel(cm, e) {\n var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;\n\n var display = cm.display, scroll = display.scroller;\n // Quit if there's nothing to scroll here\n var canScrollX = scroll.scrollWidth > scroll.clientWidth;\n var canScrollY = scroll.scrollHeight > scroll.clientHeight;\n if (!(dx && canScrollX || dy && canScrollY)) { return }\n\n // Webkit browsers on OS X abort momentum scrolls when the target\n // of the scroll event is removed from the scrollable element.\n // This hack (see related code in patchDisplay) makes sure the\n // element is kept around.\n if (dy && mac && webkit) {\n outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {\n for (var i = 0; i < view.length; i++) {\n if (view[i].node == cur) {\n cm.display.currentWheelTarget = cur;\n break outer\n }\n }\n }\n }\n\n // On some browsers, horizontal scrolling will cause redraws to\n // happen before the gutter has been realigned, causing it to\n // wriggle around in a most unseemly way. When we have an\n // estimated pixels/delta value, we just handle horizontal\n // scrolling entirely here. It'll be slightly off from native, but\n // better than glitching out.\n if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {\n if (dy && canScrollY)\n { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }\n setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));\n // Only prevent default scrolling if vertical scrolling is\n // actually possible. Otherwise, it causes vertical scroll\n // jitter on OSX trackpads when deltaX is small and deltaY\n // is large (issue #3579)\n if (!dy || (dy && canScrollY))\n { e_preventDefault(e); }\n display.wheelStartX = null; // Abort measurement, if in progress\n return\n }\n\n // 'Project' the visible viewport to cover the area that is being\n // scrolled into view (if we know enough to estimate it).\n if (dy && wheelPixelsPerUnit != null) {\n var pixels = dy * wheelPixelsPerUnit;\n var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;\n if (pixels < 0) { top = Math.max(0, top + pixels - 50); }\n else { bot = Math.min(cm.doc.height, bot + pixels + 50); }\n updateDisplaySimple(cm, {top: top, bottom: bot});\n }\n\n if (wheelSamples < 20) {\n if (display.wheelStartX == null) {\n display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;\n display.wheelDX = dx; display.wheelDY = dy;\n setTimeout(function () {\n if (display.wheelStartX == null) { return }\n var movedX = scroll.scrollLeft - display.wheelStartX;\n var movedY = scroll.scrollTop - display.wheelStartY;\n var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||\n (movedX && display.wheelDX && movedX / display.wheelDX);\n display.wheelStartX = display.wheelStartY = null;\n if (!sample) { return }\n wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);\n ++wheelSamples;\n }, 200);\n } else {\n display.wheelDX += dx; display.wheelDY += dy;\n }\n }\n }\n\n // Selection objects are immutable. A new one is created every time\n // the selection changes. A selection is one or more non-overlapping\n // (and non-touching) ranges, sorted, and an integer that indicates\n // which one is the primary selection (the one that's scrolled into\n // view, that getCursor returns, etc).\n var Selection = function(ranges, primIndex) {\n this.ranges = ranges;\n this.primIndex = primIndex;\n };\n\n Selection.prototype.primary = function () { return this.ranges[this.primIndex] };\n\n Selection.prototype.equals = function (other) {\n if (other == this) { return true }\n if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }\n for (var i = 0; i < this.ranges.length; i++) {\n var here = this.ranges[i], there = other.ranges[i];\n if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }\n }\n return true\n };\n\n Selection.prototype.deepCopy = function () {\n var out = [];\n for (var i = 0; i < this.ranges.length; i++)\n { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); }\n return new Selection(out, this.primIndex)\n };\n\n Selection.prototype.somethingSelected = function () {\n for (var i = 0; i < this.ranges.length; i++)\n { if (!this.ranges[i].empty()) { return true } }\n return false\n };\n\n Selection.prototype.contains = function (pos, end) {\n if (!end) { end = pos; }\n for (var i = 0; i < this.ranges.length; i++) {\n var range = this.ranges[i];\n if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)\n { return i }\n }\n return -1\n };\n\n var Range = function(anchor, head) {\n this.anchor = anchor; this.head = head;\n };\n\n Range.prototype.from = function () { return minPos(this.anchor, this.head) };\n Range.prototype.to = function () { return maxPos(this.anchor, this.head) };\n Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };\n\n // Take an unsorted, potentially overlapping set of ranges, and\n // build a selection out of it. 'Consumes' ranges array (modifying\n // it).\n function normalizeSelection(cm, ranges, primIndex) {\n var mayTouch = cm && cm.options.selectionsMayTouch;\n var prim = ranges[primIndex];\n ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });\n primIndex = indexOf(ranges, prim);\n for (var i = 1; i < ranges.length; i++) {\n var cur = ranges[i], prev = ranges[i - 1];\n var diff = cmp(prev.to(), cur.from());\n if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {\n var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());\n var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;\n if (i <= primIndex) { --primIndex; }\n ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));\n }\n }\n return new Selection(ranges, primIndex)\n }\n\n function simpleSelection(anchor, head) {\n return new Selection([new Range(anchor, head || anchor)], 0)\n }\n\n // Compute the position of the end of a change (its 'to' property\n // refers to the pre-change end).\n function changeEnd(change) {\n if (!change.text) { return change.to }\n return Pos(change.from.line + change.text.length - 1,\n lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))\n }\n\n // Adjust a position to refer to the post-change position of the\n // same text, or the end of the change if the change covers it.\n function adjustForChange(pos, change) {\n if (cmp(pos, change.from) < 0) { return pos }\n if (cmp(pos, change.to) <= 0) { return changeEnd(change) }\n\n var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;\n if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }\n return Pos(line, ch)\n }\n\n function computeSelAfterChange(doc, change) {\n var out = [];\n for (var i = 0; i < doc.sel.ranges.length; i++) {\n var range = doc.sel.ranges[i];\n out.push(new Range(adjustForChange(range.anchor, change),\n adjustForChange(range.head, change)));\n }\n return normalizeSelection(doc.cm, out, doc.sel.primIndex)\n }\n\n function offsetPos(pos, old, nw) {\n if (pos.line == old.line)\n { return Pos(nw.line, pos.ch - old.ch + nw.ch) }\n else\n { return Pos(nw.line + (pos.line - old.line), pos.ch) }\n }\n\n // Used by replaceSelections to allow moving the selection to the\n // start or around the replaced test. Hint may be \"start\" or \"around\".\n function computeReplacedSel(doc, changes, hint) {\n var out = [];\n var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;\n for (var i = 0; i < changes.length; i++) {\n var change = changes[i];\n var from = offsetPos(change.from, oldPrev, newPrev);\n var to = offsetPos(changeEnd(change), oldPrev, newPrev);\n oldPrev = change.to;\n newPrev = to;\n if (hint == \"around\") {\n var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;\n out[i] = new Range(inv ? to : from, inv ? from : to);\n } else {\n out[i] = new Range(from, from);\n }\n }\n return new Selection(out, doc.sel.primIndex)\n }\n\n // Used to get the editor into a consistent state again when options change.\n\n function loadMode(cm) {\n cm.doc.mode = getMode(cm.options, cm.doc.modeOption);\n resetModeState(cm);\n }\n\n function resetModeState(cm) {\n cm.doc.iter(function (line) {\n if (line.stateAfter) { line.stateAfter = null; }\n if (line.styles) { line.styles = null; }\n });\n cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;\n startWorker(cm, 100);\n cm.state.modeGen++;\n if (cm.curOp) { regChange(cm); }\n }\n\n // DOCUMENT DATA STRUCTURE\n\n // By default, updates that start and end at the beginning of a line\n // are treated specially, in order to make the association of line\n // widgets and marker elements with the text behave more intuitive.\n function isWholeLineUpdate(doc, change) {\n return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == \"\" &&\n (!doc.cm || doc.cm.options.wholeLineUpdateBefore)\n }\n\n // Perform a change on the document data structure.\n function updateDoc(doc, change, markedSpans, estimateHeight) {\n function spansFor(n) {return markedSpans ? markedSpans[n] : null}\n function update(line, text, spans) {\n updateLine(line, text, spans, estimateHeight);\n signalLater(line, \"change\", line, change);\n }\n function linesFor(start, end) {\n var result = [];\n for (var i = start; i < end; ++i)\n { result.push(new Line(text[i], spansFor(i), estimateHeight)); }\n return result\n }\n\n var from = change.from, to = change.to, text = change.text;\n var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);\n var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;\n\n // Adjust the line structure\n if (change.full) {\n doc.insert(0, linesFor(0, text.length));\n doc.remove(text.length, doc.size - text.length);\n } else if (isWholeLineUpdate(doc, change)) {\n // This is a whole-line replace. Treated specially to make\n // sure line objects move the way they are supposed to.\n var added = linesFor(0, text.length - 1);\n update(lastLine, lastLine.text, lastSpans);\n if (nlines) { doc.remove(from.line, nlines); }\n if (added.length) { doc.insert(from.line, added); }\n } else if (firstLine == lastLine) {\n if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);\n } else {\n var added$1 = linesFor(1, text.length - 1);\n added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n doc.insert(from.line + 1, added$1);\n }\n } else if (text.length == 1) {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));\n doc.remove(from.line + 1, nlines);\n } else {\n update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));\n update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);\n var added$2 = linesFor(1, text.length - 1);\n if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }\n doc.insert(from.line + 1, added$2);\n }\n\n signalLater(doc, \"change\", doc, change);\n }\n\n // Call f for all linked documents.\n function linkedDocs(doc, f, sharedHistOnly) {\n function propagate(doc, skip, sharedHist) {\n if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {\n var rel = doc.linked[i];\n if (rel.doc == skip) { continue }\n var shared = sharedHist && rel.sharedHist;\n if (sharedHistOnly && !shared) { continue }\n f(rel.doc, shared);\n propagate(rel.doc, doc, shared);\n } }\n }\n propagate(doc, null, true);\n }\n\n // Attach a document to an editor.\n function attachDoc(cm, doc) {\n if (doc.cm) { throw new Error(\"This document is already in use.\") }\n cm.doc = doc;\n doc.cm = cm;\n estimateLineHeights(cm);\n loadMode(cm);\n setDirectionClass(cm);\n cm.options.direction = doc.direction;\n if (!cm.options.lineWrapping) { findMaxLine(cm); }\n cm.options.mode = doc.modeOption;\n regChange(cm);\n }\n\n function setDirectionClass(cm) {\n (cm.doc.direction == \"rtl\" ? addClass : rmClass)(cm.display.lineDiv, \"CodeMirror-rtl\");\n }\n\n function directionChanged(cm) {\n runInOp(cm, function () {\n setDirectionClass(cm);\n regChange(cm);\n });\n }\n\n function History(prev) {\n // Arrays of change events and selections. Doing something adds an\n // event to done and clears undo. Undoing moves events from done\n // to undone, redoing moves them in the other direction.\n this.done = []; this.undone = [];\n this.undoDepth = prev ? prev.undoDepth : Infinity;\n // Used to track when changes can be merged into a single undo\n // event\n this.lastModTime = this.lastSelTime = 0;\n this.lastOp = this.lastSelOp = null;\n this.lastOrigin = this.lastSelOrigin = null;\n // Used by the isClean() method\n this.generation = this.maxGeneration = prev ? prev.maxGeneration : 1;\n }\n\n // Create a history change event from an updateDoc-style change\n // object.\n function historyChangeFromChange(doc, change) {\n var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};\n attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);\n linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);\n return histChange\n }\n\n // Pop all selection events off the end of a history array. Stop at\n // a change event.\n function clearSelectionEvents(array) {\n while (array.length) {\n var last = lst(array);\n if (last.ranges) { array.pop(); }\n else { break }\n }\n }\n\n // Find the top change event in the history. Pop off selection\n // events that are in the way.\n function lastChangeEvent(hist, force) {\n if (force) {\n clearSelectionEvents(hist.done);\n return lst(hist.done)\n } else if (hist.done.length && !lst(hist.done).ranges) {\n return lst(hist.done)\n } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {\n hist.done.pop();\n return lst(hist.done)\n }\n }\n\n // Register a change in the history. Merges changes that are within\n // a single operation, or are close together with an origin that\n // allows merging (starting with \"+\") into a single event.\n function addChangeToHistory(doc, change, selAfter, opId) {\n var hist = doc.history;\n hist.undone.length = 0;\n var time = +new Date, cur;\n var last;\n\n if ((hist.lastOp == opId ||\n hist.lastOrigin == change.origin && change.origin &&\n ((change.origin.charAt(0) == \"+\" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||\n change.origin.charAt(0) == \"*\")) &&\n (cur = lastChangeEvent(hist, hist.lastOp == opId))) {\n // Merge this change into the last event\n last = lst(cur.changes);\n if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {\n // Optimized case for simple insertion -- don't want to add\n // new changesets for every character typed\n last.to = changeEnd(change);\n } else {\n // Add new sub-event\n cur.changes.push(historyChangeFromChange(doc, change));\n }\n } else {\n // Can not be merged, start a new event.\n var before = lst(hist.done);\n if (!before || !before.ranges)\n { pushSelectionToHistory(doc.sel, hist.done); }\n cur = {changes: [historyChangeFromChange(doc, change)],\n generation: hist.generation};\n hist.done.push(cur);\n while (hist.done.length > hist.undoDepth) {\n hist.done.shift();\n if (!hist.done[0].ranges) { hist.done.shift(); }\n }\n }\n hist.done.push(selAfter);\n hist.generation = ++hist.maxGeneration;\n hist.lastModTime = hist.lastSelTime = time;\n hist.lastOp = hist.lastSelOp = opId;\n hist.lastOrigin = hist.lastSelOrigin = change.origin;\n\n if (!last) { signal(doc, \"historyAdded\"); }\n }\n\n function selectionEventCanBeMerged(doc, origin, prev, sel) {\n var ch = origin.charAt(0);\n return ch == \"*\" ||\n ch == \"+\" &&\n prev.ranges.length == sel.ranges.length &&\n prev.somethingSelected() == sel.somethingSelected() &&\n new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)\n }\n\n // Called whenever the selection changes, sets the new selection as\n // the pending selection in the history, and pushes the old pending\n // selection into the 'done' array when it was significantly\n // different (in number of selected ranges, emptiness, or time).\n function addSelectionToHistory(doc, sel, opId, options) {\n var hist = doc.history, origin = options && options.origin;\n\n // A new event is started when the previous origin does not match\n // the current, or the origins don't allow matching. Origins\n // starting with * are always merged, those starting with + are\n // merged when similar and close together in time.\n if (opId == hist.lastSelOp ||\n (origin && hist.lastSelOrigin == origin &&\n (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||\n selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))\n { hist.done[hist.done.length - 1] = sel; }\n else\n { pushSelectionToHistory(sel, hist.done); }\n\n hist.lastSelTime = +new Date;\n hist.lastSelOrigin = origin;\n hist.lastSelOp = opId;\n if (options && options.clearRedo !== false)\n { clearSelectionEvents(hist.undone); }\n }\n\n function pushSelectionToHistory(sel, dest) {\n var top = lst(dest);\n if (!(top && top.ranges && top.equals(sel)))\n { dest.push(sel); }\n }\n\n // Used to store marked span information in the history.\n function attachLocalSpans(doc, change, from, to) {\n var existing = change[\"spans_\" + doc.id], n = 0;\n doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {\n if (line.markedSpans)\n { (existing || (existing = change[\"spans_\" + doc.id] = {}))[n] = line.markedSpans; }\n ++n;\n });\n }\n\n // When un/re-doing restores text containing marked spans, those\n // that have been explicitly cleared should not be restored.\n function removeClearedSpans(spans) {\n if (!spans) { return null }\n var out;\n for (var i = 0; i < spans.length; ++i) {\n if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }\n else if (out) { out.push(spans[i]); }\n }\n return !out ? spans : out.length ? out : null\n }\n\n // Retrieve and filter the old marked spans stored in a change event.\n function getOldSpans(doc, change) {\n var found = change[\"spans_\" + doc.id];\n if (!found) { return null }\n var nw = [];\n for (var i = 0; i < change.text.length; ++i)\n { nw.push(removeClearedSpans(found[i])); }\n return nw\n }\n\n // Used for un/re-doing changes from the history. Combines the\n // result of computing the existing spans with the set of spans that\n // existed in the history (so that deleting around a span and then\n // undoing brings back the span).\n function mergeOldSpans(doc, change) {\n var old = getOldSpans(doc, change);\n var stretched = stretchSpansOverChange(doc, change);\n if (!old) { return stretched }\n if (!stretched) { return old }\n\n for (var i = 0; i < old.length; ++i) {\n var oldCur = old[i], stretchCur = stretched[i];\n if (oldCur && stretchCur) {\n spans: for (var j = 0; j < stretchCur.length; ++j) {\n var span = stretchCur[j];\n for (var k = 0; k < oldCur.length; ++k)\n { if (oldCur[k].marker == span.marker) { continue spans } }\n oldCur.push(span);\n }\n } else if (stretchCur) {\n old[i] = stretchCur;\n }\n }\n return old\n }\n\n // Used both to provide a JSON-safe object in .getHistory, and, when\n // detaching a document, to split the history in two\n function copyHistoryArray(events, newGroup, instantiateSel) {\n var copy = [];\n for (var i = 0; i < events.length; ++i) {\n var event = events[i];\n if (event.ranges) {\n copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);\n continue\n }\n var changes = event.changes, newChanges = [];\n copy.push({changes: newChanges});\n for (var j = 0; j < changes.length; ++j) {\n var change = changes[j], m = (void 0);\n newChanges.push({from: change.from, to: change.to, text: change.text});\n if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\\d+)$/)) {\n if (indexOf(newGroup, Number(m[1])) > -1) {\n lst(newChanges)[prop] = change[prop];\n delete change[prop];\n }\n } } }\n }\n }\n return copy\n }\n\n // The 'scroll' parameter given to many of these indicated whether\n // the new cursor position should be scrolled into view after\n // modifying the selection.\n\n // If shift is held or the extend flag is set, extends a range to\n // include a given position (and optionally a second position).\n // Otherwise, simply returns the range between the given positions.\n // Used for cursor motion and such.\n function extendRange(range, head, other, extend) {\n if (extend) {\n var anchor = range.anchor;\n if (other) {\n var posBefore = cmp(head, anchor) < 0;\n if (posBefore != (cmp(other, anchor) < 0)) {\n anchor = head;\n head = other;\n } else if (posBefore != (cmp(head, other) < 0)) {\n head = other;\n }\n }\n return new Range(anchor, head)\n } else {\n return new Range(other || head, head)\n }\n }\n\n // Extend the primary selection range, discard the rest.\n function extendSelection(doc, head, other, options, extend) {\n if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }\n setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);\n }\n\n // Extend all selections (pos is an array of selections with length\n // equal the number of selections)\n function extendSelections(doc, heads, options) {\n var out = [];\n var extend = doc.cm && (doc.cm.display.shift || doc.extend);\n for (var i = 0; i < doc.sel.ranges.length; i++)\n { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }\n var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);\n setSelection(doc, newSel, options);\n }\n\n // Updates a single range in the selection.\n function replaceOneSelection(doc, i, range, options) {\n var ranges = doc.sel.ranges.slice(0);\n ranges[i] = range;\n setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);\n }\n\n // Reset the selection to a single range.\n function setSimpleSelection(doc, anchor, head, options) {\n setSelection(doc, simpleSelection(anchor, head), options);\n }\n\n // Give beforeSelectionChange handlers a change to influence a\n // selection update.\n function filterSelectionChange(doc, sel, options) {\n var obj = {\n ranges: sel.ranges,\n update: function(ranges) {\n this.ranges = [];\n for (var i = 0; i < ranges.length; i++)\n { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),\n clipPos(doc, ranges[i].head)); }\n },\n origin: options && options.origin\n };\n signal(doc, \"beforeSelectionChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeSelectionChange\", doc.cm, obj); }\n if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }\n else { return sel }\n }\n\n function setSelectionReplaceHistory(doc, sel, options) {\n var done = doc.history.done, last = lst(done);\n if (last && last.ranges) {\n done[done.length - 1] = sel;\n setSelectionNoUndo(doc, sel, options);\n } else {\n setSelection(doc, sel, options);\n }\n }\n\n // Set a new selection.\n function setSelection(doc, sel, options) {\n setSelectionNoUndo(doc, sel, options);\n addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);\n }\n\n function setSelectionNoUndo(doc, sel, options) {\n if (hasHandler(doc, \"beforeSelectionChange\") || doc.cm && hasHandler(doc.cm, \"beforeSelectionChange\"))\n { sel = filterSelectionChange(doc, sel, options); }\n\n var bias = options && options.bias ||\n (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);\n setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));\n\n if (!(options && options.scroll === false) && doc.cm && doc.cm.getOption(\"readOnly\") != \"nocursor\")\n { ensureCursorVisible(doc.cm); }\n }\n\n function setSelectionInner(doc, sel) {\n if (sel.equals(doc.sel)) { return }\n\n doc.sel = sel;\n\n if (doc.cm) {\n doc.cm.curOp.updateInput = 1;\n doc.cm.curOp.selectionChanged = true;\n signalCursorActivity(doc.cm);\n }\n signalLater(doc, \"cursorActivity\", doc);\n }\n\n // Verify that the selection does not partially select any atomic\n // marked ranges.\n function reCheckSelection(doc) {\n setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));\n }\n\n // Return a selection that does not partially select any atomic\n // ranges.\n function skipAtomicInSelection(doc, sel, bias, mayClear) {\n var out;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];\n var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);\n var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);\n if (out || newAnchor != range.anchor || newHead != range.head) {\n if (!out) { out = sel.ranges.slice(0, i); }\n out[i] = new Range(newAnchor, newHead);\n }\n }\n return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel\n }\n\n function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {\n var line = getLine(doc, pos.line);\n if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {\n var sp = line.markedSpans[i], m = sp.marker;\n\n // Determine if we should prevent the cursor being placed to the left/right of an atomic marker\n // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it\n // is with selectLeft/Right\n var preventCursorLeft = (\"selectLeft\" in m) ? !m.selectLeft : m.inclusiveLeft;\n var preventCursorRight = (\"selectRight\" in m) ? !m.selectRight : m.inclusiveRight;\n\n if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&\n (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) {\n if (mayClear) {\n signal(m, \"beforeCursorEnter\");\n if (m.explicitlyCleared) {\n if (!line.markedSpans) { break }\n else {--i; continue}\n }\n }\n if (!m.atomic) { continue }\n\n if (oldPos) {\n var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);\n if (dir < 0 ? preventCursorRight : preventCursorLeft)\n { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }\n if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))\n { return skipAtomicInner(doc, near, pos, dir, mayClear) }\n }\n\n var far = m.find(dir < 0 ? -1 : 1);\n if (dir < 0 ? preventCursorLeft : preventCursorRight)\n { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }\n return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null\n }\n } }\n return pos\n }\n\n // Ensure a given position is not inside an atomic range.\n function skipAtomic(doc, pos, oldPos, bias, mayClear) {\n var dir = bias || 1;\n var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||\n skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||\n (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));\n if (!found) {\n doc.cantEdit = true;\n return Pos(doc.first, 0)\n }\n return found\n }\n\n function movePos(doc, pos, dir, line) {\n if (dir < 0 && pos.ch == 0) {\n if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }\n else { return null }\n } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {\n if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }\n else { return null }\n } else {\n return new Pos(pos.line, pos.ch + dir)\n }\n }\n\n function selectAll(cm) {\n cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);\n }\n\n // UPDATING\n\n // Allow \"beforeChange\" event handlers to influence a change\n function filterChange(doc, change, update) {\n var obj = {\n canceled: false,\n from: change.from,\n to: change.to,\n text: change.text,\n origin: change.origin,\n cancel: function () { return obj.canceled = true; }\n };\n if (update) { obj.update = function (from, to, text, origin) {\n if (from) { obj.from = clipPos(doc, from); }\n if (to) { obj.to = clipPos(doc, to); }\n if (text) { obj.text = text; }\n if (origin !== undefined) { obj.origin = origin; }\n }; }\n signal(doc, \"beforeChange\", doc, obj);\n if (doc.cm) { signal(doc.cm, \"beforeChange\", doc.cm, obj); }\n\n if (obj.canceled) {\n if (doc.cm) { doc.cm.curOp.updateInput = 2; }\n return null\n }\n return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}\n }\n\n // Apply a change to a document, and add it to the document's\n // history, and propagating it to all linked documents.\n function makeChange(doc, change, ignoreReadOnly) {\n if (doc.cm) {\n if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }\n if (doc.cm.state.suppressEdits) { return }\n }\n\n if (hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\")) {\n change = filterChange(doc, change, true);\n if (!change) { return }\n }\n\n // Possibly split or suppress the update based on the presence\n // of read-only spans in its range.\n var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);\n if (split) {\n for (var i = split.length - 1; i >= 0; --i)\n { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [\"\"] : change.text, origin: change.origin}); }\n } else {\n makeChangeInner(doc, change);\n }\n }\n\n function makeChangeInner(doc, change) {\n if (change.text.length == 1 && change.text[0] == \"\" && cmp(change.from, change.to) == 0) { return }\n var selAfter = computeSelAfterChange(doc, change);\n addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);\n\n makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));\n var rebased = [];\n\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));\n });\n }\n\n // Revert a change stored in a document's history.\n function makeChangeFromHistory(doc, type, allowSelectionOnly) {\n var suppress = doc.cm && doc.cm.state.suppressEdits;\n if (suppress && !allowSelectionOnly) { return }\n\n var hist = doc.history, event, selAfter = doc.sel;\n var source = type == \"undo\" ? hist.done : hist.undone, dest = type == \"undo\" ? hist.undone : hist.done;\n\n // Verify that there is a useable event (so that ctrl-z won't\n // needlessly clear selection events)\n var i = 0;\n for (; i < source.length; i++) {\n event = source[i];\n if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)\n { break }\n }\n if (i == source.length) { return }\n hist.lastOrigin = hist.lastSelOrigin = null;\n\n for (;;) {\n event = source.pop();\n if (event.ranges) {\n pushSelectionToHistory(event, dest);\n if (allowSelectionOnly && !event.equals(doc.sel)) {\n setSelection(doc, event, {clearRedo: false});\n return\n }\n selAfter = event;\n } else if (suppress) {\n source.push(event);\n return\n } else { break }\n }\n\n // Build up a reverse change object to add to the opposite history\n // stack (redo when undoing, and vice versa).\n var antiChanges = [];\n pushSelectionToHistory(selAfter, dest);\n dest.push({changes: antiChanges, generation: hist.generation});\n hist.generation = event.generation || ++hist.maxGeneration;\n\n var filter = hasHandler(doc, \"beforeChange\") || doc.cm && hasHandler(doc.cm, \"beforeChange\");\n\n var loop = function ( i ) {\n var change = event.changes[i];\n change.origin = type;\n if (filter && !filterChange(doc, change, false)) {\n source.length = 0;\n return {}\n }\n\n antiChanges.push(historyChangeFromChange(doc, change));\n\n var after = i ? computeSelAfterChange(doc, change) : lst(source);\n makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));\n if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }\n var rebased = [];\n\n // Propagate to the linked documents\n linkedDocs(doc, function (doc, sharedHist) {\n if (!sharedHist && indexOf(rebased, doc.history) == -1) {\n rebaseHist(doc.history, change);\n rebased.push(doc.history);\n }\n makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));\n });\n };\n\n for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {\n var returned = loop( i$1 );\n\n if ( returned ) return returned.v;\n }\n }\n\n // Sub-views need their line numbers shifted when text is added\n // above or below them in the parent document.\n function shiftDoc(doc, distance) {\n if (distance == 0) { return }\n doc.first += distance;\n doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(\n Pos(range.anchor.line + distance, range.anchor.ch),\n Pos(range.head.line + distance, range.head.ch)\n ); }), doc.sel.primIndex);\n if (doc.cm) {\n regChange(doc.cm, doc.first, doc.first - distance, distance);\n for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)\n { regLineChange(doc.cm, l, \"gutter\"); }\n }\n }\n\n // More lower-level change function, handling only a single document\n // (not linked ones).\n function makeChangeSingleDoc(doc, change, selAfter, spans) {\n if (doc.cm && !doc.cm.curOp)\n { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }\n\n if (change.to.line < doc.first) {\n shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));\n return\n }\n if (change.from.line > doc.lastLine()) { return }\n\n // Clip the change to the size of this doc\n if (change.from.line < doc.first) {\n var shift = change.text.length - 1 - (doc.first - change.from.line);\n shiftDoc(doc, shift);\n change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),\n text: [lst(change.text)], origin: change.origin};\n }\n var last = doc.lastLine();\n if (change.to.line > last) {\n change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),\n text: [change.text[0]], origin: change.origin};\n }\n\n change.removed = getBetween(doc, change.from, change.to);\n\n if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }\n if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }\n else { updateDoc(doc, change, spans); }\n setSelectionNoUndo(doc, selAfter, sel_dontScroll);\n\n if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0)))\n { doc.cantEdit = false; }\n }\n\n // Handle the interaction of a change to a document with the editor\n // that this document is part of.\n function makeChangeSingleDocInEditor(cm, change, spans) {\n var doc = cm.doc, display = cm.display, from = change.from, to = change.to;\n\n var recomputeMaxLength = false, checkWidthStart = from.line;\n if (!cm.options.lineWrapping) {\n checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));\n doc.iter(checkWidthStart, to.line + 1, function (line) {\n if (line == display.maxLine) {\n recomputeMaxLength = true;\n return true\n }\n });\n }\n\n if (doc.sel.contains(change.from, change.to) > -1)\n { signalCursorActivity(cm); }\n\n updateDoc(doc, change, spans, estimateHeight(cm));\n\n if (!cm.options.lineWrapping) {\n doc.iter(checkWidthStart, from.line + change.text.length, function (line) {\n var len = lineLength(line);\n if (len > display.maxLineLength) {\n display.maxLine = line;\n display.maxLineLength = len;\n display.maxLineChanged = true;\n recomputeMaxLength = false;\n }\n });\n if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }\n }\n\n retreatFrontier(doc, from.line);\n startWorker(cm, 400);\n\n var lendiff = change.text.length - (to.line - from.line) - 1;\n // Remember that these lines changed, for updating the display\n if (change.full)\n { regChange(cm); }\n else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))\n { regLineChange(cm, from.line, \"text\"); }\n else\n { regChange(cm, from.line, to.line + 1, lendiff); }\n\n var changesHandler = hasHandler(cm, \"changes\"), changeHandler = hasHandler(cm, \"change\");\n if (changeHandler || changesHandler) {\n var obj = {\n from: from, to: to,\n text: change.text,\n removed: change.removed,\n origin: change.origin\n };\n if (changeHandler) { signalLater(cm, \"change\", cm, obj); }\n if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }\n }\n cm.display.selForContextMenu = null;\n }\n\n function replaceRange(doc, code, from, to, origin) {\n var assign;\n\n if (!to) { to = from; }\n if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }\n if (typeof code == \"string\") { code = doc.splitLines(code); }\n makeChange(doc, {from: from, to: to, text: code, origin: origin});\n }\n\n // Rebasing/resetting history to deal with externally-sourced changes\n\n function rebaseHistSelSingle(pos, from, to, diff) {\n if (to < pos.line) {\n pos.line += diff;\n } else if (from < pos.line) {\n pos.line = from;\n pos.ch = 0;\n }\n }\n\n // Tries to rebase an array of history events given a change in the\n // document. If the change touches the same lines as the event, the\n // event, and everything 'behind' it, is discarded. If the change is\n // before the event, the event's positions are updated. Uses a\n // copy-on-write scheme for the positions, to avoid having to\n // reallocate them all on every rebase, but also avoid problems with\n // shared position objects being unsafely updated.\n function rebaseHistArray(array, from, to, diff) {\n for (var i = 0; i < array.length; ++i) {\n var sub = array[i], ok = true;\n if (sub.ranges) {\n if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }\n for (var j = 0; j < sub.ranges.length; j++) {\n rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);\n rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);\n }\n continue\n }\n for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {\n var cur = sub.changes[j$1];\n if (to < cur.from.line) {\n cur.from = Pos(cur.from.line + diff, cur.from.ch);\n cur.to = Pos(cur.to.line + diff, cur.to.ch);\n } else if (from <= cur.to.line) {\n ok = false;\n break\n }\n }\n if (!ok) {\n array.splice(0, i + 1);\n i = 0;\n }\n }\n }\n\n function rebaseHist(hist, change) {\n var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;\n rebaseHistArray(hist.done, from, to, diff);\n rebaseHistArray(hist.undone, from, to, diff);\n }\n\n // Utility for applying a change to a line by handle or number,\n // returning the number and optionally registering the line as\n // changed.\n function changeLine(doc, handle, changeType, op) {\n var no = handle, line = handle;\n if (typeof handle == \"number\") { line = getLine(doc, clipLine(doc, handle)); }\n else { no = lineNo(handle); }\n if (no == null) { return null }\n if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }\n return line\n }\n\n // The document is represented as a BTree consisting of leaves, with\n // chunk of lines in them, and branches, with up to ten leaves or\n // other branch nodes below them. The top node is always a branch\n // node, and is the document object itself (meaning it has\n // additional methods and properties).\n //\n // All nodes have parent links. The tree is used both to go from\n // line numbers to line objects, and to go from objects to numbers.\n // It also indexes by height, and is used to convert between height\n // and line object, and to find the total height of the document.\n //\n // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html\n\n function LeafChunk(lines) {\n this.lines = lines;\n this.parent = null;\n var height = 0;\n for (var i = 0; i < lines.length; ++i) {\n lines[i].parent = this;\n height += lines[i].height;\n }\n this.height = height;\n }\n\n LeafChunk.prototype = {\n chunkSize: function() { return this.lines.length },\n\n // Remove the n lines at offset 'at'.\n removeInner: function(at, n) {\n for (var i = at, e = at + n; i < e; ++i) {\n var line = this.lines[i];\n this.height -= line.height;\n cleanUpLine(line);\n signalLater(line, \"delete\");\n }\n this.lines.splice(at, n);\n },\n\n // Helper used to collapse a small branch into a single leaf.\n collapse: function(lines) {\n lines.push.apply(lines, this.lines);\n },\n\n // Insert the given array of lines at offset 'at', count them as\n // having the given height.\n insertInner: function(at, lines, height) {\n this.height += height;\n this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));\n for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; }\n },\n\n // Used to iterate over a part of the tree.\n iterN: function(at, n, op) {\n for (var e = at + n; at < e; ++at)\n { if (op(this.lines[at])) { return true } }\n }\n };\n\n function BranchChunk(children) {\n this.children = children;\n var size = 0, height = 0;\n for (var i = 0; i < children.length; ++i) {\n var ch = children[i];\n size += ch.chunkSize(); height += ch.height;\n ch.parent = this;\n }\n this.size = size;\n this.height = height;\n this.parent = null;\n }\n\n BranchChunk.prototype = {\n chunkSize: function() { return this.size },\n\n removeInner: function(at, n) {\n this.size -= n;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var rm = Math.min(n, sz - at), oldHeight = child.height;\n child.removeInner(at, rm);\n this.height -= oldHeight - child.height;\n if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }\n if ((n -= rm) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n // If the result is smaller than 25 lines, ensure that it is a\n // single leaf node.\n if (this.size - n < 25 &&\n (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {\n var lines = [];\n this.collapse(lines);\n this.children = [new LeafChunk(lines)];\n this.children[0].parent = this;\n }\n },\n\n collapse: function(lines) {\n for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); }\n },\n\n insertInner: function(at, lines, height) {\n this.size += lines.length;\n this.height += height;\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at <= sz) {\n child.insertInner(at, lines, height);\n if (child.lines && child.lines.length > 50) {\n // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.\n // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.\n var remaining = child.lines.length % 25 + 25;\n for (var pos = remaining; pos < child.lines.length;) {\n var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));\n child.height -= leaf.height;\n this.children.splice(++i, 0, leaf);\n leaf.parent = this;\n }\n child.lines = child.lines.slice(0, remaining);\n this.maybeSpill();\n }\n break\n }\n at -= sz;\n }\n },\n\n // When a node has grown, check whether it should be split.\n maybeSpill: function() {\n if (this.children.length <= 10) { return }\n var me = this;\n do {\n var spilled = me.children.splice(me.children.length - 5, 5);\n var sibling = new BranchChunk(spilled);\n if (!me.parent) { // Become the parent node\n var copy = new BranchChunk(me.children);\n copy.parent = me;\n me.children = [copy, sibling];\n me = copy;\n } else {\n me.size -= sibling.size;\n me.height -= sibling.height;\n var myIndex = indexOf(me.parent.children, me);\n me.parent.children.splice(myIndex + 1, 0, sibling);\n }\n sibling.parent = me.parent;\n } while (me.children.length > 10)\n me.parent.maybeSpill();\n },\n\n iterN: function(at, n, op) {\n for (var i = 0; i < this.children.length; ++i) {\n var child = this.children[i], sz = child.chunkSize();\n if (at < sz) {\n var used = Math.min(n, sz - at);\n if (child.iterN(at, used, op)) { return true }\n if ((n -= used) == 0) { break }\n at = 0;\n } else { at -= sz; }\n }\n }\n };\n\n // Line widgets are block elements displayed above or below a line.\n\n var LineWidget = function(doc, node, options) {\n if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))\n { this[opt] = options[opt]; } } }\n this.doc = doc;\n this.node = node;\n };\n\n LineWidget.prototype.clear = function () {\n var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);\n if (no == null || !ws) { return }\n for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } }\n if (!ws.length) { line.widgets = null; }\n var height = widgetHeight(this);\n updateLineHeight(line, Math.max(0, line.height - height));\n if (cm) {\n runInOp(cm, function () {\n adjustScrollWhenAboveVisible(cm, line, -height);\n regLineChange(cm, no, \"widget\");\n });\n signalLater(cm, \"lineWidgetCleared\", cm, this, no);\n }\n };\n\n LineWidget.prototype.changed = function () {\n var this$1 = this;\n\n var oldH = this.height, cm = this.doc.cm, line = this.line;\n this.height = null;\n var diff = widgetHeight(this) - oldH;\n if (!diff) { return }\n if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }\n if (cm) {\n runInOp(cm, function () {\n cm.curOp.forceUpdate = true;\n adjustScrollWhenAboveVisible(cm, line, diff);\n signalLater(cm, \"lineWidgetChanged\", cm, this$1, lineNo(line));\n });\n }\n };\n eventMixin(LineWidget);\n\n function adjustScrollWhenAboveVisible(cm, line, diff) {\n if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))\n { addToScrollTop(cm, diff); }\n }\n\n function addLineWidget(doc, handle, node, options) {\n var widget = new LineWidget(doc, node, options);\n var cm = doc.cm;\n if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }\n changeLine(doc, handle, \"widget\", function (line) {\n var widgets = line.widgets || (line.widgets = []);\n if (widget.insertAt == null) { widgets.push(widget); }\n else { widgets.splice(Math.min(widgets.length, Math.max(0, widget.insertAt)), 0, widget); }\n widget.line = line;\n if (cm && !lineIsHidden(doc, line)) {\n var aboveVisible = heightAtLine(line) < doc.scrollTop;\n updateLineHeight(line, line.height + widgetHeight(widget));\n if (aboveVisible) { addToScrollTop(cm, widget.height); }\n cm.curOp.forceUpdate = true;\n }\n return true\n });\n if (cm) { signalLater(cm, \"lineWidgetAdded\", cm, widget, typeof handle == \"number\" ? handle : lineNo(handle)); }\n return widget\n }\n\n // TEXTMARKERS\n\n // Created with markText and setBookmark methods. A TextMarker is a\n // handle that can be used to clear or find a marked position in the\n // document. Line objects hold arrays (markedSpans) containing\n // {from, to, marker} object pointing to such marker objects, and\n // indicating that such a marker is present on that line. Multiple\n // lines may point to the same marker when it spans across lines.\n // The spans will have null for their from/to properties when the\n // marker continues beyond the start/end of the line. Markers have\n // links back to the lines they currently touch.\n\n // Collapsed markers have unique ids, in order to be able to order\n // them, which is needed for uniquely determining an outer marker\n // when they overlap (they may nest, but not partially overlap).\n var nextMarkerId = 0;\n\n var TextMarker = function(doc, type) {\n this.lines = [];\n this.type = type;\n this.doc = doc;\n this.id = ++nextMarkerId;\n };\n\n // Clear the marker.\n TextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n var cm = this.doc.cm, withOp = cm && !cm.curOp;\n if (withOp) { startOperation(cm); }\n if (hasHandler(this, \"clear\")) {\n var found = this.find();\n if (found) { signalLater(this, \"clear\", found.from, found.to); }\n }\n var min = null, max = null;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), \"text\"); }\n else if (cm) {\n if (span.to != null) { max = lineNo(line); }\n if (span.from != null) { min = lineNo(line); }\n }\n line.markedSpans = removeMarkedSpan(line.markedSpans, span);\n if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)\n { updateLineHeight(line, textHeight(cm.display)); }\n }\n if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {\n var visual = visualLine(this.lines[i$1]), len = lineLength(visual);\n if (len > cm.display.maxLineLength) {\n cm.display.maxLine = visual;\n cm.display.maxLineLength = len;\n cm.display.maxLineChanged = true;\n }\n } }\n\n if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }\n this.lines.length = 0;\n this.explicitlyCleared = true;\n if (this.atomic && this.doc.cantEdit) {\n this.doc.cantEdit = false;\n if (cm) { reCheckSelection(cm.doc); }\n }\n if (cm) { signalLater(cm, \"markerCleared\", cm, this, min, max); }\n if (withOp) { endOperation(cm); }\n if (this.parent) { this.parent.clear(); }\n };\n\n // Find the position of the marker in the document. Returns a {from,\n // to} object by default. Side can be passed to get a specific side\n // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the\n // Pos objects returned contain a line object, rather than a line\n // number (used to prevent looking up the same line twice).\n TextMarker.prototype.find = function (side, lineObj) {\n if (side == null && this.type == \"bookmark\") { side = 1; }\n var from, to;\n for (var i = 0; i < this.lines.length; ++i) {\n var line = this.lines[i];\n var span = getMarkedSpanFor(line.markedSpans, this);\n if (span.from != null) {\n from = Pos(lineObj ? line : lineNo(line), span.from);\n if (side == -1) { return from }\n }\n if (span.to != null) {\n to = Pos(lineObj ? line : lineNo(line), span.to);\n if (side == 1) { return to }\n }\n }\n return from && {from: from, to: to}\n };\n\n // Signals that the marker's widget changed, and surrounding layout\n // should be recomputed.\n TextMarker.prototype.changed = function () {\n var this$1 = this;\n\n var pos = this.find(-1, true), widget = this, cm = this.doc.cm;\n if (!pos || !cm) { return }\n runInOp(cm, function () {\n var line = pos.line, lineN = lineNo(pos.line);\n var view = findViewForLine(cm, lineN);\n if (view) {\n clearLineMeasurementCacheFor(view);\n cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;\n }\n cm.curOp.updateMaxLine = true;\n if (!lineIsHidden(widget.doc, line) && widget.height != null) {\n var oldHeight = widget.height;\n widget.height = null;\n var dHeight = widgetHeight(widget) - oldHeight;\n if (dHeight)\n { updateLineHeight(line, line.height + dHeight); }\n }\n signalLater(cm, \"markerChanged\", cm, this$1);\n });\n };\n\n TextMarker.prototype.attachLine = function (line) {\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp;\n if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)\n { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }\n }\n this.lines.push(line);\n };\n\n TextMarker.prototype.detachLine = function (line) {\n this.lines.splice(indexOf(this.lines, line), 1);\n if (!this.lines.length && this.doc.cm) {\n var op = this.doc.cm.curOp\n ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);\n }\n };\n eventMixin(TextMarker);\n\n // Create a marker, wire it up to the right lines, and\n function markText(doc, from, to, options, type) {\n // Shared markers (across linked documents) are handled separately\n // (markTextShared will call out to this again, once per\n // document).\n if (options && options.shared) { return markTextShared(doc, from, to, options, type) }\n // Ensure we are in an operation.\n if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }\n\n var marker = new TextMarker(doc, type), diff = cmp(from, to);\n if (options) { copyObj(options, marker, false); }\n // Don't connect empty markers unless clearWhenEmpty is false\n if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)\n { return marker }\n if (marker.replacedWith) {\n // Showing up as a widget implies collapsed (widget replaces text)\n marker.collapsed = true;\n marker.widgetNode = eltP(\"span\", [marker.replacedWith], \"CodeMirror-widget\");\n if (!options.handleMouseEvents) { marker.widgetNode.setAttribute(\"cm-ignore-events\", \"true\"); }\n if (options.insertLeft) { marker.widgetNode.insertLeft = true; }\n }\n if (marker.collapsed) {\n if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||\n from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))\n { throw new Error(\"Inserting collapsed marker partially overlapping an existing one\") }\n seeCollapsedSpans();\n }\n\n if (marker.addToHistory)\n { addChangeToHistory(doc, {from: from, to: to, origin: \"markText\"}, doc.sel, NaN); }\n\n var curLine = from.line, cm = doc.cm, updateMaxLine;\n doc.iter(curLine, to.line + 1, function (line) {\n if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)\n { updateMaxLine = true; }\n if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }\n addMarkedSpan(line, new MarkedSpan(marker,\n curLine == from.line ? from.ch : null,\n curLine == to.line ? to.ch : null), doc.cm && doc.cm.curOp);\n ++curLine;\n });\n // lineIsHidden depends on the presence of the spans, so needs a second pass\n if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {\n if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }\n }); }\n\n if (marker.clearOnEnter) { on(marker, \"beforeCursorEnter\", function () { return marker.clear(); }); }\n\n if (marker.readOnly) {\n seeReadOnlySpans();\n if (doc.history.done.length || doc.history.undone.length)\n { doc.clearHistory(); }\n }\n if (marker.collapsed) {\n marker.id = ++nextMarkerId;\n marker.atomic = true;\n }\n if (cm) {\n // Sync editor state\n if (updateMaxLine) { cm.curOp.updateMaxLine = true; }\n if (marker.collapsed)\n { regChange(cm, from.line, to.line + 1); }\n else if (marker.className || marker.startStyle || marker.endStyle || marker.css ||\n marker.attributes || marker.title)\n { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, \"text\"); } }\n if (marker.atomic) { reCheckSelection(cm.doc); }\n signalLater(cm, \"markerAdded\", cm, marker);\n }\n return marker\n }\n\n // SHARED TEXTMARKERS\n\n // A shared marker spans multiple linked documents. It is\n // implemented as a meta-marker-object controlling multiple normal\n // markers.\n var SharedTextMarker = function(markers, primary) {\n this.markers = markers;\n this.primary = primary;\n for (var i = 0; i < markers.length; ++i)\n { markers[i].parent = this; }\n };\n\n SharedTextMarker.prototype.clear = function () {\n if (this.explicitlyCleared) { return }\n this.explicitlyCleared = true;\n for (var i = 0; i < this.markers.length; ++i)\n { this.markers[i].clear(); }\n signalLater(this, \"clear\");\n };\n\n SharedTextMarker.prototype.find = function (side, lineObj) {\n return this.primary.find(side, lineObj)\n };\n eventMixin(SharedTextMarker);\n\n function markTextShared(doc, from, to, options, type) {\n options = copyObj(options);\n options.shared = false;\n var markers = [markText(doc, from, to, options, type)], primary = markers[0];\n var widget = options.widgetNode;\n linkedDocs(doc, function (doc) {\n if (widget) { options.widgetNode = widget.cloneNode(true); }\n markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));\n for (var i = 0; i < doc.linked.length; ++i)\n { if (doc.linked[i].isParent) { return } }\n primary = lst(markers);\n });\n return new SharedTextMarker(markers, primary)\n }\n\n function findSharedMarkers(doc) {\n return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })\n }\n\n function copySharedMarkers(doc, markers) {\n for (var i = 0; i < markers.length; i++) {\n var marker = markers[i], pos = marker.find();\n var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);\n if (cmp(mFrom, mTo)) {\n var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);\n marker.markers.push(subMark);\n subMark.parent = marker;\n }\n }\n }\n\n function detachSharedMarkers(markers) {\n var loop = function ( i ) {\n var marker = markers[i], linked = [marker.primary.doc];\n linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });\n for (var j = 0; j < marker.markers.length; j++) {\n var subMarker = marker.markers[j];\n if (indexOf(linked, subMarker.doc) == -1) {\n subMarker.parent = null;\n marker.markers.splice(j--, 1);\n }\n }\n };\n\n for (var i = 0; i < markers.length; i++) loop( i );\n }\n\n var nextDocId = 0;\n var Doc = function(text, mode, firstLine, lineSep, direction) {\n if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }\n if (firstLine == null) { firstLine = 0; }\n\n BranchChunk.call(this, [new LeafChunk([new Line(\"\", null)])]);\n this.first = firstLine;\n this.scrollTop = this.scrollLeft = 0;\n this.cantEdit = false;\n this.cleanGeneration = 1;\n this.modeFrontier = this.highlightFrontier = firstLine;\n var start = Pos(firstLine, 0);\n this.sel = simpleSelection(start);\n this.history = new History(null);\n this.id = ++nextDocId;\n this.modeOption = mode;\n this.lineSep = lineSep;\n this.direction = (direction == \"rtl\") ? \"rtl\" : \"ltr\";\n this.extend = false;\n\n if (typeof text == \"string\") { text = this.splitLines(text); }\n updateDoc(this, {from: start, to: start, text: text});\n setSelection(this, simpleSelection(start), sel_dontScroll);\n };\n\n Doc.prototype = createObj(BranchChunk.prototype, {\n constructor: Doc,\n // Iterate over the document. Supports two forms -- with only one\n // argument, it calls that for each line in the document. With\n // three, it iterates over the range given by the first two (with\n // the second being non-inclusive).\n iter: function(from, to, op) {\n if (op) { this.iterN(from - this.first, to - from, op); }\n else { this.iterN(this.first, this.first + this.size, from); }\n },\n\n // Non-public interface for adding and removing lines.\n insert: function(at, lines) {\n var height = 0;\n for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }\n this.insertInner(at - this.first, lines, height);\n },\n remove: function(at, n) { this.removeInner(at - this.first, n); },\n\n // From here, the methods are part of the public interface. Most\n // are also available from CodeMirror (editor) instances.\n\n getValue: function(lineSep) {\n var lines = getLines(this, this.first, this.first + this.size);\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n setValue: docMethodOp(function(code) {\n var top = Pos(this.first, 0), last = this.first + this.size - 1;\n makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),\n text: this.splitLines(code), origin: \"setValue\", full: true}, true);\n if (this.cm) { scrollToCoords(this.cm, 0, 0); }\n setSelection(this, simpleSelection(top), sel_dontScroll);\n }),\n replaceRange: function(code, from, to, origin) {\n from = clipPos(this, from);\n to = to ? clipPos(this, to) : from;\n replaceRange(this, code, from, to, origin);\n },\n getRange: function(from, to, lineSep) {\n var lines = getBetween(this, clipPos(this, from), clipPos(this, to));\n if (lineSep === false) { return lines }\n return lines.join(lineSep || this.lineSeparator())\n },\n\n getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},\n\n getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},\n getLineNumber: function(line) {return lineNo(line)},\n\n getLineHandleVisualStart: function(line) {\n if (typeof line == \"number\") { line = getLine(this, line); }\n return visualLine(line)\n },\n\n lineCount: function() {return this.size},\n firstLine: function() {return this.first},\n lastLine: function() {return this.first + this.size - 1},\n\n clipPos: function(pos) {return clipPos(this, pos)},\n\n getCursor: function(start) {\n var range = this.sel.primary(), pos;\n if (start == null || start == \"head\") { pos = range.head; }\n else if (start == \"anchor\") { pos = range.anchor; }\n else if (start == \"end\" || start == \"to\" || start === false) { pos = range.to(); }\n else { pos = range.from(); }\n return pos\n },\n listSelections: function() { return this.sel.ranges },\n somethingSelected: function() {return this.sel.somethingSelected()},\n\n setCursor: docMethodOp(function(line, ch, options) {\n setSimpleSelection(this, clipPos(this, typeof line == \"number\" ? Pos(line, ch || 0) : line), null, options);\n }),\n setSelection: docMethodOp(function(anchor, head, options) {\n setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);\n }),\n extendSelection: docMethodOp(function(head, other, options) {\n extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);\n }),\n extendSelections: docMethodOp(function(heads, options) {\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n extendSelectionsBy: docMethodOp(function(f, options) {\n var heads = map(this.sel.ranges, f);\n extendSelections(this, clipPosArray(this, heads), options);\n }),\n setSelections: docMethodOp(function(ranges, primary, options) {\n if (!ranges.length) { return }\n var out = [];\n for (var i = 0; i < ranges.length; i++)\n { out[i] = new Range(clipPos(this, ranges[i].anchor),\n clipPos(this, ranges[i].head || ranges[i].anchor)); }\n if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }\n setSelection(this, normalizeSelection(this.cm, out, primary), options);\n }),\n addSelection: docMethodOp(function(anchor, head, options) {\n var ranges = this.sel.ranges.slice(0);\n ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));\n setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);\n }),\n\n getSelection: function(lineSep) {\n var ranges = this.sel.ranges, lines;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n lines = lines ? lines.concat(sel) : sel;\n }\n if (lineSep === false) { return lines }\n else { return lines.join(lineSep || this.lineSeparator()) }\n },\n getSelections: function(lineSep) {\n var parts = [], ranges = this.sel.ranges;\n for (var i = 0; i < ranges.length; i++) {\n var sel = getBetween(this, ranges[i].from(), ranges[i].to());\n if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); }\n parts[i] = sel;\n }\n return parts\n },\n replaceSelection: function(code, collapse, origin) {\n var dup = [];\n for (var i = 0; i < this.sel.ranges.length; i++)\n { dup[i] = code; }\n this.replaceSelections(dup, collapse, origin || \"+input\");\n },\n replaceSelections: docMethodOp(function(code, collapse, origin) {\n var changes = [], sel = this.sel;\n for (var i = 0; i < sel.ranges.length; i++) {\n var range = sel.ranges[i];\n changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};\n }\n var newSel = collapse && collapse != \"end\" && computeReplacedSel(this, changes, collapse);\n for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)\n { makeChange(this, changes[i$1]); }\n if (newSel) { setSelectionReplaceHistory(this, newSel); }\n else if (this.cm) { ensureCursorVisible(this.cm); }\n }),\n undo: docMethodOp(function() {makeChangeFromHistory(this, \"undo\");}),\n redo: docMethodOp(function() {makeChangeFromHistory(this, \"redo\");}),\n undoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"undo\", true);}),\n redoSelection: docMethodOp(function() {makeChangeFromHistory(this, \"redo\", true);}),\n\n setExtending: function(val) {this.extend = val;},\n getExtending: function() {return this.extend},\n\n historySize: function() {\n var hist = this.history, done = 0, undone = 0;\n for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }\n for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }\n return {undo: done, redo: undone}\n },\n clearHistory: function() {\n var this$1 = this;\n\n this.history = new History(this.history);\n linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true);\n },\n\n markClean: function() {\n this.cleanGeneration = this.changeGeneration(true);\n },\n changeGeneration: function(forceSplit) {\n if (forceSplit)\n { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }\n return this.history.generation\n },\n isClean: function (gen) {\n return this.history.generation == (gen || this.cleanGeneration)\n },\n\n getHistory: function() {\n return {done: copyHistoryArray(this.history.done),\n undone: copyHistoryArray(this.history.undone)}\n },\n setHistory: function(histData) {\n var hist = this.history = new History(this.history);\n hist.done = copyHistoryArray(histData.done.slice(0), null, true);\n hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);\n },\n\n setGutterMarker: docMethodOp(function(line, gutterID, value) {\n return changeLine(this, line, \"gutter\", function (line) {\n var markers = line.gutterMarkers || (line.gutterMarkers = {});\n markers[gutterID] = value;\n if (!value && isEmpty(markers)) { line.gutterMarkers = null; }\n return true\n })\n }),\n\n clearGutter: docMethodOp(function(gutterID) {\n var this$1 = this;\n\n this.iter(function (line) {\n if (line.gutterMarkers && line.gutterMarkers[gutterID]) {\n changeLine(this$1, line, \"gutter\", function () {\n line.gutterMarkers[gutterID] = null;\n if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }\n return true\n });\n }\n });\n }),\n\n lineInfo: function(line) {\n var n;\n if (typeof line == \"number\") {\n if (!isLine(this, line)) { return null }\n n = line;\n line = getLine(this, line);\n if (!line) { return null }\n } else {\n n = lineNo(line);\n if (n == null) { return null }\n }\n return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,\n textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,\n widgets: line.widgets}\n },\n\n addLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n if (!line[prop]) { line[prop] = cls; }\n else if (classTest(cls).test(line[prop])) { return false }\n else { line[prop] += \" \" + cls; }\n return true\n })\n }),\n removeLineClass: docMethodOp(function(handle, where, cls) {\n return changeLine(this, handle, where == \"gutter\" ? \"gutter\" : \"class\", function (line) {\n var prop = where == \"text\" ? \"textClass\"\n : where == \"background\" ? \"bgClass\"\n : where == \"gutter\" ? \"gutterClass\" : \"wrapClass\";\n var cur = line[prop];\n if (!cur) { return false }\n else if (cls == null) { line[prop] = null; }\n else {\n var found = cur.match(classTest(cls));\n if (!found) { return false }\n var end = found.index + found[0].length;\n line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? \"\" : \" \") + cur.slice(end) || null;\n }\n return true\n })\n }),\n\n addLineWidget: docMethodOp(function(handle, node, options) {\n return addLineWidget(this, handle, node, options)\n }),\n removeLineWidget: function(widget) { widget.clear(); },\n\n markText: function(from, to, options) {\n return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || \"range\")\n },\n setBookmark: function(pos, options) {\n var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),\n insertLeft: options && options.insertLeft,\n clearWhenEmpty: false, shared: options && options.shared,\n handleMouseEvents: options && options.handleMouseEvents};\n pos = clipPos(this, pos);\n return markText(this, pos, pos, realOpts, \"bookmark\")\n },\n findMarksAt: function(pos) {\n pos = clipPos(this, pos);\n var markers = [], spans = getLine(this, pos.line).markedSpans;\n if (spans) { for (var i = 0; i < spans.length; ++i) {\n var span = spans[i];\n if ((span.from == null || span.from <= pos.ch) &&\n (span.to == null || span.to >= pos.ch))\n { markers.push(span.marker.parent || span.marker); }\n } }\n return markers\n },\n findMarks: function(from, to, filter) {\n from = clipPos(this, from); to = clipPos(this, to);\n var found = [], lineNo = from.line;\n this.iter(from.line, to.line + 1, function (line) {\n var spans = line.markedSpans;\n if (spans) { for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||\n span.from == null && lineNo != from.line ||\n span.from != null && lineNo == to.line && span.from >= to.ch) &&\n (!filter || filter(span.marker)))\n { found.push(span.marker.parent || span.marker); }\n } }\n ++lineNo;\n });\n return found\n },\n getAllMarks: function() {\n var markers = [];\n this.iter(function (line) {\n var sps = line.markedSpans;\n if (sps) { for (var i = 0; i < sps.length; ++i)\n { if (sps[i].from != null) { markers.push(sps[i].marker); } } }\n });\n return markers\n },\n\n posFromIndex: function(off) {\n var ch, lineNo = this.first, sepSize = this.lineSeparator().length;\n this.iter(function (line) {\n var sz = line.text.length + sepSize;\n if (sz > off) { ch = off; return true }\n off -= sz;\n ++lineNo;\n });\n return clipPos(this, Pos(lineNo, ch))\n },\n indexFromPos: function (coords) {\n coords = clipPos(this, coords);\n var index = coords.ch;\n if (coords.line < this.first || coords.ch < 0) { return 0 }\n var sepSize = this.lineSeparator().length;\n this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value\n index += line.text.length + sepSize;\n });\n return index\n },\n\n copy: function(copyHistory) {\n var doc = new Doc(getLines(this, this.first, this.first + this.size),\n this.modeOption, this.first, this.lineSep, this.direction);\n doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;\n doc.sel = this.sel;\n doc.extend = false;\n if (copyHistory) {\n doc.history.undoDepth = this.history.undoDepth;\n doc.setHistory(this.getHistory());\n }\n return doc\n },\n\n linkedDoc: function(options) {\n if (!options) { options = {}; }\n var from = this.first, to = this.first + this.size;\n if (options.from != null && options.from > from) { from = options.from; }\n if (options.to != null && options.to < to) { to = options.to; }\n var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);\n if (options.sharedHist) { copy.history = this.history\n ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});\n copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];\n copySharedMarkers(copy, findSharedMarkers(this));\n return copy\n },\n unlinkDoc: function(other) {\n if (other instanceof CodeMirror) { other = other.doc; }\n if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {\n var link = this.linked[i];\n if (link.doc != other) { continue }\n this.linked.splice(i, 1);\n other.unlinkDoc(this);\n detachSharedMarkers(findSharedMarkers(this));\n break\n } }\n // If the histories were shared, split them again\n if (other.history == this.history) {\n var splitIds = [other.id];\n linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);\n other.history = new History(null);\n other.history.done = copyHistoryArray(this.history.done, splitIds);\n other.history.undone = copyHistoryArray(this.history.undone, splitIds);\n }\n },\n iterLinkedDocs: function(f) {linkedDocs(this, f);},\n\n getMode: function() {return this.mode},\n getEditor: function() {return this.cm},\n\n splitLines: function(str) {\n if (this.lineSep) { return str.split(this.lineSep) }\n return splitLinesAuto(str)\n },\n lineSeparator: function() { return this.lineSep || \"\\n\" },\n\n setDirection: docMethodOp(function (dir) {\n if (dir != \"rtl\") { dir = \"ltr\"; }\n if (dir == this.direction) { return }\n this.direction = dir;\n this.iter(function (line) { return line.order = null; });\n if (this.cm) { directionChanged(this.cm); }\n })\n });\n\n // Public alias.\n Doc.prototype.eachLine = Doc.prototype.iter;\n\n // Kludge to work around strange IE behavior where it'll sometimes\n // re-fire a series of drag-related events right after the drop (#1551)\n var lastDrop = 0;\n\n function onDrop(e) {\n var cm = this;\n clearDragCursor(cm);\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))\n { return }\n e_preventDefault(e);\n if (ie) { lastDrop = +new Date; }\n var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;\n if (!pos || cm.isReadOnly()) { return }\n // Might be a file drop, in which case we simply extract the text\n // and insert it.\n if (files && files.length && window.FileReader && window.File) {\n var n = files.length, text = Array(n), read = 0;\n var markAsReadAndPasteIfAllFilesAreRead = function () {\n if (++read == n) {\n operation(cm, function () {\n pos = clipPos(cm.doc, pos);\n var change = {from: pos, to: pos,\n text: cm.doc.splitLines(\n text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())),\n origin: \"paste\"};\n makeChange(cm.doc, change);\n setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change))));\n })();\n }\n };\n var readTextFromFile = function (file, i) {\n if (cm.options.allowDropFileTypes &&\n indexOf(cm.options.allowDropFileTypes, file.type) == -1) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n var reader = new FileReader;\n reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); };\n reader.onload = function () {\n var content = reader.result;\n if (/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(content)) {\n markAsReadAndPasteIfAllFilesAreRead();\n return\n }\n text[i] = content;\n markAsReadAndPasteIfAllFilesAreRead();\n };\n reader.readAsText(file);\n };\n for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); }\n } else { // Normal drop\n // Don't do a replace if the drop happened inside of the selected text.\n if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {\n cm.state.draggingText(e);\n // Ensure the editor is re-focused\n setTimeout(function () { return cm.display.input.focus(); }, 20);\n return\n }\n try {\n var text$1 = e.dataTransfer.getData(\"Text\");\n if (text$1) {\n var selected;\n if (cm.state.draggingText && !cm.state.draggingText.copy)\n { selected = cm.listSelections(); }\n setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));\n if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)\n { replaceRange(cm.doc, \"\", selected[i$1].anchor, selected[i$1].head, \"drag\"); } }\n cm.replaceSelection(text$1, \"around\", \"paste\");\n cm.display.input.focus();\n }\n }\n catch(e$1){}\n }\n }\n\n function onDragStart(cm, e) {\n if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }\n if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }\n\n e.dataTransfer.setData(\"Text\", cm.getSelection());\n e.dataTransfer.effectAllowed = \"copyMove\";\n\n // Use dummy image instead of default browsers image.\n // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.\n if (e.dataTransfer.setDragImage && !safari) {\n var img = elt(\"img\", null, null, \"position: fixed; left: 0; top: 0;\");\n img.src = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n if (presto) {\n img.width = img.height = 1;\n cm.display.wrapper.appendChild(img);\n // Force a relayout, or Opera won't use our image for some obscure reason\n img._top = img.offsetTop;\n }\n e.dataTransfer.setDragImage(img, 0, 0);\n if (presto) { img.parentNode.removeChild(img); }\n }\n }\n\n function onDragOver(cm, e) {\n var pos = posFromMouse(cm, e);\n if (!pos) { return }\n var frag = document.createDocumentFragment();\n drawSelectionCursor(cm, pos, frag);\n if (!cm.display.dragCursor) {\n cm.display.dragCursor = elt(\"div\", null, \"CodeMirror-cursors CodeMirror-dragcursors\");\n cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);\n }\n removeChildrenAndAdd(cm.display.dragCursor, frag);\n }\n\n function clearDragCursor(cm) {\n if (cm.display.dragCursor) {\n cm.display.lineSpace.removeChild(cm.display.dragCursor);\n cm.display.dragCursor = null;\n }\n }\n\n // These must be handled carefully, because naively registering a\n // handler for each editor will cause the editors to never be\n // garbage collected.\n\n function forEachCodeMirror(f) {\n if (!document.getElementsByClassName) { return }\n var byClass = document.getElementsByClassName(\"CodeMirror\"), editors = [];\n for (var i = 0; i < byClass.length; i++) {\n var cm = byClass[i].CodeMirror;\n if (cm) { editors.push(cm); }\n }\n if (editors.length) { editors[0].operation(function () {\n for (var i = 0; i < editors.length; i++) { f(editors[i]); }\n }); }\n }\n\n var globalsRegistered = false;\n function ensureGlobalHandlers() {\n if (globalsRegistered) { return }\n registerGlobalHandlers();\n globalsRegistered = true;\n }\n function registerGlobalHandlers() {\n // When the window resizes, we need to refresh active editors.\n var resizeTimer;\n on(window, \"resize\", function () {\n if (resizeTimer == null) { resizeTimer = setTimeout(function () {\n resizeTimer = null;\n forEachCodeMirror(onResize);\n }, 100); }\n });\n // When the window loses focus, we want to show the editor as blurred\n on(window, \"blur\", function () { return forEachCodeMirror(onBlur); });\n }\n // Called when the window resizes\n function onResize(cm) {\n var d = cm.display;\n // Might be a text scaling operation, clear size caches.\n d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;\n d.scrollbarsClipped = false;\n cm.setSize();\n }\n\n var keyNames = {\n 3: \"Pause\", 8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 16: \"Shift\", 17: \"Ctrl\", 18: \"Alt\",\n 19: \"Pause\", 20: \"CapsLock\", 27: \"Esc\", 32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\",\n 36: \"Home\", 37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"PrintScrn\", 45: \"Insert\",\n 46: \"Delete\", 59: \";\", 61: \"=\", 91: \"Mod\", 92: \"Mod\", 93: \"Mod\",\n 106: \"*\", 107: \"=\", 109: \"-\", 110: \".\", 111: \"/\", 145: \"ScrollLock\",\n 173: \"-\", 186: \";\", 187: \"=\", 188: \",\", 189: \"-\", 190: \".\", 191: \"/\", 192: \"`\", 219: \"[\", 220: \"\\\\\",\n 221: \"]\", 222: \"'\", 224: \"Mod\", 63232: \"Up\", 63233: \"Down\", 63234: \"Left\", 63235: \"Right\", 63272: \"Delete\",\n 63273: \"Home\", 63275: \"End\", 63276: \"PageUp\", 63277: \"PageDown\", 63302: \"Insert\"\n };\n\n // Number keys\n for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }\n // Alphabetic keys\n for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }\n // Function keys\n for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = \"F\" + i$2; }\n\n var keyMap = {};\n\n keyMap.basic = {\n \"Left\": \"goCharLeft\", \"Right\": \"goCharRight\", \"Up\": \"goLineUp\", \"Down\": \"goLineDown\",\n \"End\": \"goLineEnd\", \"Home\": \"goLineStartSmart\", \"PageUp\": \"goPageUp\", \"PageDown\": \"goPageDown\",\n \"Delete\": \"delCharAfter\", \"Backspace\": \"delCharBefore\", \"Shift-Backspace\": \"delCharBefore\",\n \"Tab\": \"defaultTab\", \"Shift-Tab\": \"indentAuto\",\n \"Enter\": \"newlineAndIndent\", \"Insert\": \"toggleOverwrite\",\n \"Esc\": \"singleSelection\"\n };\n // Note that the save and find-related commands aren't defined by\n // default. User code or addons can define them. Unknown commands\n // are simply ignored.\n keyMap.pcDefault = {\n \"Ctrl-A\": \"selectAll\", \"Ctrl-D\": \"deleteLine\", \"Ctrl-Z\": \"undo\", \"Shift-Ctrl-Z\": \"redo\", \"Ctrl-Y\": \"redo\",\n \"Ctrl-Home\": \"goDocStart\", \"Ctrl-End\": \"goDocEnd\", \"Ctrl-Up\": \"goLineUp\", \"Ctrl-Down\": \"goLineDown\",\n \"Ctrl-Left\": \"goGroupLeft\", \"Ctrl-Right\": \"goGroupRight\", \"Alt-Left\": \"goLineStart\", \"Alt-Right\": \"goLineEnd\",\n \"Ctrl-Backspace\": \"delGroupBefore\", \"Ctrl-Delete\": \"delGroupAfter\", \"Ctrl-S\": \"save\", \"Ctrl-F\": \"find\",\n \"Ctrl-G\": \"findNext\", \"Shift-Ctrl-G\": \"findPrev\", \"Shift-Ctrl-F\": \"replace\", \"Shift-Ctrl-R\": \"replaceAll\",\n \"Ctrl-[\": \"indentLess\", \"Ctrl-]\": \"indentMore\",\n \"Ctrl-U\": \"undoSelection\", \"Shift-Ctrl-U\": \"redoSelection\", \"Alt-U\": \"redoSelection\",\n \"fallthrough\": \"basic\"\n };\n // Very basic readline/emacs-style bindings, which are standard on Mac.\n keyMap.emacsy = {\n \"Ctrl-F\": \"goCharRight\", \"Ctrl-B\": \"goCharLeft\", \"Ctrl-P\": \"goLineUp\", \"Ctrl-N\": \"goLineDown\",\n \"Ctrl-A\": \"goLineStart\", \"Ctrl-E\": \"goLineEnd\", \"Ctrl-V\": \"goPageDown\", \"Shift-Ctrl-V\": \"goPageUp\",\n \"Ctrl-D\": \"delCharAfter\", \"Ctrl-H\": \"delCharBefore\", \"Alt-Backspace\": \"delWordBefore\", \"Ctrl-K\": \"killLine\",\n \"Ctrl-T\": \"transposeChars\", \"Ctrl-O\": \"openLine\"\n };\n keyMap.macDefault = {\n \"Cmd-A\": \"selectAll\", \"Cmd-D\": \"deleteLine\", \"Cmd-Z\": \"undo\", \"Shift-Cmd-Z\": \"redo\", \"Cmd-Y\": \"redo\",\n \"Cmd-Home\": \"goDocStart\", \"Cmd-Up\": \"goDocStart\", \"Cmd-End\": \"goDocEnd\", \"Cmd-Down\": \"goDocEnd\", \"Alt-Left\": \"goGroupLeft\",\n \"Alt-Right\": \"goGroupRight\", \"Cmd-Left\": \"goLineLeft\", \"Cmd-Right\": \"goLineRight\", \"Alt-Backspace\": \"delGroupBefore\",\n \"Ctrl-Alt-Backspace\": \"delGroupAfter\", \"Alt-Delete\": \"delGroupAfter\", \"Cmd-S\": \"save\", \"Cmd-F\": \"find\",\n \"Cmd-G\": \"findNext\", \"Shift-Cmd-G\": \"findPrev\", \"Cmd-Alt-F\": \"replace\", \"Shift-Cmd-Alt-F\": \"replaceAll\",\n \"Cmd-[\": \"indentLess\", \"Cmd-]\": \"indentMore\", \"Cmd-Backspace\": \"delWrappedLineLeft\", \"Cmd-Delete\": \"delWrappedLineRight\",\n \"Cmd-U\": \"undoSelection\", \"Shift-Cmd-U\": \"redoSelection\", \"Ctrl-Up\": \"goDocStart\", \"Ctrl-Down\": \"goDocEnd\",\n \"fallthrough\": [\"basic\", \"emacsy\"]\n };\n keyMap[\"default\"] = mac ? keyMap.macDefault : keyMap.pcDefault;\n\n // KEYMAP DISPATCH\n\n function normalizeKeyName(name) {\n var parts = name.split(/-(?!$)/);\n name = parts[parts.length - 1];\n var alt, ctrl, shift, cmd;\n for (var i = 0; i < parts.length - 1; i++) {\n var mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }\n else if (/^a(lt)?$/i.test(mod)) { alt = true; }\n else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }\n else if (/^s(hift)?$/i.test(mod)) { shift = true; }\n else { throw new Error(\"Unrecognized modifier name: \" + mod) }\n }\n if (alt) { name = \"Alt-\" + name; }\n if (ctrl) { name = \"Ctrl-\" + name; }\n if (cmd) { name = \"Cmd-\" + name; }\n if (shift) { name = \"Shift-\" + name; }\n return name\n }\n\n // This is a kludge to keep keymaps mostly working as raw objects\n // (backwards compatibility) while at the same time support features\n // like normalization and multi-stroke key bindings. It compiles a\n // new normalized keymap, and then updates the old object to reflect\n // this.\n function normalizeKeyMap(keymap) {\n var copy = {};\n for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {\n var value = keymap[keyname];\n if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }\n if (value == \"...\") { delete keymap[keyname]; continue }\n\n var keys = map(keyname.split(\" \"), normalizeKeyName);\n for (var i = 0; i < keys.length; i++) {\n var val = (void 0), name = (void 0);\n if (i == keys.length - 1) {\n name = keys.join(\" \");\n val = value;\n } else {\n name = keys.slice(0, i + 1).join(\" \");\n val = \"...\";\n }\n var prev = copy[name];\n if (!prev) { copy[name] = val; }\n else if (prev != val) { throw new Error(\"Inconsistent bindings for \" + name) }\n }\n delete keymap[keyname];\n } }\n for (var prop in copy) { keymap[prop] = copy[prop]; }\n return keymap\n }\n\n function lookupKey(key, map, handle, context) {\n map = getKeyMap(map);\n var found = map.call ? map.call(key, context) : map[key];\n if (found === false) { return \"nothing\" }\n if (found === \"...\") { return \"multi\" }\n if (found != null && handle(found)) { return \"handled\" }\n\n if (map.fallthrough) {\n if (Object.prototype.toString.call(map.fallthrough) != \"[object Array]\")\n { return lookupKey(key, map.fallthrough, handle, context) }\n for (var i = 0; i < map.fallthrough.length; i++) {\n var result = lookupKey(key, map.fallthrough[i], handle, context);\n if (result) { return result }\n }\n }\n }\n\n // Modifier key presses don't count as 'real' key presses for the\n // purpose of keymap fallthrough.\n function isModifierKey(value) {\n var name = typeof value == \"string\" ? value : keyNames[value.keyCode];\n return name == \"Ctrl\" || name == \"Alt\" || name == \"Shift\" || name == \"Mod\"\n }\n\n function addModifierNames(name, event, noShift) {\n var base = name;\n if (event.altKey && base != \"Alt\") { name = \"Alt-\" + name; }\n if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != \"Ctrl\") { name = \"Ctrl-\" + name; }\n if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != \"Mod\") { name = \"Cmd-\" + name; }\n if (!noShift && event.shiftKey && base != \"Shift\") { name = \"Shift-\" + name; }\n return name\n }\n\n // Look up the name of a key as indicated by an event object.\n function keyName(event, noShift) {\n if (presto && event.keyCode == 34 && event[\"char\"]) { return false }\n var name = keyNames[event.keyCode];\n if (name == null || event.altGraphKey) { return false }\n // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,\n // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)\n if (event.keyCode == 3 && event.code) { name = event.code; }\n return addModifierNames(name, event, noShift)\n }\n\n function getKeyMap(val) {\n return typeof val == \"string\" ? keyMap[val] : val\n }\n\n // Helper for deleting text near the selection(s), used to implement\n // backspace, delete, and similar functionality.\n function deleteNearSelection(cm, compute) {\n var ranges = cm.doc.sel.ranges, kill = [];\n // Build up a set of ranges to kill first, merging overlapping\n // ranges.\n for (var i = 0; i < ranges.length; i++) {\n var toKill = compute(ranges[i]);\n while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {\n var replaced = kill.pop();\n if (cmp(replaced.from, toKill.from) < 0) {\n toKill.from = replaced.from;\n break\n }\n }\n kill.push(toKill);\n }\n // Next, remove those actual ranges.\n runInOp(cm, function () {\n for (var i = kill.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, \"\", kill[i].from, kill[i].to, \"+delete\"); }\n ensureCursorVisible(cm);\n });\n }\n\n function moveCharLogically(line, ch, dir) {\n var target = skipExtendingChars(line.text, ch + dir, dir);\n return target < 0 || target > line.text.length ? null : target\n }\n\n function moveLogically(line, start, dir) {\n var ch = moveCharLogically(line, start.ch, dir);\n return ch == null ? null : new Pos(start.line, ch, dir < 0 ? \"after\" : \"before\")\n }\n\n function endOfLine(visually, cm, lineObj, lineNo, dir) {\n if (visually) {\n if (cm.doc.direction == \"rtl\") { dir = -dir; }\n var order = getOrder(lineObj, cm.doc.direction);\n if (order) {\n var part = dir < 0 ? lst(order) : order[0];\n var moveInStorageOrder = (dir < 0) == (part.level == 1);\n var sticky = moveInStorageOrder ? \"after\" : \"before\";\n var ch;\n // With a wrapped rtl chunk (possibly spanning multiple bidi parts),\n // it could be that the last bidi part is not on the last visual line,\n // since visual lines contain content order-consecutive chunks.\n // Thus, in rtl, we are looking for the first (content-order) character\n // in the rtl chunk that is on the last line (that is, the same line\n // as the last (content-order) character).\n if (part.level > 0 || cm.doc.direction == \"rtl\") {\n var prep = prepareMeasureForLine(cm, lineObj);\n ch = dir < 0 ? lineObj.text.length - 1 : 0;\n var targetTop = measureCharPrepared(cm, prep, ch).top;\n ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);\n if (sticky == \"before\") { ch = moveCharLogically(lineObj, ch, 1); }\n } else { ch = dir < 0 ? part.to : part.from; }\n return new Pos(lineNo, ch, sticky)\n }\n }\n return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? \"before\" : \"after\")\n }\n\n function moveVisually(cm, line, start, dir) {\n var bidi = getOrder(line, cm.doc.direction);\n if (!bidi) { return moveLogically(line, start, dir) }\n if (start.ch >= line.text.length) {\n start.ch = line.text.length;\n start.sticky = \"before\";\n } else if (start.ch <= 0) {\n start.ch = 0;\n start.sticky = \"after\";\n }\n var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];\n if (cm.doc.direction == \"ltr\" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {\n // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,\n // nothing interesting happens.\n return moveLogically(line, start, dir)\n }\n\n var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };\n var prep;\n var getWrappedLineExtent = function (ch) {\n if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }\n prep = prep || prepareMeasureForLine(cm, line);\n return wrappedLineExtentChar(cm, line, prep, ch)\n };\n var wrappedLineExtent = getWrappedLineExtent(start.sticky == \"before\" ? mv(start, -1) : start.ch);\n\n if (cm.doc.direction == \"rtl\" || part.level == 1) {\n var moveInStorageOrder = (part.level == 1) == (dir < 0);\n var ch = mv(start, moveInStorageOrder ? 1 : -1);\n if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {\n // Case 2: We move within an rtl part or in an rtl editor on the same visual line\n var sticky = moveInStorageOrder ? \"before\" : \"after\";\n return new Pos(start.line, ch, sticky)\n }\n }\n\n // Case 3: Could not move within this bidi part in this visual line, so leave\n // the current bidi part\n\n var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {\n var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder\n ? new Pos(start.line, mv(ch, 1), \"before\")\n : new Pos(start.line, ch, \"after\"); };\n\n for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {\n var part = bidi[partPos];\n var moveInStorageOrder = (dir > 0) == (part.level != 1);\n var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);\n if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }\n ch = moveInStorageOrder ? part.from : mv(part.to, -1);\n if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }\n }\n };\n\n // Case 3a: Look for other bidi parts on the same visual line\n var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);\n if (res) { return res }\n\n // Case 3b: Look for other bidi parts on the next visual line\n var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);\n if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {\n res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));\n if (res) { return res }\n }\n\n // Case 4: Nowhere to move\n return null\n }\n\n // Commands are parameter-less actions that can be performed on an\n // editor, mostly used for keybindings.\n var commands = {\n selectAll: selectAll,\n singleSelection: function (cm) { return cm.setSelection(cm.getCursor(\"anchor\"), cm.getCursor(\"head\"), sel_dontScroll); },\n killLine: function (cm) { return deleteNearSelection(cm, function (range) {\n if (range.empty()) {\n var len = getLine(cm.doc, range.head.line).text.length;\n if (range.head.ch == len && range.head.line < cm.lastLine())\n { return {from: range.head, to: Pos(range.head.line + 1, 0)} }\n else\n { return {from: range.head, to: Pos(range.head.line, len)} }\n } else {\n return {from: range.from(), to: range.to()}\n }\n }); },\n deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0),\n to: clipPos(cm.doc, Pos(range.to().line + 1, 0))\n }); }); },\n delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({\n from: Pos(range.from().line, 0), to: range.from()\n }); }); },\n delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var leftPos = cm.coordsChar({left: 0, top: top}, \"div\");\n return {from: leftPos, to: range.from()}\n }); },\n delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {\n var top = cm.charCoords(range.head, \"div\").top + 5;\n var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\");\n return {from: range.from(), to: rightPos }\n }); },\n undo: function (cm) { return cm.undo(); },\n redo: function (cm) { return cm.redo(); },\n undoSelection: function (cm) { return cm.undoSelection(); },\n redoSelection: function (cm) { return cm.redoSelection(); },\n goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },\n goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },\n goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },\n {origin: \"+move\", bias: 1}\n ); },\n goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },\n {origin: \"+move\", bias: -1}\n ); },\n goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, \"div\")\n }, sel_move); },\n goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n return cm.coordsChar({left: 0, top: top}, \"div\")\n }, sel_move); },\n goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {\n var top = cm.cursorCoords(range.head, \"div\").top + 5;\n var pos = cm.coordsChar({left: 0, top: top}, \"div\");\n if (pos.ch < cm.getLine(pos.line).search(/\\S/)) { return lineStartSmart(cm, range.head) }\n return pos\n }, sel_move); },\n goLineUp: function (cm) { return cm.moveV(-1, \"line\"); },\n goLineDown: function (cm) { return cm.moveV(1, \"line\"); },\n goPageUp: function (cm) { return cm.moveV(-1, \"page\"); },\n goPageDown: function (cm) { return cm.moveV(1, \"page\"); },\n goCharLeft: function (cm) { return cm.moveH(-1, \"char\"); },\n goCharRight: function (cm) { return cm.moveH(1, \"char\"); },\n goColumnLeft: function (cm) { return cm.moveH(-1, \"column\"); },\n goColumnRight: function (cm) { return cm.moveH(1, \"column\"); },\n goWordLeft: function (cm) { return cm.moveH(-1, \"word\"); },\n goGroupRight: function (cm) { return cm.moveH(1, \"group\"); },\n goGroupLeft: function (cm) { return cm.moveH(-1, \"group\"); },\n goWordRight: function (cm) { return cm.moveH(1, \"word\"); },\n delCharBefore: function (cm) { return cm.deleteH(-1, \"codepoint\"); },\n delCharAfter: function (cm) { return cm.deleteH(1, \"char\"); },\n delWordBefore: function (cm) { return cm.deleteH(-1, \"word\"); },\n delWordAfter: function (cm) { return cm.deleteH(1, \"word\"); },\n delGroupBefore: function (cm) { return cm.deleteH(-1, \"group\"); },\n delGroupAfter: function (cm) { return cm.deleteH(1, \"group\"); },\n indentAuto: function (cm) { return cm.indentSelection(\"smart\"); },\n indentMore: function (cm) { return cm.indentSelection(\"add\"); },\n indentLess: function (cm) { return cm.indentSelection(\"subtract\"); },\n insertTab: function (cm) { return cm.replaceSelection(\"\\t\"); },\n insertSoftTab: function (cm) {\n var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;\n for (var i = 0; i < ranges.length; i++) {\n var pos = ranges[i].from();\n var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);\n spaces.push(spaceStr(tabSize - col % tabSize));\n }\n cm.replaceSelections(spaces);\n },\n defaultTab: function (cm) {\n if (cm.somethingSelected()) { cm.indentSelection(\"add\"); }\n else { cm.execCommand(\"insertTab\"); }\n },\n // Swap the two chars left and right of each selection's head.\n // Move cursor behind the two swapped characters afterwards.\n //\n // Doesn't consider line feeds a character.\n // Doesn't scan more than one line above to find a character.\n // Doesn't do anything on an empty line.\n // Doesn't do anything with non-empty selections.\n transposeChars: function (cm) { return runInOp(cm, function () {\n var ranges = cm.listSelections(), newSel = [];\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) { continue }\n var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;\n if (line) {\n if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }\n if (cur.ch > 0) {\n cur = new Pos(cur.line, cur.ch + 1);\n cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),\n Pos(cur.line, cur.ch - 2), cur, \"+transpose\");\n } else if (cur.line > cm.doc.first) {\n var prev = getLine(cm.doc, cur.line - 1).text;\n if (prev) {\n cur = new Pos(cur.line, 1);\n cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +\n prev.charAt(prev.length - 1),\n Pos(cur.line - 1, prev.length - 1), cur, \"+transpose\");\n }\n }\n }\n newSel.push(new Range(cur, cur));\n }\n cm.setSelections(newSel);\n }); },\n newlineAndIndent: function (cm) { return runInOp(cm, function () {\n var sels = cm.listSelections();\n for (var i = sels.length - 1; i >= 0; i--)\n { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, \"+input\"); }\n sels = cm.listSelections();\n for (var i$1 = 0; i$1 < sels.length; i$1++)\n { cm.indentLine(sels[i$1].from().line, null, true); }\n ensureCursorVisible(cm);\n }); },\n openLine: function (cm) { return cm.replaceSelection(\"\\n\", \"start\"); },\n toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }\n };\n\n\n function lineStart(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLine(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, visual, lineN, 1)\n }\n function lineEnd(cm, lineN) {\n var line = getLine(cm.doc, lineN);\n var visual = visualLineEnd(line);\n if (visual != line) { lineN = lineNo(visual); }\n return endOfLine(true, cm, line, lineN, -1)\n }\n function lineStartSmart(cm, pos) {\n var start = lineStart(cm, pos.line);\n var line = getLine(cm.doc, start.line);\n var order = getOrder(line, cm.doc.direction);\n if (!order || order[0].level == 0) {\n var firstNonWS = Math.max(start.ch, line.text.search(/\\S/));\n var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;\n return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)\n }\n return start\n }\n\n // Run a handler that was bound to a key.\n function doHandleBinding(cm, bound, dropShift) {\n if (typeof bound == \"string\") {\n bound = commands[bound];\n if (!bound) { return false }\n }\n // Ensure previous input has been read, so that the handler sees a\n // consistent view of the document\n cm.display.input.ensurePolled();\n var prevShift = cm.display.shift, done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n if (dropShift) { cm.display.shift = false; }\n done = bound(cm) != Pass;\n } finally {\n cm.display.shift = prevShift;\n cm.state.suppressEdits = false;\n }\n return done\n }\n\n function lookupKeyForEditor(cm, name, handle) {\n for (var i = 0; i < cm.state.keyMaps.length; i++) {\n var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);\n if (result) { return result }\n }\n return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))\n || lookupKey(name, cm.options.keyMap, handle, cm)\n }\n\n // Note that, despite the name, this function is also used to check\n // for bound mouse clicks.\n\n var stopSeq = new Delayed;\n\n function dispatchKey(cm, name, e, handle) {\n var seq = cm.state.keySeq;\n if (seq) {\n if (isModifierKey(name)) { return \"handled\" }\n if (/\\'$/.test(name))\n { cm.state.keySeq = null; }\n else\n { stopSeq.set(50, function () {\n if (cm.state.keySeq == seq) {\n cm.state.keySeq = null;\n cm.display.input.reset();\n }\n }); }\n if (dispatchKeyInner(cm, seq + \" \" + name, e, handle)) { return true }\n }\n return dispatchKeyInner(cm, name, e, handle)\n }\n\n function dispatchKeyInner(cm, name, e, handle) {\n var result = lookupKeyForEditor(cm, name, handle);\n\n if (result == \"multi\")\n { cm.state.keySeq = name; }\n if (result == \"handled\")\n { signalLater(cm, \"keyHandled\", cm, name, e); }\n\n if (result == \"handled\" || result == \"multi\") {\n e_preventDefault(e);\n restartBlink(cm);\n }\n\n return !!result\n }\n\n // Handle a key from the keydown event.\n function handleKeyBinding(cm, e) {\n var name = keyName(e, true);\n if (!name) { return false }\n\n if (e.shiftKey && !cm.state.keySeq) {\n // First try to resolve full name (including 'Shift-'). Failing\n // that, see if there is a cursor-motion command (starting with\n // 'go') bound to the keyname without 'Shift-'.\n return dispatchKey(cm, \"Shift-\" + name, e, function (b) { return doHandleBinding(cm, b, true); })\n || dispatchKey(cm, name, e, function (b) {\n if (typeof b == \"string\" ? /^go[A-Z]/.test(b) : b.motion)\n { return doHandleBinding(cm, b) }\n })\n } else {\n return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })\n }\n }\n\n // Handle a key from the keypress event\n function handleCharBinding(cm, e, ch) {\n return dispatchKey(cm, \"'\" + ch + \"'\", e, function (b) { return doHandleBinding(cm, b, true); })\n }\n\n var lastStoppedKey = null;\n function onKeyDown(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n cm.curOp.focus = activeElt();\n if (signalDOMEvent(cm, e)) { return }\n // IE does strange things with escape.\n if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }\n var code = e.keyCode;\n cm.display.shift = code == 16 || e.shiftKey;\n var handled = handleKeyBinding(cm, e);\n if (presto) {\n lastStoppedKey = handled ? code : null;\n // Opera has no cut event... we try to at least catch the key combo\n if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))\n { cm.replaceSelection(\"\", null, \"cut\"); }\n }\n if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand)\n { document.execCommand(\"cut\"); }\n\n // Turn mouse into crosshair when Alt is held on Mac.\n if (code == 18 && !/\\bCodeMirror-crosshair\\b/.test(cm.display.lineDiv.className))\n { showCrossHair(cm); }\n }\n\n function showCrossHair(cm) {\n var lineDiv = cm.display.lineDiv;\n addClass(lineDiv, \"CodeMirror-crosshair\");\n\n function up(e) {\n if (e.keyCode == 18 || !e.altKey) {\n rmClass(lineDiv, \"CodeMirror-crosshair\");\n off(document, \"keyup\", up);\n off(document, \"mouseover\", up);\n }\n }\n on(document, \"keyup\", up);\n on(document, \"mouseover\", up);\n }\n\n function onKeyUp(e) {\n if (e.keyCode == 16) { this.doc.sel.shift = false; }\n signalDOMEvent(this, e);\n }\n\n function onKeyPress(e) {\n var cm = this;\n if (e.target && e.target != cm.display.input.getField()) { return }\n if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }\n var keyCode = e.keyCode, charCode = e.charCode;\n if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}\n if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }\n var ch = String.fromCharCode(charCode == null ? keyCode : charCode);\n // Some browsers fire keypress events for backspace\n if (ch == \"\\x08\") { return }\n if (handleCharBinding(cm, e, ch)) { return }\n cm.display.input.onKeyPress(e);\n }\n\n var DOUBLECLICK_DELAY = 400;\n\n var PastClick = function(time, pos, button) {\n this.time = time;\n this.pos = pos;\n this.button = button;\n };\n\n PastClick.prototype.compare = function (time, pos, button) {\n return this.time + DOUBLECLICK_DELAY > time &&\n cmp(pos, this.pos) == 0 && button == this.button\n };\n\n var lastClick, lastDoubleClick;\n function clickRepeat(pos, button) {\n var now = +new Date;\n if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {\n lastClick = lastDoubleClick = null;\n return \"triple\"\n } else if (lastClick && lastClick.compare(now, pos, button)) {\n lastDoubleClick = new PastClick(now, pos, button);\n lastClick = null;\n return \"double\"\n } else {\n lastClick = new PastClick(now, pos, button);\n lastDoubleClick = null;\n return \"single\"\n }\n }\n\n // A mouse down can be a single click, double click, triple click,\n // start of selection drag, start of text drag, new cursor\n // (ctrl-click), rectangle drag (alt-drag), or xwin\n // middle-click-paste. Or it might be a click on something we should\n // not interfere with, such as a scrollbar or widget.\n function onMouseDown(e) {\n var cm = this, display = cm.display;\n if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }\n display.input.ensurePolled();\n display.shift = e.shiftKey;\n\n if (eventInWidget(display, e)) {\n if (!webkit) {\n // Briefly turn off draggability, to allow widgets to do\n // normal dragging things.\n display.scroller.draggable = false;\n setTimeout(function () { return display.scroller.draggable = true; }, 100);\n }\n return\n }\n if (clickInGutter(cm, e)) { return }\n var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : \"single\";\n window.focus();\n\n // #3261: make sure, that we're not starting a second selection\n if (button == 1 && cm.state.selectingText)\n { cm.state.selectingText(e); }\n\n if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }\n\n if (button == 1) {\n if (pos) { leftButtonDown(cm, pos, repeat, e); }\n else if (e_target(e) == display.scroller) { e_preventDefault(e); }\n } else if (button == 2) {\n if (pos) { extendSelection(cm.doc, pos); }\n setTimeout(function () { return display.input.focus(); }, 20);\n } else if (button == 3) {\n if (captureRightClick) { cm.display.input.onContextMenu(e); }\n else { delayBlurEvent(cm); }\n }\n }\n\n function handleMappedButton(cm, button, pos, repeat, event) {\n var name = \"Click\";\n if (repeat == \"double\") { name = \"Double\" + name; }\n else if (repeat == \"triple\") { name = \"Triple\" + name; }\n name = (button == 1 ? \"Left\" : button == 2 ? \"Middle\" : \"Right\") + name;\n\n return dispatchKey(cm, addModifierNames(name, event), event, function (bound) {\n if (typeof bound == \"string\") { bound = commands[bound]; }\n if (!bound) { return false }\n var done = false;\n try {\n if (cm.isReadOnly()) { cm.state.suppressEdits = true; }\n done = bound(cm, pos) != Pass;\n } finally {\n cm.state.suppressEdits = false;\n }\n return done\n })\n }\n\n function configureMouse(cm, repeat, event) {\n var option = cm.getOption(\"configureMouse\");\n var value = option ? option(cm, repeat, event) : {};\n if (value.unit == null) {\n var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;\n value.unit = rect ? \"rectangle\" : repeat == \"single\" ? \"char\" : repeat == \"double\" ? \"word\" : \"line\";\n }\n if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }\n if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }\n if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }\n return value\n }\n\n function leftButtonDown(cm, pos, repeat, event) {\n if (ie) { setTimeout(bind(ensureFocus, cm), 0); }\n else { cm.curOp.focus = activeElt(); }\n\n var behavior = configureMouse(cm, repeat, event);\n\n var sel = cm.doc.sel, contained;\n if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&\n repeat == \"single\" && (contained = sel.contains(pos)) > -1 &&\n (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&\n (cmp(contained.to(), pos) > 0 || pos.xRel < 0))\n { leftButtonStartDrag(cm, event, pos, behavior); }\n else\n { leftButtonSelect(cm, event, pos, behavior); }\n }\n\n // Start a text drag. When it ends, see if any dragging actually\n // happen, and treat as a click if it didn't.\n function leftButtonStartDrag(cm, event, pos, behavior) {\n var display = cm.display, moved = false;\n var dragEnd = operation(cm, function (e) {\n if (webkit) { display.scroller.draggable = false; }\n cm.state.draggingText = false;\n if (cm.state.delayingBlurEvent) {\n if (cm.hasFocus()) { cm.state.delayingBlurEvent = false; }\n else { delayBlurEvent(cm); }\n }\n off(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n off(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n off(display.scroller, \"dragstart\", dragStart);\n off(display.scroller, \"drop\", dragEnd);\n if (!moved) {\n e_preventDefault(e);\n if (!behavior.addNew)\n { extendSelection(cm.doc, pos, null, null, behavior.extend); }\n // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)\n if ((webkit && !safari) || ie && ie_version == 9)\n { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); }\n else\n { display.input.focus(); }\n }\n });\n var mouseMove = function(e2) {\n moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;\n };\n var dragStart = function () { return moved = true; };\n // Let the drag handler handle this.\n if (webkit) { display.scroller.draggable = true; }\n cm.state.draggingText = dragEnd;\n dragEnd.copy = !behavior.moveOnDrag;\n on(display.wrapper.ownerDocument, \"mouseup\", dragEnd);\n on(display.wrapper.ownerDocument, \"mousemove\", mouseMove);\n on(display.scroller, \"dragstart\", dragStart);\n on(display.scroller, \"drop\", dragEnd);\n\n cm.state.delayingBlurEvent = true;\n setTimeout(function () { return display.input.focus(); }, 20);\n // IE's approach to draggable\n if (display.scroller.dragDrop) { display.scroller.dragDrop(); }\n }\n\n function rangeForUnit(cm, pos, unit) {\n if (unit == \"char\") { return new Range(pos, pos) }\n if (unit == \"word\") { return cm.findWordAt(pos) }\n if (unit == \"line\") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }\n var result = unit(cm, pos);\n return new Range(result.from, result.to)\n }\n\n // Normal selection, as opposed to text dragging.\n function leftButtonSelect(cm, event, start, behavior) {\n if (ie) { delayBlurEvent(cm); }\n var display = cm.display, doc = cm.doc;\n e_preventDefault(event);\n\n var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;\n if (behavior.addNew && !behavior.extend) {\n ourIndex = doc.sel.contains(start);\n if (ourIndex > -1)\n { ourRange = ranges[ourIndex]; }\n else\n { ourRange = new Range(start, start); }\n } else {\n ourRange = doc.sel.primary();\n ourIndex = doc.sel.primIndex;\n }\n\n if (behavior.unit == \"rectangle\") {\n if (!behavior.addNew) { ourRange = new Range(start, start); }\n start = posFromMouse(cm, event, true, true);\n ourIndex = -1;\n } else {\n var range = rangeForUnit(cm, start, behavior.unit);\n if (behavior.extend)\n { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); }\n else\n { ourRange = range; }\n }\n\n if (!behavior.addNew) {\n ourIndex = 0;\n setSelection(doc, new Selection([ourRange], 0), sel_mouse);\n startSel = doc.sel;\n } else if (ourIndex == -1) {\n ourIndex = ranges.length;\n setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),\n {scroll: false, origin: \"*mouse\"});\n } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == \"char\" && !behavior.extend) {\n setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),\n {scroll: false, origin: \"*mouse\"});\n startSel = doc.sel;\n } else {\n replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);\n }\n\n var lastPos = start;\n function extendTo(pos) {\n if (cmp(lastPos, pos) == 0) { return }\n lastPos = pos;\n\n if (behavior.unit == \"rectangle\") {\n var ranges = [], tabSize = cm.options.tabSize;\n var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);\n var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);\n var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);\n for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));\n line <= end; line++) {\n var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);\n if (left == right)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }\n else if (text.length > leftPos)\n { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }\n }\n if (!ranges.length) { ranges.push(new Range(start, start)); }\n setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),\n {origin: \"*mouse\", scroll: false});\n cm.scrollIntoView(pos);\n } else {\n var oldRange = ourRange;\n var range = rangeForUnit(cm, pos, behavior.unit);\n var anchor = oldRange.anchor, head;\n if (cmp(range.anchor, anchor) > 0) {\n head = range.head;\n anchor = minPos(oldRange.from(), range.anchor);\n } else {\n head = range.anchor;\n anchor = maxPos(oldRange.to(), range.head);\n }\n var ranges$1 = startSel.ranges.slice(0);\n ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));\n setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);\n }\n }\n\n var editorSize = display.wrapper.getBoundingClientRect();\n // Used to ensure timeout re-tries don't fire when another extend\n // happened in the meantime (clearTimeout isn't reliable -- at\n // least on Chrome, the timeouts still happen even when cleared,\n // if the clear happens after their scheduled firing time).\n var counter = 0;\n\n function extend(e) {\n var curCount = ++counter;\n var cur = posFromMouse(cm, e, true, behavior.unit == \"rectangle\");\n if (!cur) { return }\n if (cmp(cur, lastPos) != 0) {\n cm.curOp.focus = activeElt();\n extendTo(cur);\n var visible = visibleLines(display, doc);\n if (cur.line >= visible.to || cur.line < visible.from)\n { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }\n } else {\n var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;\n if (outside) { setTimeout(operation(cm, function () {\n if (counter != curCount) { return }\n display.scroller.scrollTop += outside;\n extend(e);\n }), 50); }\n }\n }\n\n function done(e) {\n cm.state.selectingText = false;\n counter = Infinity;\n // If e is null or undefined we interpret this as someone trying\n // to explicitly cancel the selection rather than the user\n // letting go of the mouse button.\n if (e) {\n e_preventDefault(e);\n display.input.focus();\n }\n off(display.wrapper.ownerDocument, \"mousemove\", move);\n off(display.wrapper.ownerDocument, \"mouseup\", up);\n doc.history.lastSelOrigin = null;\n }\n\n var move = operation(cm, function (e) {\n if (e.buttons === 0 || !e_button(e)) { done(e); }\n else { extend(e); }\n });\n var up = operation(cm, done);\n cm.state.selectingText = up;\n on(display.wrapper.ownerDocument, \"mousemove\", move);\n on(display.wrapper.ownerDocument, \"mouseup\", up);\n }\n\n // Used when mouse-selecting to adjust the anchor to the proper side\n // of a bidi jump depending on the visual position of the head.\n function bidiSimplify(cm, range) {\n var anchor = range.anchor;\n var head = range.head;\n var anchorLine = getLine(cm.doc, anchor.line);\n if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range }\n var order = getOrder(anchorLine);\n if (!order) { return range }\n var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];\n if (part.from != anchor.ch && part.to != anchor.ch) { return range }\n var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);\n if (boundary == 0 || boundary == order.length) { return range }\n\n // Compute the relative visual position of the head compared to the\n // anchor (<0 is to the left, >0 to the right)\n var leftSide;\n if (head.line != anchor.line) {\n leftSide = (head.line - anchor.line) * (cm.doc.direction == \"ltr\" ? 1 : -1) > 0;\n } else {\n var headIndex = getBidiPartAt(order, head.ch, head.sticky);\n var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);\n if (headIndex == boundary - 1 || headIndex == boundary)\n { leftSide = dir < 0; }\n else\n { leftSide = dir > 0; }\n }\n\n var usePart = order[boundary + (leftSide ? -1 : 0)];\n var from = leftSide == (usePart.level == 1);\n var ch = from ? usePart.from : usePart.to, sticky = from ? \"after\" : \"before\";\n return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head)\n }\n\n\n // Determines whether an event happened in the gutter, and fires the\n // handlers for the corresponding event.\n function gutterEvent(cm, e, type, prevent) {\n var mX, mY;\n if (e.touches) {\n mX = e.touches[0].clientX;\n mY = e.touches[0].clientY;\n } else {\n try { mX = e.clientX; mY = e.clientY; }\n catch(e$1) { return false }\n }\n if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }\n if (prevent) { e_preventDefault(e); }\n\n var display = cm.display;\n var lineBox = display.lineDiv.getBoundingClientRect();\n\n if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }\n mY -= lineBox.top - display.viewOffset;\n\n for (var i = 0; i < cm.display.gutterSpecs.length; ++i) {\n var g = display.gutters.childNodes[i];\n if (g && g.getBoundingClientRect().right >= mX) {\n var line = lineAtHeight(cm.doc, mY);\n var gutter = cm.display.gutterSpecs[i];\n signal(cm, type, cm, line, gutter.className, e);\n return e_defaultPrevented(e)\n }\n }\n }\n\n function clickInGutter(cm, e) {\n return gutterEvent(cm, e, \"gutterClick\", true)\n }\n\n // CONTEXT MENU HANDLING\n\n // To make the context menu work, we need to briefly unhide the\n // textarea (making it as unobtrusive as possible) to let the\n // right-click take effect on it.\n function onContextMenu(cm, e) {\n if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }\n if (signalDOMEvent(cm, e, \"contextmenu\")) { return }\n if (!captureRightClick) { cm.display.input.onContextMenu(e); }\n }\n\n function contextMenuInGutter(cm, e) {\n if (!hasHandler(cm, \"gutterContextMenu\")) { return false }\n return gutterEvent(cm, e, \"gutterContextMenu\", false)\n }\n\n function themeChanged(cm) {\n cm.display.wrapper.className = cm.display.wrapper.className.replace(/\\s*cm-s-\\S+/g, \"\") +\n cm.options.theme.replace(/(^|\\s)\\s*/g, \" cm-s-\");\n clearCaches(cm);\n }\n\n var Init = {toString: function(){return \"CodeMirror.Init\"}};\n\n var defaults = {};\n var optionHandlers = {};\n\n function defineOptions(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n function option(name, deflt, handle, notOnInit) {\n CodeMirror.defaults[name] = deflt;\n if (handle) { optionHandlers[name] =\n notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }\n }\n\n CodeMirror.defineOption = option;\n\n // Passed to option handlers when there is no old value.\n CodeMirror.Init = Init;\n\n // These two are, on init, called from the constructor because they\n // have to be initialized before the editor can start at all.\n option(\"value\", \"\", function (cm, val) { return cm.setValue(val); }, true);\n option(\"mode\", null, function (cm, val) {\n cm.doc.modeOption = val;\n loadMode(cm);\n }, true);\n\n option(\"indentUnit\", 2, loadMode, true);\n option(\"indentWithTabs\", false);\n option(\"smartIndent\", true);\n option(\"tabSize\", 4, function (cm) {\n resetModeState(cm);\n clearCaches(cm);\n regChange(cm);\n }, true);\n\n option(\"lineSeparator\", null, function (cm, val) {\n cm.doc.lineSep = val;\n if (!val) { return }\n var newBreaks = [], lineNo = cm.doc.first;\n cm.doc.iter(function (line) {\n for (var pos = 0;;) {\n var found = line.text.indexOf(val, pos);\n if (found == -1) { break }\n pos = found + val.length;\n newBreaks.push(Pos(lineNo, found));\n }\n lineNo++;\n });\n for (var i = newBreaks.length - 1; i >= 0; i--)\n { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }\n });\n option(\"specialChars\", /[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\ufeff\\ufff9-\\ufffc]/g, function (cm, val, old) {\n cm.state.specialChars = new RegExp(val.source + (val.test(\"\\t\") ? \"\" : \"|\\t\"), \"g\");\n if (old != Init) { cm.refresh(); }\n });\n option(\"specialCharPlaceholder\", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);\n option(\"electricChars\", true);\n option(\"inputStyle\", mobile ? \"contenteditable\" : \"textarea\", function () {\n throw new Error(\"inputStyle can not (yet) be changed in a running editor\") // FIXME\n }, true);\n option(\"spellcheck\", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);\n option(\"autocorrect\", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true);\n option(\"autocapitalize\", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true);\n option(\"rtlMoveVisually\", !windows);\n option(\"wholeLineUpdateBefore\", true);\n\n option(\"theme\", \"default\", function (cm) {\n themeChanged(cm);\n updateGutters(cm);\n }, true);\n option(\"keyMap\", \"default\", function (cm, val, old) {\n var next = getKeyMap(val);\n var prev = old != Init && getKeyMap(old);\n if (prev && prev.detach) { prev.detach(cm, next); }\n if (next.attach) { next.attach(cm, prev || null); }\n });\n option(\"extraKeys\", null);\n option(\"configureMouse\", null);\n\n option(\"lineWrapping\", false, wrappingChanged, true);\n option(\"gutters\", [], function (cm, val) {\n cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers);\n updateGutters(cm);\n }, true);\n option(\"fixedGutter\", true, function (cm, val) {\n cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + \"px\" : \"0\";\n cm.refresh();\n }, true);\n option(\"coverGutterNextToScrollbar\", false, function (cm) { return updateScrollbars(cm); }, true);\n option(\"scrollbarStyle\", \"native\", function (cm) {\n initScrollbars(cm);\n updateScrollbars(cm);\n cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);\n cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);\n }, true);\n option(\"lineNumbers\", false, function (cm, val) {\n cm.display.gutterSpecs = getGutters(cm.options.gutters, val);\n updateGutters(cm);\n }, true);\n option(\"firstLineNumber\", 1, updateGutters, true);\n option(\"lineNumberFormatter\", function (integer) { return integer; }, updateGutters, true);\n option(\"showCursorWhenSelecting\", false, updateSelection, true);\n\n option(\"resetSelectionOnContextMenu\", true);\n option(\"lineWiseCopyCut\", true);\n option(\"pasteLinesPerSelection\", true);\n option(\"selectionsMayTouch\", false);\n\n option(\"readOnly\", false, function (cm, val) {\n if (val == \"nocursor\") {\n onBlur(cm);\n cm.display.input.blur();\n }\n cm.display.input.readOnlyChanged(val);\n });\n\n option(\"screenReaderLabel\", null, function (cm, val) {\n val = (val === '') ? null : val;\n cm.display.input.screenReaderLabelChanged(val);\n });\n\n option(\"disableInput\", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);\n option(\"dragDrop\", true, dragDropChanged);\n option(\"allowDropFileTypes\", null);\n\n option(\"cursorBlinkRate\", 530);\n option(\"cursorScrollMargin\", 0);\n option(\"cursorHeight\", 1, updateSelection, true);\n option(\"singleCursorHeightPerLine\", true, updateSelection, true);\n option(\"workTime\", 100);\n option(\"workDelay\", 100);\n option(\"flattenSpans\", true, resetModeState, true);\n option(\"addModeClass\", false, resetModeState, true);\n option(\"pollInterval\", 100);\n option(\"undoDepth\", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });\n option(\"historyEventDelay\", 1250);\n option(\"viewportMargin\", 10, function (cm) { return cm.refresh(); }, true);\n option(\"maxHighlightLength\", 10000, resetModeState, true);\n option(\"moveInputWithCursor\", true, function (cm, val) {\n if (!val) { cm.display.input.resetPosition(); }\n });\n\n option(\"tabindex\", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || \"\"; });\n option(\"autofocus\", null);\n option(\"direction\", \"ltr\", function (cm, val) { return cm.doc.setDirection(val); }, true);\n option(\"phrases\", null);\n }\n\n function dragDropChanged(cm, value, old) {\n var wasOn = old && old != Init;\n if (!value != !wasOn) {\n var funcs = cm.display.dragFunctions;\n var toggle = value ? on : off;\n toggle(cm.display.scroller, \"dragstart\", funcs.start);\n toggle(cm.display.scroller, \"dragenter\", funcs.enter);\n toggle(cm.display.scroller, \"dragover\", funcs.over);\n toggle(cm.display.scroller, \"dragleave\", funcs.leave);\n toggle(cm.display.scroller, \"drop\", funcs.drop);\n }\n }\n\n function wrappingChanged(cm) {\n if (cm.options.lineWrapping) {\n addClass(cm.display.wrapper, \"CodeMirror-wrap\");\n cm.display.sizer.style.minWidth = \"\";\n cm.display.sizerWidth = null;\n } else {\n rmClass(cm.display.wrapper, \"CodeMirror-wrap\");\n findMaxLine(cm);\n }\n estimateLineHeights(cm);\n regChange(cm);\n clearCaches(cm);\n setTimeout(function () { return updateScrollbars(cm); }, 100);\n }\n\n // A CodeMirror instance represents an editor. This is the object\n // that user code is usually dealing with.\n\n function CodeMirror(place, options) {\n var this$1 = this;\n\n if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }\n\n this.options = options = options ? copyObj(options) : {};\n // Determine effective options based on given values and defaults.\n copyObj(defaults, options, false);\n\n var doc = options.value;\n if (typeof doc == \"string\") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }\n else if (options.mode) { doc.modeOption = options.mode; }\n this.doc = doc;\n\n var input = new CodeMirror.inputStyles[options.inputStyle](this);\n var display = this.display = new Display(place, doc, input, options);\n display.wrapper.CodeMirror = this;\n themeChanged(this);\n if (options.lineWrapping)\n { this.display.wrapper.className += \" CodeMirror-wrap\"; }\n initScrollbars(this);\n\n this.state = {\n keyMaps: [], // stores maps added by addKeyMap\n overlays: [], // highlighting overlays, as added by addOverlay\n modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info\n overwrite: false,\n delayingBlurEvent: false,\n focused: false,\n suppressEdits: false, // used to disable editing during key handlers when in readOnly mode\n pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll\n selectingText: false,\n draggingText: false,\n highlight: new Delayed(), // stores highlight worker timeout\n keySeq: null, // Unfinished key sequence\n specialChars: null\n };\n\n if (options.autofocus && !mobile) { display.input.focus(); }\n\n // Override magic textarea content restore that IE sometimes does\n // on our hidden textarea on reload\n if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }\n\n registerEventHandlers(this);\n ensureGlobalHandlers();\n\n startOperation(this);\n this.curOp.forceUpdate = true;\n attachDoc(this, doc);\n\n if ((options.autofocus && !mobile) || this.hasFocus())\n { setTimeout(function () {\n if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); }\n }, 20); }\n else\n { onBlur(this); }\n\n for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))\n { optionHandlers[opt](this, options[opt], Init); } }\n maybeUpdateLineNumberWidth(this);\n if (options.finishInit) { options.finishInit(this); }\n for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); }\n endOperation(this);\n // Suppress optimizelegibility in Webkit, since it breaks text\n // measuring on line wrapping boundaries.\n if (webkit && options.lineWrapping &&\n getComputedStyle(display.lineDiv).textRendering == \"optimizelegibility\")\n { display.lineDiv.style.textRendering = \"auto\"; }\n }\n\n // The default configuration options.\n CodeMirror.defaults = defaults;\n // Functions to run when options are changed.\n CodeMirror.optionHandlers = optionHandlers;\n\n // Attach the necessary event handlers when initializing the editor\n function registerEventHandlers(cm) {\n var d = cm.display;\n on(d.scroller, \"mousedown\", operation(cm, onMouseDown));\n // Older IE's will not fire a second mousedown for a double click\n if (ie && ie_version < 11)\n { on(d.scroller, \"dblclick\", operation(cm, function (e) {\n if (signalDOMEvent(cm, e)) { return }\n var pos = posFromMouse(cm, e);\n if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }\n e_preventDefault(e);\n var word = cm.findWordAt(pos);\n extendSelection(cm.doc, word.anchor, word.head);\n })); }\n else\n { on(d.scroller, \"dblclick\", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }\n // Some browsers fire contextmenu *after* opening the menu, at\n // which point we can't mess with it anymore. Context menu is\n // handled in onMouseDown for these browsers.\n on(d.scroller, \"contextmenu\", function (e) { return onContextMenu(cm, e); });\n on(d.input.getField(), \"contextmenu\", function (e) {\n if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); }\n });\n\n // Used to suppress mouse event handling when a touch happens\n var touchFinished, prevTouch = {end: 0};\n function finishTouch() {\n if (d.activeTouch) {\n touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);\n prevTouch = d.activeTouch;\n prevTouch.end = +new Date;\n }\n }\n function isMouseLikeTouchEvent(e) {\n if (e.touches.length != 1) { return false }\n var touch = e.touches[0];\n return touch.radiusX <= 1 && touch.radiusY <= 1\n }\n function farAway(touch, other) {\n if (other.left == null) { return true }\n var dx = other.left - touch.left, dy = other.top - touch.top;\n return dx * dx + dy * dy > 20 * 20\n }\n on(d.scroller, \"touchstart\", function (e) {\n if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {\n d.input.ensurePolled();\n clearTimeout(touchFinished);\n var now = +new Date;\n d.activeTouch = {start: now, moved: false,\n prev: now - prevTouch.end <= 300 ? prevTouch : null};\n if (e.touches.length == 1) {\n d.activeTouch.left = e.touches[0].pageX;\n d.activeTouch.top = e.touches[0].pageY;\n }\n }\n });\n on(d.scroller, \"touchmove\", function () {\n if (d.activeTouch) { d.activeTouch.moved = true; }\n });\n on(d.scroller, \"touchend\", function (e) {\n var touch = d.activeTouch;\n if (touch && !eventInWidget(d, e) && touch.left != null &&\n !touch.moved && new Date - touch.start < 300) {\n var pos = cm.coordsChar(d.activeTouch, \"page\"), range;\n if (!touch.prev || farAway(touch, touch.prev)) // Single tap\n { range = new Range(pos, pos); }\n else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap\n { range = cm.findWordAt(pos); }\n else // Triple tap\n { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }\n cm.setSelection(range.anchor, range.head);\n cm.focus();\n e_preventDefault(e);\n }\n finishTouch();\n });\n on(d.scroller, \"touchcancel\", finishTouch);\n\n // Sync scrolling between fake scrollbars and real scrollable\n // area, ensure viewport is updated when scrolling.\n on(d.scroller, \"scroll\", function () {\n if (d.scroller.clientHeight) {\n updateScrollTop(cm, d.scroller.scrollTop);\n setScrollLeft(cm, d.scroller.scrollLeft, true);\n signal(cm, \"scroll\", cm);\n }\n });\n\n // Listen to wheel events in order to try and update the viewport on time.\n on(d.scroller, \"mousewheel\", function (e) { return onScrollWheel(cm, e); });\n on(d.scroller, \"DOMMouseScroll\", function (e) { return onScrollWheel(cm, e); });\n\n // Prevent wrapper from ever scrolling\n on(d.wrapper, \"scroll\", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });\n\n d.dragFunctions = {\n enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},\n over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},\n start: function (e) { return onDragStart(cm, e); },\n drop: operation(cm, onDrop),\n leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}\n };\n\n var inp = d.input.getField();\n on(inp, \"keyup\", function (e) { return onKeyUp.call(cm, e); });\n on(inp, \"keydown\", operation(cm, onKeyDown));\n on(inp, \"keypress\", operation(cm, onKeyPress));\n on(inp, \"focus\", function (e) { return onFocus(cm, e); });\n on(inp, \"blur\", function (e) { return onBlur(cm, e); });\n }\n\n var initHooks = [];\n CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };\n\n // Indent the given line. The how parameter can be \"smart\",\n // \"add\"/null, \"subtract\", or \"prev\". When aggressive is false\n // (typically set to true for forced single-line indents), empty\n // lines are not indented, and places where the mode returns Pass\n // are left alone.\n function indentLine(cm, n, how, aggressive) {\n var doc = cm.doc, state;\n if (how == null) { how = \"add\"; }\n if (how == \"smart\") {\n // Fall back to \"prev\" when the mode doesn't have an indentation\n // method.\n if (!doc.mode.indent) { how = \"prev\"; }\n else { state = getContextBefore(cm, n).state; }\n }\n\n var tabSize = cm.options.tabSize;\n var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);\n if (line.stateAfter) { line.stateAfter = null; }\n var curSpaceString = line.text.match(/^\\s*/)[0], indentation;\n if (!aggressive && !/\\S/.test(line.text)) {\n indentation = 0;\n how = \"not\";\n } else if (how == \"smart\") {\n indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);\n if (indentation == Pass || indentation > 150) {\n if (!aggressive) { return }\n how = \"prev\";\n }\n }\n if (how == \"prev\") {\n if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }\n else { indentation = 0; }\n } else if (how == \"add\") {\n indentation = curSpace + cm.options.indentUnit;\n } else if (how == \"subtract\") {\n indentation = curSpace - cm.options.indentUnit;\n } else if (typeof how == \"number\") {\n indentation = curSpace + how;\n }\n indentation = Math.max(0, indentation);\n\n var indentString = \"\", pos = 0;\n if (cm.options.indentWithTabs)\n { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += \"\\t\";} }\n if (pos < indentation) { indentString += spaceStr(indentation - pos); }\n\n if (indentString != curSpaceString) {\n replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), \"+input\");\n line.stateAfter = null;\n return true\n } else {\n // Ensure that, if the cursor was in the whitespace at the start\n // of the line, it is moved to the end of that space.\n for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {\n var range = doc.sel.ranges[i$1];\n if (range.head.line == n && range.head.ch < curSpaceString.length) {\n var pos$1 = Pos(n, curSpaceString.length);\n replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));\n break\n }\n }\n }\n }\n\n // This will be set to a {lineWise: bool, text: [string]} object, so\n // that, when pasting, we know what kind of selections the copied\n // text was made out of.\n var lastCopied = null;\n\n function setLastCopied(newLastCopied) {\n lastCopied = newLastCopied;\n }\n\n function applyTextInput(cm, inserted, deleted, sel, origin) {\n var doc = cm.doc;\n cm.display.shift = false;\n if (!sel) { sel = doc.sel; }\n\n var recent = +new Date - 200;\n var paste = origin == \"paste\" || cm.state.pasteIncoming > recent;\n var textLines = splitLinesAuto(inserted), multiPaste = null;\n // When pasting N lines into N selections, insert one line per selection\n if (paste && sel.ranges.length > 1) {\n if (lastCopied && lastCopied.text.join(\"\\n\") == inserted) {\n if (sel.ranges.length % lastCopied.text.length == 0) {\n multiPaste = [];\n for (var i = 0; i < lastCopied.text.length; i++)\n { multiPaste.push(doc.splitLines(lastCopied.text[i])); }\n }\n } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {\n multiPaste = map(textLines, function (l) { return [l]; });\n }\n }\n\n var updateInput = cm.curOp.updateInput;\n // Normal behavior is to insert the new text into every selection\n for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {\n var range = sel.ranges[i$1];\n var from = range.from(), to = range.to();\n if (range.empty()) {\n if (deleted && deleted > 0) // Handle deletion\n { from = Pos(from.line, from.ch - deleted); }\n else if (cm.state.overwrite && !paste) // Handle overwrite\n { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }\n else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join(\"\\n\") == textLines.join(\"\\n\"))\n { from = to = Pos(from.line, 0); }\n }\n var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,\n origin: origin || (paste ? \"paste\" : cm.state.cutIncoming > recent ? \"cut\" : \"+input\")};\n makeChange(cm.doc, changeEvent);\n signalLater(cm, \"inputRead\", cm, changeEvent);\n }\n if (inserted && !paste)\n { triggerElectric(cm, inserted); }\n\n ensureCursorVisible(cm);\n if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; }\n cm.curOp.typing = true;\n cm.state.pasteIncoming = cm.state.cutIncoming = -1;\n }\n\n function handlePaste(e, cm) {\n var pasted = e.clipboardData && e.clipboardData.getData(\"Text\");\n if (pasted) {\n e.preventDefault();\n if (!cm.isReadOnly() && !cm.options.disableInput)\n { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, \"paste\"); }); }\n return true\n }\n }\n\n function triggerElectric(cm, inserted) {\n // When an 'electric' character is inserted, immediately trigger a reindent\n if (!cm.options.electricChars || !cm.options.smartIndent) { return }\n var sel = cm.doc.sel;\n\n for (var i = sel.ranges.length - 1; i >= 0; i--) {\n var range = sel.ranges[i];\n if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue }\n var mode = cm.getModeAt(range.head);\n var indented = false;\n if (mode.electricChars) {\n for (var j = 0; j < mode.electricChars.length; j++)\n { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {\n indented = indentLine(cm, range.head.line, \"smart\");\n break\n } }\n } else if (mode.electricInput) {\n if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))\n { indented = indentLine(cm, range.head.line, \"smart\"); }\n }\n if (indented) { signalLater(cm, \"electricInput\", cm, range.head.line); }\n }\n }\n\n function copyableRanges(cm) {\n var text = [], ranges = [];\n for (var i = 0; i < cm.doc.sel.ranges.length; i++) {\n var line = cm.doc.sel.ranges[i].head.line;\n var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};\n ranges.push(lineRange);\n text.push(cm.getRange(lineRange.anchor, lineRange.head));\n }\n return {text: text, ranges: ranges}\n }\n\n function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) {\n field.setAttribute(\"autocorrect\", autocorrect ? \"\" : \"off\");\n field.setAttribute(\"autocapitalize\", autocapitalize ? \"\" : \"off\");\n field.setAttribute(\"spellcheck\", !!spellcheck);\n }\n\n function hiddenTextarea() {\n var te = elt(\"textarea\", null, null, \"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\");\n var div = elt(\"div\", [te], null, \"overflow: hidden; position: relative; width: 3px; height: 0px;\");\n // The textarea is kept positioned near the cursor to prevent the\n // fact that it'll be scrolled into view on input from scrolling\n // our fake cursor out of view. On webkit, when wrap=off, paste is\n // very slow. So make the area wide instead.\n if (webkit) { te.style.width = \"1000px\"; }\n else { te.setAttribute(\"wrap\", \"off\"); }\n // If border: 0; -- iOS fails to open keyboard (issue #1287)\n if (ios) { te.style.border = \"1px solid black\"; }\n disableBrowserMagic(te);\n return div\n }\n\n // The publicly visible API. Note that methodOp(f) means\n // 'wrap f in an operation, performed on its `this` parameter'.\n\n // This is not the complete set of editor methods. Most of the\n // methods defined on the Doc type are also injected into\n // CodeMirror.prototype, for backwards compatibility and\n // convenience.\n\n function addEditorMethods(CodeMirror) {\n var optionHandlers = CodeMirror.optionHandlers;\n\n var helpers = CodeMirror.helpers = {};\n\n CodeMirror.prototype = {\n constructor: CodeMirror,\n focus: function(){window.focus(); this.display.input.focus();},\n\n setOption: function(option, value) {\n var options = this.options, old = options[option];\n if (options[option] == value && option != \"mode\") { return }\n options[option] = value;\n if (optionHandlers.hasOwnProperty(option))\n { operation(this, optionHandlers[option])(this, value, old); }\n signal(this, \"optionChange\", this, option);\n },\n\n getOption: function(option) {return this.options[option]},\n getDoc: function() {return this.doc},\n\n addKeyMap: function(map, bottom) {\n this.state.keyMaps[bottom ? \"push\" : \"unshift\"](getKeyMap(map));\n },\n removeKeyMap: function(map) {\n var maps = this.state.keyMaps;\n for (var i = 0; i < maps.length; ++i)\n { if (maps[i] == map || maps[i].name == map) {\n maps.splice(i, 1);\n return true\n } }\n },\n\n addOverlay: methodOp(function(spec, options) {\n var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);\n if (mode.startState) { throw new Error(\"Overlays may not be stateful.\") }\n insertSorted(this.state.overlays,\n {mode: mode, modeSpec: spec, opaque: options && options.opaque,\n priority: (options && options.priority) || 0},\n function (overlay) { return overlay.priority; });\n this.state.modeGen++;\n regChange(this);\n }),\n removeOverlay: methodOp(function(spec) {\n var overlays = this.state.overlays;\n for (var i = 0; i < overlays.length; ++i) {\n var cur = overlays[i].modeSpec;\n if (cur == spec || typeof spec == \"string\" && cur.name == spec) {\n overlays.splice(i, 1);\n this.state.modeGen++;\n regChange(this);\n return\n }\n }\n }),\n\n indentLine: methodOp(function(n, dir, aggressive) {\n if (typeof dir != \"string\" && typeof dir != \"number\") {\n if (dir == null) { dir = this.options.smartIndent ? \"smart\" : \"prev\"; }\n else { dir = dir ? \"add\" : \"subtract\"; }\n }\n if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }\n }),\n indentSelection: methodOp(function(how) {\n var ranges = this.doc.sel.ranges, end = -1;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (!range.empty()) {\n var from = range.from(), to = range.to();\n var start = Math.max(end, from.line);\n end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;\n for (var j = start; j < end; ++j)\n { indentLine(this, j, how); }\n var newRanges = this.doc.sel.ranges;\n if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)\n { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }\n } else if (range.head.line > end) {\n indentLine(this, range.head.line, how, true);\n end = range.head.line;\n if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); }\n }\n }\n }),\n\n // Fetch the parser token for a given character. Useful for hacks\n // that want to inspect the mode state (say, for completion).\n getTokenAt: function(pos, precise) {\n return takeToken(this, pos, precise)\n },\n\n getLineTokens: function(line, precise) {\n return takeToken(this, Pos(line), precise, true)\n },\n\n getTokenTypeAt: function(pos) {\n pos = clipPos(this.doc, pos);\n var styles = getLineStyles(this, getLine(this.doc, pos.line));\n var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;\n var type;\n if (ch == 0) { type = styles[2]; }\n else { for (;;) {\n var mid = (before + after) >> 1;\n if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }\n else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }\n else { type = styles[mid * 2 + 2]; break }\n } }\n var cut = type ? type.indexOf(\"overlay \") : -1;\n return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)\n },\n\n getModeAt: function(pos) {\n var mode = this.doc.mode;\n if (!mode.innerMode) { return mode }\n return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode\n },\n\n getHelper: function(pos, type) {\n return this.getHelpers(pos, type)[0]\n },\n\n getHelpers: function(pos, type) {\n var found = [];\n if (!helpers.hasOwnProperty(type)) { return found }\n var help = helpers[type], mode = this.getModeAt(pos);\n if (typeof mode[type] == \"string\") {\n if (help[mode[type]]) { found.push(help[mode[type]]); }\n } else if (mode[type]) {\n for (var i = 0; i < mode[type].length; i++) {\n var val = help[mode[type][i]];\n if (val) { found.push(val); }\n }\n } else if (mode.helperType && help[mode.helperType]) {\n found.push(help[mode.helperType]);\n } else if (help[mode.name]) {\n found.push(help[mode.name]);\n }\n for (var i$1 = 0; i$1 < help._global.length; i$1++) {\n var cur = help._global[i$1];\n if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)\n { found.push(cur.val); }\n }\n return found\n },\n\n getStateAfter: function(line, precise) {\n var doc = this.doc;\n line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);\n return getContextBefore(this, line + 1, precise).state\n },\n\n cursorCoords: function(start, mode) {\n var pos, range = this.doc.sel.primary();\n if (start == null) { pos = range.head; }\n else if (typeof start == \"object\") { pos = clipPos(this.doc, start); }\n else { pos = start ? range.from() : range.to(); }\n return cursorCoords(this, pos, mode || \"page\")\n },\n\n charCoords: function(pos, mode) {\n return charCoords(this, clipPos(this.doc, pos), mode || \"page\")\n },\n\n coordsChar: function(coords, mode) {\n coords = fromCoordSystem(this, coords, mode || \"page\");\n return coordsChar(this, coords.left, coords.top)\n },\n\n lineAtHeight: function(height, mode) {\n height = fromCoordSystem(this, {top: height, left: 0}, mode || \"page\").top;\n return lineAtHeight(this.doc, height + this.display.viewOffset)\n },\n heightAtLine: function(line, mode, includeWidgets) {\n var end = false, lineObj;\n if (typeof line == \"number\") {\n var last = this.doc.first + this.doc.size - 1;\n if (line < this.doc.first) { line = this.doc.first; }\n else if (line > last) { line = last; end = true; }\n lineObj = getLine(this.doc, line);\n } else {\n lineObj = line;\n }\n return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || \"page\", includeWidgets || end).top +\n (end ? this.doc.height - heightAtLine(lineObj) : 0)\n },\n\n defaultTextHeight: function() { return textHeight(this.display) },\n defaultCharWidth: function() { return charWidth(this.display) },\n\n getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},\n\n addWidget: function(pos, node, scroll, vert, horiz) {\n var display = this.display;\n pos = cursorCoords(this, clipPos(this.doc, pos));\n var top = pos.bottom, left = pos.left;\n node.style.position = \"absolute\";\n node.setAttribute(\"cm-ignore-events\", \"true\");\n this.display.input.setUneditable(node);\n display.sizer.appendChild(node);\n if (vert == \"over\") {\n top = pos.top;\n } else if (vert == \"above\" || vert == \"near\") {\n var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),\n hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);\n // Default to positioning above (if specified and possible); otherwise default to positioning below\n if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)\n { top = pos.top - node.offsetHeight; }\n else if (pos.bottom + node.offsetHeight <= vspace)\n { top = pos.bottom; }\n if (left + node.offsetWidth > hspace)\n { left = hspace - node.offsetWidth; }\n }\n node.style.top = top + \"px\";\n node.style.left = node.style.right = \"\";\n if (horiz == \"right\") {\n left = display.sizer.clientWidth - node.offsetWidth;\n node.style.right = \"0px\";\n } else {\n if (horiz == \"left\") { left = 0; }\n else if (horiz == \"middle\") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }\n node.style.left = left + \"px\";\n }\n if (scroll)\n { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }\n },\n\n triggerOnKeyDown: methodOp(onKeyDown),\n triggerOnKeyPress: methodOp(onKeyPress),\n triggerOnKeyUp: onKeyUp,\n triggerOnMouseDown: methodOp(onMouseDown),\n\n execCommand: function(cmd) {\n if (commands.hasOwnProperty(cmd))\n { return commands[cmd].call(null, this) }\n },\n\n triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),\n\n findPosH: function(from, amount, unit, visually) {\n var dir = 1;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n cur = findPosH(this.doc, cur, dir, unit, visually);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveH: methodOp(function(dir, unit) {\n var this$1 = this;\n\n this.extendSelectionsBy(function (range) {\n if (this$1.display.shift || this$1.doc.extend || range.empty())\n { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) }\n else\n { return dir < 0 ? range.from() : range.to() }\n }, sel_move);\n }),\n\n deleteH: methodOp(function(dir, unit) {\n var sel = this.doc.sel, doc = this.doc;\n if (sel.somethingSelected())\n { doc.replaceSelection(\"\", null, \"+delete\"); }\n else\n { deleteNearSelection(this, function (range) {\n var other = findPosH(doc, range.head, dir, unit, false);\n return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other}\n }); }\n }),\n\n findPosV: function(from, amount, unit, goalColumn) {\n var dir = 1, x = goalColumn;\n if (amount < 0) { dir = -1; amount = -amount; }\n var cur = clipPos(this.doc, from);\n for (var i = 0; i < amount; ++i) {\n var coords = cursorCoords(this, cur, \"div\");\n if (x == null) { x = coords.left; }\n else { coords.left = x; }\n cur = findPosV(this, coords, dir, unit);\n if (cur.hitSide) { break }\n }\n return cur\n },\n\n moveV: methodOp(function(dir, unit) {\n var this$1 = this;\n\n var doc = this.doc, goals = [];\n var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();\n doc.extendSelectionsBy(function (range) {\n if (collapse)\n { return dir < 0 ? range.from() : range.to() }\n var headPos = cursorCoords(this$1, range.head, \"div\");\n if (range.goalColumn != null) { headPos.left = range.goalColumn; }\n goals.push(headPos.left);\n var pos = findPosV(this$1, headPos, dir, unit);\n if (unit == \"page\" && range == doc.sel.primary())\n { addToScrollTop(this$1, charCoords(this$1, pos, \"div\").top - headPos.top); }\n return pos\n }, sel_move);\n if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)\n { doc.sel.ranges[i].goalColumn = goals[i]; } }\n }),\n\n // Find the word at the given position (as returned by coordsChar).\n findWordAt: function(pos) {\n var doc = this.doc, line = getLine(doc, pos.line).text;\n var start = pos.ch, end = pos.ch;\n if (line) {\n var helper = this.getHelper(pos, \"wordChars\");\n if ((pos.sticky == \"before\" || end == line.length) && start) { --start; } else { ++end; }\n var startChar = line.charAt(start);\n var check = isWordChar(startChar, helper)\n ? function (ch) { return isWordChar(ch, helper); }\n : /\\s/.test(startChar) ? function (ch) { return /\\s/.test(ch); }\n : function (ch) { return (!/\\s/.test(ch) && !isWordChar(ch)); };\n while (start > 0 && check(line.charAt(start - 1))) { --start; }\n while (end < line.length && check(line.charAt(end))) { ++end; }\n }\n return new Range(Pos(pos.line, start), Pos(pos.line, end))\n },\n\n toggleOverwrite: function(value) {\n if (value != null && value == this.state.overwrite) { return }\n if (this.state.overwrite = !this.state.overwrite)\n { addClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n else\n { rmClass(this.display.cursorDiv, \"CodeMirror-overwrite\"); }\n\n signal(this, \"overwriteToggle\", this, this.state.overwrite);\n },\n hasFocus: function() { return this.display.input.getField() == activeElt() },\n isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },\n\n scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),\n getScrollInfo: function() {\n var scroller = this.display.scroller;\n return {left: scroller.scrollLeft, top: scroller.scrollTop,\n height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,\n width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,\n clientHeight: displayHeight(this), clientWidth: displayWidth(this)}\n },\n\n scrollIntoView: methodOp(function(range, margin) {\n if (range == null) {\n range = {from: this.doc.sel.primary().head, to: null};\n if (margin == null) { margin = this.options.cursorScrollMargin; }\n } else if (typeof range == \"number\") {\n range = {from: Pos(range, 0), to: null};\n } else if (range.from == null) {\n range = {from: range, to: null};\n }\n if (!range.to) { range.to = range.from; }\n range.margin = margin || 0;\n\n if (range.from.line != null) {\n scrollToRange(this, range);\n } else {\n scrollToCoordsRange(this, range.from, range.to, range.margin);\n }\n }),\n\n setSize: methodOp(function(width, height) {\n var this$1 = this;\n\n var interpret = function (val) { return typeof val == \"number\" || /^\\d+$/.test(String(val)) ? val + \"px\" : val; };\n if (width != null) { this.display.wrapper.style.width = interpret(width); }\n if (height != null) { this.display.wrapper.style.height = interpret(height); }\n if (this.options.lineWrapping) { clearLineMeasurementCache(this); }\n var lineNo = this.display.viewFrom;\n this.doc.iter(lineNo, this.display.viewTo, function (line) {\n if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)\n { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, \"widget\"); break } } }\n ++lineNo;\n });\n this.curOp.forceUpdate = true;\n signal(this, \"refresh\", this);\n }),\n\n operation: function(f){return runInOp(this, f)},\n startOperation: function(){return startOperation(this)},\n endOperation: function(){return endOperation(this)},\n\n refresh: methodOp(function() {\n var oldHeight = this.display.cachedTextHeight;\n regChange(this);\n this.curOp.forceUpdate = true;\n clearCaches(this);\n scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);\n updateGutterSpace(this.display);\n if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping)\n { estimateLineHeights(this); }\n signal(this, \"refresh\", this);\n }),\n\n swapDoc: methodOp(function(doc) {\n var old = this.doc;\n old.cm = null;\n // Cancel the current text selection if any (#5821)\n if (this.state.selectingText) { this.state.selectingText(); }\n attachDoc(this, doc);\n clearCaches(this);\n this.display.input.reset();\n scrollToCoords(this, doc.scrollLeft, doc.scrollTop);\n this.curOp.forceScroll = true;\n signalLater(this, \"swapDoc\", this, old);\n return old\n }),\n\n phrase: function(phraseText) {\n var phrases = this.options.phrases;\n return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText\n },\n\n getInputField: function(){return this.display.input.getField()},\n getWrapperElement: function(){return this.display.wrapper},\n getScrollerElement: function(){return this.display.scroller},\n getGutterElement: function(){return this.display.gutters}\n };\n eventMixin(CodeMirror);\n\n CodeMirror.registerHelper = function(type, name, value) {\n if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }\n helpers[type][name] = value;\n };\n CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {\n CodeMirror.registerHelper(type, name, value);\n helpers[type]._global.push({pred: predicate, val: value});\n };\n }\n\n // Used for horizontal relative motion. Dir is -1 or 1 (left or\n // right), unit can be \"codepoint\", \"char\", \"column\" (like char, but\n // doesn't cross line boundaries), \"word\" (across next word), or\n // \"group\" (to the start of next group of word or\n // non-word-non-whitespace chars). The visually param controls\n // whether, in right-to-left text, direction 1 means to move towards\n // the next index in the string, or towards the character to the right\n // of the current position. The resulting position will have a\n // hitSide=true property if it reached the end of the document.\n function findPosH(doc, pos, dir, unit, visually) {\n var oldPos = pos;\n var origDir = dir;\n var lineObj = getLine(doc, pos.line);\n var lineDir = visually && doc.direction == \"rtl\" ? -dir : dir;\n function findNextLine() {\n var l = pos.line + lineDir;\n if (l < doc.first || l >= doc.first + doc.size) { return false }\n pos = new Pos(l, pos.ch, pos.sticky);\n return lineObj = getLine(doc, l)\n }\n function moveOnce(boundToLine) {\n var next;\n if (unit == \"codepoint\") {\n var ch = lineObj.text.charCodeAt(pos.ch + (dir > 0 ? 0 : -1));\n if (isNaN(ch)) {\n next = null;\n } else {\n var astral = dir > 0 ? ch >= 0xD800 && ch < 0xDC00 : ch >= 0xDC00 && ch < 0xDFFF;\n next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (astral ? 2 : 1))), -dir);\n }\n } else if (visually) {\n next = moveVisually(doc.cm, lineObj, pos, dir);\n } else {\n next = moveLogically(lineObj, pos, dir);\n }\n if (next == null) {\n if (!boundToLine && findNextLine())\n { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); }\n else\n { return false }\n } else {\n pos = next;\n }\n return true\n }\n\n if (unit == \"char\" || unit == \"codepoint\") {\n moveOnce();\n } else if (unit == \"column\") {\n moveOnce(true);\n } else if (unit == \"word\" || unit == \"group\") {\n var sawType = null, group = unit == \"group\";\n var helper = doc.cm && doc.cm.getHelper(pos, \"wordChars\");\n for (var first = true;; first = false) {\n if (dir < 0 && !moveOnce(!first)) { break }\n var cur = lineObj.text.charAt(pos.ch) || \"\\n\";\n var type = isWordChar(cur, helper) ? \"w\"\n : group && cur == \"\\n\" ? \"n\"\n : !group || /\\s/.test(cur) ? null\n : \"p\";\n if (group && !first && !type) { type = \"s\"; }\n if (sawType && sawType != type) {\n if (dir < 0) {dir = 1; moveOnce(); pos.sticky = \"after\";}\n break\n }\n\n if (type) { sawType = type; }\n if (dir > 0 && !moveOnce(!first)) { break }\n }\n }\n var result = skipAtomic(doc, pos, oldPos, origDir, true);\n if (equalCursorPos(oldPos, result)) { result.hitSide = true; }\n return result\n }\n\n // For relative vertical movement. Dir may be -1 or 1. Unit can be\n // \"page\" or \"line\". The resulting position will have a hitSide=true\n // property if it reached the end of the document.\n function findPosV(cm, pos, dir, unit) {\n var doc = cm.doc, x = pos.left, y;\n if (unit == \"page\") {\n var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);\n var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);\n y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;\n\n } else if (unit == \"line\") {\n y = dir > 0 ? pos.bottom + 3 : pos.top - 3;\n }\n var target;\n for (;;) {\n target = coordsChar(cm, x, y);\n if (!target.outside) { break }\n if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }\n y += dir * 5;\n }\n return target\n }\n\n // CONTENTEDITABLE INPUT STYLE\n\n var ContentEditableInput = function(cm) {\n this.cm = cm;\n this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;\n this.polling = new Delayed();\n this.composing = null;\n this.gracePeriod = false;\n this.readDOMTimeout = null;\n };\n\n ContentEditableInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = input.cm;\n var div = input.div = display.lineDiv;\n div.contentEditable = true;\n disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize);\n\n function belongsToInput(e) {\n for (var t = e.target; t; t = t.parentNode) {\n if (t == div) { return true }\n if (/\\bCodeMirror-(?:line)?widget\\b/.test(t.className)) { break }\n }\n return false\n }\n\n on(div, \"paste\", function (e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n // IE doesn't fire input events, so we schedule a read for the pasted content in this way\n if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }\n });\n\n on(div, \"compositionstart\", function (e) {\n this$1.composing = {data: e.data, done: false};\n });\n on(div, \"compositionupdate\", function (e) {\n if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }\n });\n on(div, \"compositionend\", function (e) {\n if (this$1.composing) {\n if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }\n this$1.composing.done = true;\n }\n });\n\n on(div, \"touchstart\", function () { return input.forceCompositionEnd(); });\n\n on(div, \"input\", function () {\n if (!this$1.composing) { this$1.readFromDOMSoon(); }\n });\n\n function onCopyCut(e) {\n if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n if (e.type == \"cut\") { cm.replaceSelection(\"\", null, \"cut\"); }\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.operation(function () {\n cm.setSelections(ranges.ranges, 0, sel_dontScroll);\n cm.replaceSelection(\"\", null, \"cut\");\n });\n }\n }\n if (e.clipboardData) {\n e.clipboardData.clearData();\n var content = lastCopied.text.join(\"\\n\");\n // iOS exposes the clipboard API, but seems to discard content inserted into it\n e.clipboardData.setData(\"Text\", content);\n if (e.clipboardData.getData(\"Text\") == content) {\n e.preventDefault();\n return\n }\n }\n // Old-fashioned briefly-focus-a-textarea hack\n var kludge = hiddenTextarea(), te = kludge.firstChild;\n cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);\n te.value = lastCopied.text.join(\"\\n\");\n var hadFocus = activeElt();\n selectInput(te);\n setTimeout(function () {\n cm.display.lineSpace.removeChild(kludge);\n hadFocus.focus();\n if (hadFocus == div) { input.showPrimarySelection(); }\n }, 50);\n }\n on(div, \"copy\", onCopyCut);\n on(div, \"cut\", onCopyCut);\n };\n\n ContentEditableInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.div.setAttribute('aria-label', label);\n } else {\n this.div.removeAttribute('aria-label');\n }\n };\n\n ContentEditableInput.prototype.prepareSelection = function () {\n var result = prepareSelection(this.cm, false);\n result.focus = activeElt() == this.div;\n return result\n };\n\n ContentEditableInput.prototype.showSelection = function (info, takeFocus) {\n if (!info || !this.cm.display.view.length) { return }\n if (info.focus || takeFocus) { this.showPrimarySelection(); }\n this.showMultipleSelections(info);\n };\n\n ContentEditableInput.prototype.getSelection = function () {\n return this.cm.display.wrapper.ownerDocument.getSelection()\n };\n\n ContentEditableInput.prototype.showPrimarySelection = function () {\n var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();\n var from = prim.from(), to = prim.to();\n\n if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {\n sel.removeAllRanges();\n return\n }\n\n var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&\n cmp(minPos(curAnchor, curFocus), from) == 0 &&\n cmp(maxPos(curAnchor, curFocus), to) == 0)\n { return }\n\n var view = cm.display.view;\n var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||\n {node: view[0].measure.map[2], offset: 0};\n var end = to.line < cm.display.viewTo && posToDOM(cm, to);\n if (!end) {\n var measure = view[view.length - 1].measure;\n var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;\n end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};\n }\n\n if (!start || !end) {\n sel.removeAllRanges();\n return\n }\n\n var old = sel.rangeCount && sel.getRangeAt(0), rng;\n try { rng = range(start.node, start.offset, end.offset, end.node); }\n catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible\n if (rng) {\n if (!gecko && cm.state.focused) {\n sel.collapse(start.node, start.offset);\n if (!rng.collapsed) {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n } else {\n sel.removeAllRanges();\n sel.addRange(rng);\n }\n if (old && sel.anchorNode == null) { sel.addRange(old); }\n else if (gecko) { this.startGracePeriod(); }\n }\n this.rememberSelection();\n };\n\n ContentEditableInput.prototype.startGracePeriod = function () {\n var this$1 = this;\n\n clearTimeout(this.gracePeriod);\n this.gracePeriod = setTimeout(function () {\n this$1.gracePeriod = false;\n if (this$1.selectionChanged())\n { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }\n }, 20);\n };\n\n ContentEditableInput.prototype.showMultipleSelections = function (info) {\n removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);\n removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);\n };\n\n ContentEditableInput.prototype.rememberSelection = function () {\n var sel = this.getSelection();\n this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;\n this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;\n };\n\n ContentEditableInput.prototype.selectionInEditor = function () {\n var sel = this.getSelection();\n if (!sel.rangeCount) { return false }\n var node = sel.getRangeAt(0).commonAncestorContainer;\n return contains(this.div, node)\n };\n\n ContentEditableInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\") {\n if (!this.selectionInEditor() || activeElt() != this.div)\n { this.showSelection(this.prepareSelection(), true); }\n this.div.focus();\n }\n };\n ContentEditableInput.prototype.blur = function () { this.div.blur(); };\n ContentEditableInput.prototype.getField = function () { return this.div };\n\n ContentEditableInput.prototype.supportsTouch = function () { return true };\n\n ContentEditableInput.prototype.receivedFocus = function () {\n var input = this;\n if (this.selectionInEditor())\n { this.pollSelection(); }\n else\n { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }\n\n function poll() {\n if (input.cm.state.focused) {\n input.pollSelection();\n input.polling.set(input.cm.options.pollInterval, poll);\n }\n }\n this.polling.set(this.cm.options.pollInterval, poll);\n };\n\n ContentEditableInput.prototype.selectionChanged = function () {\n var sel = this.getSelection();\n return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||\n sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset\n };\n\n ContentEditableInput.prototype.pollSelection = function () {\n if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }\n var sel = this.getSelection(), cm = this.cm;\n // On Android Chrome (version 56, at least), backspacing into an\n // uneditable block element will put the cursor in that element,\n // and then, because it's not editable, hide the virtual keyboard.\n // Because Android doesn't allow us to actually detect backspace\n // presses in a sane way, this code checks for when that happens\n // and simulates a backspace press in this case.\n if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) {\n this.cm.triggerOnKeyDown({type: \"keydown\", keyCode: 8, preventDefault: Math.abs});\n this.blur();\n this.focus();\n return\n }\n if (this.composing) { return }\n this.rememberSelection();\n var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);\n var head = domToPos(cm, sel.focusNode, sel.focusOffset);\n if (anchor && head) { runInOp(cm, function () {\n setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);\n if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }\n }); }\n };\n\n ContentEditableInput.prototype.pollContent = function () {\n if (this.readDOMTimeout != null) {\n clearTimeout(this.readDOMTimeout);\n this.readDOMTimeout = null;\n }\n\n var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();\n var from = sel.from(), to = sel.to();\n if (from.ch == 0 && from.line > cm.firstLine())\n { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }\n if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())\n { to = Pos(to.line + 1, 0); }\n if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }\n\n var fromIndex, fromLine, fromNode;\n if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {\n fromLine = lineNo(display.view[0].line);\n fromNode = display.view[0].node;\n } else {\n fromLine = lineNo(display.view[fromIndex].line);\n fromNode = display.view[fromIndex - 1].node.nextSibling;\n }\n var toIndex = findViewIndex(cm, to.line);\n var toLine, toNode;\n if (toIndex == display.view.length - 1) {\n toLine = display.viewTo - 1;\n toNode = display.lineDiv.lastChild;\n } else {\n toLine = lineNo(display.view[toIndex + 1].line) - 1;\n toNode = display.view[toIndex + 1].node.previousSibling;\n }\n\n if (!fromNode) { return false }\n var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));\n var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));\n while (newText.length > 1 && oldText.length > 1) {\n if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }\n else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }\n else { break }\n }\n\n var cutFront = 0, cutEnd = 0;\n var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);\n while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))\n { ++cutFront; }\n var newBot = lst(newText), oldBot = lst(oldText);\n var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),\n oldBot.length - (oldText.length == 1 ? cutFront : 0));\n while (cutEnd < maxCutEnd &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))\n { ++cutEnd; }\n // Try to move start of change to start of selection if ambiguous\n if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {\n while (cutFront && cutFront > from.ch &&\n newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {\n cutFront--;\n cutEnd++;\n }\n }\n\n newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\\u200b+/, \"\");\n newText[0] = newText[0].slice(cutFront).replace(/\\u200b+$/, \"\");\n\n var chFrom = Pos(fromLine, cutFront);\n var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);\n if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {\n replaceRange(cm.doc, newText, chFrom, chTo, \"+input\");\n return true\n }\n };\n\n ContentEditableInput.prototype.ensurePolled = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.reset = function () {\n this.forceCompositionEnd();\n };\n ContentEditableInput.prototype.forceCompositionEnd = function () {\n if (!this.composing) { return }\n clearTimeout(this.readDOMTimeout);\n this.composing = null;\n this.updateFromDOM();\n this.div.blur();\n this.div.focus();\n };\n ContentEditableInput.prototype.readFromDOMSoon = function () {\n var this$1 = this;\n\n if (this.readDOMTimeout != null) { return }\n this.readDOMTimeout = setTimeout(function () {\n this$1.readDOMTimeout = null;\n if (this$1.composing) {\n if (this$1.composing.done) { this$1.composing = null; }\n else { return }\n }\n this$1.updateFromDOM();\n }, 80);\n };\n\n ContentEditableInput.prototype.updateFromDOM = function () {\n var this$1 = this;\n\n if (this.cm.isReadOnly() || !this.pollContent())\n { runInOp(this.cm, function () { return regChange(this$1.cm); }); }\n };\n\n ContentEditableInput.prototype.setUneditable = function (node) {\n node.contentEditable = \"false\";\n };\n\n ContentEditableInput.prototype.onKeyPress = function (e) {\n if (e.charCode == 0 || this.composing) { return }\n e.preventDefault();\n if (!this.cm.isReadOnly())\n { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }\n };\n\n ContentEditableInput.prototype.readOnlyChanged = function (val) {\n this.div.contentEditable = String(val != \"nocursor\");\n };\n\n ContentEditableInput.prototype.onContextMenu = function () {};\n ContentEditableInput.prototype.resetPosition = function () {};\n\n ContentEditableInput.prototype.needsContentAttribute = true;\n\n function posToDOM(cm, pos) {\n var view = findViewForLine(cm, pos.line);\n if (!view || view.hidden) { return null }\n var line = getLine(cm.doc, pos.line);\n var info = mapFromLineView(view, line, pos.line);\n\n var order = getOrder(line, cm.doc.direction), side = \"left\";\n if (order) {\n var partPos = getBidiPartAt(order, pos.ch);\n side = partPos % 2 ? \"right\" : \"left\";\n }\n var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);\n result.offset = result.collapse == \"right\" ? result.end : result.start;\n return result\n }\n\n function isInGutter(node) {\n for (var scan = node; scan; scan = scan.parentNode)\n { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }\n return false\n }\n\n function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }\n\n function domTextBetween(cm, from, to, fromLine, toLine) {\n var text = \"\", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;\n function recognizeMarker(id) { return function (marker) { return marker.id == id; } }\n function close() {\n if (closing) {\n text += lineSep;\n if (extraLinebreak) { text += lineSep; }\n closing = extraLinebreak = false;\n }\n }\n function addText(str) {\n if (str) {\n close();\n text += str;\n }\n }\n function walk(node) {\n if (node.nodeType == 1) {\n var cmText = node.getAttribute(\"cm-text\");\n if (cmText) {\n addText(cmText);\n return\n }\n var markerID = node.getAttribute(\"cm-marker\"), range;\n if (markerID) {\n var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));\n if (found.length && (range = found[0].find(0)))\n { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); }\n return\n }\n if (node.getAttribute(\"contenteditable\") == \"false\") { return }\n var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);\n if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }\n\n if (isBlock) { close(); }\n for (var i = 0; i < node.childNodes.length; i++)\n { walk(node.childNodes[i]); }\n\n if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }\n if (isBlock) { closing = true; }\n } else if (node.nodeType == 3) {\n addText(node.nodeValue.replace(/\\u200b/g, \"\").replace(/\\u00a0/g, \" \"));\n }\n }\n for (;;) {\n walk(from);\n if (from == to) { break }\n from = from.nextSibling;\n extraLinebreak = false;\n }\n return text\n }\n\n function domToPos(cm, node, offset) {\n var lineNode;\n if (node == cm.display.lineDiv) {\n lineNode = cm.display.lineDiv.childNodes[offset];\n if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }\n node = null; offset = 0;\n } else {\n for (lineNode = node;; lineNode = lineNode.parentNode) {\n if (!lineNode || lineNode == cm.display.lineDiv) { return null }\n if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }\n }\n }\n for (var i = 0; i < cm.display.view.length; i++) {\n var lineView = cm.display.view[i];\n if (lineView.node == lineNode)\n { return locateNodeInLineView(lineView, node, offset) }\n }\n }\n\n function locateNodeInLineView(lineView, node, offset) {\n var wrapper = lineView.text.firstChild, bad = false;\n if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }\n if (node == wrapper) {\n bad = true;\n node = wrapper.childNodes[offset];\n offset = 0;\n if (!node) {\n var line = lineView.rest ? lst(lineView.rest) : lineView.line;\n return badPos(Pos(lineNo(line), line.text.length), bad)\n }\n }\n\n var textNode = node.nodeType == 3 ? node : null, topNode = node;\n if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {\n textNode = node.firstChild;\n if (offset) { offset = textNode.nodeValue.length; }\n }\n while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }\n var measure = lineView.measure, maps = measure.maps;\n\n function find(textNode, topNode, offset) {\n for (var i = -1; i < (maps ? maps.length : 0); i++) {\n var map = i < 0 ? measure.map : maps[i];\n for (var j = 0; j < map.length; j += 3) {\n var curNode = map[j + 2];\n if (curNode == textNode || curNode == topNode) {\n var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);\n var ch = map[j] + offset;\n if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; }\n return Pos(line, ch)\n }\n }\n }\n }\n var found = find(textNode, topNode, offset);\n if (found) { return badPos(found, bad) }\n\n // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems\n for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {\n found = find(after, after.firstChild, 0);\n if (found)\n { return badPos(Pos(found.line, found.ch - dist), bad) }\n else\n { dist += after.textContent.length; }\n }\n for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {\n found = find(before, before.firstChild, -1);\n if (found)\n { return badPos(Pos(found.line, found.ch + dist$1), bad) }\n else\n { dist$1 += before.textContent.length; }\n }\n }\n\n // TEXTAREA INPUT STYLE\n\n var TextareaInput = function(cm) {\n this.cm = cm;\n // See input.poll and input.reset\n this.prevInput = \"\";\n\n // Flag that indicates whether we expect input to appear real soon\n // now (after some event like 'keypress' or 'input') and are\n // polling intensively.\n this.pollingFast = false;\n // Self-resetting timeout for the poller\n this.polling = new Delayed();\n // Used to work around IE issue with selection being forgotten when focus moves away from textarea\n this.hasSelection = false;\n this.composing = null;\n };\n\n TextareaInput.prototype.init = function (display) {\n var this$1 = this;\n\n var input = this, cm = this.cm;\n this.createField(display);\n var te = this.textarea;\n\n display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);\n\n // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)\n if (ios) { te.style.width = \"0px\"; }\n\n on(te, \"input\", function () {\n if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }\n input.poll();\n });\n\n on(te, \"paste\", function (e) {\n if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }\n\n cm.state.pasteIncoming = +new Date;\n input.fastPoll();\n });\n\n function prepareCopyCut(e) {\n if (signalDOMEvent(cm, e)) { return }\n if (cm.somethingSelected()) {\n setLastCopied({lineWise: false, text: cm.getSelections()});\n } else if (!cm.options.lineWiseCopyCut) {\n return\n } else {\n var ranges = copyableRanges(cm);\n setLastCopied({lineWise: true, text: ranges.text});\n if (e.type == \"cut\") {\n cm.setSelections(ranges.ranges, null, sel_dontScroll);\n } else {\n input.prevInput = \"\";\n te.value = ranges.text.join(\"\\n\");\n selectInput(te);\n }\n }\n if (e.type == \"cut\") { cm.state.cutIncoming = +new Date; }\n }\n on(te, \"cut\", prepareCopyCut);\n on(te, \"copy\", prepareCopyCut);\n\n on(display.scroller, \"paste\", function (e) {\n if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }\n if (!te.dispatchEvent) {\n cm.state.pasteIncoming = +new Date;\n input.focus();\n return\n }\n\n // Pass the `paste` event to the textarea so it's handled by its event listener.\n var event = new Event(\"paste\");\n event.clipboardData = e.clipboardData;\n te.dispatchEvent(event);\n });\n\n // Prevent normal selection in the editor (we handle our own)\n on(display.lineSpace, \"selectstart\", function (e) {\n if (!eventInWidget(display, e)) { e_preventDefault(e); }\n });\n\n on(te, \"compositionstart\", function () {\n var start = cm.getCursor(\"from\");\n if (input.composing) { input.composing.range.clear(); }\n input.composing = {\n start: start,\n range: cm.markText(start, cm.getCursor(\"to\"), {className: \"CodeMirror-composing\"})\n };\n });\n on(te, \"compositionend\", function () {\n if (input.composing) {\n input.poll();\n input.composing.range.clear();\n input.composing = null;\n }\n });\n };\n\n TextareaInput.prototype.createField = function (_display) {\n // Wraps and hides input textarea\n this.wrapper = hiddenTextarea();\n // The semihidden textarea that is focused when the editor is\n // focused, and receives input.\n this.textarea = this.wrapper.firstChild;\n };\n\n TextareaInput.prototype.screenReaderLabelChanged = function (label) {\n // Label for screenreaders, accessibility\n if(label) {\n this.textarea.setAttribute('aria-label', label);\n } else {\n this.textarea.removeAttribute('aria-label');\n }\n };\n\n TextareaInput.prototype.prepareSelection = function () {\n // Redraw the selection and/or cursor\n var cm = this.cm, display = cm.display, doc = cm.doc;\n var result = prepareSelection(cm);\n\n // Move the hidden textarea near the cursor to prevent scrolling artifacts\n if (cm.options.moveInputWithCursor) {\n var headPos = cursorCoords(cm, doc.sel.primary().head, \"div\");\n var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();\n result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,\n headPos.top + lineOff.top - wrapOff.top));\n result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,\n headPos.left + lineOff.left - wrapOff.left));\n }\n\n return result\n };\n\n TextareaInput.prototype.showSelection = function (drawn) {\n var cm = this.cm, display = cm.display;\n removeChildrenAndAdd(display.cursorDiv, drawn.cursors);\n removeChildrenAndAdd(display.selectionDiv, drawn.selection);\n if (drawn.teTop != null) {\n this.wrapper.style.top = drawn.teTop + \"px\";\n this.wrapper.style.left = drawn.teLeft + \"px\";\n }\n };\n\n // Reset the input to correspond to the selection (or to be empty,\n // when not typing and nothing is selected)\n TextareaInput.prototype.reset = function (typing) {\n if (this.contextMenuPending || this.composing) { return }\n var cm = this.cm;\n if (cm.somethingSelected()) {\n this.prevInput = \"\";\n var content = cm.getSelection();\n this.textarea.value = content;\n if (cm.state.focused) { selectInput(this.textarea); }\n if (ie && ie_version >= 9) { this.hasSelection = content; }\n } else if (!typing) {\n this.prevInput = this.textarea.value = \"\";\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n }\n };\n\n TextareaInput.prototype.getField = function () { return this.textarea };\n\n TextareaInput.prototype.supportsTouch = function () { return false };\n\n TextareaInput.prototype.focus = function () {\n if (this.cm.options.readOnly != \"nocursor\" && (!mobile || activeElt() != this.textarea)) {\n try { this.textarea.focus(); }\n catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM\n }\n };\n\n TextareaInput.prototype.blur = function () { this.textarea.blur(); };\n\n TextareaInput.prototype.resetPosition = function () {\n this.wrapper.style.top = this.wrapper.style.left = 0;\n };\n\n TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };\n\n // Poll for input changes, using the normal rate of polling. This\n // runs as long as the editor is focused.\n TextareaInput.prototype.slowPoll = function () {\n var this$1 = this;\n\n if (this.pollingFast) { return }\n this.polling.set(this.cm.options.pollInterval, function () {\n this$1.poll();\n if (this$1.cm.state.focused) { this$1.slowPoll(); }\n });\n };\n\n // When an event has just come in that is likely to add or change\n // something in the input textarea, we poll faster, to ensure that\n // the change appears on the screen quickly.\n TextareaInput.prototype.fastPoll = function () {\n var missed = false, input = this;\n input.pollingFast = true;\n function p() {\n var changed = input.poll();\n if (!changed && !missed) {missed = true; input.polling.set(60, p);}\n else {input.pollingFast = false; input.slowPoll();}\n }\n input.polling.set(20, p);\n };\n\n // Read input from the textarea, and update the document to match.\n // When something is selected, it is present in the textarea, and\n // selected (unless it is huge, in which case a placeholder is\n // used). When nothing is selected, the cursor sits after previously\n // seen text (can be empty), which is stored in prevInput (we must\n // not reset the textarea when typing, because that breaks IME).\n TextareaInput.prototype.poll = function () {\n var this$1 = this;\n\n var cm = this.cm, input = this.textarea, prevInput = this.prevInput;\n // Since this is called a *lot*, try to bail out as cheaply as\n // possible when it is clear that nothing happened. hasSelection\n // will be the case when there is a lot of text in the textarea,\n // in which case reading its value would be expensive.\n if (this.contextMenuPending || !cm.state.focused ||\n (hasSelection(input) && !prevInput && !this.composing) ||\n cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)\n { return false }\n\n var text = input.value;\n // If nothing changed, bail.\n if (text == prevInput && !cm.somethingSelected()) { return false }\n // Work around nonsensical selection resetting in IE9/10, and\n // inexplicable appearance of private area unicode characters on\n // some key combos in Mac (#2689).\n if (ie && ie_version >= 9 && this.hasSelection === text ||\n mac && /[\\uf700-\\uf7ff]/.test(text)) {\n cm.display.input.reset();\n return false\n }\n\n if (cm.doc.sel == cm.display.selForContextMenu) {\n var first = text.charCodeAt(0);\n if (first == 0x200b && !prevInput) { prevInput = \"\\u200b\"; }\n if (first == 0x21da) { this.reset(); return this.cm.execCommand(\"undo\") }\n }\n // Find the part of the input that is actually new\n var same = 0, l = Math.min(prevInput.length, text.length);\n while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }\n\n runInOp(cm, function () {\n applyTextInput(cm, text.slice(same), prevInput.length - same,\n null, this$1.composing ? \"*compose\" : null);\n\n // Don't leave long text in the textarea, since it makes further polling slow\n if (text.length > 1000 || text.indexOf(\"\\n\") > -1) { input.value = this$1.prevInput = \"\"; }\n else { this$1.prevInput = text; }\n\n if (this$1.composing) {\n this$1.composing.range.clear();\n this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor(\"to\"),\n {className: \"CodeMirror-composing\"});\n }\n });\n return true\n };\n\n TextareaInput.prototype.ensurePolled = function () {\n if (this.pollingFast && this.poll()) { this.pollingFast = false; }\n };\n\n TextareaInput.prototype.onKeyPress = function () {\n if (ie && ie_version >= 9) { this.hasSelection = null; }\n this.fastPoll();\n };\n\n TextareaInput.prototype.onContextMenu = function (e) {\n var input = this, cm = input.cm, display = cm.display, te = input.textarea;\n if (input.contextMenuPending) { input.contextMenuPending(); }\n var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;\n if (!pos || presto) { return } // Opera is difficult.\n\n // Reset the current text selection only if the click is done outside of the selection\n // and 'resetSelectionOnContextMenu' option is true.\n var reset = cm.options.resetSelectionOnContextMenu;\n if (reset && cm.doc.sel.contains(pos) == -1)\n { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }\n\n var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;\n var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect();\n input.wrapper.style.cssText = \"position: static\";\n te.style.cssText = \"position: absolute; width: 30px; height: 30px;\\n top: \" + (e.clientY - wrapperBox.top - 5) + \"px; left: \" + (e.clientX - wrapperBox.left - 5) + \"px;\\n z-index: 1000; background: \" + (ie ? \"rgba(255, 255, 255, .05)\" : \"transparent\") + \";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\";\n var oldScrollY;\n if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)\n display.input.focus();\n if (webkit) { window.scrollTo(null, oldScrollY); }\n display.input.reset();\n // Adds \"Select all\" to context menu in FF\n if (!cm.somethingSelected()) { te.value = input.prevInput = \" \"; }\n input.contextMenuPending = rehide;\n display.selForContextMenu = cm.doc.sel;\n clearTimeout(display.detectingSelectAll);\n\n // Select-all will be greyed out if there's nothing to select, so\n // this adds a zero-width space so that we can later check whether\n // it got selected.\n function prepareSelectAllHack() {\n if (te.selectionStart != null) {\n var selected = cm.somethingSelected();\n var extval = \"\\u200b\" + (selected ? te.value : \"\");\n te.value = \"\\u21da\"; // Used to catch context-menu undo\n te.value = extval;\n input.prevInput = selected ? \"\" : \"\\u200b\";\n te.selectionStart = 1; te.selectionEnd = extval.length;\n // Re-set this, in case some other handler touched the\n // selection in the meantime.\n display.selForContextMenu = cm.doc.sel;\n }\n }\n function rehide() {\n if (input.contextMenuPending != rehide) { return }\n input.contextMenuPending = false;\n input.wrapper.style.cssText = oldWrapperCSS;\n te.style.cssText = oldCSS;\n if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }\n\n // Try to detect the user choosing select-all\n if (te.selectionStart != null) {\n if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }\n var i = 0, poll = function () {\n if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&\n te.selectionEnd > 0 && input.prevInput == \"\\u200b\") {\n operation(cm, selectAll)(cm);\n } else if (i++ < 10) {\n display.detectingSelectAll = setTimeout(poll, 500);\n } else {\n display.selForContextMenu = null;\n display.input.reset();\n }\n };\n display.detectingSelectAll = setTimeout(poll, 200);\n }\n }\n\n if (ie && ie_version >= 9) { prepareSelectAllHack(); }\n if (captureRightClick) {\n e_stop(e);\n var mouseup = function () {\n off(window, \"mouseup\", mouseup);\n setTimeout(rehide, 20);\n };\n on(window, \"mouseup\", mouseup);\n } else {\n setTimeout(rehide, 50);\n }\n };\n\n TextareaInput.prototype.readOnlyChanged = function (val) {\n if (!val) { this.reset(); }\n this.textarea.disabled = val == \"nocursor\";\n this.textarea.readOnly = !!val;\n };\n\n TextareaInput.prototype.setUneditable = function () {};\n\n TextareaInput.prototype.needsContentAttribute = false;\n\n function fromTextArea(textarea, options) {\n options = options ? copyObj(options) : {};\n options.value = textarea.value;\n if (!options.tabindex && textarea.tabIndex)\n { options.tabindex = textarea.tabIndex; }\n if (!options.placeholder && textarea.placeholder)\n { options.placeholder = textarea.placeholder; }\n // Set autofocus to true if this textarea is focused, or if it has\n // autofocus and no other element is focused.\n if (options.autofocus == null) {\n var hasFocus = activeElt();\n options.autofocus = hasFocus == textarea ||\n textarea.getAttribute(\"autofocus\") != null && hasFocus == document.body;\n }\n\n function save() {textarea.value = cm.getValue();}\n\n var realSubmit;\n if (textarea.form) {\n on(textarea.form, \"submit\", save);\n // Deplorable hack to make the submit method do the right thing.\n if (!options.leaveSubmitMethodAlone) {\n var form = textarea.form;\n realSubmit = form.submit;\n try {\n var wrappedSubmit = form.submit = function () {\n save();\n form.submit = realSubmit;\n form.submit();\n form.submit = wrappedSubmit;\n };\n } catch(e) {}\n }\n }\n\n options.finishInit = function (cm) {\n cm.save = save;\n cm.getTextArea = function () { return textarea; };\n cm.toTextArea = function () {\n cm.toTextArea = isNaN; // Prevent this from being ran twice\n save();\n textarea.parentNode.removeChild(cm.getWrapperElement());\n textarea.style.display = \"\";\n if (textarea.form) {\n off(textarea.form, \"submit\", save);\n if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == \"function\")\n { textarea.form.submit = realSubmit; }\n }\n };\n };\n\n textarea.style.display = \"none\";\n var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },\n options);\n return cm\n }\n\n function addLegacyProps(CodeMirror) {\n CodeMirror.off = off;\n CodeMirror.on = on;\n CodeMirror.wheelEventPixels = wheelEventPixels;\n CodeMirror.Doc = Doc;\n CodeMirror.splitLines = splitLinesAuto;\n CodeMirror.countColumn = countColumn;\n CodeMirror.findColumn = findColumn;\n CodeMirror.isWordChar = isWordCharBasic;\n CodeMirror.Pass = Pass;\n CodeMirror.signal = signal;\n CodeMirror.Line = Line;\n CodeMirror.changeEnd = changeEnd;\n CodeMirror.scrollbarModel = scrollbarModel;\n CodeMirror.Pos = Pos;\n CodeMirror.cmpPos = cmp;\n CodeMirror.modes = modes;\n CodeMirror.mimeModes = mimeModes;\n CodeMirror.resolveMode = resolveMode;\n CodeMirror.getMode = getMode;\n CodeMirror.modeExtensions = modeExtensions;\n CodeMirror.extendMode = extendMode;\n CodeMirror.copyState = copyState;\n CodeMirror.startState = startState;\n CodeMirror.innerMode = innerMode;\n CodeMirror.commands = commands;\n CodeMirror.keyMap = keyMap;\n CodeMirror.keyName = keyName;\n CodeMirror.isModifierKey = isModifierKey;\n CodeMirror.lookupKey = lookupKey;\n CodeMirror.normalizeKeyMap = normalizeKeyMap;\n CodeMirror.StringStream = StringStream;\n CodeMirror.SharedTextMarker = SharedTextMarker;\n CodeMirror.TextMarker = TextMarker;\n CodeMirror.LineWidget = LineWidget;\n CodeMirror.e_preventDefault = e_preventDefault;\n CodeMirror.e_stopPropagation = e_stopPropagation;\n CodeMirror.e_stop = e_stop;\n CodeMirror.addClass = addClass;\n CodeMirror.contains = contains;\n CodeMirror.rmClass = rmClass;\n CodeMirror.keyNames = keyNames;\n }\n\n // EDITOR CONSTRUCTOR\n\n defineOptions(CodeMirror);\n\n addEditorMethods(CodeMirror);\n\n // Set up methods on CodeMirror's prototype to redirect to the editor's document.\n var dontDelegate = \"iter insert remove copy getEditor constructor\".split(\" \");\n for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)\n { CodeMirror.prototype[prop] = (function(method) {\n return function() {return method.apply(this.doc, arguments)}\n })(Doc.prototype[prop]); } }\n\n eventMixin(Doc);\n CodeMirror.inputStyles = {\"textarea\": TextareaInput, \"contenteditable\": ContentEditableInput};\n\n // Extra arguments are stored as the mode's dependencies, which is\n // used by (legacy) mechanisms like loadmode.js to automatically\n // load a mode. (Preferred mechanism is the require/define calls.)\n CodeMirror.defineMode = function(name/*, mode, …*/) {\n if (!CodeMirror.defaults.mode && name != \"null\") { CodeMirror.defaults.mode = name; }\n defineMode.apply(this, arguments);\n };\n\n CodeMirror.defineMIME = defineMIME;\n\n // Minimal default mode.\n CodeMirror.defineMode(\"null\", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });\n CodeMirror.defineMIME(\"text/plain\", \"null\");\n\n // EXTENSIONS\n\n CodeMirror.defineExtension = function (name, func) {\n CodeMirror.prototype[name] = func;\n };\n CodeMirror.defineDocExtension = function (name, func) {\n Doc.prototype[name] = func;\n };\n\n CodeMirror.fromTextArea = fromTextArea;\n\n addLegacyProps(CodeMirror);\n\n CodeMirror.version = \"5.61.1\";\n\n return CodeMirror;\n\n})));\n"],"names":["module","exports","userAgent","navigator","platform","gecko","test","ie_upto10","ie_11up","exec","edge","ie","ie_version","document","documentMode","webkit","qtwebkit","chrome","presto","safari","vendor","mac_geMountainLion","phantom","ios","maxTouchPoints","android","mobile","mac","chromeOS","windows","presto_version","match","Number","flipCtrlCmd","captureRightClick","classTest","cls","RegExp","range","rmClass","node","current","className","after","slice","index","length","removeChildren","e","count","childNodes","removeChild","firstChild","removeChildrenAndAdd","parent","appendChild","elt","tag","content","style","createElement","cssText","createTextNode","i","eltP","setAttribute","contains","child","nodeType","parentNode","host","activeElt","activeElement","body","shadowRoot","addClass","joinClasses","a","b","as","split","createRange","start","end","endNode","r","setEnd","setStart","createTextRange","moveToElementText","collapse","moveEnd","moveStart","selectInput","select","bind","f","args","Array","prototype","call","arguments","apply","copyObj","obj","target","overwrite","prop","hasOwnProperty","countColumn","string","tabSize","startIndex","startValue","search","n","nextTab","indexOf","selectionStart","selectionEnd","value","_e","Delayed","this","id","time","handler","onTimeout","array","self","Date","setTimeout","set","ms","clearTimeout","Pass","toString","sel_dontScroll","scroll","sel_mouse","origin","sel_move","findColumn","goal","pos","col","skipped","Math","min","spaceStrs","spaceStr","push","lst","arr","map","out","nothing","createObj","base","props","inst","Object","create","nonASCIISingleCaseWordChar","isWordCharBasic","ch","toUpperCase","toLowerCase","isWordChar","helper","source","isEmpty","extendingChars","isExtendingChar","charCodeAt","skipExtendingChars","str","dir","charAt","findFirst","pred","from","to","midF","mid","ceil","floor","bidiOther","getBidiPartAt","order","sticky","found","cur","bidiOrdering","bidiRE","isNeutral","isStrong","countsAsLeft","countsAsNum","BidiSpan","level","direction","code","outerType","len","types","i$1","prev","type","i$2","type$1","i$3","prev$1","type$2","i$4","type$3","replace","j","i$5","cur$1","type$4","i$6","end$1","before","replace$1","j$1","m","i$7","at","isRTL","j$2","splice","nstart","unshift","reverse","getOrder","line","text","noHandlers","on","emitter","addEventListener","attachEvent","_handlers","concat","getHandlers","off","removeEventListener","detachEvent","signal","handlers","signalDOMEvent","cm","override","preventDefault","defaultPrevented","e_defaultPrevented","codemirrorIgnore","signalCursorActivity","cursorActivity","curOp","cursorActivityHandlers","hasHandler","eventMixin","ctor","e_preventDefault","returnValue","e_stopPropagation","stopPropagation","cancelBubble","e_stop","e_target","srcElement","e_button","which","button","ctrlKey","zwspSupported","badBidiRects","dragAndDrop","div","zeroWidthElement","measure","offsetHeight","offsetWidth","hasBadBidiRects","txt","r0","getBoundingClientRect","r1","left","right","splitLinesAuto","result","l","nl","rt","hasSelection","window","getSelection","te","ownerDocument","selection","parentElement","compareEndPoints","hasCopyEvent","oncopy","badZoomedRects","modes","mimeModes","defineMode","name","mode","dependencies","resolveMode","spec","getMode","options","mfactory","modeObj","modeExtensions","exts","helperType","modeProps","prop$1","extendMode","properties","copyState","state","nstate","val","innerMode","info","startState","a1","a2","StringStream","lineOracle","lastColumnPos","lastColumnValue","lineStart","getLine","doc","first","size","Error","chunk","lines","children","sz","chunkSize","getBetween","iter","getLines","updateLineHeight","height","diff","lineNo","no","lineAtHeight","h","outer","lh","isLine","lineNumberFor","String","lineNumberFormatter","firstLineNumber","Pos","cmp","equalCursorPos","copyPos","x","maxPos","minPos","clipLine","max","clipPos","last","linelen","clipToLen","clipPosArray","eol","sol","peek","undefined","next","eat","eatWhile","eatSpace","skipToEnd","skipTo","backUp","column","indentation","pattern","consume","caseInsensitive","cased","substr","hideFirstChars","inner","lookAhead","oracle","baseToken","SavedContext","Context","maxLookAhead","baseTokens","baseTokenPos","highlightLine","context","forceToEnd","st","modeGen","lineClasses","runMode","loop","o","overlay","overlays","i_end","opaque","styles","classes","bgClass","textClass","getLineStyles","updateFrontier","getContextBefore","resetState","maxHighlightLength","stateAfter","save","styleClasses","highlightFrontier","modeFrontier","precise","display","minindent","minline","lim","indented","findStartLine","saved","fromSaved","processLine","viewFrom","viewTo","nextLine","startAt","stream","callBlankLine","readToken","blankLine","token","copy","Token","takeToken","asArray","tokens","extractLineClasses","output","lineClass","flattenSpans","curStart","curStyle","addModeClass","mName","sawReadOnlySpans","sawCollapsedSpans","MarkedSpan","marker","getMarkedSpanFor","spans","span","removeMarkedSpan","stretchSpansOverChange","change","full","oldFirst","markedSpans","oldLast","startCh","endCh","isInsert","old","nw","inclusiveLeft","insertLeft","endsAfter","inclusiveRight","markedSpansBefore","startsBefore","markedSpansAfter","sameLine","offset","span$1","clearEmptySpans","newMarkers","gapMarkers","gap","clearWhenEmpty","detachMarkedSpans","detachLine","attachMarkedSpans","attachLine","extraLeft","extraRight","compareCollapsedMarkers","lenDiff","aPos","find","bPos","fromCmp","collapsedSpanAtSide","sps","sp","collapsed","collapsedSpanAtStart","collapsedSpanAtEnd","collapsedSpanAround","conflictingCollapsedRange","toCmp","visualLine","merged","visualLineNo","lineN","vis","visualLineEndNo","lastLine","lineIsHidden","widgetNode","lineIsHiddenInner","heightAtLine","lineObj","p","lineLength","found$1","findMaxLine","d","maxLine","maxLineLength","maxLineChanged","Line","estimateHeight","cleanUpLine","styleToClassCache","styleToClassCacheWithMode","interpretTokenStyle","cache","buildLineContent","lineView","builder","pre","trailingSpace","splitSpaces","getOption","rest","addToken","buildToken","buildTokenBadBidi","insertLineContent","externalMeasured","maps","caches","lastChild","querySelector","defaultSpecialCharPlaceholder","title","startStyle","endStyle","css","attributes","displayText","trailingBefore","spaceBefore","special","specialChars","mustWrap","createDocumentFragment","lastIndex","txt$1","tabWidth","specialCharPlaceholder","fullStyle","attr","part","buildCollapsedSpan","ignoreWidget","widget","input","needsContentAttribute","setUneditable","allText","spanStyle","spanEndStyle","spanStartStyle","nextChange","Infinity","foundBookmarks","endStyles","upto","tokenText","LineView","visualLineContinued","hidden","buildViewArray","nextPos","view","operationGroup","orphanDelayedCallbacks","signalLater","list","delayedCallbacks","fireOrphanDelayed","delayed","updateLineForChanges","dims","changes","updateLineText","updateLineGutter","updateLineClasses","updateLineWidgets","ensureLineWrapped","replaceChild","zIndex","getLineContent","ext","built","background","wrap","insertBefore","updateLineBackground","wrapClass","gutter","gutterBackground","gutterClass","fixedGutter","fixedPos","gutterTotalWidth","markers","gutterMarkers","lineNumbers","wrap$1","gutterWrap","lineNumber","gutterLeft","k","gutterSpecs","gutterWidth","alignable","isWidget","nextSibling","insertLineWidgets","buildLineElement","insertLineWidgetsFor","allowAbove","widgets","ws","handleMouseEvents","positionLineWidget","above","noHScroll","width","wrapperWidth","coverGutter","paddingLeft","position","marginLeft","widgetHeight","parentStyle","gutters","wrapper","clientWidth","eventInWidget","getAttribute","sizer","mover","paddingTop","lineSpace","offsetTop","paddingVert","paddingH","cachedPaddingH","getComputedStyle","currentStyle","data","parseInt","paddingRight","isNaN","scrollGap","nativeBarWidth","displayWidth","scroller","barWidth","displayHeight","clientHeight","barHeight","mapFromLineView","measureChar","bias","measureCharPrepared","prepareMeasureForLine","findViewForLine","findViewIndex","getDimensions","forceUpdate","lineMeasure","updateExternalMeasurement","rect","hasHeights","prepared","varHeight","key","wrapping","lineWrapping","curWidth","heights","rects","getClientRects","abs","bottom","top","ensureLineHeights","place","nodeAndOffsetInLineMap","coverStart","coverEnd","getUsefulRect","screen","logicalXDPI","deviceXDPI","normal","fromRange","hasBadZoomedRects","scaleX","scaleY","logicalYDPI","deviceYDPI","maybeUpdateRectForZooming","rSpan","charWidth","nullRect","rtop","rbot","bot","bogus","singleCursorHeightPerLine","rbottom","measureCharInner","measureText","mStart","mEnd","clearLineMeasurementCacheFor","clearLineMeasurementCache","externalMeasure","clearCaches","cachedCharWidth","cachedTextHeight","lineNumChars","pageScrollX","pageXOffset","documentElement","scrollLeft","pageScrollY","marginTop","pageYOffset","scrollTop","widgetTopHeight","intoCoordSystem","includeWidgets","yOff","viewOffset","lOff","xOff","fromCoordSystem","coords","localBox","lineSpaceBox","charCoords","cursorCoords","preparedMeasure","get","getBidi","partPos","invert","other","estimateCoords","PosWithInfo","outside","xRel","coordsChar","y","coordsCharInner","rangeEnd","wrappedLineExtent","begin","wrappedLineExtentChar","boxIsAfter","box","ltr","coordsBidiPartWrapped","coordsBidiPart","baseX","chAround","boxAround","atLeft","atStart","_lineNo","ref","closestDist","endX","dist","textHeight","anchor","clientLeft","offsetLeft","compensateForHScroll","th","perLine","widgetsHeight","estimateLineHeights","est","estHeight","posFromMouse","liberal","forRect","space","clientX","clientY","e$1","colDiff","round","regChange","lendiff","updateLineNumbers","viewChanged","resetView","cut","viewCuttingPoint","cut$1","cutTop","cutBot","regLineChange","oldN","newN","countDirtyView","dirty","updateSelection","showSelection","prepareSelection","primary","curFragment","cursors","selFragment","sel","ranges","primIndex","empty","showCursorWhenSelecting","drawSelectionCursor","head","drawSelectionRange","cursor","cursorHeight","otherCursor","cmpCoords","fragment","padding","leftSide","rightSide","sizerWidth","docLTR","add","drawForLine","fromArg","toArg","lineLen","wrapX","side","extent","iterateBidiSections","fromPos","toPos","openStart","openEnd","openRight","topLeft","topRight","botLeft","botRight","sFrom","sTo","fromLine","toLine","singleVLine","leftEnd","rightStart","restartBlink","focused","clearInterval","blinker","cursorDiv","visibility","cursorBlinkRate","setInterval","hasFocus","onBlur","ensureFocus","focus","onFocus","delayBlurEvent","delayingBlurEvent","draggingText","readOnly","selForContextMenu","reset","receivedFocus","shift","updateHeightsInViewport","prevBottom","lineDiv","updateWidgetHeight","chWidth","w","visibleLines","viewport","ensure","ensureFrom","ensureTo","calculateScrollPos","snapMargin","screentop","docBottom","atTop","atBottom","newTop","gutterSpace","screenleft","screenw","tooWide","addToScrollTop","resolveScrollToPos","ensureCursorVisible","getCursor","scrollToPos","margin","cursorScrollMargin","scrollToCoords","scrollToCoordsRange","sPos","updateScrollTop","updateDisplaySimple","setScrollTop","startWorker","forceScroll","scrollHeight","scrollbars","setScrollLeft","isScroller","scrollWidth","alignHorizontally","measureForScrollbars","gutterW","docH","viewHeight","viewWidth","barLeft","docHeight","NativeScrollbars","vert","horiz","tabIndex","checkedZeroWidth","minHeight","minWidth","update","needsH","needsV","sWidth","totalHeight","totalWidth","zeroWidthHack","disableHoriz","enableZeroWidthBar","disableVert","pointerEvents","bar","delay","maybeDisable","elementFromPoint","clear","NullScrollbars","updateScrollbars","startWidth","startHeight","updateScrollbarsInner","sizes","paddingBottom","heightForcer","borderBottom","scrollbarFiller","coverGutterNextToScrollbar","gutterFiller","scrollbarModel","initScrollbars","scrollbarStyle","axis","nextOpId","startOperation","op","updateInput","typing","changeObjs","cursorActivityCalled","selectionChanged","updateMaxLine","markArrays","ops","ownsGroup","endOperation","endCb","group","callbacks","fireCallbacksForOps","finishOperation","endOperation_R1","endOperation_W1","endOperation_R2","endOperation_W2","endOperation_finish","endOperations","scrollbarsClipped","marginBottom","borderRightWidth","maybeClipScrollbars","mustUpdate","DisplayUpdate","updatedDisplay","updateDisplayIfNeeded","barMeasure","adjustWidthTo","maxScrollLeft","preparedSelection","takeFocus","setDocumentHeight","postUpdateDisplay","wheelStartX","wheelStartY","doScroll","innerHeight","scrollNode","scrollIntoView","maybeScrollWindow","limit","changed","endCoords","scrollPos","startTop","startLeft","scrollPosIntoView","maybeHiddenMarkers","unhidden","maybeUnhiddenMarkers","finish","runInOp","operation","methodOp","docMethodOp","highlight","highlightWorker","workTime","changedLines","oldStyles","highlighted","oldCls","newCls","ischange","workDelay","force","visible","editorIsHidden","wrapperHeight","oldDisplayWidth","events","renderedView","maybeUpdateLineNumberWidth","viewportMargin","different","lastWrapHeight","lastWrapWidth","adjustView","toUpdate","selSnapshot","active","anchorNode","extend","anchorOffset","focusNode","focusOffset","selectionSnapshot","updateNumbersFrom","container","rm","currentWheelTarget","updateNumber","patchDisplay","snapshot","nodeName","removeAllRanges","addRange","restoreSelection","selectionDiv","reportedViewFrom","reportedViewTo","updateGutterSpace","alignWidgets","comp","align","innerW","lineGutter","lineNumInnerWidth","lineNumWidth","getGutters","sawLineNumbers","renderGutters","specs","gElt","updateGutters","Display","draggable","wheelDX","wheelDY","activeTouch","init","wheelSamples","wheelPixelsPerUnit","wheelEventDelta","dx","wheelDeltaX","dy","wheelDeltaY","detail","HORIZONTAL_AXIS","VERTICAL_AXIS","wheelDelta","wheelEventPixels","delta","onScrollWheel","canScrollX","canScrollY","pixels","movedX","movedY","sample","Selection","equals","here","there","deepCopy","Range","somethingSelected","normalizeSelection","mayTouch","selectionsMayTouch","prim","sort","inv","simpleSelection","changeEnd","adjustForChange","computeSelAfterChange","offsetPos","loadMode","modeOption","resetModeState","isWholeLineUpdate","wholeLineUpdateBefore","updateDoc","spansFor","updateLine","linesFor","firstLine","lastText","lastSpans","nlines","insert","remove","added","added$1","added$2","linkedDocs","sharedHistOnly","propagate","skip","sharedHist","linked","rel","shared","attachDoc","setDirectionClass","History","done","undone","undoDepth","lastModTime","lastSelTime","lastOp","lastSelOp","lastOrigin","lastSelOrigin","generation","maxGeneration","historyChangeFromChange","histChange","attachLocalSpans","clearSelectionEvents","pop","addChangeToHistory","selAfter","opId","hist","history","historyEventDelay","lastChangeEvent","pushSelectionToHistory","addSelectionToHistory","selectionEventCanBeMerged","clearRedo","dest","existing","removeClearedSpans","explicitlyCleared","mergeOldSpans","getOldSpans","stretched","oldCur","stretchCur","copyHistoryArray","newGroup","instantiateSel","event","newChanges","extendRange","posBefore","extendSelection","setSelection","extendSelections","heads","replaceOneSelection","setSimpleSelection","setSelectionReplaceHistory","setSelectionNoUndo","NaN","filterSelectionChange","setSelectionInner","skipAtomicInSelection","reCheckSelection","mayClear","newAnchor","skipAtomic","newHead","skipAtomicInner","oldPos","preventCursorLeft","selectLeft","preventCursorRight","selectRight","atomic","near","movePos","far","cantEdit","selectAll","filterChange","canceled","cancel","makeChange","ignoreReadOnly","suppressEdits","mark","parts","mk","newParts","dfrom","dto","removeReadOnlyRanges","makeChangeInner","makeChangeSingleDoc","rebased","rebaseHist","makeChangeFromHistory","allowSelectionOnly","suppress","antiChanges","filter","returned","v","shiftDoc","distance","removed","recomputeMaxLength","checkWidthStart","retreatFrontier","changesHandler","changeHandler","makeChangeSingleDocInEditor","replaceRange","assign","splitLines","rebaseHistSelSingle","rebaseHistArray","sub","ok","copied","changeLine","handle","changeType","LeafChunk","BranchChunk","removeInner","insertInner","iterN","oldHeight","remaining","leaf","maybeSpill","me","sibling","myIndex","used","LineWidget","opt","adjustScrollWhenAboveVisible","this$1","oldH","nextMarkerId","TextMarker","markText","cloneNode","isParent","SharedTextMarker","markTextShared","replacedWith","addToHistory","curLine","inThisOp","WeakSet","has","addMarkedSpan","clearOnEnter","clearHistory","withOp","visual","dHeight","findSharedMarkers","findMarks","detachSharedMarkers","subMarker","nextDocId","Doc","lineSep","cleanGeneration","constructor","getValue","join","lineSeparator","setValue","getRange","getLineHandle","getLineNumber","getLineHandleVisualStart","lineCount","listSelections","setCursor","extendSelectionsBy","setSelections","addSelection","getSelections","replaceSelection","dup","replaceSelections","newSel","hint","oldPrev","newPrev","computeReplacedSel","undo","redo","undoSelection","redoSelection","setExtending","getExtending","historySize","markClean","changeGeneration","forceSplit","isClean","gen","getHistory","setHistory","histData","setGutterMarker","gutterID","clearGutter","lineInfo","addLineClass","where","removeLineClass","addLineWidget","insertAt","aboveVisible","removeLineWidget","setBookmark","realOpts","findMarksAt","getAllMarks","posFromIndex","sepSize","indexFromPos","copyHistory","linkedDoc","mFrom","mTo","subMark","copySharedMarkers","unlinkDoc","CodeMirror","splitIds","iterLinkedDocs","getEditor","setDirection","eachLine","lastDrop","onDrop","clearDragCursor","files","dataTransfer","isReadOnly","FileReader","File","read","markAsReadAndPasteIfAllFilesAreRead","t","readTextFromFile","file","allowDropFileTypes","reader","onerror","onload","readAsText","text$1","getData","selected","dragCursor","forEachCodeMirror","getElementsByClassName","byClass","editors","globalsRegistered","ensureGlobalHandlers","resizeTimer","onResize","setSize","keyNames","fromCharCode","keyMap","normalizeKeyName","alt","ctrl","cmd","mod","normalizeKeyMap","keymap","keyname","keys","lookupKey","getKeyMap","fallthrough","isModifierKey","keyCode","addModifierNames","noShift","altKey","metaKey","shiftKey","keyName","altGraphKey","deleteNearSelection","compute","kill","toKill","replaced","moveCharLogically","moveLogically","endOfLine","visually","prep","targetTop","basic","pcDefault","emacsy","macDefault","commands","singleSelection","killLine","deleteLine","delLineLeft","delWrappedLineLeft","delWrappedLineRight","rightPos","goDocStart","goDocEnd","goLineStart","goLineStartSmart","lineStartSmart","goLineEnd","visualLineEnd","lineEnd","goLineRight","goLineLeft","goLineLeftSmart","goLineUp","moveV","goLineDown","goPageUp","goPageDown","goCharLeft","moveH","goCharRight","goColumnLeft","goColumnRight","goWordLeft","goGroupRight","goGroupLeft","goWordRight","delCharBefore","deleteH","delCharAfter","delWordBefore","delWordAfter","delGroupBefore","delGroupAfter","indentAuto","indentSelection","indentMore","indentLess","insertTab","insertSoftTab","spaces","defaultTab","execCommand","transposeChars","newlineAndIndent","sels","indentLine","openLine","toggleOverwrite","firstNonWS","inWS","doHandleBinding","bound","dropShift","ensurePolled","prevShift","stopSeq","dispatchKey","seq","keySeq","dispatchKeyInner","keyMaps","extraKeys","lookupKeyForEditor","handleKeyBinding","motion","lastStoppedKey","onKeyDown","getField","handled","up","showCrossHair","onKeyUp","onKeyPress","charCode","handleCharBinding","lastClick","lastDoubleClick","PastClick","onMouseDown","supportsTouch","clickInGutter","repeat","now","compare","clickRepeat","selectingText","handleMappedButton","contained","behavior","option","unit","addNew","moveOnDrag","configureMouse","dragDrop","moved","dragEnd","mouseMove","dragStart","preventScroll","e2","leftButtonStartDrag","ourRange","ourIndex","startSel","rangeForUnit","lastPos","extendTo","startCol","posCol","leftPos","oldRange","ranges$1","anchorLine","boundary","headIndex","usePart","bidiSimplify","editorSize","counter","curCount","move","buttons","leftButtonSelect","leftButtonDown","onContextMenu","findWordAt","gutterEvent","prevent","mX","mY","touches","lineBox","g","contextMenuInGutter","themeChanged","theme","Init","defaults","optionHandlers","dragDropChanged","funcs","dragFunctions","toggle","enter","over","leave","drop","wrappingChanged","inputStyles","inputStyle","pasteIncoming","cutIncoming","autofocus","word","touchFinished","prevTouch","finishTouch","isMouseLikeTouchEvent","touch","radiusX","radiusY","farAway","pageX","pageY","frag","onDragOver","setData","effectAllowed","setDragImage","img","src","_top","onDragStart","inp","registerEventHandlers","finishInit","initHooks","textRendering","how","aggressive","indent","curSpace","curSpaceString","indentUnit","indentString","indentWithTabs","pos$1","defineInitHook","lastCopied","setLastCopied","newLastCopied","applyTextInput","inserted","deleted","recent","paste","textLines","multiPaste","pasteLinesPerSelection","lineWise","changeEvent","triggerElectric","handlePaste","pasted","clipboardData","disableInput","electricChars","smartIndent","getModeAt","electricInput","copyableRanges","lineRange","disableBrowserMagic","field","spellcheck","autocorrect","autocapitalize","hiddenTextarea","border","findPosH","origDir","lineDir","moveOnce","boundToLine","astral","bidi","mv","getWrappedLineExtent","moveInStorageOrder","searchInVisualLine","getRes","res","nextCh","moveVisually","sawType","getHelper","hitSide","findPosV","pageSize","moveAmount","ContentEditableInput","lastAnchorNode","lastAnchorOffset","lastFocusNode","lastFocusOffset","polling","composing","gracePeriod","readDOMTimeout","posToDOM","badPos","bad","domToPos","lineNode","locateNodeInLineView","textNode","topNode","nodeValue","curNode","textContent","previousSibling","dist$1","belongsToInput","onCopyCut","lineWiseCopyCut","clearData","kludge","hadFocus","showPrimarySelection","contentEditable","updateFromDOM","readFromDOMSoon","forceCompositionEnd","screenReaderLabelChanged","label","removeAttribute","showMultipleSelections","curAnchor","curFocus","rng","rangeCount","getRangeAt","startGracePeriod","rememberSelection","selectionInEditor","commonAncestorContainer","blur","pollSelection","pollInterval","poll","scan","isInGutter","triggerOnKeyDown","pollContent","fromIndex","fromNode","toNode","toIndex","newText","closing","extraLinebreak","close","addText","walk","cmText","markerID","isBlock","domTextBetween","oldText","cutFront","cutEnd","oldTop","maxCutFront","newBot","oldBot","maxCutEnd","chFrom","chTo","readOnlyChanged","resetPosition","TextareaInput","prevInput","pollingFast","createField","textarea","prepareCopyCut","fastPoll","dispatchEvent","Event","_display","moveInputWithCursor","headPos","wrapOff","lineOff","teTop","teLeft","drawn","contextMenuPending","slowPoll","missed","same","resetSelectionOnContextMenu","oldScrollY","oldCSS","oldWrapperCSS","wrapperBox","offsetParent","scrollY","scrollTo","rehide","detectingSelectAll","prepareSelectAllHack","mouseup","extval","disabled","deflt","notOnInit","defineOption","newBreaks","refresh","getInputField","detach","attach","integer","defineOptions","helpers","setOption","getDoc","addKeyMap","removeKeyMap","addOverlay","score","priority","insertSorted","modeSpec","removeOverlay","newRanges","getTokenAt","getLineTokens","getTokenTypeAt","getHelpers","help","_global","getStateAfter","defaultTextHeight","defaultCharWidth","getViewport","addWidget","vspace","hspace","triggerOnKeyPress","triggerOnKeyUp","triggerOnMouseDown","amount","rtlMoveVisually","goalColumn","goals","startChar","check","getScrollInfo","scrollToRange","interpret","swapDoc","phrase","phraseText","phrases","getWrapperElement","getScrollerElement","getGutterElement","registerHelper","registerGlobalHelper","predicate","addEditorMethods","dontDelegate","method","defineMIME","mime","defineExtension","func","defineDocExtension","fromTextArea","tabindex","placeholder","realSubmit","form","leaveSubmitMethodAlone","submit","wrappedSubmit","getTextArea","toTextArea","cmpPos","addLegacyProps","version","factory"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/582.21b8e7d.js b/_static/build/582.21b8e7d.js new file mode 100644 index 0000000..19ac40d --- /dev/null +++ b/_static/build/582.21b8e7d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[582],{56738:(o,r,e)=>{e.d(r,{Z:()=>A});var t=e(34663),i=e.n(t),n=e(7638),c=e.n(n)()(i());c.push([o.id,".cm-s-liquibyte.CodeMirror {\n\tbackground-color: #000;\n\tcolor: #fff;\n\tline-height: 1.2em;\n\tfont-size: 1em;\n}\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\n\ttext-decoration: underline;\n\ttext-decoration-color: #0f0;\n\ttext-decoration-style: wavy;\n}\n.cm-s-liquibyte .cm-trailingspace {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #f00;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .cm-tab {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #404040;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\n.cm-s-liquibyte .CodeMirror-guttermarker { }\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\n\n.cm-s-liquibyte span.cm-comment { color: #008000; }\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\n\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\n.cm-s-liquibyte span.cm-operator { color: #fff; }\n\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-error { color: #f00; }\n\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\n\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\n\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\n\n/* Default styles for common addons */\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\n/* Scrollbars */\n/* Simple */\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\n\tbackground-color: rgba(80, 80, 80, .7);\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tbackground-color: rgba(80, 80, 80, .3);\n\tborder: 1px solid #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tborder-top: 1px solid #404040;\n\tborder-bottom: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\n\tborder-left: 1px solid #404040;\n\tborder-right: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\n\tbackground-color: #262626;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\n\tbackground-color: #262626;\n\tborder-top: 1px solid #404040;\n}\n/* Overlay */\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\n\tbackground-color: #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\n\tborder: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\n\tborder: 1px solid #404040;\n}\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/liquibyte.css"],names:[],mappings:"AAAA;CACC,sBAAsB;CACtB,WAAW;CACX,kBAAkB;CAClB,cAAc;AACf;AACA;CACC,0BAA0B;CAC1B,2BAA2B;CAC3B,2BAA2B;AAC5B;AACA;CACC,6BAA6B;CAC7B,2BAA2B;CAC3B,6BAA6B;AAC9B;AACA;CACC,6BAA6B;CAC7B,8BAA8B;CAC9B,6BAA6B;AAC9B;AACA,sCAAsC,yBAAyB,EAAE,+BAA+B,EAAE,oBAAoB,EAAE;AACxH,6CAA6C,gBAAgB,EAAE;AAC/D,4CAA4C;AAC5C,mDAAmD;AACnD,yCAAyC,cAAc,EAAE,eAAe,EAAE;AAC1E,qCAAqC,2BAA2B,EAAE;;AAElE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;;AAEzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,mEAAmE,cAAc,EAAE,iBAAiB,EAAE;AACtG,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,WAAW,EAAE;;AAEnD,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;;AAEnD,0CAA0C,uCAAuC,EAAE;;AAEnF,sCAAsC,2CAA2C,EAAE;;AAEnF,oDAAoD,uCAAuC,EAAE;;AAE7F,qCAAqC;AACrC,8DAA8D,WAAW,EAAE,iBAAiB,EAAE;AAC9F,iEAAiE,WAAW,EAAE,iBAAiB,EAAE;AACjG,0BAA0B,uCAAuC,EAAE;AACnE,eAAe;AACf,WAAW;AACX;CACC,sCAAsC;AACvC;AACA;CACC,sCAAsC;CACtC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,6BAA6B;CAC7B,gCAAgC;AACjC;AACA;CACC,8BAA8B;CAC9B,+BAA+B;AAChC;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;CACzB,6BAA6B;AAC9B;AACA,YAAY;AACZ;CACC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;AAC1B",sourcesContent:[".cm-s-liquibyte.CodeMirror {\n\tbackground-color: #000;\n\tcolor: #fff;\n\tline-height: 1.2em;\n\tfont-size: 1em;\n}\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\n\ttext-decoration: underline;\n\ttext-decoration-color: #0f0;\n\ttext-decoration-style: wavy;\n}\n.cm-s-liquibyte .cm-trailingspace {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #f00;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .cm-tab {\n\ttext-decoration: line-through;\n\ttext-decoration-color: #404040;\n\ttext-decoration-style: dotted;\n}\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\n.cm-s-liquibyte .CodeMirror-guttermarker { }\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\n\n.cm-s-liquibyte span.cm-comment { color: #008000; }\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\n\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\n.cm-s-liquibyte span.cm-operator { color: #fff; }\n\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\n.cm-s-liquibyte span.cm-error { color: #f00; }\n\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\n\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\n\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\n\n/* Default styles for common addons */\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\n/* Scrollbars */\n/* Simple */\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\n\tbackground-color: rgba(80, 80, 80, .7);\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tbackground-color: rgba(80, 80, 80, .3);\n\tborder: 1px solid #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\n\tborder-top: 1px solid #404040;\n\tborder-bottom: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\n\tborder-left: 1px solid #404040;\n\tborder-right: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\n\tbackground-color: #262626;\n}\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\n\tbackground-color: #262626;\n\tborder-top: 1px solid #404040;\n}\n/* Overlay */\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\n\tbackground-color: #404040;\n\tborder-radius: 5px;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\n\tborder: 1px solid #404040;\n}\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\n\tborder: 1px solid #404040;\n}\n"],sourceRoot:""}]);const A=c},7638:o=>{o.exports=function(o){var r=[];return r.toString=function(){return this.map((function(r){var e="",t=void 0!==r[5];return r[4]&&(e+="@supports (".concat(r[4],") {")),r[2]&&(e+="@media ".concat(r[2]," {")),t&&(e+="@layer".concat(r[5].length>0?" ".concat(r[5]):""," {")),e+=o(r),t&&(e+="}"),r[2]&&(e+="}"),r[4]&&(e+="}"),e})).join("")},r.i=function(o,e,t,i,n){"string"==typeof o&&(o=[[null,o,void 0]]);var c={};if(t)for(var A=0;A0?" ".concat(a[5]):""," {").concat(a[1],"}")),a[5]=n),e&&(a[2]?(a[1]="@media ".concat(a[2]," {").concat(a[1],"}"),a[2]=e):a[2]=e),i&&(a[4]?(a[1]="@supports (".concat(a[4],") {").concat(a[1],"}"),a[4]=i):a[4]="".concat(i)),r.push(a))}},r}},34663:o=>{o.exports=function(o){var r=o[1],e=o[3];if(!e)return r;if("function"==typeof btoa){var t=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(t),n="/*# ".concat(i," */"),c=e.sources.map((function(o){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(o," */")}));return[r].concat(c).concat([n]).join("\n")}return[r].join("\n")}},60582:(o,r,e)=>{e.r(r),e.d(r,{default:()=>p});var t=e(1892),i=e.n(t),n=e(95760),c=e.n(n),A=e(38311),l=e.n(A),s=e(58192),a=e.n(s),d=e(38060),C=e.n(d),u=e(54865),m=e.n(u),b=e(56738),f={};f.styleTagTransform=m(),f.setAttributes=a(),f.insert=l().bind(null,"head"),f.domAPI=c(),f.insertStyleElement=C(),i()(b.Z,f);const p=b.Z&&b.Z.locals?b.Z.locals:void 0},1892:o=>{var r=[];function e(o){for(var e=-1,t=0;t{var r={};o.exports=function(o,e){var t=function(o){if(void 0===r[o]){var e=document.querySelector(o);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(o){e=null}r[o]=e}return r[o]}(o);if(!t)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");t.appendChild(e)}},38060:o=>{o.exports=function(o){var r=document.createElement("style");return o.setAttributes(r,o.attributes),o.insert(r,o.options),r}},58192:(o,r,e)=>{o.exports=function(o){var r=e.nc;r&&o.setAttribute("nonce",r)}},95760:o=>{o.exports=function(o){var r=o.insertStyleElement(o);return{update:function(e){!function(o,r,e){var t="";e.supports&&(t+="@supports (".concat(e.supports,") {")),e.media&&(t+="@media ".concat(e.media," {"));var i=void 0!==e.layer;i&&(t+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),t+=e.css,i&&(t+="}"),e.media&&(t+="}"),e.supports&&(t+="}");var n=e.sourceMap;n&&"undefined"!=typeof btoa&&(t+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(n))))," */")),r.styleTagTransform(t,o,r.options)}(r,o,e)},remove:function(){!function(o){if(null===o.parentNode)return!1;o.parentNode.removeChild(o)}(r)}}}},54865:o=>{o.exports=function(o,r){if(r.styleSheet)r.styleSheet.cssText=o;else{for(;r.firstChild;)r.removeChild(r.firstChild);r.appendChild(document.createTextNode(o))}}}}]); +//# sourceMappingURL=582.21b8e7d.js.map \ No newline at end of file diff --git a/_static/build/582.21b8e7d.js.map b/_static/build/582.21b8e7d.js.map new file mode 100644 index 0000000..8d1e29c --- /dev/null +++ b/_static/build/582.21b8e7d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"582.21b8e7d.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/liquibyte.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/liquibyte.css?cd6a","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-liquibyte.CodeMirror {\\n\\tbackground-color: #000;\\n\\tcolor: #fff;\\n\\tline-height: 1.2em;\\n\\tfont-size: 1em;\\n}\\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\\n\\ttext-decoration: underline;\\n\\ttext-decoration-color: #0f0;\\n\\ttext-decoration-style: wavy;\\n}\\n.cm-s-liquibyte .cm-trailingspace {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #f00;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .cm-tab {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #404040;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\\n.cm-s-liquibyte .CodeMirror-guttermarker { }\\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\\n\\n.cm-s-liquibyte span.cm-comment { color: #008000; }\\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\\n\\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\\n.cm-s-liquibyte span.cm-operator { color: #fff; }\\n\\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-error { color: #f00; }\\n\\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\\n\\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\\n\\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\\n\\n/* Default styles for common addons */\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\\n/* Scrollbars */\\n/* Simple */\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\\n\\tbackground-color: rgba(80, 80, 80, .7);\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tbackground-color: rgba(80, 80, 80, .3);\\n\\tborder: 1px solid #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tborder-top: 1px solid #404040;\\n\\tborder-bottom: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\\n\\tborder-left: 1px solid #404040;\\n\\tborder-right: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\\n\\tbackground-color: #262626;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\\n\\tbackground-color: #262626;\\n\\tborder-top: 1px solid #404040;\\n}\\n/* Overlay */\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\\n\\tbackground-color: #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\\n\\tborder: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\\n\\tborder: 1px solid #404040;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/liquibyte.css\"],\"names\":[],\"mappings\":\"AAAA;CACC,sBAAsB;CACtB,WAAW;CACX,kBAAkB;CAClB,cAAc;AACf;AACA;CACC,0BAA0B;CAC1B,2BAA2B;CAC3B,2BAA2B;AAC5B;AACA;CACC,6BAA6B;CAC7B,2BAA2B;CAC3B,6BAA6B;AAC9B;AACA;CACC,6BAA6B;CAC7B,8BAA8B;CAC9B,6BAA6B;AAC9B;AACA,sCAAsC,yBAAyB,EAAE,+BAA+B,EAAE,oBAAoB,EAAE;AACxH,6CAA6C,gBAAgB,EAAE;AAC/D,4CAA4C;AAC5C,mDAAmD;AACnD,yCAAyC,cAAc,EAAE,eAAe,EAAE;AAC1E,qCAAqC,2BAA2B,EAAE;;AAElE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,cAAc,EAAE;AACtD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;;AAEzE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,mEAAmE,cAAc,EAAE,iBAAiB,EAAE;AACtG,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,WAAW,EAAE;;AAEnD,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;AACnD,sCAAsC,WAAW,EAAE,iBAAiB,EAAE;AACtE,sCAAsC,cAAc,EAAE,iBAAiB,EAAE;AACzE,sCAAsC,WAAW,EAAE;;AAEnD,0CAA0C,uCAAuC,EAAE;;AAEnF,sCAAsC,2CAA2C,EAAE;;AAEnF,oDAAoD,uCAAuC,EAAE;;AAE7F,qCAAqC;AACrC,8DAA8D,WAAW,EAAE,iBAAiB,EAAE;AAC9F,iEAAiE,WAAW,EAAE,iBAAiB,EAAE;AACjG,0BAA0B,uCAAuC,EAAE;AACnE,eAAe;AACf,WAAW;AACX;CACC,sCAAsC;AACvC;AACA;CACC,sCAAsC;CACtC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,6BAA6B;CAC7B,gCAAgC;AACjC;AACA;CACC,8BAA8B;CAC9B,+BAA+B;AAChC;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;CACzB,6BAA6B;AAC9B;AACA,YAAY;AACZ;CACC,yBAAyB;CACzB,kBAAkB;AACnB;AACA;CACC,yBAAyB;AAC1B;AACA;CACC,yBAAyB;AAC1B\",\"sourcesContent\":[\".cm-s-liquibyte.CodeMirror {\\n\\tbackground-color: #000;\\n\\tcolor: #fff;\\n\\tline-height: 1.2em;\\n\\tfont-size: 1em;\\n}\\n.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {\\n\\ttext-decoration: underline;\\n\\ttext-decoration-color: #0f0;\\n\\ttext-decoration-style: wavy;\\n}\\n.cm-s-liquibyte .cm-trailingspace {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #f00;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .cm-tab {\\n\\ttext-decoration: line-through;\\n\\ttext-decoration-color: #404040;\\n\\ttext-decoration-style: dotted;\\n}\\n.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }\\n.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }\\n.cm-s-liquibyte .CodeMirror-guttermarker { }\\n.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }\\n.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }\\n.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }\\n\\n.cm-s-liquibyte span.cm-comment { color: #008000; }\\n.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-string { color: #ff8000; }\\n.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }\\n\\n.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }\\n.cm-s-liquibyte span.cm-variable-3, .cm-s-liquibyte span.cm-type { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }\\n.cm-s-liquibyte span.cm-operator { color: #fff; }\\n\\n.cm-s-liquibyte span.cm-meta { color: #0f0; }\\n.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }\\n.cm-s-liquibyte span.cm-bracket { color: #cc7; }\\n.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }\\n.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }\\n.cm-s-liquibyte span.cm-error { color: #f00; }\\n\\n.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }\\n\\n.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }\\n\\n.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }\\n\\n/* Default styles for common addons */\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }\\n.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }\\n.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }\\n/* Scrollbars */\\n/* Simple */\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div:hover {\\n\\tbackground-color: rgba(80, 80, 80, .7);\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, .cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tbackground-color: rgba(80, 80, 80, .3);\\n\\tborder: 1px solid #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {\\n\\tborder-top: 1px solid #404040;\\n\\tborder-bottom: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {\\n\\tborder-left: 1px solid #404040;\\n\\tborder-right: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {\\n\\tbackground-color: #262626;\\n}\\n.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {\\n\\tbackground-color: #262626;\\n\\tborder-top: 1px solid #404040;\\n}\\n/* Overlay */\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {\\n\\tbackground-color: #404040;\\n\\tborder-radius: 5px;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {\\n\\tborder: 1px solid #404040;\\n}\\n.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {\\n\\tborder: 1px solid #404040;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./liquibyte.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./liquibyte.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5823.5045bdb.js b/_static/build/5823.5045bdb.js new file mode 100644 index 0000000..8534d80 --- /dev/null +++ b/_static/build/5823.5045bdb.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5823],{92608:(r,o,e)=>{e.d(o,{Z:()=>i});var n=e(34663),a=e.n(n),t=e(7638),c=e.n(t)()(a());c.push([r.id,"/*\n\n Name: Paraíso (Light)\n Author: Jan T. Sott\n\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\n\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\n\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\n\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\n\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/paraiso-light.css"],names:[],mappings:"AAAA;;;;;;;;CAQC;;AAED,iCAAiC,mBAAmB,EAAE,cAAc,EAAE;AACtE,8CAA8C,mBAAmB,EAAE;AACnE,yKAAyK,mBAAmB,EAAE;AAC9L,wLAAwL,mBAAmB,EAAE;AAC7M,0CAA0C,mBAAmB,EAAE,iBAAiB,EAAE;AAClF,+CAA+C,YAAY,EAAE;AAC7D,sDAAsD,cAAc,EAAE;AACtE,6CAA6C,cAAc,EAAE;AAC7D,yCAAyC,8BAA8B,EAAE;;AAEzE,sCAAsC,cAAc,EAAE;AACtD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;;AAErD,8EAA8E,cAAc,EAAE;AAC9F,sCAAsC,cAAc,EAAE;AACtD,qCAAqC,cAAc,EAAE;;AAErD,uCAAuC,cAAc,EAAE;AACvD,yCAAyC,cAAc,EAAE;AACzD,kCAAkC,cAAc,EAAE;AAClD,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,cAAc,EAAE;AAClD,mCAAmC,cAAc,EAAE;AACnD,oCAAoC,mBAAmB,EAAE,cAAc,EAAE;;AAEzE,wDAAwD,mBAAmB,EAAE;AAC7E,kDAAkD,0BAA0B,EAAE,uBAAuB,EAAE",sourcesContent:["/*\n\n Name: Paraíso (Light)\n Author: Jan T. Sott\n\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\n\n*/\n\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\n\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\n\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\n\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\n\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\n"],sourceRoot:""}]);const i=c},7638:r=>{r.exports=function(r){var o=[];return o.toString=function(){return this.map((function(o){var e="",n=void 0!==o[5];return o[4]&&(e+="@supports (".concat(o[4],") {")),o[2]&&(e+="@media ".concat(o[2]," {")),n&&(e+="@layer".concat(o[5].length>0?" ".concat(o[5]):""," {")),e+=r(o),n&&(e+="}"),o[2]&&(e+="}"),o[4]&&(e+="}"),e})).join("")},o.i=function(r,e,n,a,t){"string"==typeof r&&(r=[[null,r,void 0]]);var c={};if(n)for(var i=0;i0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=t),e&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=e):l[2]=e),a&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=a):l[4]="".concat(a)),o.push(l))}},o}},34663:r=>{r.exports=function(r){var o=r[1],e=r[3];if(!e)return o;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),t="/*# ".concat(a," */"),c=e.sources.map((function(r){return"/*# sourceURL=".concat(e.sourceRoot||"").concat(r," */")}));return[o].concat(c).concat([t]).join("\n")}return[o].join("\n")}},5823:(r,o,e)=>{e.r(o),e.d(o,{default:()=>b});var n=e(1892),a=e.n(n),t=e(95760),c=e.n(t),i=e(38311),s=e.n(i),A=e(58192),l=e.n(A),p=e(38060),m=e.n(p),u=e(54865),d=e.n(u),h=e(92608),g={};g.styleTagTransform=d(),g.setAttributes=l(),g.insert=s().bind(null,"head"),g.domAPI=c(),g.insertStyleElement=m(),a()(h.Z,g);const b=h.Z&&h.Z.locals?h.Z.locals:void 0},1892:r=>{var o=[];function e(r){for(var e=-1,n=0;n{var o={};r.exports=function(r,e){var n=function(r){if(void 0===o[r]){var e=document.querySelector(r);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(r){e=null}o[r]=e}return o[r]}(r);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(e)}},38060:r=>{r.exports=function(r){var o=document.createElement("style");return r.setAttributes(o,r.attributes),r.insert(o,r.options),o}},58192:(r,o,e)=>{r.exports=function(r){var o=e.nc;o&&r.setAttribute("nonce",o)}},95760:r=>{r.exports=function(r){var o=r.insertStyleElement(r);return{update:function(e){!function(r,o,e){var n="";e.supports&&(n+="@supports (".concat(e.supports,") {")),e.media&&(n+="@media ".concat(e.media," {"));var a=void 0!==e.layer;a&&(n+="@layer".concat(e.layer.length>0?" ".concat(e.layer):""," {")),n+=e.css,a&&(n+="}"),e.media&&(n+="}"),e.supports&&(n+="}");var t=e.sourceMap;t&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(t))))," */")),o.styleTagTransform(n,r,o.options)}(o,r,e)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(o)}}}},54865:r=>{r.exports=function(r,o){if(o.styleSheet)o.styleSheet.cssText=r;else{for(;o.firstChild;)o.removeChild(o.firstChild);o.appendChild(document.createTextNode(r))}}}}]); +//# sourceMappingURL=5823.5045bdb.js.map \ No newline at end of file diff --git a/_static/build/5823.5045bdb.js.map b/_static/build/5823.5045bdb.js.map new file mode 100644 index 0000000..cd5d189 --- /dev/null +++ b/_static/build/5823.5045bdb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5823.5045bdb.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/paraiso-light.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/paraiso-light.css?d492","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n\\n Name: Paraíso (Light)\\n Author: Jan T. Sott\\n\\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\\n\\n*/\\n\\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\\n\\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\\n\\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\\n\\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\\n\\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/paraiso-light.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;CAQC;;AAED,iCAAiC,mBAAmB,EAAE,cAAc,EAAE;AACtE,8CAA8C,mBAAmB,EAAE;AACnE,yKAAyK,mBAAmB,EAAE;AAC9L,wLAAwL,mBAAmB,EAAE;AAC7M,0CAA0C,mBAAmB,EAAE,iBAAiB,EAAE;AAClF,+CAA+C,YAAY,EAAE;AAC7D,sDAAsD,cAAc,EAAE;AACtE,6CAA6C,cAAc,EAAE;AAC7D,yCAAyC,8BAA8B,EAAE;;AAEzE,sCAAsC,cAAc,EAAE;AACtD,mCAAmC,cAAc,EAAE;AACnD,qCAAqC,cAAc,EAAE;;AAErD,8EAA8E,cAAc,EAAE;AAC9F,sCAAsC,cAAc,EAAE;AACtD,qCAAqC,cAAc,EAAE;;AAErD,uCAAuC,cAAc,EAAE;AACvD,yCAAyC,cAAc,EAAE;AACzD,kCAAkC,cAAc,EAAE;AAClD,sCAAsC,cAAc,EAAE;AACtD,kCAAkC,cAAc,EAAE;AAClD,mCAAmC,cAAc,EAAE;AACnD,oCAAoC,mBAAmB,EAAE,cAAc,EAAE;;AAEzE,wDAAwD,mBAAmB,EAAE;AAC7E,kDAAkD,0BAA0B,EAAE,uBAAuB,EAAE\",\"sourcesContent\":[\"/*\\n\\n Name: Paraíso (Light)\\n Author: Jan T. Sott\\n\\n Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)\\n Inspired by the art of Rubens LP (http://www.rubenslp.com.br)\\n\\n*/\\n\\n.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }\\n.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }\\n.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }\\n.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }\\n.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }\\n\\n.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }\\n.cm-s-paraiso-light span.cm-atom { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-number { color: #815ba4; }\\n\\n.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }\\n.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-string { color: #fec418; }\\n\\n.cm-s-paraiso-light span.cm-variable { color: #48b685; }\\n.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }\\n.cm-s-paraiso-light span.cm-def { color: #f99b15; }\\n.cm-s-paraiso-light span.cm-bracket { color: #41323f; }\\n.cm-s-paraiso-light span.cm-tag { color: #ef6155; }\\n.cm-s-paraiso-light span.cm-link { color: #815ba4; }\\n.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }\\n\\n.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }\\n.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./paraiso-light.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./paraiso-light.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5851.30b7b2a.js b/_static/build/5851.30b7b2a.js new file mode 100644 index 0000000..12f83d4 --- /dev/null +++ b/_static/build/5851.30b7b2a.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5851],{35851:(t,e,i)=>{i.r(e),i.d(e,{DisposableDelegate:()=>p,DisposableSet:()=>c,ObservableDisposableDelegate:()=>u,ObservableDisposableSet:()=>a});var o=i(43892),n=i(70942),s=function(t,e){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},s(t,e)};function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function i(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}var p=function(){function t(t){this._fn=t}return Object.defineProperty(t.prototype,"isDisposed",{get:function(){return!this._fn},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){if(this._fn){var t=this._fn;this._fn=null,t()}},t}(),u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._disposed=new n.Signal(e),e}return r(e,t),Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.isDisposed||(t.prototype.dispose.call(this),this._disposed.emit(void 0),n.Signal.clearData(this))},e}(p),c=function(){function t(){this._isDisposed=!1,this._items=new Set}return Object.defineProperty(t.prototype,"isDisposed",{get:function(){return this._isDisposed},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._isDisposed||(this._isDisposed=!0,this._items.forEach((function(t){t.dispose()})),this._items.clear())},t.prototype.contains=function(t){return this._items.has(t)},t.prototype.add=function(t){this._items.add(t)},t.prototype.remove=function(t){this._items.delete(t)},t.prototype.clear=function(){this._items.clear()},t}();!function(t){t.from=function(e){var i=new t;return(0,o.each)(e,(function(t){i.add(t)})),i}}(c||(c={}));var a=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._disposed=new n.Signal(e),e}return r(e,t),Object.defineProperty(e.prototype,"disposed",{get:function(){return this._disposed},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.isDisposed||(t.prototype.dispose.call(this),this._disposed.emit(void 0),n.Signal.clearData(this))},e}(c);!function(t){t.from=function(e){var i=new t;return(0,o.each)(e,(function(t){i.add(t)})),i}}(a||(a={}))}}]); +//# sourceMappingURL=5851.30b7b2a.js.map \ No newline at end of file diff --git a/_static/build/5851.30b7b2a.js.map b/_static/build/5851.30b7b2a.js.map new file mode 100644 index 0000000..2327f40 --- /dev/null +++ b/_static/build/5851.30b7b2a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5851.30b7b2a.js","mappings":"2RAgBIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,GAAI,EAC7FP,EAAcC,EAAGC,EAC5B,EAEO,SAASS,EAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,EACnF,C,iBC6BE,WAAYI,GACVH,KAAKI,IAAMD,C,CAuBf,OAjBE,sBAAI,yBAAU,C,IAAd,WACE,OAAQH,KAAKI,G,kCAMf,YAAAC,QAAA,WACE,GAAKL,KAAKI,IAAV,CAGA,IAAID,EAAKH,KAAKI,IACdJ,KAAKI,IAAM,KACXD,G,GAIJ,E,iBAKA,2D,OAsBU,EAAAG,UAAY,IAAI,EAAAC,OAAmB,G,EAC7C,OAtBU,OAKR,sBAAI,uBAAQ,C,IAAZ,WACE,OAAOP,KAAKM,S,kCAMd,YAAAD,QAAA,WACML,KAAKQ,aAGT,YAAMH,QAAO,WACbL,KAAKM,UAAUG,UAAKC,GACpB,EAAAH,OAAA,UAAiBP,M,EAIrB,E,CAtBUW,G,aA2BV,aAmEU,KAAAC,aAAc,EACd,KAAAC,OAAS,IAAIC,G,CACvB,OAjEE,sBAAI,yBAAU,C,IAAd,WACE,OAAOd,KAAKY,W,kCASd,YAAAP,QAAA,WACML,KAAKY,cAGTZ,KAAKY,aAAc,EACnBZ,KAAKa,OAAOE,SAAQ,SAAAC,GAClBA,EAAKX,S,IAEPL,KAAKa,OAAOI,Q,EAUd,YAAAC,SAAA,SAASF,GACP,OAAOhB,KAAKa,OAAOM,IAAIH,E,EAWzB,YAAAI,IAAA,SAAIJ,GACFhB,KAAKa,OAAOO,IAAIJ,E,EAWlB,YAAAK,OAAA,SAAOL,GACLhB,KAAKa,OAAOS,OAAON,E,EAMrB,YAAAC,MAAA,WACEjB,KAAKa,OAAOI,O,EAKhB,E,IAKA,SAAiBM,GAQC,EAAAC,KAAhB,SAAqBC,GACnB,IAAIC,EAAM,IAAIH,EAId,OAHA,IAAAI,MAAKF,GAAO,SAAAT,GACVU,EAAIN,IAAIJ,E,IAEHU,C,CAEV,CAfD,CAAiBH,IAAAA,EAAa,K,kBAoB9B,2D,OAyBU,EAAAjB,UAAY,IAAI,EAAAC,OAAmB,G,EAC7C,OAzBU,OAKR,sBAAI,uBAAQ,C,IAAZ,WACE,OAAOP,KAAKM,S,kCASd,YAAAD,QAAA,WACML,KAAKQ,aAGT,YAAMH,QAAO,WACbL,KAAKM,UAAUG,UAAKC,GACpB,EAAAH,OAAA,UAAiBP,M,EAIrB,E,CAzBUuB,IA8BV,SAAiBK,GAQC,EAAAJ,KAAhB,SACEC,GAEA,IAAIC,EAAM,IAAIE,EAId,OAHA,IAAAD,MAAKF,GAAO,SAAAT,GACVU,EAAIN,IAAIJ,E,IAEHU,C,CAEV,CAjBD,CAAiBE,IAAAA,EAAuB,I","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/disposable/node_modules/tslib/tslib.es6.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@lumino/disposable/src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/*-----------------------------------------------------------------------------\n| Copyright (c) 2014-2017, PhosphorJS Contributors\n|\n| Distributed under the terms of the BSD 3-Clause License.\n|\n| The full license is in the file LICENSE, distributed with this software.\n|----------------------------------------------------------------------------*/\nimport { each, IterableOrArrayLike } from '@lumino/algorithm';\n\nimport { ISignal, Signal } from '@lumino/signaling';\n\n/**\n * An object which implements the disposable pattern.\n */\nexport interface IDisposable {\n /**\n * Test whether the object has been disposed.\n *\n * #### Notes\n * This property is always safe to access.\n */\n readonly isDisposed: boolean;\n\n /**\n * Dispose of the resources held by the object.\n *\n * #### Notes\n * If the object's `dispose` method is called more than once, all\n * calls made after the first will be a no-op.\n *\n * #### Undefined Behavior\n * It is undefined behavior to use any functionality of the object\n * after it has been disposed unless otherwise explicitly noted.\n */\n dispose(): void;\n}\n\n/**\n * A disposable object with an observable `disposed` signal.\n */\nexport interface IObservableDisposable extends IDisposable {\n /**\n * A signal emitted when the object is disposed.\n */\n readonly disposed: ISignal;\n}\n\n/**\n * A disposable object which delegates to a callback function.\n */\nexport class DisposableDelegate implements IDisposable {\n /**\n * Construct a new disposable delegate.\n *\n * @param fn - The callback function to invoke on dispose.\n */\n constructor(fn: () => void) {\n this._fn = fn;\n }\n\n /**\n * Test whether the delegate has been disposed.\n */\n get isDisposed(): boolean {\n return !this._fn;\n }\n\n /**\n * Dispose of the delegate and invoke the callback function.\n */\n dispose(): void {\n if (!this._fn) {\n return;\n }\n let fn = this._fn;\n this._fn = null;\n fn();\n }\n\n private _fn: (() => void) | null;\n}\n\n/**\n * An observable disposable object which delegates to a callback function.\n */\nexport class ObservableDisposableDelegate\n extends DisposableDelegate\n implements IObservableDisposable {\n /**\n * A signal emitted when the delegate is disposed.\n */\n get disposed(): ISignal {\n return this._disposed;\n }\n\n /**\n * Dispose of the delegate and invoke the callback function.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n super.dispose();\n this._disposed.emit(undefined);\n Signal.clearData(this);\n }\n\n private _disposed = new Signal(this);\n}\n\n/**\n * An object which manages a collection of disposable items.\n */\nexport class DisposableSet implements IDisposable {\n /**\n * Test whether the set has been disposed.\n */\n get isDisposed(): boolean {\n return this._isDisposed;\n }\n\n /**\n * Dispose of the set and the items it contains.\n *\n * #### Notes\n * Items are disposed in the order they are added to the set.\n */\n dispose(): void {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._items.forEach(item => {\n item.dispose();\n });\n this._items.clear();\n }\n\n /**\n * Test whether the set contains a specific item.\n *\n * @param item - The item of interest.\n *\n * @returns `true` if the set contains the item, `false` otherwise.\n */\n contains(item: IDisposable): boolean {\n return this._items.has(item);\n }\n\n /**\n * Add a disposable item to the set.\n *\n * @param item - The item to add to the set.\n *\n * #### Notes\n * If the item is already contained in the set, this is a no-op.\n */\n add(item: IDisposable): void {\n this._items.add(item);\n }\n\n /**\n * Remove a disposable item from the set.\n *\n * @param item - The item to remove from the set.\n *\n * #### Notes\n * If the item is not contained in the set, this is a no-op.\n */\n remove(item: IDisposable): void {\n this._items.delete(item);\n }\n\n /**\n * Remove all items from the set.\n */\n clear(): void {\n this._items.clear();\n }\n\n private _isDisposed = false;\n private _items = new Set();\n}\n\n/**\n * The namespace for the `DisposableSet` class statics.\n */\nexport namespace DisposableSet {\n /**\n * Create a disposable set from an iterable of items.\n *\n * @param items - The iterable or array-like object of interest.\n *\n * @returns A new disposable initialized with the given items.\n */\n export function from(items: IterableOrArrayLike): DisposableSet {\n let set = new DisposableSet();\n each(items, item => {\n set.add(item);\n });\n return set;\n }\n}\n\n/**\n * An observable object which manages a collection of disposable items.\n */\nexport class ObservableDisposableSet\n extends DisposableSet\n implements IObservableDisposable {\n /**\n * A signal emitted when the set is disposed.\n */\n get disposed(): ISignal {\n return this._disposed;\n }\n\n /**\n * Dispose of the set and the items it contains.\n *\n * #### Notes\n * Items are disposed in the order they are added to the set.\n */\n dispose(): void {\n if (this.isDisposed) {\n return;\n }\n super.dispose();\n this._disposed.emit(undefined);\n Signal.clearData(this);\n }\n\n private _disposed = new Signal(this);\n}\n\n/**\n * The namespace for the `ObservableDisposableSet` class statics.\n */\nexport namespace ObservableDisposableSet {\n /**\n * Create an observable disposable set from an iterable of items.\n *\n * @param items - The iterable or array-like object of interest.\n *\n * @returns A new disposable initialized with the given items.\n */\n export function from(\n items: IterableOrArrayLike\n ): ObservableDisposableSet {\n let set = new ObservableDisposableSet();\n each(items, item => {\n set.add(item);\n });\n return set;\n }\n}\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","fn","_fn","dispose","_disposed","Signal","isDisposed","emit","undefined","DisposableDelegate","_isDisposed","_items","Set","forEach","item","clear","contains","has","add","remove","delete","DisposableSet","from","items","set","each","ObservableDisposableSet"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5878.32d92fa.js b/_static/build/5878.32d92fa.js new file mode 100644 index 0000000..ab89f60 --- /dev/null +++ b/_static/build/5878.32d92fa.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5878,4535],{95878:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CodeMirrorEditor:()=>S,CodeMirrorEditorFactory:()=>L,CodeMirrorMimeTypeService:()=>T,EditorSyntaxStatus:()=>z,ICodeMirror:()=>O,Mode:()=>k,editorServices:()=>I});var r=n(4265),i=n(2814),o=n(84853),a=n(43892),s=n(26169),l=n(43231),c=n(61313),u=n(70942),d=n(41981),m=n.n(d);n(76234),n(4218),n(37643),n(52971),n(41652),n(12575),n(74305),n(22842),n(2450),n(11723),n(48501),n(60762),n(38153),n(40554),n(13439),n(41859),n(67553),n(71633),n(97988),n(54206),n(19306),n(24354);var f=n(41865),p=n(79915),h=n(12904);const g=e=>class{constructor(e){this._=e}destroy(){e(this._)}};g(clearTimeout),g(clearInterval),g((e=>"undefined"!=typeof requestAnimationFrame&&cancelAnimationFrame(e))),g((e=>"undefined"!=typeof cancelIdleCallback&&cancelIdleCallback(e)));var b=n(32549);const v="y-codemirror",x=e=>{const t=document.createElement("span");t.setAttribute("style","user-select: none;");const n=document.createElement("span");n.insertBefore(document.createTextNode(""),null);const r=document.createElement("span");return r.setAttribute("class","y-line-selection"),r.setAttribute("style",`display: inline-block; position: absolute; left: 4px; right: 4px; top: 0; bottom: 0; background-color: ${e}70`),t.insertBefore(r,null),t.insertBefore(n,null),t};class y extends b.y{constructor(e,t,n=null,{yUndoManager:r=null}={}){super();const i=e.doc,o=t.getDoc();if(this.doc=i,this.type=e,this.cm=t,this.cmDoc=o,this.awareness=n||null,this.yUndoManager=r,this._onStackItemAdded=({stackItem:t,changedParentTypes:n})=>{n.has(e)&&this._beforeChangeSelection&&t.meta.set(this,this._beforeChangeSelection)},this._onStackItemPopped=({stackItem:e})=>{const n=e.meta.get(this);if(n){const e=p.createAbsolutePositionFromRelativePosition(n.anchor,i).index,r=p.createAbsolutePositionFromRelativePosition(n.head,i).index;t.setSelection(t.posFromIndex(e),t.posFromIndex(r)),this._beforeChange()}},r){r.trackedOrigins.add(this);const e=e=>{e.endOperation(),r.undo(),e.startOperation()},n=e=>{e.endOperation(),r.redo(),e.startOperation()};t.addKeyMap({"Ctrl-Z":e,"Shift-Ctrl-Z":n,"Ctrl-Y":n,"Cmd-Z":e,"Shift-Cmd-Z":n,"Cmd-Y":n}),r.on("stack-item-added",this._onStackItemAdded),r.on("stack-item-popped",this._onStackItemPopped)}this._mux=(()=>{let e=!0;return(t,n)=>{if(e){e=!1;try{t()}finally{e=!0}}else void 0!==n&&n()}})(),o.setValue(e.toString()),this._typeObserver=e=>((e,t)=>{e._mux((()=>{const n=e.cmDoc,r=n.getEditor();let i=r.indexFromPos(r.getCursor("anchor")),o=r.indexFromPos(r.getCursor("head"));const a=o{const e=t.delta;let r=0;for(let a=0;a{e.getDoc()===o&&((e,t)=>{e._mux((()=>{e.doc.transact((()=>{const n=e.yUndoManager&&t.some((e=>"paste"===e.origin));if(n&&e.yUndoManager.stopCapturing(),t.length>1){const t=((e,t)=>{let n=0,r=0;for(;ne.length)).reduce(f.IH)+n.removed.length-1;i>0&&e.type.delete(r,i),n.text.length>0&&e.type.insert(r,n.text.join("\n"))}n&&e.yUndoManager.stopCapturing()}),e)})),e._pendingCursorEvent&&(e._pendingCursorEvent=!1,e.emit("cursorActivity",[e]))})(this,t)},this._cursors=new Map,this._changedCursors=new Set,this._debounceCursorEvent=(e=>{let t=-1;return e=>{clearTimeout(t),e&&(t=setTimeout(e,10))}})(),this._awarenessListener=r=>{if(t.getDoc()!==o)return;const a=e=>{e!==i.clientID&&this._changedCursors.add(e)};r.added.forEach(a),r.removed.forEach(a),r.updated.forEach(a),this._changedCursors.size>0&&this._debounceCursorEvent((()=>{this._changedCursors.forEach((r=>{((e,t,n,r,i,o)=>{const a=o.getStates().get(i),s=r.get(i);if(void 0!==s&&(s.caret&&s.caret.clear(),s.sel.forEach((e=>e.clear())),r.delete(i)),void 0===a)return;const l=a.user||{};null==l.color&&(l.color="#ffa500"),null==l.name&&(l.name=`User: ${i}`);const c=a.cursor;if(null==c||null==c.anchor||null==c.head)return;const u=p.createAbsolutePositionFromRelativePosition(JSON.parse(c.anchor),e),d=p.createAbsolutePositionFromRelativePosition(JSON.parse(c.head),e);if(null!==u&&null!==d&&u.type===n&&d.type===n){const e=t.posFromIndex(d.index),n=t.posFromIndex(u.index);let o,f;d.index{const n=document.createElement("span");n.classList.add("remote-caret"),n.setAttribute("style",`border-color: ${t}`);const r=document.createElement("div");return r.setAttribute("style",`background-color: ${t}`),r.insertBefore(document.createTextNode(e),null),n.insertBefore(r,null),setTimeout((()=>{n.classList.add("hide-name")}),2e3),n})(l.name,l.color);s&&h.UV(a.cursor.anchor,s.awCursor.anchor)&&h.UV(a.cursor.head,s.awCursor.head)&&p.classList.add("hide-name");const g=[];if(d.index!==u.index){for(o.line!==f.line&&0!==o.ch&&(g.push(t.markText(o,new(m().Pos)(o.line+1,0),{css:`background-color: ${l.color}70;`,inclusiveRight:!1,inclusiveLeft:!1})),o=new(m().Pos)(o.line+1,0));o.line!==f.line;)g.push(t.setBookmark(new(m().Pos)(o.line,0),{widget:x(l.color)})),o=new(m().Pos)(o.line+1,0);g.push(t.markText(o,f,{css:`background-color: ${l.color}70;`,inclusiveRight:!1,inclusiveLeft:!1}))}const b=g.length>0&&f===e&&0===e.ch?null:t.setBookmark(e,{widget:p,insertLeft:!0});r.set(i,{caret:b,sel:g,awCursor:c})}})(i,t,e,this._cursors,r,n)})),this._changedCursors.clear()}))},this._pendingCursorEvent=!1,this._cursorListener=()=>{t.getDoc()===o&&(this._pendingCursorEvent=!0,setTimeout((()=>{this._pendingCursorEvent&&(this._pendingCursorEvent=!1,this.emit("cursorActivity",[t]))}),0))},this.on("cursorActivity",(()=>{((e,t,n,r)=>{const i=r.getLocalState();if(!t.hasFocus()||null==i||!t.display.wrapper.ownerDocument.hasFocus())return;const o=p.createRelativePositionFromTypeIndex(n,t.indexFromPos(t.getCursor("anchor"))),a=p.createRelativePositionFromTypeIndex(n,t.indexFromPos(t.getCursor("head")));let s=null,l=null;null!=i.cursor&&(s=p.createRelativePositionFromJSON(JSON.parse(i.cursor.anchor)),l=p.createRelativePositionFromJSON(JSON.parse(i.cursor.head))),null!=i.cursor&&p.compareRelativePositions(s,o)&&p.compareRelativePositions(l,a)||r.setLocalStateField("cursor",{anchor:JSON.stringify(o),head:JSON.stringify(a)})})(0,t,e,n)})),this._blurListeer=()=>n.setLocalStateField("cursor",null),e.observe(this._typeObserver),t.on("changes",this._targetObserver),this._beforeChangeSelection=null,this._beforeChange=()=>{this._mux((()=>{const n=p.createRelativePositionFromTypeIndex(e,t.indexFromPos(t.getCursor("anchor"))),r=p.createRelativePositionFromTypeIndex(e,t.indexFromPos(t.getCursor("head")));this._beforeChangeSelection={anchor:n,head:r}}))},t.on("beforeChange",this._beforeChange),n&&(t.on("swapDoc",this._blurListeer),n.on("change",this._awarenessListener),t.on("cursorActivity",this._cursorListener),t.on("blur",this._blurListeer),t.on("focus",this._cursorListener))}destroy(){this.type.unobserve(this._typeObserver),this.cm.off("swapDoc",this._blurListeer),this.cm.off("changes",this._targetObserver),this.cm.off("beforeChange",this._beforeChange),this.cm.off("cursorActivity",this._cursorListener),this.cm.off("focus",this._cursorListener),this.cm.off("blur",this._blurListeer),this.awareness&&this.awareness.off("change",this._awarenessListener),this.yUndoManager&&(this.yUndoManager.off("stack-item-added",this._onStackItemAdded),this.yUndoManager.off("stack-item-popped",this._onStackItemPopped),this.yUndoManager.trackedOrigins.delete(this)),this.type=null,this.cm=null,this.cmDoc=null,super.destroy()}}var k,w,C=n(55941);n(89750),n(91434),n(1827),n(72896),n(38269),n(15e3),n(7385),n(80505),n(52517),n(70390),n(67310),n(43454),m().defineMode("ipython",((e,t)=>{const n={};for(const e in t)t.hasOwnProperty(e)&&(n[e]=t[e]);return n.name="python",n.singleOperators=new RegExp("^[\\+\\-\\*/%&|@\\^~<>!\\?]"),n.identifiers=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*"),m().getMode(e,n)}),"python"),m().defineMIME("text/x-ipython","ipython"),m().modeInfo.push({ext:[],mime:"text/x-ipython",mode:"ipython",name:"ipython"}),n(46865),n(79999),n(16751),m().defineMode("ipythongfm",((e,t)=>{const n=m().getMode(e,{name:"gfm",tokenTypeOverrides:{list3:"string-2"}}),r=m().getMode(e,{name:"stex",inMathMode:!0});return m().multiplexingMode(n,{open:"",close:"",mode:n,parseDelimiters:!0},{open:"
    ",close:"
    ",mode:n,parseDelimiters:!0},{open:"```",close:"```",mode:n,parseDelimiters:!0},{open:"`",close:"`",mode:n,parseDelimiters:!0},{open:"$$",close:"$$",mode:r,delimStyle:"delimit"},{open:/\$(?=.*\$)/,close:"$",mode:r,delimStyle:"delimit"},{open:"\\(",close:"\\)",mode:r,delimStyle:"delimit"},{open:"\\[",close:"\\]",mode:r,delimStyle:"delimit"})}),"gfm"),m().defineMIME("text/x-ipythongfm","ipythongfm"),m().modeInfo.push({ext:[],mime:"text/x-ipythongfm",mode:"ipythongfm",name:"ipythongfm"}),function(e){const t=[{loader:async e=>m().modes.hasOwnProperty(e.mode),rank:0},{loader:function(e){return new Promise(((t,r)=>{Promise.all([n.e(9657),n.e(7364)]).then((function(){var r=[n(27364)(`./${e.mode}/${e.mode}.js`)];(function(){t(!0)}).apply(null,r)})).catch(n.oe)}))},rank:99}];function r(e){var t;const n="string"==typeof e?e:e.mode||e.name,r="string"!=typeof e?e.mime:n,a="string"!=typeof e&&null!==(t=e.ext)&&void 0!==t?t:[];return m().findModeByName(n||"")||m().findModeByMIME(r||"")||i(a)||m().findModeByMIME(o.IEditorMimeTypeService.defaultMimeType)||m().findModeByMIME("text/plain")}function i(e){if("string"==typeof e)return m().findModeByExtension(e);for(let t=0;t{this._checkSync()},frequency:{interval:3e3,backoff:!1},standby:()=>!this._lastChange||"when-hidden"}),l.mimeTypeChanged.connect(this._onMimeTypeChanged,this),l.selections.changed.connect(this._onSelectionsChanged,this),m().on(p,"keydown",((e,t)=>{-1===a.ArrayExt.findFirstIndex(this._keydownHandlers,(e=>!0===e(this,t)&&(t.preventDefault(),!0)))&&this.onKeydown(t)})),null===(t=this._yeditorBinding)||void 0===t||t.on("cursorActivity",(()=>this._onCursorActivity())),m().on(p.getDoc(),"change",((e,t)=>{"setValue"===t.origin&&this.hasFocus()&&this.refresh(),this._lastChange=t})),p.on("paste",((e,t)=>{var n;null===(n=this._config.handlePaste)||void 0===n||n||(t.codemirrorIgnore=!0)})),p.getWrapperElement().addEventListener("paste",(()=>{this.hasFocus()&&this.refresh()}))}_initializeEditorBinding(){var e;null===(e=this._yeditorBinding)||void 0===e||e.destroy();const t=this.model.sharedModel,n=t.undoManager?{yUndoManager:t.undoManager}:{},r=t.awareness;this._yeditorBinding=new y(t.ysource,this.editor,r,n)}get uuid(){return this._uuid}set uuid(e){this._uuid=e}get selectionStyle(){return this._selectionStyle}set selectionStyle(e){this._selectionStyle=e}get editor(){return this._editor}get doc(){return this._editor.getDoc()}get lineCount(){return this.doc.lineCount()}get model(){return this._model}get lineHeight(){return this._editor.defaultTextHeight()}get charWidth(){return this._editor.defaultCharWidth()}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this.host.removeEventListener("focus",this,!0),this.host.removeEventListener("blur",this,!0),this.host.removeEventListener("scroll",this,!0),this._yeditorBinding&&this._yeditorBinding.destroy(),this._keydownHandlers.length=0,this._poll.dispose(),u.Signal.clearData(this))}getOption(e){return this._config[e]}setOption(e,t){this._config[e]!==t&&(this._config[e]=t,M.setOption(this.editor,e,t,this._config))}setOptions(e){const t=this._editor;t.startOperation();for(const n in e){const r=n;t.operation((()=>{this.setOption(r,e[r])}))}t.endOperation()}getLine(e){return this.doc.getLine(e)}getOffsetAt(e){return this.doc.indexFromPos({ch:e.column,line:e.line})}getPositionAt(e){const{ch:t,line:n}=this.doc.posFromIndex(e);return{line:n,column:t}}undo(){this.model.sharedModel.undo()}redo(){this.model.sharedModel.redo()}clearHistory(){var e,t;null===(t=null===(e=this._yeditorBinding)||void 0===e?void 0:e.yUndoManager)||void 0===t||t.clear()}focus(){this._editor.focus()}hasFocus(){return this._editor.getWrapperElement().contains(document.activeElement)}blur(){this._editor.getInputField().blur()}refresh(){this._editor.refresh(),this._needsRefresh=!1}resizeToFit(){this.hasFocus()?this.refresh():this._needsRefresh=!0,this._clearHover()}addOverlay(e,t){this._editor.addOverlay(e,t)}removeOverlay(e){this._editor.removeOverlay(e)}getSearchCursor(e,t,n){return this._editor.getDoc().getSearchCursor(e,t,n)}getCursor(e){return this._editor.getDoc().getCursor(e)}get state(){return this._editor.state}operation(e){return this._editor.operation(e)}firstLine(){return this._editor.getDoc().firstLine()}lastLine(){return this._editor.getDoc().lastLine()}scrollIntoView(e,t){this._editor.scrollIntoView(e,t)}scrollIntoViewCentered(e){var t,n;const r=this._editor.charCoords(e,"local").top,i=this._editor.getWrapperElement().offsetHeight;null===(n=(t=this.host).scrollIntoView)||void 0===n||n.call(t,{behavior:"auto",block:"center",inline:"center"}),this._editor.scrollTo(null,r-i/2)}cursorCoords(e,t){return this._editor.cursorCoords(e,t)}getRange(e,t,n){return this._editor.getDoc().getRange(e,t,n)}addKeydownHandler(e){return this._keydownHandlers.push(e),new l.DisposableDelegate((()=>{a.ArrayExt.removeAllWhere(this._keydownHandlers,(t=>t===e))}))}setSize(e){e?this._editor.setSize(e.width,e.height):this._editor.setSize(null,null),this._needsRefresh=!1}revealPosition(e){const t=this._toCodeMirrorPosition(e);this._editor.scrollIntoView(t)}revealSelection(e){const t={from:this._toCodeMirrorPosition(e.start),to:this._toCodeMirrorPosition(e.end)};this._editor.scrollIntoView(t)}getCoordinateForPosition(e){const t=this._toCodeMirrorPosition(e);return this.editor.charCoords(t,"page")}getPositionForCoordinate(e){return this._toPosition(this.editor.coordsChar(e))||null}getCursorPosition(){const e=this.doc.getCursor();return this._toPosition(e)}setCursorPosition(e,t){const n=this._toCodeMirrorPosition(e);this.doc.setCursor(n,void 0,t),this.editor.hasFocus()||this.model.selections.set(this.uuid,this.getSelections())}getSelection(){return this.getSelections()[0]}setSelection(e){this.setSelections([e])}getSelections(){const e=this.doc.listSelections();if(e.length>0)return e.map((e=>this._toSelection(e)));const t=this.doc.getCursor();return[this._toSelection({anchor:t,head:t})]}setSelections(e){const t=this._toCodeMirrorSelections(e);this.doc.setSelections(t,0)}replaceSelection(e){this.doc.replaceSelection(e)}getTokens(){let e=[];for(let t=0;t({offset:this.getOffsetAt({column:e.start,line:t}),value:e.string,type:e.type||""})));e=e.concat(n)}return e}getTokenForPosition(e){var t;const n=this._toCodeMirrorPosition(e),r=this.editor.getTokenAt(n);return{offset:this.getOffsetAt({column:r.start,line:n.line}),value:r.string,type:null!==(t=r.type)&&void 0!==t?t:void 0}}newIndentedLine(){this.execCommand("newlineAndIndent")}execCommand(e){this._editor.execCommand(e)}onKeydown(e){const t=this.getCursorPosition(),{line:n,column:r}=t;if(0===n&&0===r&&38===e.keyCode)return e.shiftKey||this.edgeRequested.emit("top"),!1;if(0===n&&38===e.keyCode)return e.shiftKey||this.edgeRequested.emit("topLine"),!1;const i=this.lineCount-1,o=this.getLine(i).length;return n===i&&r===o&&40===e.keyCode&&(e.shiftKey||this.edgeRequested.emit("bottom"),!1)}_toCodeMirrorSelections(e){if(e.length>0)return e.map((e=>this._toCodeMirrorSelection(e)));const t={line:0,ch:0};return[{anchor:t,head:t}]}_onMimeTypeChanged(){const e=this._model.mimeType,t=this._editor.getOption("extraKeys")||{};"text/plain"!==e&&"text/x-ipythongfm"!==e?t.Backspace="delSpaceToPrevTabStop":delete t.Backspace,this.setOption("extraKeys",t),k.ensure(e).then((e=>{var t;this.setOption("mode",null!==(t=null==e?void 0:e.mime)&&void 0!==t?t:"null")}))}_onSelectionsChanged(e,t){const n=t.key;n!==this.uuid&&(this._cleanSelections(n),"remove"!==t.type&&t.newValue&&this._markSelections(n,t.newValue))}_cleanSelections(e){const t=this.selectionMarkers[e];t&&t.forEach((e=>{e.clear()})),delete this.selectionMarkers[e]}_markSelections(e,t){const n=[];let r;e===this._hoverId&&this._clearHover(),this._model.modelDB.collaborators&&(r=this._model.modelDB.collaborators.get(e)),t.forEach((e=>{if(s.JSONExt.deepEqual(e.start,e.end)){if(r){const t=this._getCaret(r);n.push(this.doc.setBookmark(this._toCodeMirrorPosition(e.end),{widget:t}))}}else{const t=e.start.line{this._clearHover(),this._hoverId=e.sessionId;const i=r.getBoundingClientRect(),o=document.createElement("div");o.className="jp-CollaboratorCursor-hover",o.style.left=String(i.left)+"px",o.style.top=String(i.bottom)+"px",o.textContent=t,o.style.backgroundColor=n,o.onmouseenter=()=>{window.clearTimeout(this._hoverTimeout)},o.onmouseleave=()=>{this._hoverTimeout=window.setTimeout((()=>{this._clearHover()}),1e3)},this._caretHover=o,document.body.appendChild(o)},r.onmouseleave=()=>{this._hoverTimeout=window.setTimeout((()=>{this._clearHover()}),1e3)},r}_checkSync(){const e=this._lastChange;if(!e)return;this._lastChange=null;const t=this._editor,n=t.getDoc();n.getValue()!==this._model.value.text&&((0,i.showDialog)({title:this._trans.__("Code Editor out of Sync"),body:this._trans.__("Please open your browser JavaScript console for bug report instructions")}),console.warn('If you are able and willing to publicly share the text or code in your editor, you can help us debug the "Code Editor out of Sync" message by pasting the following to the public issue at https://github.com/jupyterlab/jupyterlab/issues/2951. Please note that the data below includes the text/code in your editor.'),console.warn(JSON.stringify({model:this._model.value.text,view:n.getValue(),selections:this.getSelections(),cursor:this.getCursorPosition(),lineSep:t.getOption("lineSeparator"),mode:t.getOption("mode"),change:e})))}}var M;!function(e){e.defaultConfig=Object.assign(Object.assign({},o.CodeEditor.defaultConfig),{mode:"null",theme:"jupyter",smartIndent:!0,electricChars:!0,keyMap:"default",extraKeys:null,gutters:[],fixedGutter:!0,showCursorWhenSelecting:!1,coverGutterNextToScrollbar:!1,dragDrop:!0,lineSeparator:null,scrollbarStyle:"native",lineWiseCopyCut:!0,scrollPastEnd:!1,styleActiveLine:!1,styleSelectedText:!0,selectionPointer:!1,rulers:[],foldGutter:!1,handlePaste:!0}),e.addCommand=function(e,t){m().commands[e]=t}}(S||(S={})),function(e){function t(e,t){return e.line===t.line&&e.ch===t.ch}function n(e){const t={"CodeMirror-linenumbers":"lineNumbers","CodeMirror-foldgutter":"codeFolding"};return Object.keys(t).filter((n=>e[t[n]]))}e.createEditor=function(e,t){const{autoClosingBrackets:n,fontFamily:r,fontSize:i,insertSpaces:o,lineHeight:a,lineWrap:s,wordWrapColumn:l,tabSize:c,readOnly:u}=t,d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i{r&&(t.style.fontFamily=r),i&&(t.style.fontSize=i+"px"),a&&(t.style.lineHeight=a.toString()),u&&t.classList.add(_),"wordWrapColumn"===s&&(t.querySelector(".CodeMirror-lines").style.width=`${l}ch`),"bounded"===s&&(t.querySelector(".CodeMirror-lines").style.maxWidth=`${l}ch`),e.appendChild(t)}),f)},e.indentMoreOrinsertTab=function(e){const n=e.getDoc(),r=n.getCursor("from");if(!t(r,n.getCursor("to")))return void m().commands.indentMore(e);const i=n.getLine(r.line).slice(0,r.ch);/^\s*$/.test(i)?m().commands.indentMore(e):e.getOption("indentWithTabs")?m().commands.insertTab(e):m().commands.insertSoftTab(e)},e.delSpaceToPrevTabStop=function(e){var n;const r=e.getDoc(),i=null!==(n=e.getOption("indentUnit"))&&void 0!==n?n:2,o=r.listSelections();for(let n=o.length-1;n>=0;n--){const a=o[n].head,s=o[n].anchor;if(t(a,s))if(null!==r.getLine(a.line).substring(0,a.ch).match(/^\ +$/)){const e=(Math.ceil(a.ch/i)-1)*i,t=m().Pos(a.line,e);r.replaceRange("",t,a)}else{const t=e.findPosH(a,-1,"char",!1);r.replaceRange("",t,a)}else r.replaceRange("",s,a)}},e.posEq=t,e.setOption=function(e,t,r,i){const o=e.getWrapperElement();switch(t){case"cursorBlinkRate":case"showTrailingSpace":default:e.setOption(t,r);break;case"lineWrap":{const t="off"!==r,n=o.querySelector(".CodeMirror-lines"),a="bounded"===r?`${i.wordWrapColumn}ch`:null,s="wordWrapColumn"===r?`${i.wordWrapColumn}ch`:null;n.style.setProperty("max-width",a),n.style.setProperty("width",s),e.setOption("lineWrapping",t);break}case"wordWrapColumn":{const{lineWrap:e}=i;if("wordWrapColumn"===e||"bounded"===e){const t="wordWrapColumn"===e?"width":"maxWidth";o.querySelector(".CodeMirror-lines").style[t]=`${r}ch`}break}case"tabSize":e.setOption("indentUnit",r);break;case"insertSpaces":e.setOption("indentWithTabs",!r);break;case"autoClosingBrackets":e.setOption("autoCloseBrackets",r);break;case"rulers":{const t=r;e.setOption("rulers",t.map((e=>({column:e,className:"jp-CodeMirror-ruler"}))));break}case"readOnly":o.classList.toggle(_,r),e.setOption(t,r);break;case"fontFamily":o.style.fontFamily=r;break;case"fontSize":o.style.setProperty("font-size",r?r+"px":null);break;case"lineHeight":o.style.lineHeight=r?r.toString():null;break;case"gutters":e.setOption(t,n(i));break;case"lineNumbers":e.setOption(t,r),e.setOption("gutters",n(i));break;case"codeFolding":e.setOption("foldGutter",r),e.setOption("gutters",n(i))}}}(M||(M={})),S.addCommand("delSpaceToPrevTabStop",M.delSpaceToPrevTabStop),S.addCommand("indentMoreOrinsertTab",M.indentMoreOrinsertTab);class L{constructor(e={},t){this.newInlineEditor=e=>(e.host.dataset.type="inline",new S(Object.assign(Object.assign({},e),{config:Object.assign(Object.assign({},this.inlineCodeMirrorConfig),e.config||{}),translator:this.translator}))),this.newDocumentEditor=e=>(e.host.dataset.type="document",new S(Object.assign(Object.assign({},e),{config:Object.assign(Object.assign({},this.documentCodeMirrorConfig),e.config||{}),translator:this.translator}))),this.translator=t||r.nullTranslator,this.inlineCodeMirrorConfig=Object.assign(Object.assign(Object.assign({},S.defaultConfig),{extraKeys:{"Cmd-Right":"goLineRight",End:"goLineRight","Cmd-Left":"goLineLeft",Tab:"indentMoreOrinsertTab","Shift-Tab":"indentLess","Cmd-/":e=>e.toggleComment({indent:!0}),"Ctrl-/":e=>e.toggleComment({indent:!0}),"Ctrl-G":"find","Cmd-G":"find"}}),e),this.documentCodeMirrorConfig=Object.assign(Object.assign(Object.assign({},S.defaultConfig),{extraKeys:{Tab:"indentMoreOrinsertTab","Shift-Tab":"indentLess","Cmd-/":e=>e.toggleComment({indent:!0}),"Ctrl-/":e=>e.toggleComment({indent:!0}),"Shift-Enter":()=>{}},lineNumbers:!0,scrollPastEnd:!0}),e)}}class T{getMimeTypeByLanguage(e){const t=e.file_extension||"";return k.findBest(e.codemirror_mode||{mimetype:e.mimetype,name:e.name,ext:[t.split(".").slice(-1)[0]]}).mime}getMimeTypeByFilePath(e){const t=C.PathExt.extname(e);return".ipy"===t?"text/x-python":".md"===t?"text/x-ipythongfm":(k.findByFileName(e)||k.findBest("")).mime}}var F=n(16725),E=n(94519),A=n(62471),P=n.n(A);function D(e){return P().createElement(F.TextItem,{source:e.mode,onClick:e.handleClick})}class z extends i.VDomRenderer{constructor(e){super(new z.Model),this._handleClick=()=>{const e=new E.Menu({commands:this._commands});this._popup&&this._popup.dispose(),k.getModeInfo().sort(((e,t)=>{const n=e.name||"",r=t.name||"";return n.localeCompare(r)})).forEach((t=>{if(0===t.mode.indexOf("brainf"))return;const n={insertSpaces:!0,name:t.name};e.addItem({command:"codemirror:change-mode",args:n})})),this._popup=(0,F.showPopup)({body:e,anchor:this,align:"left"})},this._popup=null,this._commands=e.commands,this.translator=e.translator||r.nullTranslator;const t=this.translator.load("jupyterlab");this.addClass(F.interactiveItem),this.title.caption=t.__("Change text editor syntax highlighting")}render(){return this.model?P().createElement(D,{mode:this.model.mode,handleClick:this._handleClick}):null}}!function(e){class t extends i.VDomModel{constructor(){super(...arguments),this._onMIMETypeChange=(e,t)=>{const n=this._mode,r=k.findByMIME(t.newValue);this._mode=r.name||r.mode,this._triggerChange(n,this._mode)},this._mode="",this._editor=null}get mode(){return this._mode}get editor(){return this._editor}set editor(e){const t=this._editor;null!==t&&t.model.mimeTypeChanged.disconnect(this._onMIMETypeChange);const n=this._mode;if(this._editor=e,null===this._editor)this._mode="";else{const e=k.findByMIME(this._editor.model.mimeType);this._mode=e.name||e.mode,this._editor.model.mimeTypeChanged.connect(this._onMIMETypeChange)}this._triggerChange(n,this._mode)}_triggerChange(e,t){e!==t&&this.stateChanged.emit(void 0)}}e.Model=t}(z||(z={}));const O=new s.Token("@jupyterlab/codemirror:ICodeMirror"),I={factoryService:new L,mimeTypeService:new T}},76234:(e,t,n)=>{!function(e){"use strict";var t={},n=/[^\s\u00a0]/,r=e.Pos,i=e.cmpPos;function o(e){var t=e.search(n);return-1==t?0:t}function a(e,t){var n=e.getMode();return!1!==n.useInnerComments&&n.innerMode?e.getModeAt(t):n}e.commands.toggleComment=function(e){e.toggleComment()},e.defineExtension("toggleComment",(function(e){e||(e=t);for(var n=this,i=1/0,o=this.listSelections(),a=null,s=o.length-1;s>=0;s--){var l=o[s].from(),c=o[s].to();l.line>=i||(c.line>=i&&(c=r(i,0)),i=l.line,null==a?n.uncomment(l,c,e)?a="un":(n.lineComment(l,c,e),a="line"):"un"==a?n.uncomment(l,c,e):n.lineComment(l,c,e))}})),e.defineExtension("lineComment",(function(e,i,s){s||(s=t);var l,c,u=this,d=a(u,e),m=u.getLine(e.line);if(null!=m&&(l=e,c=m,!/\bstring\b/.test(u.getTokenTypeAt(r(l.line,0)))||/^[\'\"\`]/.test(c))){var f=s.lineComment||d.lineComment;if(f){var p=Math.min(0!=i.ch||i.line==e.line?i.line+1:i.line,u.lastLine()+1),h=null==s.padding?" ":s.padding,g=s.commentBlankLines||e.line==i.line;u.operation((function(){if(s.indent){for(var t=null,i=e.line;ia.length)&&(t=a)}for(i=e.line;im||l.operation((function(){if(0!=s.fullLines){var t=n.test(l.getLine(m));l.replaceRange(f+d,r(m)),l.replaceRange(u+f,r(e.line,0));var a=s.blockCommentLead||c.blockCommentLead;if(null!=a)for(var p=e.line+1;p<=m;++p)(p!=m||t)&&l.replaceRange(a+f,r(p,0))}else{var h=0==i(l.getCursor("to"),o),g=!l.somethingSelected();l.replaceRange(d,o),h&&l.setSelection(g?o:l.getCursor("from"),o),l.replaceRange(u,e)}}))}}else(s.lineComment||c.lineComment)&&0!=s.fullLines&&l.lineComment(e,o,s)})),e.defineExtension("uncomment",(function(e,i,o){o||(o=t);var s,l=this,c=a(l,e),u=Math.min(0!=i.ch||i.line==e.line?i.line:i.line-1,l.lastLine()),d=Math.min(e.line,u),m=o.lineComment||c.lineComment,f=[],p=null==o.padding?" ":o.padding;e:if(m){for(var h=d;h<=u;++h){var g=l.getLine(h),b=g.indexOf(m);if(b>-1&&!/comment/.test(l.getTokenTypeAt(r(h,b+1)))&&(b=-1),-1==b&&n.test(g))break e;if(b>-1&&n.test(g.slice(0,b)))break e;f.push(g)}if(l.operation((function(){for(var e=d;e<=u;++e){var t=f[e-d],n=t.indexOf(m),i=n+m.length;n<0||(t.slice(i,i+p.length)==p&&(i+=p.length),s=!0,l.replaceRange("",r(e,n),r(e,i)))}})),s)return!0}var v=o.blockCommentStart||c.blockCommentStart,x=o.blockCommentEnd||c.blockCommentEnd;if(!v||!x)return!1;var y=o.blockCommentLead||c.blockCommentLead,k=l.getLine(d),w=k.indexOf(v);if(-1==w)return!1;var C=u==d?k:l.getLine(u),_=C.indexOf(x,u==d?w+v.length:0),S=r(d,w+1),M=r(u,_+1);if(-1==_||!/comment/.test(l.getTokenTypeAt(S))||!/comment/.test(l.getTokenTypeAt(M))||l.getRange(S,M,"\n").indexOf(x)>-1)return!1;var L=k.lastIndexOf(v,e.ch),T=-1==L?-1:k.slice(0,e.ch).indexOf(x,L+v.length);if(-1!=L&&-1!=T&&T+x.length!=e.ch)return!1;T=C.indexOf(x,i.ch);var F=C.slice(i.ch).lastIndexOf(v,T-i.ch);return L=-1==T||-1==F?-1:i.ch+F,(-1==T||-1==L||L==i.ch)&&(l.operation((function(){l.replaceRange("",r(u,_-(p&&C.slice(_-p.length,_)==p?p.length:0)),r(u,_+x.length));var e=w+v.length;if(p&&k.slice(e,e+p.length)==p&&(e+=p.length),l.replaceRange("",r(d,w),r(d,e)),y)for(var t=d+1;t<=u;++t){var i=l.getLine(t),o=i.indexOf(y);if(-1!=o&&!n.test(i.slice(0,o))){var a=o+y.length;p&&i.slice(a,a+p.length)==p&&(a+=p.length),l.replaceRange("",r(t,o),r(t,a))}}})),!0)}))}(n(25747))},4218:(e,t,n)=>{!function(e){"use strict";function t(t){t.state.rulerDiv.textContent="";var n=t.getOption("rulers"),r=t.defaultCharWidth(),i=t.charCoords(e.Pos(t.firstLine(),0),"div").left;t.state.rulerDiv.style.minHeight=t.display.scroller.offsetHeight+30+"px";for(var o=0;o{!function(e){var t={pairs:"()[]{}''\"\"",closeBefore:")]}'\":;>",triples:"",explode:"[]{}"},n=e.Pos;function r(e,n){return"pairs"==n&&"string"==typeof e?e:"object"==typeof e&&null!=e[n]?e[n]:t[n]}e.defineOption("autoCloseBrackets",!1,(function(t,n,a){a&&a!=e.Init&&(t.removeKeyMap(i),t.state.closeBrackets=null),n&&(o(r(n,"pairs")),t.state.closeBrackets=n,t.addKeyMap(i))}));var i={Backspace:function(t){var i=s(t);if(!i||t.getOption("disableInput"))return e.Pass;for(var o=r(i,"pairs"),a=t.listSelections(),l=0;l=0;l--){var d=a[l].head;t.replaceRange("",n(d.line,d.ch-1),n(d.line,d.ch+1),"+delete")}},Enter:function(t){var n=s(t),i=n&&r(n,"explode");if(!i||t.getOption("disableInput"))return e.Pass;for(var o=t.listSelections(),a=0;a1&&p.indexOf(i)>=0&&t.getRange(n(k.line,k.ch-2),k)==i+i){if(k.ch>2&&/\bstring/.test(t.getTokenTypeAt(n(k.line,k.ch-2))))return e.Pass;x="addFour"}else if(h){var C=0==k.ch?" ":t.getRange(n(k.line,k.ch-1),k);if(e.isWordChar(w)||C==i||e.isWordChar(C))return e.Pass;x="both"}else{if(!b||!(0===w.length||/\s/.test(w)||f.indexOf(w)>-1))return e.Pass;x="both"}else x=h&&d(t,k)?"both":p.indexOf(i)>=0&&t.getRange(k,n(k.line,k.ch+3))==i+i+i?"skipThree":"skip";if(m){if(m!=x)return e.Pass}else m=x}var _=u%2?a.charAt(u-1):i,S=u%2?i:a.charAt(u+1);t.operation((function(){if("skip"==m)l(t,1);else if("skipThree"==m)l(t,3);else if("surround"==m){for(var e=t.getSelections(),n=0;n0?{line:a.head.line,ch:a.head.ch+t}:{line:a.head.line-1};n.push({anchor:s,head:s})}e.setSelections(n,i)}function c(t){var r=e.cmpPos(t.anchor,t.head)>0;return{anchor:new n(t.anchor.line,t.anchor.ch+(r?-1:1)),head:new n(t.head.line,t.head.ch+(r?1:-1))}}function u(e,t){var r=e.getRange(n(t.line,t.ch-1),n(t.line,t.ch+1));return 2==r.length?r:null}function d(e,t){var r=e.getTokenAt(n(t.line,t.ch+1));return/\bstring/.test(r.type)&&r.start==t.ch&&(0==t.ch||!/\bstring/.test(e.getTokenTypeAt(t)))}o(t.pairs+"`")}(n(25747))},54206:(e,t,n)=>{var r;(r=n(25747)).defineOption("showTrailingSpace",!1,(function(e,t,n){n==r.Init&&(n=!1),n&&!t?e.removeOverlay("trailingspace"):!n&&t&&e.addOverlay({token:function(e){for(var t=e.string.length,n=t;n&&/\s/.test(e.string.charAt(n-1));--n);return n>e.pos?(e.pos=n,null):(e.pos=t,"trailingspace")},name:"trailingspace"})}))},41652:(e,t,n)=>{!function(e){"use strict";e.registerHelper("fold","brace",(function(t,n){var r,i=n.line,o=t.getLine(i);function a(a){for(var s=n.ch,l=0;;){var c=s<=0?-1:o.lastIndexOf(a,s-1);if(-1!=c){if(1==l&&cu))c=u,s="{",l="}";else{if(null==d)return;c=d,s="[",l="]"}var m,f,p=1,h=t.lastLine();e:for(var g=i;g<=h;++g)for(var b=t.getLine(g),v=g==i?c:0;;){var x=b.indexOf(s,v),y=b.indexOf(l,v);if(x<0&&(x=b.length),y<0&&(y=b.length),(v=Math.min(x,y))==b.length)break;if(t.getTokenTypeAt(e.Pos(g,v+1))==r)if(v==x)++p;else if(!--p){m=g,f=v;break e}++v}if(null!=m&&i!=m)return{from:e.Pos(i,c),to:e.Pos(m,f)}})),e.registerHelper("fold","import",(function(t,n){function r(n){if(nt.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));if(/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"keyword"!=r.type||"import"!=r.string)return null;for(var i=n,o=Math.min(t.lastLine(),n+10);i<=o;++i){var a=t.getLine(i).indexOf(";");if(-1!=a)return{startCh:r.end,end:e.Pos(i,a)}}}var i,o=n.line,a=r(o);if(!a||r(o-1)||(i=r(o-2))&&i.end.line==o-1)return null;for(var s=a.end;;){var l=r(s.line+1);if(null==l)break;s=l.end}return{from:t.clipPos(e.Pos(o,a.startCh+1)),to:s}})),e.registerHelper("fold","include",(function(t,n){function r(n){if(nt.lastLine())return null;var r=t.getTokenAt(e.Pos(n,1));return/\S/.test(r.string)||(r=t.getTokenAt(e.Pos(n,r.end+1))),"meta"==r.type&&"#include"==r.string.slice(0,8)?r.start+8:void 0}var i=n.line,o=r(i);if(null==o||null!=r(i-1))return null;for(var a=i;null!=r(a+1);)++a;return{from:e.Pos(i,o+1),to:t.clipPos(e.Pos(a))}}))}(n(25747))},12575:(e,t,n)=>{!function(e){"use strict";e.registerGlobalHelper("fold","comment",(function(e){return e.blockCommentStart&&e.blockCommentEnd}),(function(t,n){var r=t.getModeAt(n),i=r.blockCommentStart,o=r.blockCommentEnd;if(i&&o){for(var a,s=n.line,l=t.getLine(s),c=n.ch,u=0;;){var d=c<=0?-1:l.lastIndexOf(i,c-1);if(-1!=d){if(1==u&&d{!function(e){"use strict";function t(t,n,i,o){if(i&&i.call){var a=i;i=null}else a=r(t,i,"rangeFinder");"number"==typeof n&&(n=e.Pos(n,0));var s=r(t,i,"minFoldSize");function l(e){var r=a(t,n);if(!r||r.to.line-r.from.linet.firstLine();)n=e.Pos(n.line-1,0),c=l(!1);if(c&&!c.cleared&&"unfold"!==o){var u=function(e,t,n){var i=r(e,t,"widget");if("function"==typeof i&&(i=i(n.from,n.to)),"string"==typeof i){var o=document.createTextNode(i);(i=document.createElement("span")).appendChild(o),i.className="CodeMirror-foldmarker"}else i&&(i=i.cloneNode(!0));return i}(t,i,c);e.on(u,"mousedown",(function(t){d.clear(),e.e_preventDefault(t)}));var d=t.markText(c.from,c.to,{replacedWith:u,clearOnEnter:r(t,i,"clearOnEnter"),__isFold:!0});d.on("clear",(function(n,r){e.signal(t,"unfold",t,n,r)})),e.signal(t,"fold",t,c.from,c.to)}}e.newFoldFunction=function(e,n){return function(r,i){t(r,i,{rangeFinder:e,widget:n})}},e.defineExtension("foldCode",(function(e,n,r){t(this,e,n,r)})),e.defineExtension("isFolded",(function(e){for(var t=this.findMarksAt(e),n=0;n{!function(e){"use strict";e.defineOption("foldGutter",!1,(function(t,r,i){var o;i&&i!=e.Init&&(t.clearGutter(t.state.foldGutter.options.gutter),t.state.foldGutter=null,t.off("gutterClick",l),t.off("changes",c),t.off("viewportChange",u),t.off("fold",d),t.off("unfold",d),t.off("swapDoc",c)),r&&(t.state.foldGutter=new n((!0===(o=r)&&(o={}),null==o.gutter&&(o.gutter="CodeMirror-foldgutter"),null==o.indicatorOpen&&(o.indicatorOpen="CodeMirror-foldgutter-open"),null==o.indicatorFolded&&(o.indicatorFolded="CodeMirror-foldgutter-folded"),o)),s(t),t.on("gutterClick",l),t.on("changes",c),t.on("viewportChange",u),t.on("fold",d),t.on("unfold",d),t.on("swapDoc",c))}));var t=e.Pos;function n(e){this.options=e,this.from=this.to=0}function r(e,n){for(var r=e.findMarks(t(n,0),t(n+1,0)),i=0;i=c){if(m&&a&&m.test(a.className))return;o=i(s.indicatorOpen)}}(o||a)&&e.setGutterMarker(n,s.gutter,o)}))}function a(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function s(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation((function(){o(e,t.from,t.to)})),n.from=t.from,n.to=t.to)}function l(e,n,i){var o=e.state.foldGutter;if(o){var a=o.options;if(i==a.gutter){var s=r(e,n);s?s.clear():e.foldCode(t(n,0),a)}}}function c(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout((function(){s(e)}),n.foldOnChangeTimeSpan||600)}}function u(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout((function(){var n=e.getViewport();t.from==t.to||n.from-t.to>20||t.from-n.to>20?s(e):e.operation((function(){n.fromt.to&&(o(e,t.to,n.to),t.to=n.to)}))}),n.updateViewportTimeSpan||400)}}function d(e,t){var n=e.state.foldGutter;if(n){var r=t.line;r>=n.from&&r{!function(e){"use strict";function t(t,n){var r=t.getLine(n),i=r.search(/\S/);return-1==i||/\bcomment\b/.test(t.getTokenTypeAt(e.Pos(n,i+1)))?-1:e.countColumn(r,null,t.getOption("tabSize"))}e.registerHelper("fold","indent",(function(n,r){var i=t(n,r.line);if(!(i<0)){for(var o=null,a=r.line+1,s=n.lastLine();a<=s;++a){var l=t(n,a);if(-1==l);else{if(!(l>i))break;o=a}}return o?{from:e.Pos(r.line,n.getLine(r.line).length),to:e.Pos(o,n.getLine(o).length)}:void 0}}))}(n(25747))},11723:(e,t,n)=>{!function(e){"use strict";e.registerHelper("fold","markdown",(function(t,n){function r(n){var r=t.getTokenTypeAt(e.Pos(n,0));return r&&/\bheader\b/.test(r)}function i(e,t,n){var i=t&&t.match(/^#+/);return i&&r(e)?i[0].length:(i=n&&n.match(/^[=\-]+\s*$/))&&r(e+1)?"="==n[0]?1:2:100}var o=t.getLine(n.line),a=t.getLine(n.line+1),s=i(n.line,o,a);if(100!==s){for(var l=t.lastLine(),c=n.line,u=t.getLine(c+2);c{!function(e){"use strict";var t=e.Pos;function n(e,t){return e.line-t.line||e.ch-t.ch}var r="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i=new RegExp("<(/?)(["+r+"]["+r+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*)","g");function o(e,t,n,r){this.line=t,this.ch=n,this.cm=e,this.text=e.getLine(t),this.min=r?Math.max(r.from,e.firstLine()):e.firstLine(),this.max=r?Math.min(r.to-1,e.lastLine()):e.lastLine()}function a(e,n){var r=e.cm.getTokenTypeAt(t(e.line,n));return r&&/\btag\b/.test(r)}function s(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function l(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function c(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(s(e))continue;return}if(a(e,t+1)){var n=e.text.lastIndexOf("/",t),r=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,r?"selfClose":"regular"}e.ch=t+1}}function u(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(l(e))continue;return}if(a(e,t+1)){i.lastIndex=t,e.ch=t;var n=i.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function d(e){for(;;){i.lastIndex=e.ch;var t=i.exec(e.text);if(!t){if(s(e))continue;return}if(a(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}function m(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){if(l(e))continue;return}if(a(e,t+1)){var n=e.text.lastIndexOf("/",t),r=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,r?"selfClose":"regular"}e.ch=t}}function f(e,n){for(var r=[];;){var i,o=d(e),a=e.line,s=e.ch-(o?o[0].length:0);if(!o||!(i=c(e)))return;if("selfClose"!=i)if(o[1]){for(var l=r.length-1;l>=0;--l)if(r[l]==o[2]){r.length=l;break}if(l<0&&(!n||n==o[2]))return{tag:o[2],from:t(a,s),to:t(e.line,e.ch)}}else r.push(o[2])}}function p(e,n){for(var r=[];;){var i=m(e);if(!i)return;if("selfClose"!=i){var o=e.line,a=e.ch,s=u(e);if(!s)return;if(s[1])r.push(s[2]);else{for(var l=r.length-1;l>=0;--l)if(r[l]==s[2]){r.length=l;break}if(l<0&&(!n||n==s[2]))return{tag:s[2],from:t(e.line,e.ch),to:t(o,a)}}}else u(e)}}e.registerHelper("fold","xml",(function(e,r){for(var i=new o(e,r.line,0);;){var a=d(i);if(!a||i.line!=r.line)return;var s=c(i);if(!s)return;if(!a[1]&&"selfClose"!=s){var l=t(i.line,i.ch),u=f(i,a[2]);return u&&n(u.from,l)>0?{from:l,to:u.from}:null}}})),e.findMatchingTag=function(e,r,i){var a=new o(e,r.line,r.ch,i);if(-1!=a.text.indexOf(">")||-1!=a.text.indexOf("<")){var s=c(a),l=s&&t(a.line,a.ch),d=s&&u(a);if(s&&d&&!(n(a,r)>0)){var m={from:t(a.line,a.ch),to:l,tag:d[2]};return"selfClose"==s?{open:m,close:null,at:"open"}:d[1]?{open:p(a,d[2]),close:m,at:"close"}:{open:m,close:f(a=new o(e,l.line,l.ch,i),d[2]),at:"open"}}}},e.findEnclosingTag=function(e,t,n,r){for(var i=new o(e,t.line,t.ch,n);;){var a=p(i,r);if(!a)break;var s=f(new o(e,t.line,t.ch,n),a.tag);if(s)return{open:a,close:s}}},e.scanForClosingTag=function(e,t,n,r){return f(new o(e,t.line,t.ch,r?{from:0,to:r}:null),n)}}(n(25747))},46865:(e,t,n)=>{!function(e){"use strict";e.multiplexingMode=function(t){var n=Array.prototype.slice.call(arguments,1);function r(e,t,n,r){if("string"==typeof t){var i=e.indexOf(t,n);return r&&i>-1?i+t.length:i}var o=t.exec(n?e.slice(n):e);return o?o.index+n+(r?o[0].length:0):-1}return{startState:function(){return{outer:e.startState(t),innerActive:null,inner:null,startingInner:!1}},copyState:function(n){return{outer:e.copyState(t,n.outer),innerActive:n.innerActive,inner:n.innerActive&&e.copyState(n.innerActive.mode,n.inner),startingInner:n.startingInner}},token:function(i,o){if(o.innerActive){var a=o.innerActive;if(c=i.string,!a.close&&i.sol())return o.innerActive=o.inner=null,this.token(i,o);if((d=a.close&&!o.startingInner?r(c,a.close,i.pos,a.parseDelimiters):-1)==i.pos&&!a.parseDelimiters)return i.match(a.close),o.innerActive=o.inner=null,a.delimStyle&&a.delimStyle+" "+a.delimStyle+"-close";d>-1&&(i.string=c.slice(0,d));var s=a.mode.token(i,o.inner);return d>-1?i.string=c:i.pos>i.start&&(o.startingInner=!1),d==i.pos&&a.parseDelimiters&&(o.innerActive=o.inner=null),a.innerStyle&&(s=s?s+" "+a.innerStyle:a.innerStyle),s}for(var l=1/0,c=i.string,u=0;u{!function(e){"use strict";e.overlayMode=function(t,n,r){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(r){return{base:e.copyState(t,r.base),overlay:e.copyState(n,r.overlay),basePos:r.basePos,baseCur:null,overlayPos:r.overlayPos,overlayCur:null}},token:function(e,i){return(e!=i.streamSeen||Math.min(i.basePos,i.overlayPos){!function(e){"use strict";function t(e,t){if(!e.hasOwnProperty(t))throw new Error("Undefined state "+t+" in simple mode")}function n(e,t){if(!e)return/(?:)/;var n="";return e instanceof RegExp?(e.ignoreCase&&(n="i"),e.unicode&&(n+="u"),e=e.source):e=String(e),new RegExp((!1===t?"":"^")+"(?:"+e+")",n)}function r(e,r){(e.next||e.push)&&t(r,e.next||e.push),this.regex=n(e.regex),this.token=function(e){if(!e)return null;if(e.apply)return e;if("string"==typeof e)return e.replace(/\./g," ");for(var t=[],n=0;n2&&u.token&&"string"!=typeof u.token){for(var f=2;f-1)return e.Pass;var a=r.indent.length-1,s=t[r.state];e:for(;;){for(var l=0;l{!function(e){"use strict";e.runMode=function(t,n,r,i){var o=e.getMode(e.defaults,n),a=i&&i.tabSize||e.defaults.tabSize;if(r.appendChild){var s=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<9),l=r,c=0;l.innerHTML="",r=function(e,t){if("\n"==e)return l.appendChild(document.createTextNode(s?"\r":e)),void(c=0);for(var n="",r=0;;){var i=e.indexOf("\t",r);if(-1==i){n+=e.slice(r),c+=e.length-r;break}c+=i-r,n+=e.slice(r,i);var o=a-c%a;c+=o;for(var u=0;u{!function(e){"use strict";function t(t,r){e.changeEnd(r).line==t.lastLine()&&n(t)}function n(e){var t="";e.lineCount()>1&&(t=e.display.scroller.clientHeight-30-e.getLineHandle(e.lastLine()).height+"px"),e.state.scrollPastEndPadding!=t&&(e.state.scrollPastEndPadding=t,e.display.lineSpace.parentNode.style.paddingBottom=t,e.off("refresh",n),e.setSize(),e.on("refresh",n))}e.defineOption("scrollPastEnd",!1,(function(r,i,o){o&&o!=e.Init&&(r.off("change",t),r.off("refresh",n),r.display.lineSpace.parentNode.style.paddingBottom="",r.state.scrollPastEndPadding=null),i&&(r.on("change",t),r.on("refresh",n),n(r))}))}(n(25747))},40554:(e,t,n)=>{!function(e){"use strict";function t(e,t){var n=Number(t);return/^[-+]/.test(t)?e.getCursor().line+n:n-1}e.defineOption("search",{bottom:!1}),e.commands.jumpToLine=function(e){var n=e.getCursor();!function(e,t,n,r,i){e.openDialog?e.openDialog(t,i,{value:r,selectValueOnOpen:!0,bottom:e.options.search.bottom}):i(prompt(n,r))}(e,function(e){return e.phrase("Jump to line:")+' '+e.phrase("(Use line:column or scroll% syntax)")+""}(e),e.phrase("Jump to line:"),n.line+1+":"+n.ch,(function(r){var i;if(r)if(i=/^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(r))e.setCursor(t(e,i[1]),Number(i[2]));else if(i=/^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(r)){var o=Math.round(e.lineCount()*Number(i[1])/100);/^[-+]/.test(i[1])&&(o=n.line+o+1),e.setCursor(o-1,n.ch)}else(i=/^\s*\:?\s*([\+\-]?\d+)\s*/.exec(r))&&e.setCursor(t(e,i[1]),n.ch)}))},e.keyMap.default["Alt-G"]="jumpToLine"}(n(25747),n(36804))},13439:(e,t,n)=>{!function(e){"use strict";function t(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null}function n(e){return e.state.search||(e.state.search=new t)}function r(e){return"string"==typeof e&&e==e.toLowerCase()}function i(e,t,n){return e.getSearchCursor(t,n,{caseFold:r(t),multiline:!0})}function o(e,t,n,r,i){e.openDialog?e.openDialog(t,i,{value:r,selectValueOnOpen:!0,bottom:e.options.search.bottom}):i(prompt(n,r))}function a(e){return e.replace(/\\([nrt\\])/g,(function(e,t){return"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"==t?"\\":e}))}function s(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],-1==t[2].indexOf("i")?"":"i")}catch(e){}else e=a(e);return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function l(e,t,n){t.queryText=n,t.query=s(n),e.removeOverlay(t.overlay,r(t.query)),t.overlay=function(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var n=e.exec(t.string);if(n&&n.index==t.pos)return t.pos+=n[0].length||1,"searching";n?t.pos=n.index:t.skipToEnd()}}}(t.query,r(t.query)),e.addOverlay(t.overlay),e.showMatchesOnScrollbar&&(t.annotate&&(t.annotate.clear(),t.annotate=null),t.annotate=e.showMatchesOnScrollbar(t.query,r(t.query)))}function c(t,r,i,a){var s=n(t);if(s.query)return u(t,r);var c=t.getSelection()||s.lastQuery;if(c instanceof RegExp&&"x^"==c.source&&(c=null),i&&t.openDialog){var f=null,p=function(n,r){e.e_stop(r),n&&(n!=s.queryText&&(l(t,s,n),s.posFrom=s.posTo=t.getCursor()),f&&(f.style.opacity=1),u(t,r.shiftKey,(function(e,n){var r;n.line<3&&document.querySelector&&(r=t.display.wrapper.querySelector(".CodeMirror-dialog"))&&r.getBoundingClientRect().bottom-4>t.cursorCoords(n,"window").top&&((f=r).style.opacity=.4)})))};(function(e,t,n,r,i){e.openDialog(t,r,{value:n,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){d(e)},onKeyDown:i,bottom:e.options.search.bottom})})(t,m(t),c,p,(function(r,i){var o=e.keyName(r),a=t.getOption("extraKeys"),s=a&&a[o]||e.keyMap[t.getOption("keyMap")][o];"findNext"==s||"findPrev"==s||"findPersistentNext"==s||"findPersistentPrev"==s?(e.e_stop(r),l(t,n(t),i),t.execCommand(s)):"find"!=s&&"findPersistent"!=s||(e.e_stop(r),p(i,r))})),a&&c&&(l(t,s,c),u(t,r))}else o(t,m(t),"Search for:",c,(function(e){e&&!s.query&&t.operation((function(){l(t,s,e),s.posFrom=s.posTo=t.getCursor(),u(t,r)}))}))}function u(t,r,o){t.operation((function(){var a=n(t),s=i(t,a.query,r?a.posFrom:a.posTo);(s.find(r)||(s=i(t,a.query,r?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0))).find(r))&&(t.setSelection(s.from(),s.to()),t.scrollIntoView({from:s.from(),to:s.to()},20),a.posFrom=s.from(),a.posTo=s.to(),o&&o(s.from(),s.to()))}))}function d(e){e.operation((function(){var t=n(e);t.lastQuery=t.query,t.query&&(t.query=t.queryText=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))}))}function m(e){return''+e.phrase("Search:")+' '+e.phrase("(Use /re/ syntax for regexp search)")+""}function f(e,t,n){e.operation((function(){for(var r=i(e,t);r.findNext();)if("string"!=typeof t){var o=e.getRange(r.from(),r.to()).match(t);r.replace(n.replace(/\$(\d)/g,(function(e,t){return o[t]})))}else r.replace(n)}))}function p(e,t){if(!e.getOption("readOnly")){var r=e.getSelection()||n(e).lastQuery,l=''+(t?e.phrase("Replace all:"):e.phrase("Replace:"))+"";o(e,l+function(e){return' '+e.phrase("(Use /re/ syntax for regexp search)")+""}(e),l,r,(function(n){n&&(n=s(n),o(e,function(e){return''+e.phrase("With:")+' '}(e),e.phrase("Replace with:"),"",(function(r){if(r=a(r),t)f(e,n,r);else{d(e);var o=i(e,n,e.getCursor("from")),s=function(){var t,a=o.from();!(t=o.findNext())&&(o=i(e,n),!(t=o.findNext())||a&&o.from().line==a.line&&o.from().ch==a.ch)||(e.setSelection(o.from(),o.to()),e.scrollIntoView({from:o.from(),to:o.to()}),function(e,t,n,r){e.openConfirm?e.openConfirm(t,r):confirm(n)&&r[0]()}(e,function(e){return''+e.phrase("Replace?")+" "}(e),e.phrase("Replace?"),[function(){l(t)},s,function(){f(e,n,r)}]))},l=function(e){o.replace("string"==typeof n?r:r.replace(/\$(\d)/g,(function(t,n){return e[n]}))),s()};s()}})))}))}}e.defineOption("search",{bottom:!1}),e.commands.find=function(e){d(e),c(e)},e.commands.findPersistent=function(e){d(e),c(e,!1,!0)},e.commands.findPersistentNext=function(e){c(e,!1,!0,!0)},e.commands.findPersistentPrev=function(e){c(e,!0,!0,!0)},e.commands.findNext=c,e.commands.findPrev=function(e){c(e,!0)},e.commands.clearSearch=d,e.commands.replace=p,e.commands.replaceAll=function(e){p(e,!0)}}(n(25747),n(41859),n(36804))},67553:(e,t,n)=>{!function(e){"use strict";var t="CodeMirror-activeline",n="CodeMirror-activeline-background",r="CodeMirror-activeline-gutter";function i(e){for(var i=0;i{!function(e){"use strict";function t(e){e.state.markedSelection&&e.operation((function(){!function(e){if(!e.somethingSelected())return a(e);if(e.listSelections().length>1)return s(e);var t=e.getCursor("start"),n=e.getCursor("end"),r=e.state.markedSelection;if(!r.length)return o(e,t,n);var l=r[0].find(),c=r[r.length-1].find();if(!l||!c||n.line-t.line<=8||i(t,c.to)>=0||i(n,l.from)<=0)return s(e);for(;i(t,l.from)>0;)r.shift().clear(),l=r[0].find();for(i(t,l.from)<0&&(l.to.line-t.line<8?(r.shift().clear(),o(e,t,l.to,0)):o(e,t,l.from,0));i(n,c.to)<0;)r.pop().clear(),c=r[r.length-1].find();i(n,c.to)>0&&(n.line-c.from.line<8?(r.pop().clear(),o(e,c.from,n)):o(e,c.to,n))}(e)}))}function n(e){e.state.markedSelection&&e.state.markedSelection.length&&e.operation((function(){a(e)}))}e.defineOption("styleSelectedText",!1,(function(r,i,o){var l=o&&o!=e.Init;i&&!l?(r.state.markedSelection=[],r.state.markedSelectionStyle="string"==typeof i?i:"CodeMirror-selectedtext",s(r),r.on("cursorActivity",t),r.on("change",n)):!i&&l&&(r.off("cursorActivity",t),r.off("change",n),a(r),r.state.markedSelection=r.state.markedSelectionStyle=null)}));var r=e.Pos,i=e.cmpPos;function o(e,t,n,o){if(0!=i(t,n))for(var a=e.state.markedSelection,s=e.state.markedSelectionStyle,l=t.line;;){var c=l==t.line?t:r(l,0),u=l+8,d=u>=n.line,m=d?n:r(u,0),f=e.markText(c,m,{className:s});if(null==o?a.push(f):a.splice(o++,0,f),d)break;l=u}}function a(e){for(var t=e.state.markedSelection,n=0;n{!function(e){"use strict";function t(e){e.state.selectionPointer.rects=null,n(e)}function n(e){e.state.selectionPointer.willUpdate||(e.state.selectionPointer.willUpdate=!0,setTimeout((function(){(function(e){var t=e.state.selectionPointer;if(t){if(null==t.rects&&null!=t.mouseX&&(t.rects=[],e.somethingSelected()))for(var n=e.display.selectionDiv.firstChild;n;n=n.nextSibling)t.rects.push(n.getBoundingClientRect());var r=!1;if(null!=t.mouseX)for(var i=0;i=t.mouseX&&o.top<=t.mouseY&&o.bottom>=t.mouseY&&(r=!0)}var a=r?t.value:"";e.display.lineDiv.style.cursor!=a&&(e.display.lineDiv.style.cursor=a)}})(e),e.state.selectionPointer.willUpdate=!1}),50))}e.defineOption("selectionPointer",!1,(function(r,i){var o=r.state.selectionPointer;o&&(e.off(r.getWrapperElement(),"mousemove",o.mousemove),e.off(r.getWrapperElement(),"mouseout",o.mouseout),e.off(window,"scroll",o.windowScroll),r.off("cursorActivity",t),r.off("scroll",t),r.state.selectionPointer=null,r.display.lineDiv.style.cursor=""),i&&(o=r.state.selectionPointer={value:"string"==typeof i?i:"default",mousemove:function(e){!function(e,t){var r=e.state.selectionPointer;(null==t.buttons?t.which:t.buttons)?r.mouseX=r.mouseY=null:(r.mouseX=t.clientX,r.mouseY=t.clientY),n(e)}(r,e)},mouseout:function(e){!function(e,t){if(!e.getWrapperElement().contains(t.relatedTarget)){var r=e.state.selectionPointer;r.mouseX=r.mouseY=null,n(e)}}(r,e)},windowScroll:function(){t(r)},rects:null,mouseX:null,mouseY:null,willUpdate:!1},e.on(r.getWrapperElement(),"mousemove",o.mousemove),e.on(r.getWrapperElement(),"mouseout",o.mouseout),e.on(window,"scroll",o.windowScroll),r.on("cursorActivity",t),r.on("scroll",t))}))}(n(25747))},19306:(e,t,n)=>{!function(e){"use strict";var t=e.commands,n=e.Pos;function r(e,t){return e.line==t.line&&e.ch==t.ch}var i=[];function o(e){i.push(e),i.length>50&&i.shift()}function a(e){return i[i.length-(e?Math.min(e,1):1)]||""}var s=null;function l(e,t,n,a,l){null==l&&(l=e.getRange(t,n)),"grow"==a&&s&&s.cm==e&&r(t,s.pos)&&e.isClean(s.gen)?function(e){if(!i.length)return o(e);i[i.length-1]+=e}(l):!1!==a&&o(l),e.replaceRange("",t,n,"+delete"),s="grow"==a?{cm:e,pos:t,gen:e.changeGeneration()}:null}function c(e,t,n){return e.findPosH(t,n,"char",!0)}function u(e,t,n){return e.findPosH(t,n,"word",!0)}function d(e,t,n){return e.findPosV(t,n,"line",e.doc.sel.goalColumn)}function m(e,t,n){return e.findPosV(t,n,"page",e.doc.sel.goalColumn)}function f(e,t,r){for(var i=t.line,o=e.getLine(i),a=/\S/.test(r<0?o.slice(0,t.ch):o.slice(t.ch)),s=e.firstLine(),l=e.lastLine();;){if((i+=r)l)return e.clipPos(n(i-r,r<0?0:null));if(o=e.getLine(i),/\S/.test(o))a=!0;else if(a)return n(i,0)}}function p(e,t,r){for(var i=t.line,o=t.ch,a=e.getLine(t.line),s=!1;;){var l=a.charAt(o+(r<0?-1:0));if(l){if(s&&/[!?.]/.test(l))return n(i,o+(r>0?1:0));s||(s=/\w/.test(l)),o+=r}else{if(i==(r<0?e.firstLine():e.lastLine()))return n(i,o);if(a=e.getLine(i+r),!/\S/.test(a))return n(i,o);i+=r,o=r<0?a.length:0}}}function h(e,t,i){var o;if(e.findMatchingBracket&&(o=e.findMatchingBracket(t,{strict:!0}))&&o.match&&(o.forward?1:-1)==i)return i>0?n(o.to.line,o.to.ch+1):o.to;for(var a=!0;;a=!1){var s=e.getTokenAt(t),l=n(t.line,i<0?s.start:s.end);if(!(a&&i>0&&s.end==t.ch)&&/\w/.test(s.string))return l;var c=e.findPosH(l,i,"char");if(r(l,c))return t;t=c}}function g(e,t){var n=e.state.emacsPrefix;return n?(S(e),"-"==n?-1:Number(n)):t?null:1}function b(e){var t="string"==typeof e?function(t){t.execCommand(e)}:e;return function(e){var n=g(e);t(e);for(var r=1;r1&&"+input"==t.origin){for(var r=t.text.join("\n"),i="",o=1;o1&&i.pop(),a()),"around","paste")},t.forwardChar=x(c,1),t.backwardChar=x(c,-1),t.deleteChar=function(e){y(e,c,1,!1)},t.deleteForwardChar=function(e){k(e,!1)||y(e,c,1,!1)},t.deleteBackwardChar=function(e){k(e,!1)||y(e,c,-1,!1)},t.forwardWord=x(u,1),t.backwardWord=x(u,-1),t.killWord=function(e){y(e,u,1,"grow")},t.backwardKillWord=function(e){y(e,u,-1,"grow")},t.nextLine=x(d,1),t.previousLine=x(d,-1),t.scrollDownCommand=x(m,1),t.scrollUpCommand=x(m,-1),t.backwardParagraph=x(f,-1),t.forwardParagraph=x(f,1),t.backwardSentence=x(p,-1),t.forwardSentence=x(p,1),t.killSentence=function(e){y(e,p,1,"grow")},t.backwardKillSentence=function(e){l(e,e.getCursor(),p(e,e.getCursor(),1),"grow")},t.killSexp=function(e){y(e,h,1,"grow")},t.backwardKillSexp=function(e){y(e,h,-1,"grow")},t.forwardSexp=x(h,1),t.backwardSexp=x(h,-1),t.markSexp=function(e){var t=e.getCursor();e.setSelection(v(e,t,h,1),t)},t.transposeSexps=function(e){var t=h(e,e.getCursor(),-1),n=h(e,t,1),r=h(e,n,1),i=h(e,r,-1);e.replaceRange(e.getRange(i,r)+e.getRange(n,i)+e.getRange(t,n),t,r)},t.backwardUpList=b((function(e){for(var t=e.getCursor(),r=t.line,i=t.ch,o=[];r>=e.firstLine();){for(var a=e.getLine(r),s=null==i?a.length:i;s>0;)if(")"==(i=a.charAt(--s)))o.push("(");else if("]"==i)o.push("[");else if("}"==i)o.push("{");else if(/[\(\{\[]/.test(i)&&(!o.length||o.pop()!=i))return e.extendSelection(n(r,s));--r,i=null}})),t.justOneSpace=function(e){for(var t=e.getCursor(),r=t.ch,i=t.ch,o=e.getLine(t.line);r&&/\s/.test(o.charAt(r-1));)--r;for(;i0)return e.setCursor(t-1);F(e,"Goto line",(function(t){var n;t&&!isNaN(n=Number(t))&&n==(0|n)&&n>0&&e.setCursor(n-1)}))},t.indentRigidly=function(e){e.indentSelection(g(e,!0)||e.getOption("indentUnit"))},t.exchangePointAndMark=function(e){e.setSelection(e.getCursor("head"),e.getCursor("anchor"))},t.quotedInsertTab=b("insertTab"),t.universalArgument=function(e){e.state.emacsPrefixMap=!0,e.addKeyMap(P),e.on("keyHandled",L),e.on("inputRead",L)},e.emacs={kill:l,killRegion:k,repeated:b};var A=e.keyMap.emacs=e.normalizeKeyMap({"Ctrl-W":"killRegion","Ctrl-K":"killLineEmacs","Alt-W":"killRingSave","Ctrl-Y":"yank","Alt-Y":"yankPop","Ctrl-Space":"setMark","Ctrl-Shift-2":"setMark","Ctrl-F":"forwardChar","Ctrl-B":"backwardChar",Right:"forwardChar",Left:"backwardChar","Ctrl-D":"deleteChar",Delete:"deleteForwardChar","Ctrl-H":"deleteBackwardChar",Backspace:"deleteBackwardChar","Alt-F":"forwardWord","Alt-B":"backwardWord","Alt-Right":"forwardWord","Alt-Left":"backwardWord","Alt-D":"killWord","Alt-Backspace":"backwardKillWord","Ctrl-N":"nextLine","Ctrl-P":"previousLine",Down:"nextLine",Up:"previousLine","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd",End:"goLineEnd",Home:"goLineStart","Alt-V":"scrollDownCommand","Ctrl-V":"scrollUpCommand",PageUp:"scrollUpCommand",PageDown:"scrollDownCommand","Ctrl-Up":"backwardParagraph","Ctrl-Down":"forwardParagraph","Alt-{":"backwardParagraph","Alt-}":"forwardParagraph","Alt-A":"backwardSentence","Alt-E":"forwardSentence","Alt-K":"killSentence","Ctrl-X Delete":"backwardKillSentence","Ctrl-Alt-K":"killSexp","Ctrl-Alt-Backspace":"backwardKillSexp","Ctrl-Alt-F":"forwardSexp","Ctrl-Alt-B":"backwardSexp","Shift-Ctrl-Alt-2":"markSexp","Ctrl-Alt-T":"transposeSexps","Ctrl-Alt-U":"backwardUpList","Alt-Space":"justOneSpace","Ctrl-O":"openLine","Ctrl-T":"transposeCharsRepeatable","Alt-C":"capitalizeWord","Alt-U":"upcaseWord","Alt-L":"downcaseWord","Alt-;":"toggleComment","Ctrl-/":"undoRepeatable","Shift-Ctrl--":"undoRepeatable","Ctrl-Z":"undoRepeatable","Cmd-Z":"undoRepeatable","Ctrl-X U":"undoRepeatable","Shift-Ctrl-Z":"redo","Shift-Alt-,":"goDocStart","Shift-Alt-.":"goDocEnd","Ctrl-S":"findPersistentNext","Ctrl-R":"findPersistentPrev","Ctrl-G":"keyboardQuit","Shift-Alt-5":"replace","Alt-/":"autocomplete",Enter:"newlineAndIndent","Ctrl-J":"newline",Tab:"indentAuto","Alt-G G":"gotoLine","Ctrl-X Tab":"indentRigidly","Ctrl-X Ctrl-X":"exchangePointAndMark","Ctrl-X Ctrl-S":"save","Ctrl-X Ctrl-W":"save","Ctrl-X S":"saveAll","Ctrl-X F":"open","Ctrl-X K":"close","Ctrl-X H":"selectAll","Ctrl-Q Tab":"quotedInsertTab","Ctrl-U":"universalArgument",fallthrough:"default"}),P={"Ctrl-G":S};function D(e){P[e]=function(t){w(t,e)},A["Ctrl-"+e]=function(t){w(t,e)},C["Ctrl-"+e]=!0}for(var z=0;z<10;++z)D(String(z));D("-")}(n(25747))},24354:(e,t,n)=>{!function(e){"use strict";var t=e.commands,n=e.Pos;function r(t,r){t.extendSelectionsBy((function(i){return t.display.shift||t.doc.extend||i.empty()?function(t,r,i){if(i<0&&0==r.ch)return t.clipPos(n(r.line-1));var o=t.getLine(r.line);if(i>0&&r.ch>=o.length)return t.clipPos(n(r.line+1,0));for(var a,s="start",l=r.ch,c=l,u=i<0?0:o.length,d=0;c!=u;c+=i,d++){var m=o.charAt(i<0?c-1:c),f="_"!=m&&e.isWordChar(m)?"w":"o";if("w"==f&&m.toUpperCase()==m&&(f="W"),"start"==s)"o"!=f?(s="in",a=f):l=c+i;else if("in"==s&&a!=f){if("w"==a&&"W"==f&&i<0&&c--,"W"==a&&"w"==f&&i>0){if(c==l+1){a="w";continue}c--}break}}return n(r.line,c)}(t.doc,i.head,r):r<0?i.from():i.to()}))}function i(t,r){if(t.isReadOnly())return e.Pass;t.operation((function(){for(var e=t.listSelections().length,i=[],o=-1,a=0;a=n&&e.execCommand("goLineUp")}e.scrollTo(null,t.top-e.defaultTextHeight())},t.scrollLineDown=function(e){var t=e.getScrollInfo();if(!e.somethingSelected()){var n=e.lineAtHeight(t.top,"local")+1;e.getCursor().line<=n&&e.execCommand("goLineDown")}e.scrollTo(null,t.top+e.defaultTextHeight())},t.splitSelectionByLine=function(e){for(var t=e.listSelections(),r=[],i=0;io.line&&s==a.line&&0==a.ch||r.push({anchor:s==o.line?o:n(s,0),head:s==a.line?a:n(s)});e.setSelections(r,0)},t.singleSelectionTop=function(e){var t=e.listSelections()[0];e.setSelection(t.anchor,t.head,{scroll:!1})},t.selectLine=function(e){for(var t=e.listSelections(),r=[],i=0;i=0;s--){var c=r[i[s]];if(!(l&&e.cmpPos(c.head,l)>0)){var u=o(t,c.head);l=u.from,t.replaceRange(n(u.word),u.from,u.to)}}}))}function m(t){var n=t.getCursor("from"),r=t.getCursor("to");if(0==e.cmpPos(n,r)){var i=o(t,n);if(!i.word)return;n=i.from,r=i.to}return{from:n,to:r,query:t.getRange(n,r),word:i}}function f(e,t){var r=m(e);if(r){var i=r.query,o=e.getSearchCursor(i,t?r.to:r.from);(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):(o=e.getSearchCursor(i,t?n(e.firstLine(),0):e.clipPos(n(e.lastLine()))),(t?o.findNext():o.findPrevious())?e.setSelection(o.from(),o.to()):r.word&&e.setSelection(r.from,r.to))}}t.selectScope=function(e){l(e)||e.execCommand("selectAll")},t.selectBetweenBrackets=function(t){if(!l(t))return e.Pass},t.goToBracket=function(t){t.extendSelectionsBy((function(r){var i=t.scanForBracket(r.head,1,c(t.getTokenTypeAt(r.head)));if(i&&0!=e.cmpPos(i.pos,r.head))return i.pos;var o=t.scanForBracket(r.head,-1,c(t.getTokenTypeAt(n(r.head.line,r.head.ch+1))));return o&&n(o.pos.line,o.pos.ch+1)||r.head}))},t.swapLineUp=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.firstLine()-1,a=[],s=0;so?i.push(c,u):i.length&&(i[i.length-1]=u),o=u}t.operation((function(){for(var e=0;et.lastLine()?t.replaceRange("\n"+s,n(t.lastLine()),null,"+swapLine"):t.replaceRange(s+"\n",n(o,0),null,"+swapLine")}t.setSelections(a),t.scrollIntoView()}))},t.swapLineDown=function(t){if(t.isReadOnly())return e.Pass;for(var r=t.listSelections(),i=[],o=t.lastLine()+1,a=r.length-1;a>=0;a--){var s=r[a],l=s.to().line+1,c=s.from().line;0!=s.to().ch||s.empty()||l--,l=0;e-=2){var r=i[e],o=i[e+1],a=t.getLine(r);r==t.lastLine()?t.replaceRange("",n(r-1),n(r),"+swapLine"):t.replaceRange("",n(r,0),n(r+1,0),"+swapLine"),t.replaceRange(a+"\n",n(o,0),null,"+swapLine")}t.scrollIntoView()}))},t.toggleCommentIndented=function(e){e.toggleComment({indent:!0})},t.joinLines=function(e){for(var t=e.listSelections(),r=[],i=0;i=0;o--){var a=r[o].head,s=t.getRange({line:a.line,ch:0},a),l=e.countColumn(s,null,t.getOption("tabSize")),c=t.findPosH(a,-1,"char",!1);if(s&&!/\S/.test(s)&&l%i==0){var u=new n(a.line,e.findColumn(s,l-i,i));u.ch!=a.ch&&(c=u)}t.replaceRange("",c,a,"+delete")}}))},t.delLineRight=function(e){e.operation((function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange("",t[r].anchor,n(t[r].to().line),"+delete");e.scrollIntoView()}))},t.upcaseAtCursor=function(e){d(e,(function(e){return e.toUpperCase()}))},t.downcaseAtCursor=function(e){d(e,(function(e){return e.toLowerCase()}))},t.setSublimeMark=function(e){e.state.sublimeMark&&e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor())},t.selectToSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&e.setSelection(e.getCursor(),t)},t.deleteToSublimeMark=function(t){var n=t.state.sublimeMark&&t.state.sublimeMark.find();if(n){var r=t.getCursor(),i=n;if(e.cmpPos(r,i)>0){var o=i;i=r,r=o}t.state.sublimeKilled=t.getRange(r,i),t.replaceRange("",r,i)}},t.swapWithSublimeMark=function(e){var t=e.state.sublimeMark&&e.state.sublimeMark.find();t&&(e.state.sublimeMark.clear(),e.state.sublimeMark=e.setBookmark(e.getCursor()),e.setCursor(t))},t.sublimeYank=function(e){null!=e.state.sublimeKilled&&e.replaceSelection(e.state.sublimeKilled,null,"paste")},t.showInCenter=function(e){var t=e.cursorCoords(null,"local");e.scrollTo(null,(t.top+t.bottom)/2-e.getScrollInfo().clientHeight/2)},t.findUnder=function(e){f(e,!0)},t.findUnderPrevious=function(e){f(e,!1)},t.findAllUnder=function(e){var t=m(e);if(t){for(var n=e.getSearchCursor(t.query),r=[],i=-1;n.findNext();)r.push({anchor:n.from(),head:n.to()}),n.from().line<=t.from.line&&n.from().ch<=t.from.ch&&i++;e.setSelections(r,i)}};var p=e.keyMap;p.macSublime={"Cmd-Left":"goLineStartSmart","Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-Left":"goSubwordLeft","Ctrl-Right":"goSubwordRight","Ctrl-Alt-Up":"scrollLineUp","Ctrl-Alt-Down":"scrollLineDown","Cmd-L":"selectLine","Shift-Cmd-L":"splitSelectionByLine",Esc:"singleSelectionTop","Cmd-Enter":"insertLineAfter","Shift-Cmd-Enter":"insertLineBefore","Cmd-D":"selectNextOccurrence","Shift-Cmd-Space":"selectScope","Shift-Cmd-M":"selectBetweenBrackets","Cmd-M":"goToBracket","Cmd-Ctrl-Up":"swapLineUp","Cmd-Ctrl-Down":"swapLineDown","Cmd-/":"toggleCommentIndented","Cmd-J":"joinLines","Shift-Cmd-D":"duplicateLine",F5:"sortLines","Shift-F5":"reverseSortLines","Cmd-F5":"sortLinesInsensitive","Shift-Cmd-F5":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Cmd-F2":"toggleBookmark","Shift-Cmd-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Cmd-K Cmd-D":"skipAndSelectNextOccurrence","Cmd-K Cmd-K":"delLineRight","Cmd-K Cmd-U":"upcaseAtCursor","Cmd-K Cmd-L":"downcaseAtCursor","Cmd-K Cmd-Space":"setSublimeMark","Cmd-K Cmd-A":"selectToSublimeMark","Cmd-K Cmd-W":"deleteToSublimeMark","Cmd-K Cmd-X":"swapWithSublimeMark","Cmd-K Cmd-Y":"sublimeYank","Cmd-K Cmd-C":"showInCenter","Cmd-K Cmd-G":"clearBookmarks","Cmd-K Cmd-Backspace":"delLineLeft","Cmd-K Cmd-1":"foldAll","Cmd-K Cmd-0":"unfoldAll","Cmd-K Cmd-J":"unfoldAll","Ctrl-Shift-Up":"addCursorToPrevLine","Ctrl-Shift-Down":"addCursorToNextLine","Cmd-F3":"findUnder","Shift-Cmd-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Cmd-[":"fold","Shift-Cmd-]":"unfold","Cmd-I":"findIncremental","Shift-Cmd-I":"findIncrementalReverse","Cmd-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"macDefault"},e.normalizeKeyMap(p.macSublime),p.pcSublime={"Shift-Tab":"indentLess","Shift-Ctrl-K":"deleteLine","Alt-Q":"wrapLines","Ctrl-T":"transposeChars","Alt-Left":"goSubwordLeft","Alt-Right":"goSubwordRight","Ctrl-Up":"scrollLineUp","Ctrl-Down":"scrollLineDown","Ctrl-L":"selectLine","Shift-Ctrl-L":"splitSelectionByLine",Esc:"singleSelectionTop","Ctrl-Enter":"insertLineAfter","Shift-Ctrl-Enter":"insertLineBefore","Ctrl-D":"selectNextOccurrence","Shift-Ctrl-Space":"selectScope","Shift-Ctrl-M":"selectBetweenBrackets","Ctrl-M":"goToBracket","Shift-Ctrl-Up":"swapLineUp","Shift-Ctrl-Down":"swapLineDown","Ctrl-/":"toggleCommentIndented","Ctrl-J":"joinLines","Shift-Ctrl-D":"duplicateLine",F9:"sortLines","Shift-F9":"reverseSortLines","Ctrl-F9":"sortLinesInsensitive","Shift-Ctrl-F9":"reverseSortLinesInsensitive",F2:"nextBookmark","Shift-F2":"prevBookmark","Ctrl-F2":"toggleBookmark","Shift-Ctrl-F2":"clearBookmarks","Alt-F2":"selectBookmarks",Backspace:"smartBackspace","Ctrl-K Ctrl-D":"skipAndSelectNextOccurrence","Ctrl-K Ctrl-K":"delLineRight","Ctrl-K Ctrl-U":"upcaseAtCursor","Ctrl-K Ctrl-L":"downcaseAtCursor","Ctrl-K Ctrl-Space":"setSublimeMark","Ctrl-K Ctrl-A":"selectToSublimeMark","Ctrl-K Ctrl-W":"deleteToSublimeMark","Ctrl-K Ctrl-X":"swapWithSublimeMark","Ctrl-K Ctrl-Y":"sublimeYank","Ctrl-K Ctrl-C":"showInCenter","Ctrl-K Ctrl-G":"clearBookmarks","Ctrl-K Ctrl-Backspace":"delLineLeft","Ctrl-K Ctrl-1":"foldAll","Ctrl-K Ctrl-0":"unfoldAll","Ctrl-K Ctrl-J":"unfoldAll","Ctrl-Alt-Up":"addCursorToPrevLine","Ctrl-Alt-Down":"addCursorToNextLine","Ctrl-F3":"findUnder","Shift-Ctrl-F3":"findUnderPrevious","Alt-F3":"findAllUnder","Shift-Ctrl-[":"fold","Shift-Ctrl-]":"unfold","Ctrl-I":"findIncremental","Shift-Ctrl-I":"findIncrementalReverse","Ctrl-H":"replace",F3:"findNext","Shift-F3":"findPrev",fallthrough:"pcDefault"},e.normalizeKeyMap(p.pcSublime);var h=p.default==p.macDefault;p.sublime=h?p.macSublime:p.pcSublime}(n(25747),n(41859),n(52971))},91434:(e,t,n)=>{!function(e){"use strict";function t(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=i,this.prev=o}function n(e,n,r,i){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=r&&(o=e.context.indented),e.context=new t(o,n,r,i,null,e.context)}function r(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function i(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0}function o(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function a(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/,F=l.isIdentifierChar||/[\w\$_\xa1-\uffff]/,E=l.isReservedIdentifier||!1;function A(e,t){var n,r=e.next();if(y[r]){var i=y[r](e,t);if(!1!==i)return i}if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return(o||!i&&!k)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(M.test(r)){if(e.backUp(1),e.match(L))return"number";e.next()}if(S.test(r))return c=r,null;if("/"==r){if(e.eat("*"))return t.tokenize=P,P(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(T.test(r)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(T););return"operator"}if(e.eatWhile(F),_)for(;e.match(_);)e.eatWhile(F);var o=e.current();return s(p,o)?(s(b,o)&&(c="newstatement"),s(v,o)&&(u=!0),"keyword"):s(h,o)?"type":s(g,o)||E&&E(o)?(s(b,o)&&(c="newstatement"),"builtin"):s(x,o)?"atom":"variable"}function P(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function D(e,t){l.typeFirstDefinitions&&e.eol()&&o(t.context)&&(t.typeAtEndOfLine=i(e,t,e.pos))}return{startState:function(e){return{tokenize:null,context:new t((e||0)-d,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(e,t){var a=t.context;if(e.sol()&&(null==a.align&&(a.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return D(e,t),null;c=u=null;var s=(t.tokenize||A)(e,t);if("comment"==s||"meta"==s)return s;if(null==a.align&&(a.align=!0),";"==c||":"==c||","==c&&e.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==t.context.type;)r(t);else if("{"==c)n(t,e.column(),"}");else if("["==c)n(t,e.column(),"]");else if("("==c)n(t,e.column(),")");else if("}"==c){for(;"statement"==a.type;)a=r(t);for("}"==a.type&&(a=r(t));"statement"==a.type;)a=r(t)}else c==a.type?r(t):w&&(("}"==a.type||"top"==a.type)&&";"!=c||"statement"==a.type&&"newstatement"==c)&&n(t,e.column(),"statement",e.current());if("variable"==s&&("def"==t.prevToken||l.typeFirstDefinitions&&i(e,t,e.start)&&o(t.context)&&e.match(/^\s*\(/,!1))&&(s="def"),y.token){var d=y.token(e,t,s);void 0!==d&&(s=d)}return"def"==s&&!1===l.styleDefs&&(s="variable"),t.startOfLine=!1,t.prevToken=u?"def":s||c,D(e,t),s},indent:function(t,n){if(t.tokenize!=A&&null!=t.tokenize||t.typeAtEndOfLine)return e.Pass;var r=t.context,i=n&&n.charAt(0),o=i==r.type;if("statement"==r.type&&"}"==i&&(r=r.prev),l.dontIndentStatements)for(;"statement"==r.type&&l.dontIndentStatements.test(r.info);)r=r.prev;if(y.indent){var a=y.indent(t,r,n,d);if("number"==typeof a)return a}var s=r.prev&&"switch"==r.prev.info;if(l.allmanIndentation&&/[{(]/.test(i)){for(;"top"!=r.type&&"}"!=r.type;)r=r.prev;return r.indented}return"statement"==r.type?r.indented+("{"==i?0:m):!r.align||f&&")"==r.type?")"!=r.type||o?r.indented+(o?0:d)+(o||!s||/^(?:case|default)\b/.test(n)?0:d):r.indented+m:r.column+(o?0:1)},electricInput:C?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}}));var l="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",c="alignas alignof and and_eq audit axiom bitand bitor catch class compl concept constexpr const_cast decltype delete dynamic_cast explicit export final friend import module mutable namespace new noexcept not not_eq operator or or_eq override private protected public reinterpret_cast requires static_assert static_cast template this thread_local throw try typeid typename using virtual xor xor_eq",u="bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available",d="FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT",m=a("int long char short double float unsigned signed void bool"),f=a("SEL instancetype id Class Protocol BOOL");function p(e){return s(m,e)||/.+_t$/.test(e)}function h(e){return p(e)||s(f,e)}var g="case do else for if switch while struct enum union",b="struct enum union";function v(e,t){if(!t.startOfLine)return!1;for(var n,r=null;n=e.peek();){if("\\"==n&&e.match(/^.$/)){r=v;break}if("/"==n&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=r,"meta"}function x(e,t){return"type"==t.prevToken&&"type"}function y(e){return!(!e||e.length<2||"_"!=e[0]||"_"!=e[1]&&e[1]===e[1].toLowerCase())}function k(e){return e.eatWhile(/[\w\.']/),"number"}function w(e,t){if(e.backUp(1),e.match(/^(?:R|u8R|uR|UR|LR)/)){var n=e.match(/^"([^\s\\()]{0,16})\(/);return!!n&&(t.cpp11RawStringDelim=n[1],t.tokenize=S,S(e,t))}return e.match(/^(?:u8|u|U|L)/)?!!e.match(/^["']/,!1)&&"string":(e.next(),!1)}function C(e){var t=/(\w+)::~?(\w+)$/.exec(e);return t&&t[1]==t[2]}function _(e,t){for(var n;null!=(n=e.next());)if('"'==n&&!e.eat('"')){t.tokenize=null;break}return"string"}function S(e,t){var n=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+n+'"'))?t.tokenize=null:e.skipToEnd(),"string"}function M(t,n){"string"==typeof t&&(t=[t]);var r=[];function i(e){if(e)for(var t in e)e.hasOwnProperty(t)&&r.push(t)}i(n.keywords),i(n.types),i(n.builtin),i(n.atoms),r.length&&(n.helperType=t[0],e.registerHelper("hintWords",t[0],r));for(var o=0;o!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=L,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},"=":function(e,n){var r=n.context;return!("}"!=r.type||!r.align||!e.eat(">"))&&(n.context=new t(r.indented,r.column,r.type,r.info,null,r.prev),"operator")},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=T(1),t.tokenize(e,t))}},modeProps:{closeBrackets:{pairs:'()[]{}""',triples:'"'}}}),M("text/x-kotlin",{name:"clike",keywords:a("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam value"),types:a("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:a("catch class do else finally for if where try while enum"),defKeywords:a("class val var object interface fun"),atoms:a("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return"."==t.prevToken?"variable":"operator"},'"':function(e,t){return t.tokenize=(n=e.match('""'),function(e,t){for(var r,i=!1,o=!1;!e.eol();){if(!n&&!i&&e.match('"')){o=!0;break}if(n&&e.match('"""')){o=!0;break}r=e.next(),!i&&"$"==r&&e.match("{")&&e.skipTo("}"),i=!i&&"\\"==r&&!n}return!o&&n||(t.tokenize=null),"string"}),t.tokenize(e,t);var n},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=T(1),t.tokenize(e,t))},indent:function(e,t,n,r){var i=n&&n.charAt(0);return"}"!=e.prevToken&&")"!=e.prevToken||""!=n?"operator"==e.prevToken&&"}"!=n&&"}"!=e.context.type||"variable"==e.prevToken&&"."==i||("}"==e.prevToken||")"==e.prevToken)&&"."==i?2*r+t.indented:t.align&&"}"==t.type?t.indented+(e.context.type==(n||"").charAt(0)?0:r):void 0:e.indented}},modeProps:{closeBrackets:{triples:'"'}}}),M(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:a("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:a("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:a("for while do if else struct"),builtin:a("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:a("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":v},modeProps:{fold:["brace","include"]}}),M("text/x-nesc",{name:"clike",keywords:a(l+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:p,blockKeywords:a(g),atoms:a("null true false"),hooks:{"#":v},modeProps:{fold:["brace","include"]}}),M("text/x-objectivec",{name:"clike",keywords:a(l+" "+u),types:h,builtin:a(d),blockKeywords:a(g+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:a(b+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:a("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:y,hooks:{"#":v,"*":x},modeProps:{fold:["brace","include"]}}),M("text/x-objectivec++",{name:"clike",keywords:a(l+" "+u+" "+c),types:h,builtin:a(d),blockKeywords:a(g+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:a(b+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:a("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:y,hooks:{"#":v,"*":x,u:w,U:w,L:w,R:w,0:k,1:k,2:k,3:k,4:k,5:k,6:k,7:k,8:k,9:k,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&C(e.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),M("text/x-squirrel",{name:"clike",keywords:a("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:p,blockKeywords:a("case catch class else for foreach if switch try while"),defKeywords:a("function local class"),typeFirstDefinitions:!0,atoms:a("true false null"),hooks:{"#":v},modeProps:{fold:["brace","include"]}});var F=null;function E(e){return function(t,n){for(var r,i=!1,o=!1;!t.eol();){if(!i&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!i&&t.match("``")){F=E(e),o=!0;break}r=t.next(),i="single"==e&&!i&&"\\"==r}return o&&(n.tokenize=null),"string"}}M("text/x-ceylon",{name:"clike",keywords:a("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:a("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:a("class dynamic function interface module object package value"),builtin:a("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:a("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=E(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!F||!e.match("`"))&&(t.tokenize=F,F=null,t.tokenize(e,t))},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(e,t,n){if(("variable"==n||"type"==n)&&"."==t.prevToken)return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})}(n(25747))},1827:(e,t,n)=>{!function(e){"use strict";function t(e){for(var t={},n=0;n*\/]/.test(n)?w(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?w("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?w(null,n):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(t.tokenize=S),w("variable callee","variable")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),w("property","word")):w(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),w("number","unit")):e.match(/^-[\w\\\-]*/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?w("variable-2","variable-definition"):w("variable-2","variable")):e.match(/^\w+-/)?w("meta","meta"):void 0}function _(e){return function(t,n){for(var r,i=!1;null!=(r=t.next());){if(r==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==r}return(r==e||!i&&")"!=e)&&(n.tokenize=null),w("string","string")}}function S(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=_(")"),w(null,"(")}function M(e,t,n){this.type=e,this.indent=t,this.prev=n}function L(e,t,n,r){return e.context=new M(n,t.indentation()+(!1===r?0:a),e.context),n}function T(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function F(e,t,n){return P[n.context.type](e,t,n)}function E(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return F(e,t,n)}function A(e){var t=e.current().toLowerCase();o=b.hasOwnProperty(t)?"atom":g.hasOwnProperty(t)?"keyword":"variable"}var P={top:function(e,t,n){if("{"==e)return L(n,t,"block");if("}"==e&&n.context.prev)return T(n);if(y&&/@component/i.test(e))return L(n,t,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return L(n,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return L(n,t,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return n.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return L(n,t,"at");if("hash"==e)o="builtin";else if("word"==e)o="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return L(n,t,"interpolation");if(":"==e)return"pseudo";if(v&&"("==e)return L(n,t,"parens")}return n.context.type},block:function(e,t,n){if("word"==e){var r=t.current().toLowerCase();return m.hasOwnProperty(r)?(o="property","maybeprop"):f.hasOwnProperty(r)?(o=k?"string-2":"property","maybeprop"):v?(o=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==e?"block":v||"hash"!=e&&"qualifier"!=e?P.top(e,t,n):(o="error","block")},maybeprop:function(e,t,n){return":"==e?L(n,t,"prop"):F(e,t,n)},prop:function(e,t,n){if(";"==e)return T(n);if("{"==e&&v)return L(n,t,"propBlock");if("}"==e||"{"==e)return E(e,t,n);if("("==e)return L(n,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)A(t);else if("interpolation"==e)return L(n,t,"interpolation")}else o+=" error";return"prop"},propBlock:function(e,t,n){return"}"==e?T(n):"word"==e?(o="property","maybeprop"):n.context.type},parens:function(e,t,n){return"{"==e||"}"==e?E(e,t,n):")"==e?T(n):"("==e?L(n,t,"parens"):"interpolation"==e?L(n,t,"interpolation"):("word"==e&&A(t),"parens")},pseudo:function(e,t,n){return"meta"==e?"pseudo":"word"==e?(o="variable-3",n.context.type):F(e,t,n)},documentTypes:function(e,t,n){return"word"==e&&l.hasOwnProperty(t.current())?(o="tag",n.context.type):P.atBlock(e,t,n)},atBlock:function(e,t,n){if("("==e)return L(n,t,"atBlock_parens");if("}"==e||";"==e)return E(e,t,n);if("{"==e)return T(n)&&L(n,t,v?"block":"top");if("interpolation"==e)return L(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":d.hasOwnProperty(r)?"keyword":m.hasOwnProperty(r)?"property":f.hasOwnProperty(r)?k?"string-2":"property":b.hasOwnProperty(r)?"atom":g.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(e,t,n){return"}"==e?E(e,t,n):"{"==e?T(n)&&L(n,t,v?"block":"top",!1):("word"==e&&(o="error"),n.context.type)},atBlock_parens:function(e,t,n){return")"==e?T(n):"{"==e||"}"==e?E(e,t,n,2):P.atBlock(e,t,n)},restricted_atBlock_before:function(e,t,n){return"{"==e?L(n,t,"restricted_atBlock"):"word"==e&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):F(e,t,n)},restricted_atBlock:function(e,t,n){return"}"==e?(n.stateArg=null,T(n)):"word"==e?(o="@font-face"==n.stateArg&&!p.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==n.stateArg&&!h.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,n){return"word"==e?(o="variable","keyframes"):"{"==e?L(n,t,"top"):F(e,t,n)},at:function(e,t,n){return";"==e?T(n):"{"==e||"}"==e?E(e,t,n):("word"==e?o="tag":"hash"==e&&(o="builtin"),"at")},interpolation:function(e,t,n){return"}"==e?T(n):"{"==e||";"==e?E(e,t,n):("word"==e?o="variable":"variable"!=e&&"("!=e&&")"!=e&&(o="error"),"interpolation")}};return{startState:function(e){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new M(r?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||C)(e,t);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(t.state=P[t.state](i,e,t)),o},indent:function(e,t){var n=e.context,r=t&&t.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-a)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:x,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=t(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=t(i),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],s=t(a),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=t(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=t(u),m=["border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],f=t(m),p=t(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),h=t(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),g=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],b=t(g),v=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],x=t(v),y=n.concat(i).concat(a).concat(l).concat(u).concat(m).concat(g).concat(v);function k(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}e.registerHelper("hintWords","css",y),e.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,fontProperties:p,counterDescriptors:h,colorKeywords:b,valueKeywords:x,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=k,k(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,colorKeywords:b,valueKeywords:x,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=k,k(e,t)):["operator","operator"]},":":function(e){return!!e.match(/^\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:d,nonStandardPropertyKeywords:f,colorKeywords:b,valueKeywords:x,fontProperties:p,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=k,k(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:s,propertyKeywords:d,nonStandardPropertyKeywords:f,fontProperties:p,counterDescriptors:h,colorKeywords:b,valueKeywords:x,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=k,k(e,t))}},name:"css",helperType:"gss"})}(n(25747))},79999:(e,t,n)=>{!function(e){"use strict";var t=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;e.defineMode("gfm",(function(n,r){var i=0;var o={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(e){return{code:e.code,codeBlock:e.codeBlock,ateSpace:e.ateSpace}},token:function(e,n){if(n.combineTokens=null,n.codeBlock)return e.match(/^```+/)?(n.codeBlock=!1,null):(e.skipToEnd(),null);if(e.sol()&&(n.code=!1),e.sol()&&e.match(/^```+/))return e.skipToEnd(),n.codeBlock=!0,null;if("`"===e.peek()){e.next();var o=e.pos;e.eatWhile("`");var a=1+e.pos-o;return n.code?a===i&&(n.code=!1):(i=a,n.code=!0),null}if(n.code)return e.next(),null;if(e.eatSpace())return n.ateSpace=!0,null;if((e.sol()||n.ateSpace)&&(n.ateSpace=!1,!1!==r.gitHubSpice)){if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/))return n.combineTokens=!0,"link";if(e.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return n.combineTokens=!0,"link"}return e.match(t)&&"]("!=e.string.slice(e.start-2,e.start)&&(0==e.start||/\W/.test(e.string.charAt(e.start-1)))?(n.combineTokens=!0,"link"):(e.next(),null)},blankLine:function(e){return e.code=!1,null}},a={taskLists:!0,strikethrough:!0,emoji:!0};for(var s in r)a[s]=r[s];return a.name="markdown",e.overlayMode(e.getMode(n,a),o)}),"markdown"),e.defineMIME("text/x-gfm","gfm")}(n(25747),n(7385),n(33694))},72896:(e,t,n)=>{!function(e){"use strict";e.defineMode("javascript",(function(t,n){var r,i,o=t.indentUnit,a=n.statementIndent,s=n.jsonld,l=n.json||s,c=!1!==n.trackScope,u=n.typescript,d=n.wordCharacters||/[\w$\xa1-\uffff]/,m=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:e("new"),delete:r,void:r,throw:r,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r}}(),f=/[+\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function h(e,t,n){return r=e,i=n,t}function g(e,t){var n,r=e.next();if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){var r,i=!1;if(s&&"@"==e.peek()&&e.match(p))return t.tokenize=g,h("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=n||i);)i=!i&&"\\"==r;return i||(t.tokenize=g),h("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return h("number","number");if("."==r&&e.match(".."))return h("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return h(r);if("="==r&&e.eat(">"))return h("=>","operator");if("0"==r&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return h("number","number");if(/\d/.test(r))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),h("number","number");if("/"==r)return e.eat("*")?(t.tokenize=b,b(e,t)):e.eat("/")?(e.skipToEnd(),h("comment","comment")):Ye(e,t,1)?(function(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),h("regexp","string-2")):(e.eat("="),h("operator","operator",e.current()));if("`"==r)return t.tokenize=v,v(e,t);if("#"==r&&"!"==e.peek())return e.skipToEnd(),h("meta","meta");if("#"==r&&e.eatWhile(d))return h("variable","property");if("<"==r&&e.match("!--")||"-"==r&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),h("comment","comment");if(f.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-|&?]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),"?"==r&&e.eat(".")?h("."):h("operator","operator",e.current());if(d.test(r)){e.eatWhile(d);var i=e.current();if("."!=t.lastType){if(m.propertyIsEnumerable(i)){var o=m[i];return h(o.type,o.style,i)}if("async"==i&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return h("async","keyword",i)}return h("variable","variable",i)}}function b(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=g;break}r="*"==n}return h("comment","comment")}function v(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=g;break}r=!r&&"\\"==n}return h("quasi","string-2",e.current())}function x(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l="([{}])".indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(d.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;if(e.string.charAt(a-1)==s&&"\\"!=e.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(t.fatArrowAt=a)}}var y={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function k(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function w(e,t){if(!c)return!1;for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==t)return!0}function C(e,t,n,r,i){var o=e.cc;for(_.state=e,_.stream=i,_.marked=null,_.cc=o,_.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():l?U:N)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return _.marked?_.marked:"variable"==n&&w(e,r)?"variable-2":t}}var _={state:null,column:null,marked:null,cc:null};function S(){for(var e=arguments.length-1;e>=0;e--)_.cc.push(arguments[e])}function M(){return S.apply(null,arguments),!0}function L(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function T(e){var t=_.state;if(_.marked="def",c){if(t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=F(e,t.context);if(null!=r)return void(t.context=r)}else if(!L(e,t.localVars))return void(t.localVars=new P(e,t.localVars));n.globalVars&&!L(e,t.globalVars)&&(t.globalVars=new P(e,t.globalVars))}}function F(e,t){if(t){if(t.block){var n=F(e,t.prev);return n?n==t.prev?t:new A(n,t.vars,!0):null}return L(e,t.vars)?t:new A(t.prev,new P(e,t.vars),!1)}return null}function E(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function A(e,t,n){this.prev=e,this.vars=t,this.block=n}function P(e,t){this.name=e,this.next=t}var D=new P("this",new P("arguments",null));function z(){_.state.context=new A(_.state.context,_.state.localVars,!1),_.state.localVars=D}function O(){_.state.context=new A(_.state.context,_.state.localVars,!0),_.state.localVars=null}function I(){_.state.localVars=_.state.context.vars,_.state.context=_.state.context.prev}function B(e,t){var n=function(){var n=_.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new k(r,_.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function j(){var e=_.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function q(e){return function t(n){return n==e?M():";"==e||"}"==n||")"==n||"]"==n?S():M(t)}}function N(e,t){return"var"==e?M(B("vardef",t),_e,q(";"),j):"keyword a"==e?M(B("form"),W,N,j):"keyword b"==e?M(B("form"),N,j):"keyword d"==e?_.stream.match(/^\s*$/,!1)?M():M(B("stat"),H,q(";"),j):"debugger"==e?M(q(";")):"{"==e?M(B("}"),O,le,j,I):";"==e?M():"if"==e?("else"==_.state.lexical.info&&_.state.cc[_.state.cc.length-1]==j&&_.state.cc.pop()(),M(B("form"),W,N,j,Ee)):"function"==e?M(ze):"for"==e?M(B("form"),O,Ae,N,I,j):"class"==e||u&&"interface"==t?(_.marked="keyword",M(B("form","class"==e?e:t),qe,j)):"variable"==e?u&&"declare"==t?(_.marked="keyword",M(N)):u&&("module"==t||"enum"==t||"type"==t)&&_.stream.match(/^\s*\w/,!1)?(_.marked="keyword","enum"==t?M(Je):"type"==t?M(Ie,q("operator"),fe,q(";")):M(B("form"),Se,q("{"),B("}"),le,j,j)):u&&"namespace"==t?(_.marked="keyword",M(B("form"),U,N,j)):u&&"abstract"==t?(_.marked="keyword",M(N)):M(B("stat"),te):"switch"==e?M(B("form"),W,q("{"),B("}","switch"),O,le,j,j,I):"case"==e?M(U,q(":")):"default"==e?M(q(":")):"catch"==e?M(B("form"),z,R,N,j,I):"export"==e?M(B("stat"),$e,j):"import"==e?M(B("stat"),Ke,j):"async"==e?M(N):"@"==t?M(U,N):S(B("stat"),U,q(";"),j)}function R(e){if("("==e)return M(Be,q(")"))}function U(e,t){return K(e,t,!1)}function $(e,t){return K(e,t,!0)}function W(e){return"("!=e?S():M(B(")"),H,q(")"),j)}function K(e,t,n){if(_.state.fatArrowAt==_.stream.start){var r=n?Z:J;if("("==e)return M(z,B(")"),ae(Be,")"),j,q("=>"),r,I);if("variable"==e)return S(z,Se,q("=>"),r,I)}var i=n?G:V;return y.hasOwnProperty(e)?M(i):"function"==e?M(ze,i):"class"==e||u&&"interface"==t?(_.marked="keyword",M(B("form"),je,j)):"keyword c"==e||"async"==e?M(n?$:U):"("==e?M(B(")"),H,q(")"),j,i):"operator"==e||"spread"==e?M(n?$:U):"["==e?M(B("]"),Xe,j,i):"{"==e?se(re,"}",null,i):"quasi"==e?S(Q,i):"new"==e?M(function(e){return function(t){return"."==t?M(e?ee:Y):"variable"==t&&u?M(ke,e?G:V):S(e?$:U)}}(n)):M()}function H(e){return e.match(/[;\}\)\],]/)?S():S(U)}function V(e,t){return","==e?M(H):G(e,t,!1)}function G(e,t,n){var r=0==n?V:G,i=0==n?U:$;return"=>"==e?M(z,n?Z:J,I):"operator"==e?/\+\+|--/.test(t)||u&&"!"==t?M(r):u&&"<"==t&&_.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?M(B(">"),ae(fe,">"),j,r):"?"==t?M(U,q(":"),i):M(i):"quasi"==e?S(Q,r):";"!=e?"("==e?se($,")","call",r):"."==e?M(ne,r):"["==e?M(B("]"),H,q("]"),j,r):u&&"as"==t?(_.marked="keyword",M(fe,r)):"regexp"==e?(_.state.lastType=_.marked="operator",_.stream.backUp(_.stream.pos-_.stream.start-1),M(i)):void 0:void 0}function Q(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?M(Q):M(U,X)}function X(e){if("}"==e)return _.marked="string-2",_.state.tokenize=v,M(Q)}function J(e){return x(_.stream,_.state),S("{"==e?N:U)}function Z(e){return x(_.stream,_.state),S("{"==e?N:$)}function Y(e,t){if("target"==t)return _.marked="keyword",M(V)}function ee(e,t){if("target"==t)return _.marked="keyword",M(G)}function te(e){return":"==e?M(j,N):S(V,q(";"),j)}function ne(e){if("variable"==e)return _.marked="property",M()}function re(e,t){return"async"==e?(_.marked="property",M(re)):"variable"==e||"keyword"==_.style?(_.marked="property","get"==t||"set"==t?M(ie):(u&&_.state.fatArrowAt==_.stream.start&&(n=_.stream.match(/^\s*:\s*/,!1))&&(_.state.fatArrowAt=_.stream.pos+n[0].length),M(oe))):"number"==e||"string"==e?(_.marked=s?"property":_.style+" property",M(oe)):"jsonld-keyword"==e?M(oe):u&&E(t)?(_.marked="keyword",M(re)):"["==e?M(U,ce,q("]"),oe):"spread"==e?M($,oe):"*"==t?(_.marked="keyword",M(re)):":"==e?S(oe):void 0;var n}function ie(e){return"variable"!=e?S(oe):(_.marked="property",M(ze))}function oe(e){return":"==e?M($):"("==e?S(ze):void 0}function ae(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=_.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),M((function(n,r){return n==t||r==t?S():S(e)}),r)}return i==t||o==t?M():n&&n.indexOf(";")>-1?S(e):M(q(t))}return function(n,i){return n==t||i==t?M():S(e,r)}}function se(e,t,n){for(var r=3;r"),fe):"quasi"==e?S(be,ye):void 0}function pe(e){if("=>"==e)return M(fe)}function he(e){return e.match(/[\}\)\]]/)?M():","==e||";"==e?M(he):S(ge,he)}function ge(e,t){return"variable"==e||"keyword"==_.style?(_.marked="property",M(ge)):"?"==t||"number"==e||"string"==e?M(ge):":"==e?M(fe):"["==e?M(q("variable"),ue,q("]"),ge):"("==e?S(Oe,ge):e.match(/[;\}\)\],]/)?void 0:M()}function be(e,t){return"quasi"!=e?S():"${"!=t.slice(t.length-2)?M(be):M(fe,ve)}function ve(e){if("}"==e)return _.marked="string-2",_.state.tokenize=v,M(be)}function xe(e,t){return"variable"==e&&_.stream.match(/^\s*[?:]/,!1)||"?"==t?M(xe):":"==e?M(fe):"spread"==e?M(xe):S(fe)}function ye(e,t){return"<"==t?M(B(">"),ae(fe,">"),j,ye):"|"==t||"."==e||"&"==t?M(fe):"["==e?M(fe,q("]"),ye):"extends"==t||"implements"==t?(_.marked="keyword",M(fe)):"?"==t?M(fe,q(":"),fe):void 0}function ke(e,t){if("<"==t)return M(B(">"),ae(fe,">"),j,ye)}function we(){return S(fe,Ce)}function Ce(e,t){if("="==t)return M(fe)}function _e(e,t){return"enum"==t?(_.marked="keyword",M(Je)):S(Se,ce,Te,Fe)}function Se(e,t){return u&&E(t)?(_.marked="keyword",M(Se)):"variable"==e?(T(t),M()):"spread"==e?M(Se):"["==e?se(Le,"]"):"{"==e?se(Me,"}"):void 0}function Me(e,t){return"variable"!=e||_.stream.match(/^\s*:/,!1)?("variable"==e&&(_.marked="property"),"spread"==e?M(Se):"}"==e?S():"["==e?M(U,q("]"),q(":"),Me):M(q(":"),Se,Te)):(T(t),M(Te))}function Le(){return S(Se,Te)}function Te(e,t){if("="==t)return M($)}function Fe(e){if(","==e)return M(_e)}function Ee(e,t){if("keyword b"==e&&"else"==t)return M(B("form","else"),N,j)}function Ae(e,t){return"await"==t?M(Ae):"("==e?M(B(")"),Pe,j):void 0}function Pe(e){return"var"==e?M(_e,De):"variable"==e?M(De):S(De)}function De(e,t){return")"==e?M():";"==e?M(De):"in"==t||"of"==t?(_.marked="keyword",M(U,De)):S(U,De)}function ze(e,t){return"*"==t?(_.marked="keyword",M(ze)):"variable"==e?(T(t),M(ze)):"("==e?M(z,B(")"),ae(Be,")"),j,de,N,I):u&&"<"==t?M(B(">"),ae(we,">"),j,ze):void 0}function Oe(e,t){return"*"==t?(_.marked="keyword",M(Oe)):"variable"==e?(T(t),M(Oe)):"("==e?M(z,B(")"),ae(Be,")"),j,de,I):u&&"<"==t?M(B(">"),ae(we,">"),j,Oe):void 0}function Ie(e,t){return"keyword"==e||"variable"==e?(_.marked="type",M(Ie)):"<"==t?M(B(">"),ae(we,">"),j):void 0}function Be(e,t){return"@"==t&&M(U,Be),"spread"==e?M(Be):u&&E(t)?(_.marked="keyword",M(Be)):u&&"this"==e?M(ce,Te):S(Se,ce,Te)}function je(e,t){return"variable"==e?qe(e,t):Ne(e,t)}function qe(e,t){if("variable"==e)return T(t),M(Ne)}function Ne(e,t){return"<"==t?M(B(">"),ae(we,">"),j,Ne):"extends"==t||"implements"==t||u&&","==e?("implements"==t&&(_.marked="keyword"),M(u?fe:U,Ne)):"{"==e?M(B("}"),Re,j):void 0}function Re(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||u&&E(t))&&_.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(_.marked="keyword",M(Re)):"variable"==e||"keyword"==_.style?(_.marked="property",M(Ue,Re)):"number"==e||"string"==e?M(Ue,Re):"["==e?M(U,ce,q("]"),Ue,Re):"*"==t?(_.marked="keyword",M(Re)):u&&"("==e?S(Oe,Re):";"==e||","==e?M(Re):"}"==e?M():"@"==t?M(U,Re):void 0}function Ue(e,t){if("!"==t)return M(Ue);if("?"==t)return M(Ue);if(":"==e)return M(fe,Te);if("="==t)return M($);var n=_.state.lexical.prev;return S(n&&"interface"==n.info?Oe:ze)}function $e(e,t){return"*"==t?(_.marked="keyword",M(Qe,q(";"))):"default"==t?(_.marked="keyword",M(U,q(";"))):"{"==e?M(ae(We,"}"),Qe,q(";")):S(N)}function We(e,t){return"as"==t?(_.marked="keyword",M(q("variable"))):"variable"==e?S($,We):void 0}function Ke(e){return"string"==e?M():"("==e?S(U):"."==e?S(V):S(He,Ve,Qe)}function He(e,t){return"{"==e?se(He,"}"):("variable"==e&&T(t),"*"==t&&(_.marked="keyword"),M(Ge))}function Ve(e){if(","==e)return M(He,Ve)}function Ge(e,t){if("as"==t)return _.marked="keyword",M(He)}function Qe(e,t){if("from"==t)return _.marked="keyword",M(U)}function Xe(e){return"]"==e?M():S(ae($,"]"))}function Je(){return S(B("form"),Se,q("{"),B("}"),ae(Ze,"}"),j,j)}function Ze(){return S(Se,Te)}function Ye(e,t,n){return t.tokenize==g&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}return I.lex=!0,j.lex=!0,{startState:function(e){var t={tokenize:g,lastType:"sof",cc:[],lexical:new k((e||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new A(null,null,!1),indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),x(e,t)),t.tokenize!=b&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==r?n:(t.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",C(t,n,r,i,e))},indent:function(t,r){if(t.tokenize==b||t.tokenize==v)return e.Pass;if(t.tokenize!=g)return 0;var i,s=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==j)l=l.prev;else if(u!=Ee&&u!=I)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(i=t.cc[t.cc.length-1])&&(i==V||i==G)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var d=l.type,m=s==d;return"vardef"==d?l.indented+("operator"==t.lastType||","==t.lastType?l.info.length+1:0):"form"==d&&"{"==s?l.indented:"form"==d?l.indented+o:"stat"==d?l.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||f.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,r)?a||o:0):"switch"!=l.info||m||0==n.doubleIndentSwitch?l.align?l.column+(m?0:1):l.indented+(m?0:o):l.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:Ye,skipExpression:function(t){C(t,"atom","atom","true",new e.StringStream("",2,null))}}})),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(25747))},38269:(e,t,n)=>{!function(e){"use strict";function t(e,t,n,r){this.state=e,this.mode=t,this.depth=n,this.prev=r}function n(r){return new t(e.copyState(r.mode,r.state),r.mode,r.depth,r.prev&&n(r.prev))}e.defineMode("jsx",(function(r,i){var o=e.getMode(r,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),a=e.getMode(r,i&&i.base||"javascript");function s(e){var t=e.tagName;e.tagName=null;var n=o.indent(e,"","");return e.tagName=t,n}function l(n,i){return i.context.mode==o?function(n,i,c){if(2==c.depth)return n.match(/^.*?\*\//)?c.depth=1:n.skipToEnd(),"comment";if("{"==n.peek()){o.skipAttribute(c.state);var u=s(c.state),d=c.state.context;if(d&&n.match(/^[^>]*>\s*$/,!1)){for(;d.prev&&!d.startOfLine;)d=d.prev;d.startOfLine?u-=r.indentUnit:c.prev.state.lexical&&(u=c.prev.state.lexical.indented)}else 1==c.depth&&(u+=r.indentUnit);return i.context=new t(e.startState(a,u),a,0,i.context),null}if(1==c.depth){if("<"==n.peek())return o.skipAttribute(c.state),i.context=new t(e.startState(o,s(c.state)),o,0,i.context),null;if(n.match("//"))return n.skipToEnd(),"comment";if(n.match("/*"))return c.depth=2,l(n,i)}var m,f=o.token(n,c.state),p=n.current();return/\btag\b/.test(f)?/>$/.test(p)?c.state.context?c.depth=0:i.context=i.context.prev:/^-1&&n.backUp(p.length-m),f}(n,i,i.context):function(n,r,i){if("<"==n.peek()&&a.expressionAllowed(n,i.state))return r.context=new t(e.startState(o,a.indent(i.state,"","")),o,0,r.context),a.skipExpression(i.state),null;var s=a.token(n,i.state);if(!s&&null!=i.depth){var l=n.current();"{"==l?i.depth++:"}"==l&&0==--i.depth&&(r.context=r.context.prev)}return s}(n,i,i.context)}return{startState:function(){return{context:new t(e.startState(a),a)}},copyState:function(e){return{context:n(e.context)}},token:l,indent:function(e,t,n){return e.context.mode.indent(e.context.state,t,n)},innerMode:function(e){return e.context}}}),"xml","javascript"),e.defineMIME("text/jsx","jsx"),e.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})}(n(25747),n(89036),n(72896))},15e3:(e,t,n)=>{!function(e){"use strict";e.defineMode("julia",(function(t,n){function r(e,t){return void 0===t&&(t="\\b"),new RegExp("^(("+e.join(")|(")+"))"+t)}var i=n.operators||r(["[<>]:","[<>=]=","<<=?",">>>?=?","=>","->","\\/\\/","[\\\\%*+\\-<>!=\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),o=n.delimiters||/^[;,()[\]{}]/,a=n.identifiers||/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,s=r(["\\\\[0-7]{1,3}","\\\\x[A-Fa-f0-9]{1,2}","\\\\[abefnrtv0%?'\"\\\\]","([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])"],"'"),l=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],c=["true","false","nothing","NaN","Inf"];e.registerHelper("hintWords","julia",l.concat(c));var u=r(["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"]),d=r(["end","else","elseif","catch","finally"]),m=r(l),f=r(c),p=/^@[_A-Za-z][\w]*/,h=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,g=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/;function b(e){return e.nestedArrays>0}function v(e,t){return void 0===t&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function x(e,t){if(e.match("#=",!1))return t.tokenize=k,t.tokenize(e,t);var n=t.leavingExpr;if(e.sol()&&(n=!1),t.leavingExpr=!1,n&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r,s=e.peek();if("#"===s)return e.skipToEnd(),"comment";if("["===s&&(t.scopes.push("["),t.nestedArrays++),"("===s&&(t.scopes.push("("),t.nestedGenerators++),b(t)&&"]"===s){for(;t.scopes.length&&"["!==v(t);)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(function(e){return e.nestedGenerators>0}(t)&&")"===s){for(;t.scopes.length&&"("!==v(t);)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(b(t)){if("end"==t.lastToken&&e.match(":"))return"operator";if(e.match("end"))return"number"}if((r=e.match(u,!1))&&t.scopes.push(r[0]),e.match(d,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=y,t.tokenize(e,t);if(!n&&e.match(h)||e.match(/:([<>]:|<<=?|>>>?=?|->|\/\/|\.{2,3}|[\.\\%*+\-<>!\/^|&]=?|[~\?\$])/))return"builtin";if(e.match(i))return"operator";if(e.match(/^\.?\d/,!1)){var l=RegExp(/^im\b/),c=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(c=!0),e.match(/^0x[0-9a-f_]+/i)&&(c=!0),e.match(/^0b[01_]+/i)&&(c=!0),e.match(/^0o[0-7_]+/i)&&(c=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(c=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(c=!0),c)return e.match(l),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=w,t.tokenize(e,t);if(e.match(g))return t.tokenize=function(e){function t(t,n){if(t.eat("\\"))t.next();else{if(t.match(e))return n.tokenize=x,n.leavingExpr=!0,"string";t.eat(/[`"]/)}return t.eatWhile(/[^\\`"]/),"string"}return'"""'===e.substr(-3)?e='"""':'"'===e.substr(-1)&&(e='"'),t}(e.current()),t.tokenize(e,t);if(e.match(p))return"meta";if(e.match(o))return null;if(e.match(m))return"keyword";if(e.match(f))return"builtin";var C=t.isDefinition||"function"==t.lastToken||"macro"==t.lastToken||"type"==t.lastToken||"struct"==t.lastToken||"immutable"==t.lastToken;return e.match(a)?C?"."===e.peek()?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function y(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():0==t.nestedParameters&&(t.tokenize=x),"builtin"}function k(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,0==t.nestedComments&&(t.tokenize=x)),"comment"}function w(e,t){var n,r=!1;if(e.match(s))r=!0;else if(n=e.match(/\\u([a-f0-9]{1,4})(?=')/i))((i=parseInt(n[1],16))<=55295||i>=57344)&&(r=!0,e.next());else if(n=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var i;(i=parseInt(n[1],16))<=1114111&&(r=!0,e.next())}return r?(t.leavingExpr=!0,t.tokenize=x,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=x),"error")}return{startState:function(){return{tokenize:x,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var n=t.tokenize(e,t),r=e.current();return r&&n&&(t.lastToken=r),n},indent:function(e,n){var r=0;return("]"===n||")"===n||/^end\b/.test(n)||/^else/.test(n)||/^catch\b/.test(n)||/^elseif\b/.test(n)||/^finally/.test(n))&&(r=-1),(e.scopes.length+r)*t.indentUnit},electricInput:/\b(end|else|catch|finally)\b/,blockCommentStart:"#=",blockCommentEnd:"=#",lineComment:"#",closeBrackets:'()[]{}""',fold:"indent"}})),e.defineMIME("text/x-julia","julia")}(n(25747))},7385:(e,t,n)=>{!function(e){"use strict";e.defineMode("markdown",(function(t,n){var r=e.getMode(t,"text/html"),i="null"==r.name;void 0===n.highlightFormatting&&(n.highlightFormatting=!1),void 0===n.maxBlockquoteDepth&&(n.maxBlockquoteDepth=0),void 0===n.taskLists&&(n.taskLists=!1),void 0===n.strikethrough&&(n.strikethrough=!1),void 0===n.emoji&&(n.emoji=!1),void 0===n.fencedCodeBlockHighlighting&&(n.fencedCodeBlockHighlighting=!0),void 0===n.fencedCodeBlockDefaultMode&&(n.fencedCodeBlockDefaultMode="text/plain"),void 0===n.xml&&(n.xml=!0),void 0===n.tokenTypeOverrides&&(n.tokenTypeOverrides={});var o={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var a in o)o.hasOwnProperty(a)&&n.tokenTypeOverrides[a]&&(o[a]=n.tokenTypeOverrides[a]);var s=/^([*\-_])(?:\s*\1){2,}\s*$/,l=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,c=/^\[(x| )\](?=\s)/i,u=n.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,d=/^ {0,3}(?:\={1,}|-{2,})\s*$/,m=/^[^#!\[\]*_\\<>` "'(~:]+/,f=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,p=/^\s*\[[^\]]+?\]:.*$/,h=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/;function g(e,t,n){return t.f=t.inline=n,n(e,t)}function b(e,t,n){return t.f=t.block=n,n(e,t)}function v(t){if(t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==y){var n=i;if(!n){var o=e.innerMode(r,t.htmlState);n="xml"==o.mode.name&&null===o.state.tagStart&&!o.state.context&&o.state.tokenize.isInText}n&&(t.f=_,t.block=x,t.htmlState=null)}return t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function x(r,i){var a,m=r.column()===i.indentation,h=!(a=i.prevLine.stream)||!/\S/.test(a.string),b=i.indentedCode,v=i.prevLine.hr,x=!1!==i.list,y=(i.listStack[i.listStack.length-1]||0)+3;i.indentedCode=!1;var C=i.indentation;if(null===i.indentationDiff&&(i.indentationDiff=i.indentation,x)){for(i.list=null;C=4&&(b||i.prevLine.fencedCodeEnd||i.prevLine.header||h))return r.skipToEnd(),i.indentedCode=!0,o.code;if(r.eatSpace())return null;if(m&&i.indentation<=y&&(M=r.match(u))&&M[1].length<=6)return i.quote=0,i.header=M[1].length,i.thisLine.header=!0,n.highlightFormatting&&(i.formatting="header"),i.f=i.inline,w(i);if(i.indentation<=y&&r.eat(">"))return i.quote=m?1:i.quote+1,n.highlightFormatting&&(i.formatting="quote"),r.eatSpace(),w(i);if(!S&&!i.setext&&m&&i.indentation<=y&&(M=r.match(l))){var L=M[1]?"ol":"ul";return i.indentation=C+r.current().length,i.list=!0,i.quote=0,i.listStack.push(i.indentation),i.em=!1,i.strong=!1,i.code=!1,i.strikethrough=!1,n.taskLists&&r.match(c,!1)&&(i.taskList=!0),i.f=i.inline,n.highlightFormatting&&(i.formatting=["list","list-"+L]),w(i)}return m&&i.indentation<=y&&(M=r.match(f,!0))?(i.quote=0,i.fencedEndRE=new RegExp(M[1]+"+ *$"),i.localMode=n.fencedCodeBlockHighlighting&&function(n){if(e.findModeByName){var r=e.findModeByName(n);r&&(n=r.mime||r.mimes[0])}var i=e.getMode(t,n);return"null"==i.name?null:i}(M[2]||n.fencedCodeBlockDefaultMode),i.localMode&&(i.localState=e.startState(i.localMode)),i.f=i.block=k,n.highlightFormatting&&(i.formatting="code-block"),i.code=-1,w(i)):i.setext||!(_&&x||i.quote||!1!==i.list||i.code||S||p.test(r.string))&&(M=r.lookAhead(1))&&(M=M.match(d))?(i.setext?(i.header=i.setext,i.setext=0,r.skipToEnd(),n.highlightFormatting&&(i.formatting="header")):(i.header="="==M[0].charAt(0)?1:2,i.setext=i.header),i.thisLine.header=!0,i.f=i.inline,w(i)):S?(r.skipToEnd(),i.hr=!0,i.thisLine.hr=!0,o.hr):"["===r.peek()?g(r,i,T):g(r,i,i.inline)}function y(t,n){var o=r.token(t,n.htmlState);if(!i){var a=e.innerMode(r,n.htmlState);("xml"==a.mode.name&&null===a.state.tagStart&&!a.state.context&&a.state.tokenize.isInText||n.md_inside&&t.current().indexOf(">")>-1)&&(n.f=_,n.block=x,n.htmlState=null)}return o}function k(e,t){var r,i=t.listStack[t.listStack.length-1]||0,a=t.indentation=e.quote?t.push(o.formatting+"-"+e.formatting[r]+"-"+e.quote):t.push("error"))}if(e.taskOpen)return t.push("meta"),t.length?t.join(" "):null;if(e.taskClosed)return t.push("property"),t.length?t.join(" "):null;if(e.linkHref?t.push(o.linkHref,"url"):(e.strong&&t.push(o.strong),e.em&&t.push(o.em),e.strikethrough&&t.push(o.strikethrough),e.emoji&&t.push(o.emoji),e.linkText&&t.push(o.linkText),e.code&&t.push(o.code),e.image&&t.push(o.image),e.imageAltText&&t.push(o.imageAltText,"link"),e.imageMarker&&t.push(o.imageMarker)),e.header&&t.push(o.header,o.header+"-"+e.header),e.quote&&(t.push(o.quote),!n.maxBlockquoteDepth||n.maxBlockquoteDepth>=e.quote?t.push(o.quote+"-"+e.quote):t.push(o.quote+"-"+n.maxBlockquoteDepth)),!1!==e.list){var i=(e.listStack.length-1)%3;i?1===i?t.push(o.list2):t.push(o.list3):t.push(o.list1)}return e.trailingSpaceNewLine?t.push("trailing-space-new-line"):e.trailingSpace&&t.push("trailing-space-"+(e.trailingSpace%2?"a":"b")),t.length?t.join(" "):null}function C(e,t){if(e.match(m,!0))return w(t)}function _(t,i){var a=i.text(t,i);if(void 0!==a)return a;if(i.list)return i.list=null,w(i);if(i.taskList)return" "===t.match(c,!0)[1]?i.taskOpen=!0:i.taskClosed=!0,n.highlightFormatting&&(i.formatting="task"),i.taskList=!1,w(i);if(i.taskOpen=!1,i.taskClosed=!1,i.header&&t.match(/^#+$/,!0))return n.highlightFormatting&&(i.formatting="header"),w(i);var s=t.next();if(i.linkTitle){i.linkTitle=!1;var l=s;"("===s&&(l=")");var u="^\\s*(?:[^"+(l=(l+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1"))+"\\\\]+|\\\\\\\\|\\\\.)"+l;if(t.match(new RegExp(u),!0))return o.linkHref}if("`"===s){var d=i.formatting;n.highlightFormatting&&(i.formatting="code"),t.eatWhile("`");var m=t.current().length;if(0!=i.code||i.quote&&1!=m){if(m==i.code){var f=w(i);return i.code=0,f}return i.formatting=d,w(i)}return i.code=m,w(i)}if(i.code)return w(i);if("\\"===s&&(t.next(),n.highlightFormatting)){var p=w(i),g=o.formatting+"-escape";return p?p+" "+g:g}if("!"===s&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return i.imageMarker=!0,i.image=!0,n.highlightFormatting&&(i.formatting="image"),w(i);if("["===s&&i.imageMarker&&t.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return i.imageMarker=!1,i.imageAltText=!0,n.highlightFormatting&&(i.formatting="image"),w(i);if("]"===s&&i.imageAltText){n.highlightFormatting&&(i.formatting="image");p=w(i);return i.imageAltText=!1,i.image=!1,i.inline=i.f=M,p}if("["===s&&!i.image)return i.linkText&&t.match(/^.*?\]/)||(i.linkText=!0,n.highlightFormatting&&(i.formatting="link")),w(i);if("]"===s&&i.linkText){n.highlightFormatting&&(i.formatting="link");p=w(i);return i.linkText=!1,i.inline=i.f=t.match(/\(.*?\)| ?\[.*?\]/,!1)?M:_,p}if("<"===s&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=w(i))?p+=" ":p="",p+o.linkInline;if("<"===s&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1))return i.f=i.inline=S,n.highlightFormatting&&(i.formatting="link"),(p=w(i))?p+=" ":p="",p+o.linkEmail;if(n.xml&&"<"===s&&t.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var v=t.string.indexOf(">",t.pos);if(-1!=v){var x=t.string.substring(t.start,v);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(x)&&(i.md_inside=!0)}return t.backUp(1),i.htmlState=e.startState(r),b(t,i,y)}if(n.xml&&"<"===s&&t.match(/^\/\w*?>/))return i.md_inside=!1,"tag";if("*"===s||"_"===s){for(var k=1,C=1==t.pos?" ":t.string.charAt(t.pos-2);k<3&&t.eat(s);)k++;var L=t.peek()||" ",T=!/\s/.test(L)&&(!h.test(L)||/\s/.test(C)||h.test(C)),F=!/\s/.test(C)&&(!h.test(C)||/\s/.test(L)||h.test(L)),E=null,A=null;if(k%2&&(i.em||!T||"*"!==s&&F&&!h.test(C)?i.em!=s||!F||"*"!==s&&T&&!h.test(L)||(E=!1):E=!0),k>1&&(i.strong||!T||"*"!==s&&F&&!h.test(C)?i.strong!=s||!F||"*"!==s&&T&&!h.test(L)||(A=!1):A=!0),null!=A||null!=E)return n.highlightFormatting&&(i.formatting=null==E?"strong":null==A?"em":"strong em"),!0===E&&(i.em=s),!0===A&&(i.strong=s),f=w(i),!1===E&&(i.em=!1),!1===A&&(i.strong=!1),f}else if(" "===s&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return w(i);t.backUp(1)}if(n.strikethrough)if("~"===s&&t.eatWhile(s)){if(i.strikethrough)return n.highlightFormatting&&(i.formatting="strikethrough"),f=w(i),i.strikethrough=!1,f;if(t.match(/^[^\s]/,!1))return i.strikethrough=!0,n.highlightFormatting&&(i.formatting="strikethrough"),w(i)}else if(" "===s&&t.match("~~",!0)){if(" "===t.peek())return w(i);t.backUp(2)}if(n.emoji&&":"===s&&t.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){i.emoji=!0,n.highlightFormatting&&(i.formatting="emoji");var P=w(i);return i.emoji=!1,P}return" "===s&&(t.match(/^ +$/,!1)?i.trailingSpace++:i.trailingSpace&&(i.trailingSpaceNewLine=!0)),w(i)}function S(e,t){if(">"===e.next()){t.f=t.inline=_,n.highlightFormatting&&(t.formatting="link");var r=w(t);return r?r+=" ":r="",r+o.linkInline}return e.match(/^[^>]+/,!0),o.linkInline}function M(e,t){if(e.eatSpace())return null;var r,i=e.next();return"("===i||"["===i?(t.f=t.inline=(r="("===i?")":"]",function(e,t){if(e.next()===r){t.f=t.inline=_,n.highlightFormatting&&(t.formatting="link-string");var i=w(t);return t.linkHref=!1,i}return e.match(L[r]),t.linkHref=!0,w(t)}),n.highlightFormatting&&(t.formatting="link-string"),t.linkHref=!0,w(t)):"error"}var L={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function T(e,t){return e.match(/^([^\]\\]|\\.)*\]:/,!1)?(t.f=F,e.next(),n.highlightFormatting&&(t.formatting="link"),t.linkText=!0,w(t)):g(e,t,_)}function F(e,t){if(e.match("]:",!0)){t.f=t.inline=E,n.highlightFormatting&&(t.formatting="link");var r=w(t);return t.linkText=!1,r}return e.match(/^([^\]\\]|\\.)+/,!0),o.linkText}function E(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),void 0===e.peek()?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),t.f=t.inline=_,o.linkHref+" url")}var A={startState:function(){return{f:x,prevLine:{stream:null},thisLine:{stream:null},block:x,htmlState:null,indentation:0,inline:_,text:C,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(t){return{f:t.f,prevLine:t.prevLine,thisLine:t.thisLine,block:t.block,htmlState:t.htmlState&&e.copyState(r,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkText:t.linkText,linkTitle:t.linkTitle,linkHref:t.linkHref,code:t.code,em:t.em,strong:t.strong,strikethrough:t.strikethrough,emoji:t.emoji,header:t.header,setext:t.setext,hr:t.hr,taskList:t.taskList,list:t.list,listStack:t.listStack.slice(0),quote:t.quote,indentedCode:t.indentedCode,trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside,fencedEndRE:t.fencedEndRE}},token:function(e,t){if(t.formatting=!1,e!=t.thisLine.stream){if(t.header=0,t.hr=!1,e.match(/^\s*$/,!0))return v(t),null;if(t.prevLine=t.thisLine,t.thisLine={stream:e},t.taskList=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,!t.localState&&(t.f=t.block,t.f!=y)){var n=e.match(/^\s*/,!0)[0].replace(/\t/g," ").length;if(t.indentation=n,t.indentationDiff=null,n>0)return null}}return t.f(e,t)},innerMode:function(e){return e.block==y?{state:e.htmlState,mode:r}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:A}},indent:function(t,n,i){return t.block==y&&r.indent?r.indent(t.htmlState,n,i):t.localState&&t.localMode.indent?t.localMode.indent(t.localState,n,i):e.Pass},blankLine:v,getType:w,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return A}),"xml"),e.defineMIME("text/markdown","markdown"),e.defineMIME("text/x-markdown","markdown")}(n(25747),n(89036),n(80505))},80505:(e,t,n)=>{!function(e){"use strict";e.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded JavaScript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"],alias:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var t=0;t-1&&t.substring(i+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var n=0;n{!function(e){"use strict";function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var n=t(["and","or","not","is"]),r=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in"],i=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function o(e){return e.scopes[e.scopes.length-1]}e.registerHelper("hintWords","python",r.concat(i)),e.defineMode("python",(function(a,s){for(var l="error",c=s.delimiters||s.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,u=[s.singleOperators,s.doubleOperators,s.doubleDelimiters,s.tripleDelimiters,s.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],d=0;dr?w(t):i0&&C(e,t)&&(a+=" "+l),a}return k(e,t)}function k(e,t,r){if(e.eatSpace())return null;if(!r&&e.match(/^#.*/))return"comment";if(e.match(/^[0-9\.]/,!1)){var i=!1;if(e.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(i=!0),e.match(/^[\d_]+\.\d*/)&&(i=!0),e.match(/^\.\d+/)&&(i=!0),i)return e.eat(/J/i),"number";var o=!1;if(e.match(/^0x[0-9a-f_]+/i)&&(o=!0),e.match(/^0b[01_]+/i)&&(o=!0),e.match(/^0o[0-7_]+/i)&&(o=!0),e.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(e.eat(/J/i),o=!0),e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}if(e.match(b))return-1!==e.current().toLowerCase().indexOf("f")?(t.tokenize=function(e,t){for(;"rubf".indexOf(e.charAt(0).toLowerCase())>=0;)e=e.substr(1);var n=1==e.length,r="string";function i(e){return function(t,n){var r=k(t,n,!0);return"punctuation"==r&&("{"==t.current()?n.tokenize=i(e+1):"}"==t.current()&&(n.tokenize=e>1?i(e-1):o)),r}}function o(o,a){for(;!o.eol();)if(o.eatWhile(/[^'"\{\}\\]/),o.eat("\\")){if(o.next(),n&&o.eol())return r}else{if(o.match(e))return a.tokenize=t,r;if(o.match("{{"))return r;if(o.match("{",!1))return a.tokenize=i(0),o.current()?r:a.tokenize(o,a);if(o.match("}}"))return r;if(o.match("}"))return l;o.eat(/['"]/)}if(n){if(s.singleLineStringErrors)return l;a.tokenize=t}return r}return o.isString=!0,o}(e.current(),t.tokenize),t.tokenize(e,t)):(t.tokenize=function(e,t){for(;"rubf".indexOf(e.charAt(0).toLowerCase())>=0;)e=e.substr(1);var n=1==e.length,r="string";function i(i,o){for(;!i.eol();)if(i.eatWhile(/[^'"\\]/),i.eat("\\")){if(i.next(),n&&i.eol())return r}else{if(i.match(e))return o.tokenize=t,r;i.eat(/['"]/)}if(n){if(s.singleLineStringErrors)return l;o.tokenize=t}return r}return i.isString=!0,i}(e.current(),t.tokenize),t.tokenize(e,t));for(var a=0;a1&&o(t).offset>n;){if("py"!=o(t).type)return!0;t.scopes.pop()}return o(t).offset!=n}function _(e,t){e.sol()&&(t.beginningOfLine=!0);var n=t.tokenize(e,t),r=e.current();if(t.beginningOfLine&&"@"==r)return e.match(g,!1)?"meta":h?"operator":l;if(/\S/.test(r)&&(t.beginningOfLine=!1),"variable"!=n&&"builtin"!=n||"meta"!=t.lastToken||(n="meta"),"pass"!=r&&"return"!=r||(t.dedent+=1),"lambda"==r&&(t.lambda=!0),":"==r&&!t.lambda&&"py"==o(t).type&&e.match(/^\s*(?:#|$)/,!1)&&w(t),1==r.length&&!/string|comment/.test(n)){var i="[({".indexOf(r);if(-1!=i&&function(e,t,n){var r=e.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:e.column()+1;t.scopes.push({offset:t.indent+m,type:n,align:r})}(e,t,"])}".slice(i,i+1)),-1!=(i="])}".indexOf(r))){if(o(t).type!=r)return l;t.indent=t.scopes.pop().offset-m}}return t.dedent>0&&e.eol()&&"py"==o(t).type&&(t.scopes.length>1&&t.scopes.pop(),t.dedent-=1),n}return{startState:function(e){return{tokenize:y,scopes:[{offset:e||0,type:"py",align:null}],indent:e||0,lastToken:null,lambda:!1,dedent:0}},token:function(e,t){var n=t.errorToken;n&&(t.errorToken=!1);var r=_(e,t);return r&&"comment"!=r&&(t.lastToken="keyword"==r||"punctuation"==r?e.current():r),"punctuation"==r&&(r=null),e.eol()&&t.lambda&&(t.lambda=!1),n?r+" "+l:r},indent:function(t,n){if(t.tokenize!=y)return t.tokenize.isString?e.Pass:0;var r=o(t),i=r.type==n.charAt(0);return null!=r.align?r.align-(i?1:0):r.offset-(i?m:0)},electricInput:/^\s*[\}\]\)]$/,closeBrackets:{triples:"'\""},lineComment:"#",fold:"indent"}})),e.defineMIME("text/x-python","python");var a;e.defineMIME("text/x-cython",{name:"python",extra_keywords:(a="by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE",a.split(" "))})}(n(25747))},52517:(e,t,n)=>{!function(e){"use strict";e.registerHelper("wordChars","r",/[\w.]/),e.defineMode("r",(function(t){function n(e){for(var t={},n=0;n=!&|~$:]/;function m(e,t){a=null;var n,r=e.next();if("#"==r)return e.skipToEnd(),"comment";if("0"==r&&e.eat("x"))return e.eatWhile(/[\da-f]/i),"number";if("."==r&&e.eat(/\d/))return e.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(r))return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if("'"==r||'"'==r)return t.tokenize=(n=r,function(e,t){if(e.eat("\\")){var r=e.next();return"x"==r?e.match(/^[a-f0-9]{2}/i):("u"==r||"U"==r)&&e.eat("{")&&e.skipTo("}")?e.next():"u"==r?e.match(/^[a-f0-9]{4}/i):"U"==r?e.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&e.match(/^[0-7]{1,2}/),"string-2"}for(var i;null!=(i=e.next());){if(i==n){t.tokenize=m;break}if("\\"==i){e.backUp(1);break}}return"string"}),"string";if("`"==r)return e.match(/[^`]+`/),"variable-3";if("."==r&&e.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(r)){e.eatWhile(/[\w\.]/);var i=e.current();return s.propertyIsEnumerable(i)?"atom":c.propertyIsEnumerable(i)?(u.propertyIsEnumerable(i)&&!e.match(/\s*if(\s+|$)/,!1)&&(a="block"),"keyword"):l.propertyIsEnumerable(i)?"builtin":"variable"}return"%"==r?(e.skipTo("%")&&e.next(),"operator variable-2"):"<"==r&&e.eat("-")||"<"==r&&e.match("<-")||"-"==r&&e.match(/>>?/)?"operator arrow":"="==r&&t.ctx.argList?"arg-is":d.test(r)?"$"==r?"operator dollar":(e.eatWhile(d),"operator"):/[\(\){}\[\];]/.test(r)?(a=r,";"==r?"semi":null):null}function f(e,t,n){e.ctx={type:t,indent:e.indent,flags:0,column:n.column(),prev:e.ctx}}function p(e,t){var n=e.ctx;e.ctx={type:n.type,indent:n.indent,flags:n.flags|t,column:n.column,prev:n.prev}}function h(e){e.indent=e.ctx.indent,e.ctx=e.ctx.prev}return{startState:function(){return{tokenize:m,ctx:{type:"top",indent:-t.indentUnit,flags:2},indent:0,afterIdent:!1}},token:function(e,t){if(e.sol()&&(0==(3&t.ctx.flags)&&(t.ctx.flags|=2),4&t.ctx.flags&&h(t),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"!=n&&0==(2&t.ctx.flags)&&p(t,1),";"!=a&&"{"!=a&&"}"!=a||"block"!=t.ctx.type||h(t),"{"==a?f(t,"}",e):"("==a?(f(t,")",e),t.afterIdent&&(t.ctx.argList=!0)):"["==a?f(t,"]",e):"block"==a?f(t,"block",e):a==t.ctx.type?h(t):"block"==t.ctx.type&&"comment"!=n&&p(t,4),t.afterIdent="variable"==n||"keyword"==n,n},indent:function(e,n){if(e.tokenize!=m)return 0;var r=n&&n.charAt(0),i=e.ctx,o=r==i.type;return 4&i.flags&&(i=i.prev),"block"==i.type?i.indent+("{"==r?0:t.indentUnit):1&i.flags?i.column+(o?0:1):i.indent+(o?0:t.indentUnit)},lineComment:"#"}})),e.defineMIME("text/x-rsrc","r")}(n(25747))},70390:(e,t,n)=>{!function(e){"use strict";e.defineMode("shell",(function(){var t={};function n(e,n){for(var r=0;r1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=s(n,"("==n?"quote":"{"==n?"def":"string"),u(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function u(e,t){return(t.tokens[0]||a)(e,t)}return{startState:function(){return{tokens:[]}},token:function(e,t){return u(e,t)},closeBrackets:"()[]{}''\"\"``",lineComment:"#",fold:"brace"}})),e.defineMIME("text/x-sh","shell"),e.defineMIME("application/x-sh","shell")}(n(25747))},67310:(e,t,n)=>{!function(e){"use strict";function t(e){for(var t;null!=(t=e.next());)if("`"==t&&!e.eat("`"))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null}function n(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"variable-2"):e.eat('"')?(e.match(/^.*"/),"variable-2"):e.eat("`")?(e.match(/^.*`/),"variable-2"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function r(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"variable-2":null}e.defineMode("sql",(function(t,n){var r=n.client||{},s=n.atoms||{false:!0,true:!0,null:!0},l=n.builtin||o(a),c=n.keywords||o(i),u=n.operatorChars||/^[*+\-%<>!=&|~^\/]/,d=n.support||{},m=n.hooks||{},f=n.dateSQL||{date:!0,time:!0,timestamp:!0},p=!1!==n.backslashStringEscapes,h=n.brackets||/^[\{}\(\)\[\]]/,g=n.punctuation||/^[;.,:]/;function b(e,t){var n=e.next();if(m[n]){var i=m[n](e,t);if(!1!==i)return i}if(d.hexNumber&&("0"==n&&e.match(/^[xX][0-9a-fA-F]+/)||("x"==n||"X"==n)&&e.match(/^'[0-9a-fA-F]+'/)))return"number";if(d.binaryNumber&&(("b"==n||"B"==n)&&e.match(/^'[01]+'/)||"0"==n&&e.match(/^b[01]+/)))return"number";if(n.charCodeAt(0)>47&&n.charCodeAt(0)<58)return e.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),d.decimallessFloat&&e.match(/^\.(?!\.)/),"number";if("?"==n&&(e.eatSpace()||e.eol()||e.eat(";")))return"variable-3";if("'"==n||'"'==n&&d.doubleQuote)return t.tokenize=v(n),t.tokenize(e,t);if((d.nCharCast&&("n"==n||"N"==n)||d.charsetCast&&"_"==n&&e.match(/[a-z][a-z0-9]*/i))&&("'"==e.peek()||'"'==e.peek()))return"keyword";if(d.escapeConstant&&("e"==n||"E"==n)&&("'"==e.peek()||'"'==e.peek()&&d.doubleQuote))return t.tokenize=function(e,t){return(t.tokenize=v(e.next(),!0))(e,t)},"keyword";if(d.commentSlashSlash&&"/"==n&&e.eat("/"))return e.skipToEnd(),"comment";if(d.commentHash&&"#"==n||"-"==n&&e.eat("-")&&(!d.commentSpaceRequired||e.eat(" ")))return e.skipToEnd(),"comment";if("/"==n&&e.eat("*"))return t.tokenize=x(1),t.tokenize(e,t);if("."!=n){if(u.test(n))return e.eatWhile(u),"operator";if(h.test(n))return"bracket";if(g.test(n))return e.eatWhile(g),"punctuation";if("{"==n&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";e.eatWhile(/^[_\w\d]/);var o=e.current().toLowerCase();return f.hasOwnProperty(o)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/))?"number":s.hasOwnProperty(o)?"atom":l.hasOwnProperty(o)?"builtin":c.hasOwnProperty(o)?"keyword":r.hasOwnProperty(o)?"string-2":null}return d.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":e.match(/^\.+/)?null:d.ODBCdotTable&&e.match(/^[\w\d_$#]+/)?"variable-2":void 0}function v(e,t){return function(n,r){for(var i,o=!1;null!=(i=n.next());){if(i==e&&!o){r.tokenize=b;break}o=(p||t)&&!o&&"\\"==i}return"string"}}function x(e){return function(t,n){var r=t.match(/^.*?(\/\*|\*\/)/);return r?"/*"==r[1]?n.tokenize=x(e+1):n.tokenize=e>1?x(e-1):b:t.skipToEnd(),"comment"}}function y(e,t,n){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:n}}return{startState:function(){return{tokenize:b,context:null}},token:function(e,t){if(e.sol()&&t.context&&null==t.context.align&&(t.context.align=!1),t.tokenize==b&&e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"==n)return n;t.context&&null==t.context.align&&(t.context.align=!0);var r=e.current();return"("==r?y(e,t,")"):"["==r?y(e,t,"]"):t.context&&t.context.type==r&&function(e){e.indent=e.context.indent,e.context=e.context.prev}(t),n},indent:function(n,r){var i=n.context;if(!i)return e.Pass;var o=r.charAt(0)==i.type;return i.align?i.col+(o?0:1):i.indent+(o?0:t.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:d.commentSlashSlash?"//":d.commentHash?"#":"--",closeBrackets:"()[]{}''\"\"``"}}));var i="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function o(e){for(var t={},n=e.split(" "),r=0;r!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:o("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":n}}),e.defineMIME("text/x-mysql",{name:"sql",client:o("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:o(i+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:o("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":n,"`":t,"\\":r}}),e.defineMIME("text/x-mariadb",{name:"sql",client:o("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:o(i+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:o("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":n,"`":t,"\\":r}}),e.defineMIME("text/x-sqlite",{name:"sql",client:o("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:o(i+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:o("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:o("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:o("date time timestamp datetime"),support:o("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":n,":":n,"?":n,$:n,'"':function(e){for(var t;null!=(t=e.next());)if('"'==t&&!e.eat('"'))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null},"`":t}}),e.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:o("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:o("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:o("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:o("commentSlashSlash decimallessFloat"),hooks:{}}),e.defineMIME("text/x-plsql",{name:"sql",client:o("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:o("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:o("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:o("date time timestamp"),support:o("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),e.defineMIME("text/x-hive",{name:"sql",keywords:o("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:o("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:o("date timestamp"),support:o("ODBCdotTable doubleQuote binaryNumber hexNumber")}),e.defineMIME("text/x-pgsql",{name:"sql",client:o("source"),keywords:o(i+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:o("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:o("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),e.defineMIME("text/x-gql",{name:"sql",keywords:o("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:o("false true"),builtin:o("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),e.defineMIME("text/x-gpsql",{name:"sql",client:o("source"),keywords:o("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:o("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:o("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),e.defineMIME("text/x-sparksql",{name:"sql",keywords:o("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:o("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:o("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:o("date time timestamp"),support:o("ODBCdotTable doubleQuote zerolessFloat")}),e.defineMIME("text/x-esper",{name:"sql",client:o("source"),keywords:o("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:o("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:o("time"),support:o("decimallessFloat zerolessFloat binaryNumber hexNumber")})}(n(25747))},16751:(e,t,n)=>{!function(e){"use strict";e.defineMode("stex",(function(e,t){function n(e,t){e.cmdState.push(t)}function r(e){return e.cmdState.length>0?e.cmdState[e.cmdState.length-1]:null}function i(e,t,n){return function(){this.name=e,this.bracketNo=0,this.style=t,this.styles=n,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var o={};function a(e,t){e.f=t}function s(e,t){var i;if(e.match(/^\\[a-zA-Z@]+/)){var s=e.current().slice(1);return n(t,i=new(i=o.hasOwnProperty(s)?o[s]:o.DEFAULT)),a(t,c),i.style}if(e.match(/^\\[$&%#{}_]/))return"tag";if(e.match(/^\\[,;!\/\\]/))return"tag";if(e.match("\\["))return a(t,(function(e,t){return l(e,t,"\\]")})),"keyword";if(e.match("\\("))return a(t,(function(e,t){return l(e,t,"\\)")})),"keyword";if(e.match("$$"))return a(t,(function(e,t){return l(e,t,"$$")})),"keyword";if(e.match("$"))return a(t,(function(e,t){return l(e,t,"$")})),"keyword";var u=e.next();return"%"==u?(e.skipToEnd(),"comment"):"}"==u||"]"==u?(i=r(t))?(i.closeBracket(u),a(t,c),"bracket"):"error":"{"==u||"["==u?(n(t,i=new(i=o.DEFAULT)),"bracket"):/\d/.test(u)?(e.eatWhile(/[\w.%]/),"atom"):(e.eatWhile(/[\w\-_]/),"begin"==(i=function(e){for(var t=e.cmdState,n=t.length-1;n>=0;n--){var r=t[n];if("DEFAULT"!=r.name)return r}return{styleIdentifier:function(){return null}}}(t)).name&&(i.argument=e.current()),i.styleIdentifier())}function l(e,t,n){if(e.eatSpace())return null;if(n&&e.match(n))return a(t,s),"keyword";if(e.match(/^\\[a-zA-Z@]+/))return"tag";if(e.match(/^[a-zA-Z]+/))return"variable-2";if(e.match(/^\\[$&%#{}_]/))return"tag";if(e.match(/^\\[,;!\/]/))return"tag";if(e.match(/^[\^_&]/))return"tag";if(e.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(e.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var r=e.next();return"{"==r||"}"==r||"["==r||"]"==r||"("==r||")"==r?"bracket":"%"==r?(e.skipToEnd(),"comment"):"error"}function c(e,t){var n=e.peek();return"{"==n||"["==n?(r(t).openBracket(n),e.eat(n),a(t,s),"bracket"):/[ \t\r]/.test(n)?(e.eat(n),null):(a(t,s),function(e){var t=e.cmdState.pop();t&&t.closeBracket()}(t),s(e,t))}return o.importmodule=i("importmodule","tag",["string","builtin"]),o.documentclass=i("documentclass","tag",["","atom"]),o.usepackage=i("usepackage","tag",["atom"]),o.begin=i("begin","tag",["atom"]),o.end=i("end","tag",["atom"]),o.label=i("label","tag",["atom"]),o.ref=i("ref","tag",["atom"]),o.eqref=i("eqref","tag",["atom"]),o.cite=i("cite","tag",["atom"]),o.bibitem=i("bibitem","tag",["atom"]),o.Bibitem=i("Bibitem","tag",["atom"]),o.RBibitem=i("RBibitem","tag",["atom"]),o.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}},{startState:function(){return{cmdState:[],f:t.inMathMode?function(e,t){return l(e,t)}:s}},copyState:function(e){return{cmdState:e.cmdState.slice(),f:e.f}},token:function(e,t){return t.f(e,t)},blankLine:function(e){e.f=s,e.cmdState.length=0},lineComment:"%"}})),e.defineMIME("text/x-stex","stex"),e.defineMIME("text/x-latex","stex")}(n(25747))},89036:(e,t,n)=>{!function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",(function(r,i){var o,a,s=r.indentUnit,l={},c=i.htmlMode?t:n;for(var u in c)l[u]=c[u];for(var u in i)l[u]=i[u];function d(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();return"<"==r?e.eat("!")?e.eat("[")?e.match("CDATA[")?n(f("atom","]]>")):null:e.match("--")?n(f("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(p(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=f("meta","?>"),"meta"):(o=e.eat("/")?"closeTag":"openTag",t.tokenize=m,"tag bracket"):"&"==r?(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error":(e.eatWhile(/[^&<]/),null)}function m(e,t){var n,r,i=e.next();if(">"==i||"/"==i&&e.eat(">"))return t.tokenize=d,o=">"==i?"endTag":"selfcloseTag","tag bracket";if("="==i)return o="equals",null;if("<"==i){t.tokenize=d,t.state=v,t.tagName=t.tagStart=null;var a=t.tokenize(e,t);return a?a+" tag error":"tag error"}return/[\'\"]/.test(i)?(t.tokenize=(n=i,r=function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=m;break}return"string"},r.isInAttribute=!0,r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function f(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=d;break}n.next()}return e}}function p(e){return function(t,n){for(var r;null!=(r=t.next());){if("<"==r)return n.tokenize=p(e+1),n.tokenize(t,n);if(">"==r){if(1==e){n.tokenize=d;break}return n.tokenize=p(e-1),n.tokenize(t,n)}}return"meta"}}function h(e,t,n){this.prev=e.context,this.tagName=t||"",this.indent=e.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function g(e){e.context&&(e.context=e.context.prev)}function b(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!l.contextGrabbers.hasOwnProperty(n)||!l.contextGrabbers[n].hasOwnProperty(t))return;g(e)}}function v(e,t,n){return"openTag"==e?(n.tagStart=t.column(),x):"closeTag"==e?y:v}function x(e,t,n){return"word"==e?(n.tagName=t.current(),a="tag",C):l.allowMissingTagName&&"endTag"==e?(a="tag bracket",C(e,0,n)):(a="error",x)}function y(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(n.context.tagName)&&g(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",k):(a="tag error",w)}return l.allowMissingTagName&&"endTag"==e?(a="tag bracket",k(e,0,n)):(a="error",w)}function k(e,t,n){return"endTag"!=e?(a="error",k):(g(n),v)}function w(e,t,n){return a="error",k(e,0,n)}function C(e,t,n){if("word"==e)return a="attribute",_;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||l.autoSelfClosers.hasOwnProperty(r)?b(n,r):(b(n,r),n.context=new h(n,r,i==n.indented)),v}return a="error",C}function _(e,t,n){return"equals"==e?S:(l.allowMissing||(a="error"),C(e,0,n))}function S(e,t,n){return"string"==e?M:"word"==e&&l.allowUnquoted?(a="string",C):(a="error",C(e,0,n))}function M(e,t,n){return"string"==e?M:C(e,0,n)}return d.isInText=!0,{startState:function(e){var t={tokenize:d,state:v,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;o=null;var n=t.tokenize(e,t);return(n||o)&&"comment"!=n&&(a=null,t.state=t.state(o||n,e,t),a&&(n="error"==a?n+" error":a)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+s;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=m&&t.tokenize!=d)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==l.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(e){e.state==S&&(e.state=C)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:"closeTag"==e.type}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}})),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(25747))},77608:(e,t,n)=>{"use strict";n.d(t,{$m:()=>a,Dp:()=>o,Z$:()=>r,kJ:()=>s,s7:()=>i});const r=e=>e[e.length-1],i=(e,t)=>{for(let n=0;n{return e.length===t.length&&(n=(e,n)=>e===t[n],e.every(n));var n},s=Array.isArray},12904:(e,t,n)=>{"use strict";n.d(t,{Hi:()=>s,PP:()=>o,UV:()=>a,gB:()=>l});var r=n(77608),i=n(41042);const o=(e,t,n=0)=>{try{for(;ne===t||null!=e&&null!=t&&e.constructor===t.constructor&&(e instanceof Array&&r.$m(e,t)||"object"==typeof e&&i.$m(e,t)),s=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;nt.includes(e)},31234:(e,t,n)=>{"use strict";n.d(t,{JG:()=>i,UI:()=>a,Ue:()=>r,Yj:()=>s,Yu:()=>o});const r=()=>new Map,i=e=>{const t=r();return e.forEach(((e,n)=>{t.set(n,e)})),t},o=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},a=(e,t)=>{const n=[];for(const[r,i]of e)n.push(t(i,r));return n},s=(e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1}},41865:(e,t,n)=>{"use strict";n.d(t,{Fp:()=>s,GR:()=>c,GW:()=>r,IH:()=>o,VV:()=>a,Wn:()=>i,sQ:()=>l});const r=Math.floor,i=(Math.ceil,Math.abs),o=(Math.imul,Math.round,Math.log10,Math.log2,Math.log,Math.sqrt,(e,t)=>e+t),a=(e,t)=>ee>t?e:t,l=(Number.isNaN,Math.pow),c=(Math.sign,e=>0!==e?e<0:1/e<0)},41042:(e,t,n)=>{"use strict";n.d(t,{$m:()=>s,UI:()=>i,kE:()=>o,l$:()=>a}),Object.assign;const r=Object.keys,i=(e,t)=>{const n=[];for(const r in e)n.push(t(e[r],r));return n},o=e=>r(e).length,a=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s=(e,t)=>e===t||o(e)===o(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||a(t,n))&&t[n]===e))},32549:(e,t,n)=>{"use strict";n.d(t,{y:()=>a});var r=n(31234),i=n(64064),o=n(77608);class a{constructor(){this._observers=r.Ue()}on(e,t){r.Yu(this._observers,e,i.Ue).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,t){return o.Dp((this._observers.get(e)||r.Ue()).values()).forEach((e=>e(...t)))}destroy(){this._observers=r.Ue()}}},64064:(e,t,n)=>{"use strict";n.d(t,{Ue:()=>r});const r=()=>new Set}}]); +//# sourceMappingURL=5878.32d92fa.js.map \ No newline at end of file diff --git a/_static/build/5878.32d92fa.js.map b/_static/build/5878.32d92fa.js.map new file mode 100644 index 0000000..3f3428e --- /dev/null +++ b/_static/build/5878.32d92fa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5878.32d92fa.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/eventloop.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/diff.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/y-codemirror/src/y-codemirror.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/mutex.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mode.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/codemirror-ipython.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/codemirror-ipythongfm.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/editor.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/factory.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mimetype.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/syntaxstatus.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/comment/comment.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/display/rulers.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/edit/closebrackets.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/edit/trailingspace.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/brace-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/comment-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/foldcode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/foldgutter.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/indent-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/markdown-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/fold/xml-fold.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/mode/multiplex.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/mode/overlay.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/mode/simple.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/runmode/runmode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/scroll/scrollpastend.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/search/jump-to-line.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/search/search.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/selection/active-line.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/selection/mark-selection.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/addon/selection/selection-pointer.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/keymap/emacs.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/keymap/sublime.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/clike/clike.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/css/css.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/gfm/gfm.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/javascript/javascript.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/jsx/jsx.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/julia/julia.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/markdown/markdown.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/meta.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/python/python.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/r/r.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/shell/shell.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/sql/sql.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/stex/stex.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/mode/xml/xml.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/array.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/function.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/map.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/math.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/object.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/observable.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/lib0/set.js"],"sourcesContent":["/* global requestIdleCallback, requestAnimationFrame, cancelIdleCallback, cancelAnimationFrame */\n\n/**\n * Utility module to work with EcmaScript's event loop.\n *\n * @module eventloop\n */\n\n/**\n * @type {Array}\n */\nlet queue = []\n\nconst _runQueue = () => {\n for (let i = 0; i < queue.length; i++) {\n queue[i]()\n }\n queue = []\n}\n\n/**\n * @param {function():void} f\n */\nexport const enqueue = f => {\n queue.push(f)\n if (queue.length === 1) {\n setTimeout(_runQueue, 0)\n }\n}\n\n/**\n * @typedef {Object} TimeoutObject\n * @property {function} TimeoutObject.destroy\n */\n\n/**\n * @param {function(number):void} clearFunction\n */\nconst createTimeoutClass = clearFunction => class TT {\n /**\n * @param {number} timeoutId\n */\n constructor (timeoutId) {\n this._ = timeoutId\n }\n\n destroy () {\n clearFunction(this._)\n }\n}\n\nconst Timeout = createTimeoutClass(clearTimeout)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const timeout = (timeout, callback) => new Timeout(setTimeout(callback, timeout))\n\nconst Interval = createTimeoutClass(clearInterval)\n\n/**\n * @param {number} timeout\n * @param {function} callback\n * @return {TimeoutObject}\n */\nexport const interval = (timeout, callback) => new Interval(setInterval(callback, timeout))\n\n/* istanbul ignore next */\nexport const Animation = createTimeoutClass(arg => typeof requestAnimationFrame !== 'undefined' && cancelAnimationFrame(arg))\n\n/* istanbul ignore next */\n/**\n * @param {function(number):void} cb\n * @return {TimeoutObject}\n */\nexport const animationFrame = cb => typeof requestAnimationFrame === 'undefined' ? timeout(0, cb) : new Animation(requestAnimationFrame(cb))\n\n/* istanbul ignore next */\n// @ts-ignore\nconst Idle = createTimeoutClass(arg => typeof cancelIdleCallback !== 'undefined' && cancelIdleCallback(arg))\n\n/* istanbul ignore next */\n/**\n * Note: this is experimental and is probably only useful in browsers.\n *\n * @param {function} cb\n * @return {TimeoutObject}\n */\n// @ts-ignore\nexport const idleCallback = cb => typeof requestIdleCallback !== 'undefined' ? new Idle(requestIdleCallback(cb)) : timeout(1000, cb)\n\n/**\n * @param {number} timeout Timeout of the debounce action\n * @return {function(function():void):void}\n */\nexport const createDebouncer = timeout => {\n let timer = -1\n return f => {\n clearTimeout(timer)\n if (f) {\n timer = /** @type {any} */ (setTimeout(f, timeout))\n }\n }\n}\n","/**\n * Efficient diffs.\n *\n * @module diff\n */\n\nimport { equalityStrict } from './function.js'\n\n/**\n * A SimpleDiff describes a change on a String.\n *\n * ```js\n * console.log(a) // the old value\n * console.log(b) // the updated value\n * // Apply changes of diff (pseudocode)\n * a.remove(diff.index, diff.remove) // Remove `diff.remove` characters\n * a.insert(diff.index, diff.insert) // Insert `diff.insert`\n * a === b // values match\n * ```\n *\n * @typedef {Object} SimpleDiff\n * @property {Number} index The index where changes were applied\n * @property {Number} remove The number of characters to delete starting\n * at `index`.\n * @property {T} insert The new text to insert at `index` after applying\n * `delete`\n *\n * @template T\n */\n\n/**\n * Create a diff between two strings. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * @function\n *\n * @param {string} a The old version of the string\n * @param {string} b The updated version of the string\n * @return {SimpleDiff} The diff description.\n */\nexport const simpleDiffString = (a, b) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && a[left] === b[left]) {\n left++\n }\n while (right + left < a.length && right + left < b.length && a[a.length - right - 1] === b[b.length - right - 1]) {\n right++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * @todo Remove in favor of simpleDiffString\n * @deprecated\n */\nexport const simpleDiff = simpleDiffString\n\n/**\n * Create a diff between two arrays. This diff implementation is highly\n * efficient, but not very sophisticated.\n *\n * Note: This is basically the same function as above. Another function was created so that the runtime\n * can better optimize these function calls.\n *\n * @function\n * @template T\n *\n * @param {Array} a The old version of the array\n * @param {Array} b The updated version of the array\n * @param {function(T, T):boolean} [compare]\n * @return {SimpleDiff>} The diff description.\n */\nexport const simpleDiffArray = (a, b, compare = equalityStrict) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n while (left < a.length && left < b.length && compare(a[left], b[left])) {\n left++\n }\n while (right + left < a.length && right + left < b.length && compare(a[a.length - right - 1], b[b.length - right - 1])) {\n right++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n\n/**\n * Diff text and try to diff at the current cursor position.\n *\n * @param {string} a\n * @param {string} b\n * @param {number} cursor This should refer to the current left cursor-range position\n */\nexport const simpleDiffStringWithCursor = (a, b, cursor) => {\n let left = 0 // number of same characters counting from left\n let right = 0 // number of same characters counting from right\n // Iterate left to the right until we find a changed character\n // First iteration considers the current cursor position\n while (\n left < a.length &&\n left < b.length &&\n a[left] === b[left] &&\n left < cursor\n ) {\n left++\n }\n // Iterate right to the left until we find a changed character\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[a.length - right - 1] === b[b.length - right - 1]\n ) {\n right++\n }\n // Try to iterate left further to the right without caring about the current cursor position\n while (\n right + left < a.length &&\n right + left < b.length &&\n a[left] === b[left]\n ) {\n left++\n }\n return {\n index: left,\n remove: a.length - left - right,\n insert: b.slice(left, b.length - right)\n }\n}\n","/**\n * @module bindings/textarea\n */\n\nimport { createMutex } from 'lib0/mutex'\nimport * as math from 'lib0/math'\nimport * as Y from 'yjs'\nimport * as func from 'lib0/function'\nimport * as eventloop from 'lib0/eventloop'\nimport { Observable } from 'lib0/observable'\nimport * as diff from 'lib0/diff'\nimport CodeMirror from 'codemirror'\n\nexport const cmOrigin = 'y-codemirror'\n\n/**\n * @param {CodemirrorBinding} binding\n * @param {any} event\n */\nconst typeObserver = (binding, event) => {\n binding._mux(() => {\n const cmDoc = binding.cmDoc\n const cm = cmDoc.getEditor()\n // Normally the position is right-associated\n // But when remote changes happen, it looks like the remote user is hijacking your position.\n // Just for remote insertions, we make the collapsed cursor left-associated.\n // If selection is not collapsed, we only make \"to\" left associated\n let anchor = cm.indexFromPos(cm.getCursor('anchor'))\n let head = cm.indexFromPos(cm.getCursor('head'))\n const switchSel = head < anchor\n // normalize selection so that anchor < head, switch back later\n if (switchSel) {\n const tmp = head\n head = anchor\n anchor = tmp\n }\n const performChange = () => {\n const delta = event.delta\n let index = 0\n for (let i = 0; i < event.delta.length; i++) {\n const d = delta[i]\n if (d.retain) {\n index += d.retain\n } else if (d.insert) {\n if (index < anchor || (anchor < head && index === anchor)) {\n anchor += d.insert.length\n }\n if (index < head) {\n head += d.insert.length\n }\n const pos = cmDoc.posFromIndex(index)\n cmDoc.replaceRange(d.insert, pos, pos, cmOrigin)\n index += d.insert.length\n } else if (d.delete) {\n if (index < anchor) {\n anchor = math.max(anchor - d.delete, index)\n }\n if (index < head) {\n head = math.max(head - d.delete, index)\n }\n const start = cmDoc.posFromIndex(index)\n const end = cmDoc.posFromIndex(index + d.delete)\n cmDoc.replaceRange('', start, end, cmOrigin)\n }\n }\n }\n // if possible, bundle the changes using cm.operation\n if (cm) {\n cm.operation(performChange)\n } else {\n performChange()\n }\n if (switchSel) {\n const tmp = head\n head = anchor\n anchor = tmp\n }\n cm.setSelection(cm.posFromIndex(anchor), cm.posFromIndex(head), { scroll: false })\n })\n}\n\n/**\n * @param {CodemirrorBinding} binding\n * @param {Array} changes\n */\nconst targetObserver = (binding, changes) => {\n binding._mux(() => {\n binding.doc.transact(() => {\n const hasPaste = binding.yUndoManager && changes.some(change => change.origin === 'paste')\n if (hasPaste) {\n binding.yUndoManager.stopCapturing()\n }\n\n if (changes.length > 1) {\n // If there are several consecutive changes, we can't reliably compute the positions anymore. See y-codemirror#11\n // Instead, we will compute the diff and apply the changes\n const d = diff.simpleDiffString(binding.type.toString(), binding.cmDoc.getValue())\n binding.type.delete(d.index, d.remove)\n binding.type.insert(d.index, d.insert)\n } else {\n const change = changes[0]\n const start = binding.cmDoc.indexFromPos(change.from)\n const delLen = change.removed.map(s => s.length).reduce(math.add) + change.removed.length - 1\n if (delLen > 0) {\n binding.type.delete(start, delLen)\n }\n if (change.text.length > 0) {\n binding.type.insert(start, change.text.join('\\n'))\n }\n }\n\n if (hasPaste) {\n binding.yUndoManager.stopCapturing()\n }\n }, binding)\n })\n if (binding._pendingCursorEvent) {\n binding._pendingCursorEvent = false\n binding.emit('cursorActivity', [binding])\n }\n}\n\nconst createRemoteCaret = (username, color) => {\n const caret = document.createElement('span')\n caret.classList.add('remote-caret')\n caret.setAttribute('style', `border-color: ${color}`)\n const userDiv = document.createElement('div')\n userDiv.setAttribute('style', `background-color: ${color}`)\n userDiv.insertBefore(document.createTextNode(username), null)\n caret.insertBefore(userDiv, null)\n setTimeout(() => {\n caret.classList.add('hide-name')\n }, 2000)\n return caret\n}\n\nconst createEmptyLinePlaceholder = (color) => {\n const placeholder = document.createElement('span')\n placeholder.setAttribute('style', 'user-select: none;')\n const emptyTxt = document.createElement('span')\n emptyTxt.insertBefore(document.createTextNode(''), null)\n const sel = document.createElement('span')\n sel.setAttribute('class', 'y-line-selection')\n sel.setAttribute('style', `display: inline-block; position: absolute; left: 4px; right: 4px; top: 0; bottom: 0; background-color: ${color}70`)\n placeholder.insertBefore(sel, null)\n placeholder.insertBefore(emptyTxt, null)\n return placeholder\n}\n\nconst updateRemoteSelection = (y, cm, type, cursors, clientId, awareness) => {\n // redraw caret and selection for clientId\n const aw = awareness.getStates().get(clientId)\n // destroy current text mark\n const m = cursors.get(clientId)\n if (m !== undefined) {\n if (m.caret) {\n m.caret.clear()\n }\n m.sel.forEach(sel => sel.clear())\n cursors.delete(clientId)\n }\n if (aw === undefined) {\n return\n }\n const user = aw.user || {}\n if (user.color == null) {\n user.color = '#ffa500'\n }\n if (user.name == null) {\n user.name = `User: ${clientId}`\n }\n const cursor = aw.cursor\n if (cursor == null || cursor.anchor == null || cursor.head == null) {\n return\n }\n const anchor = Y.createAbsolutePositionFromRelativePosition(JSON.parse(cursor.anchor), y)\n const head = Y.createAbsolutePositionFromRelativePosition(JSON.parse(cursor.head), y)\n if (anchor !== null && head !== null && anchor.type === type && head.type === type) {\n const headpos = cm.posFromIndex(head.index)\n const anchorpos = cm.posFromIndex(anchor.index)\n let from, to\n if (head.index < anchor.index) {\n from = headpos\n to = anchorpos\n } else {\n from = anchorpos\n to = headpos\n }\n const caretEl = createRemoteCaret(user.name, user.color)\n // if position was \"relatively\" the same, do not show name again and hide instead\n if (m && func.equalityFlat(aw.cursor.anchor, m.awCursor.anchor) && func.equalityFlat(aw.cursor.head, m.awCursor.head)) {\n caretEl.classList.add('hide-name')\n }\n const sel = []\n\n if (head.index !== anchor.index) {\n if (from.line !== to.line && from.ch !== 0) {\n // start of selection will only be a simple text-selection\n sel.push(cm.markText(from, new CodeMirror.Pos(from.line + 1, 0), { css: `background-color: ${user.color}70;`, inclusiveRight: false, inclusiveLeft: false }))\n from = new CodeMirror.Pos(from.line + 1, 0)\n }\n while (from.line !== to.line) {\n // middle of selection is always a whole-line selection. We add a widget at the first position which will fill the background.\n sel.push(cm.setBookmark(new CodeMirror.Pos(from.line, 0), { widget: createEmptyLinePlaceholder(user.color) }))\n from = new CodeMirror.Pos(from.line + 1, 0)\n }\n sel.push(cm.markText(from, to, { css: `background-color: ${user.color}70;`, inclusiveRight: false, inclusiveLeft: false }))\n }\n // only render caret if not the complete last line was selected (in this case headpos.ch === 0)\n const caret = sel.length > 0 && to === headpos && headpos.ch === 0 ? null : cm.setBookmark(headpos, { widget: caretEl, insertLeft: true })\n cursors.set(clientId, { caret, sel, awCursor: cursor })\n }\n}\n\nconst codemirrorCursorActivity = (y, cm, type, awareness) => {\n const aw = awareness.getLocalState()\n if (!cm.hasFocus() || aw == null || !cm.display.wrapper.ownerDocument.hasFocus()) {\n return\n }\n const newAnchor = Y.createRelativePositionFromTypeIndex(type, cm.indexFromPos(cm.getCursor('anchor')))\n const newHead = Y.createRelativePositionFromTypeIndex(type, cm.indexFromPos(cm.getCursor('head')))\n let currentAnchor = null\n let currentHead = null\n if (aw.cursor != null) {\n currentAnchor = Y.createRelativePositionFromJSON(JSON.parse(aw.cursor.anchor))\n currentHead = Y.createRelativePositionFromJSON(JSON.parse(aw.cursor.head))\n }\n if (aw.cursor == null || !Y.compareRelativePositions(currentAnchor, newAnchor) || !Y.compareRelativePositions(currentHead, newHead)) {\n awareness.setLocalStateField('cursor', {\n anchor: JSON.stringify(newAnchor),\n head: JSON.stringify(newHead)\n })\n }\n}\n\n/**\n * A binding that binds a YText to a CodeMirror editor.\n *\n * @example\n * const ytext = ydocument.define('codemirror', Y.Text)\n * const editor = new CodeMirror(document.querySelector('#container'), {\n * mode: 'javascript',\n * lineNumbers: true\n * })\n * const binding = new CodemirrorBinding(ytext, editor)\n *\n */\nexport class CodemirrorBinding extends Observable {\n /**\n * @param {Y.Text} textType\n * @param {import('codemirror').Editor} codeMirror\n * @param {any | null} [awareness]\n * @param {{ yUndoManager?: Y.UndoManager }} [options]\n */\n constructor (textType, codeMirror, awareness = null, { yUndoManager = null } = {}) {\n super()\n const doc = textType.doc\n const cmDoc = codeMirror.getDoc()\n this.doc = doc\n this.type = textType\n this.cm = codeMirror\n this.cmDoc = cmDoc\n this.awareness = awareness || null\n this.yUndoManager = yUndoManager\n this._onStackItemAdded = ({ stackItem, changedParentTypes }) => {\n // only store metadata if this type was affected\n if (changedParentTypes.has(textType) && this._beforeChangeSelection) {\n stackItem.meta.set(this, this._beforeChangeSelection)\n }\n }\n this._onStackItemPopped = ({ stackItem }) => {\n const sel = stackItem.meta.get(this)\n if (sel) {\n const anchor = Y.createAbsolutePositionFromRelativePosition(sel.anchor, doc).index\n const head = Y.createAbsolutePositionFromRelativePosition(sel.head, doc).index\n codeMirror.setSelection(codeMirror.posFromIndex(anchor), codeMirror.posFromIndex(head))\n this._beforeChange()\n }\n }\n if (yUndoManager) {\n yUndoManager.trackedOrigins.add(this) // track changes performed by this editor binding\n const editorUndo = cm => {\n // Keymaps always start with an active operation.\n // End the current operation so that the event is fired at the correct moment.\n // @todo check cm.curOp in typeListener and endOperation always.\n cm.endOperation()\n yUndoManager.undo()\n cm.startOperation()\n }\n const editorRedo = cm => {\n cm.endOperation()\n yUndoManager.redo()\n cm.startOperation()\n }\n codeMirror.addKeyMap({\n // pc\n 'Ctrl-Z': editorUndo,\n 'Shift-Ctrl-Z': editorRedo,\n 'Ctrl-Y': editorRedo,\n // mac\n 'Cmd-Z': editorUndo,\n 'Shift-Cmd-Z': editorRedo,\n 'Cmd-Y': editorRedo\n })\n\n yUndoManager.on('stack-item-added', this._onStackItemAdded)\n yUndoManager.on('stack-item-popped', this._onStackItemPopped)\n }\n\n this._mux = createMutex()\n // set initial value\n cmDoc.setValue(textType.toString())\n // observe type and target\n this._typeObserver = event => typeObserver(this, event)\n this._targetObserver = (instance, changes) => {\n if (instance.getDoc() === cmDoc) {\n targetObserver(this, changes)\n }\n }\n this._cursors = new Map()\n this._changedCursors = new Set()\n this._debounceCursorEvent = eventloop.createDebouncer(10)\n this._awarenessListener = event => {\n if (codeMirror.getDoc() !== cmDoc) {\n return\n }\n const f = clientId => {\n if (clientId !== doc.clientID) {\n this._changedCursors.add(clientId)\n }\n }\n event.added.forEach(f)\n event.removed.forEach(f)\n event.updated.forEach(f)\n if (this._changedCursors.size > 0) {\n this._debounceCursorEvent(() => {\n this._changedCursors.forEach(clientId => {\n updateRemoteSelection(doc, codeMirror, textType, this._cursors, clientId, awareness)\n })\n this._changedCursors.clear()\n })\n }\n }\n this._pendingCursorEvent = false\n this._cursorListener = () => {\n if (codeMirror.getDoc() === cmDoc) {\n this._pendingCursorEvent = true\n setTimeout(() => {\n if (this._pendingCursorEvent) {\n this._pendingCursorEvent = false\n this.emit('cursorActivity', [codeMirror])\n }\n }, 0)\n }\n }\n this.on('cursorActivity', () => {\n codemirrorCursorActivity(doc, codeMirror, textType, awareness)\n })\n this._blurListeer = () => awareness.setLocalStateField('cursor', null)\n\n textType.observe(this._typeObserver)\n // @ts-ignore\n codeMirror.on('changes', this._targetObserver)\n /**\n * @type {{ anchor: Y.RelativePosition, head: Y.RelativePosition } | null}\n */\n this._beforeChangeSelection = null\n this._beforeChange = () => {\n // update the the beforeChangeSelection that is stored befor each change to the editor (except when applying remote changes)\n this._mux(() => {\n // store the selection before the change is applied so we can restore it with the undo manager.\n const anchor = Y.createRelativePositionFromTypeIndex(textType, codeMirror.indexFromPos(codeMirror.getCursor('anchor')))\n const head = Y.createRelativePositionFromTypeIndex(textType, codeMirror.indexFromPos(codeMirror.getCursor('head')))\n this._beforeChangeSelection = { anchor, head }\n })\n }\n codeMirror.on('beforeChange', this._beforeChange)\n if (awareness) {\n codeMirror.on('swapDoc', this._blurListeer)\n awareness.on('change', this._awarenessListener)\n // @ts-ignore\n codeMirror.on('cursorActivity', this._cursorListener)\n codeMirror.on('blur', this._blurListeer)\n codeMirror.on('focus', this._cursorListener)\n }\n }\n\n destroy () {\n this.type.unobserve(this._typeObserver)\n this.cm.off('swapDoc', this._blurListeer)\n // @ts-ignore\n this.cm.off('changes', this._targetObserver)\n this.cm.off('beforeChange', this._beforeChange)\n // @ts-ignore\n this.cm.off('cursorActivity', this._cursorListener)\n this.cm.off('focus', this._cursorListener)\n this.cm.off('blur', this._blurListeer)\n if (this.awareness) {\n this.awareness.off('change', this._awarenessListener)\n }\n if (this.yUndoManager) {\n this.yUndoManager.off('stack-item-added', this._onStackItemAdded)\n this.yUndoManager.off('stack-item-popped', this._onStackItemPopped)\n this.yUndoManager.trackedOrigins.delete(this)\n }\n this.type = null\n this.cm = null\n this.cmDoc = null\n super.destroy()\n }\n}\n\nexport const CodeMirrorBinding = CodemirrorBinding\n","/**\n * Mutual exclude for JavaScript.\n *\n * @module mutex\n */\n\n/**\n * @callback mutex\n * @param {function():void} cb Only executed when this mutex is not in the current stack\n * @param {function():void} [elseCb] Executed when this mutex is in the current stack\n */\n\n/**\n * Creates a mutual exclude function with the following property:\n *\n * ```js\n * const mutex = createMutex()\n * mutex(() => {\n * // This function is immediately executed\n * mutex(() => {\n * // This function is not executed, as the mutex is already active.\n * })\n * })\n * ```\n *\n * @return {mutex} A mutual exclude function\n * @public\n */\nexport const createMutex = () => {\n let token = true\n return (f, g) => {\n if (token) {\n token = false\n try {\n f()\n } finally {\n token = true\n }\n } else if (g !== undefined) {\n g()\n }\n }\n}\n",null,null,null,null,null,null,null,null,null,"// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var noOptions = {};\n var nonWS = /[^\\s\\u00a0]/;\n var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n function firstNonWS(str) {\n var found = str.search(nonWS);\n return found == -1 ? 0 : found;\n }\n\n CodeMirror.commands.toggleComment = function(cm) {\n cm.toggleComment();\n };\n\n CodeMirror.defineExtension(\"toggleComment\", function(options) {\n if (!options) options = noOptions;\n var cm = this;\n var minLine = Infinity, ranges = this.listSelections(), mode = null;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var from = ranges[i].from(), to = ranges[i].to();\n if (from.line >= minLine) continue;\n if (to.line >= minLine) to = Pos(minLine, 0);\n minLine = from.line;\n if (mode == null) {\n if (cm.uncomment(from, to, options)) mode = \"un\";\n else { cm.lineComment(from, to, options); mode = \"line\"; }\n } else if (mode == \"un\") {\n cm.uncomment(from, to, options);\n } else {\n cm.lineComment(from, to, options);\n }\n }\n });\n\n // Rough heuristic to try and detect lines that are part of multi-line string\n function probablyInsideString(cm, pos, line) {\n return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n }\n\n function getMode(cm, pos) {\n var mode = cm.getMode()\n return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n }\n\n CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var firstLine = self.getLine(from.line);\n if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n var commentString = options.lineComment || mode.lineComment;\n if (!commentString) {\n if (options.blockCommentStart || mode.blockCommentStart) {\n options.fullLines = true;\n self.blockComment(from, to, options);\n }\n return;\n }\n\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n var pad = options.padding == null ? \" \" : options.padding;\n var blankLines = options.commentBlankLines || from.line == to.line;\n\n self.operation(function() {\n if (options.indent) {\n var baseString = null;\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i);\n var whitespace = line.slice(0, firstNonWS(line));\n if (baseString == null || baseString.length > whitespace.length) {\n baseString = whitespace;\n }\n }\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i), cut = baseString.length;\n if (!blankLines && !nonWS.test(line)) continue;\n if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n }\n } else {\n for (var i = from.line; i < end; ++i) {\n if (blankLines || nonWS.test(self.getLine(i)))\n self.replaceRange(commentString + pad, Pos(i, 0));\n }\n }\n });\n });\n\n CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) {\n if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n self.lineComment(from, to, options);\n return;\n }\n if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n var end = Math.min(to.line, self.lastLine());\n if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n var pad = options.padding == null ? \" \" : options.padding;\n if (from.line > end) return;\n\n self.operation(function() {\n if (options.fullLines != false) {\n var lastLineHasText = nonWS.test(self.getLine(end));\n self.replaceRange(pad + endString, Pos(end));\n self.replaceRange(startString + pad, Pos(from.line, 0));\n var lead = options.blockCommentLead || mode.blockCommentLead;\n if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n if (i != end || lastLineHasText)\n self.replaceRange(lead + pad, Pos(i, 0));\n } else {\n var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n self.replaceRange(endString, to);\n if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n self.replaceRange(startString, from);\n }\n });\n });\n\n CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n // Try finding line comments\n var lineString = options.lineComment || mode.lineComment, lines = [];\n var pad = options.padding == null ? \" \" : options.padding, didSomething;\n lineComment: {\n if (!lineString) break lineComment;\n for (var i = start; i <= end; ++i) {\n var line = self.getLine(i);\n var found = line.indexOf(lineString);\n if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n if (found == -1 && nonWS.test(line)) break lineComment;\n if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n lines.push(line);\n }\n self.operation(function() {\n for (var i = start; i <= end; ++i) {\n var line = lines[i - start];\n var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n if (pos < 0) continue;\n if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n didSomething = true;\n self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n }\n });\n if (didSomething) return true;\n }\n\n // Try block comments\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) return false;\n var lead = options.blockCommentLead || mode.blockCommentLead;\n var startLine = self.getLine(start), open = startLine.indexOf(startString)\n if (open == -1) return false\n var endLine = end == start ? startLine : self.getLine(end)\n var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n if (close == -1 ||\n !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n return false;\n\n // Avoid killing block comments completely outside the selection.\n // Positions of the last startString before the start of the selection, and the first endString after it.\n var lastStart = startLine.lastIndexOf(startString, from.ch);\n var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n // Positions of the first endString after the end of the selection, and the last startString before it.\n firstEnd = endLine.indexOf(endString, to.ch);\n var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n self.operation(function() {\n self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n Pos(end, close + endString.length));\n var openEnd = open + startString.length;\n if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n if (lead) for (var i = start + 1; i <= end; ++i) {\n var line = self.getLine(i), found = line.indexOf(lead);\n if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n var foundEnd = found + lead.length;\n if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n }\n });\n return true;\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"rulers\", false, function(cm, val) {\n if (cm.state.rulerDiv) {\n cm.state.rulerDiv.parentElement.removeChild(cm.state.rulerDiv)\n cm.state.rulerDiv = null\n cm.off(\"refresh\", drawRulers)\n }\n if (val && val.length) {\n cm.state.rulerDiv = cm.display.lineSpace.parentElement.insertBefore(document.createElement(\"div\"), cm.display.lineSpace)\n cm.state.rulerDiv.className = \"CodeMirror-rulers\"\n drawRulers(cm)\n cm.on(\"refresh\", drawRulers)\n }\n });\n\n function drawRulers(cm) {\n cm.state.rulerDiv.textContent = \"\"\n var val = cm.getOption(\"rulers\");\n var cw = cm.defaultCharWidth();\n var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), \"div\").left;\n cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + \"px\";\n for (var i = 0; i < val.length; i++) {\n var elt = document.createElement(\"div\");\n elt.className = \"CodeMirror-ruler\";\n var col, conf = val[i];\n if (typeof conf == \"number\") {\n col = conf;\n } else {\n col = conf.column;\n if (conf.className) elt.className += \" \" + conf.className;\n if (conf.color) elt.style.borderColor = conf.color;\n if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;\n if (conf.width) elt.style.borderLeftWidth = conf.width;\n }\n elt.style.left = (left + col * cw) + \"px\";\n cm.state.rulerDiv.appendChild(elt)\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n var defaults = {\n pairs: \"()[]{}''\\\"\\\"\",\n closeBefore: \")]}'\\\":;>\",\n triples: \"\",\n explode: \"[]{}\"\n };\n\n var Pos = CodeMirror.Pos;\n\n CodeMirror.defineOption(\"autoCloseBrackets\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.removeKeyMap(keyMap);\n cm.state.closeBrackets = null;\n }\n if (val) {\n ensureBound(getOption(val, \"pairs\"))\n cm.state.closeBrackets = val;\n cm.addKeyMap(keyMap);\n }\n });\n\n function getOption(conf, name) {\n if (name == \"pairs\" && typeof conf == \"string\") return conf;\n if (typeof conf == \"object\" && conf[name] != null) return conf[name];\n return defaults[name];\n }\n\n var keyMap = {Backspace: handleBackspace, Enter: handleEnter};\n function ensureBound(chars) {\n for (var i = 0; i < chars.length; i++) {\n var ch = chars.charAt(i), key = \"'\" + ch + \"'\"\n if (!keyMap[key]) keyMap[key] = handler(ch)\n }\n }\n ensureBound(defaults.pairs + \"`\")\n\n function handler(ch) {\n return function(cm) { return handleChar(cm, ch); };\n }\n\n function getConfig(cm) {\n var deflt = cm.state.closeBrackets;\n if (!deflt || deflt.override) return deflt;\n var mode = cm.getModeAt(cm.getCursor());\n return mode.closeBrackets || deflt;\n }\n\n function handleBackspace(cm) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n for (var i = ranges.length - 1; i >= 0; i--) {\n var cur = ranges[i].head;\n cm.replaceRange(\"\", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), \"+delete\");\n }\n }\n\n function handleEnter(cm) {\n var conf = getConfig(cm);\n var explode = conf && getOption(conf, \"explode\");\n if (!explode || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n if (!ranges[i].empty()) return CodeMirror.Pass;\n var around = charsAround(cm, ranges[i].head);\n if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass;\n }\n cm.operation(function() {\n var linesep = cm.lineSeparator() || \"\\n\";\n cm.replaceSelection(linesep + linesep, null);\n moveSel(cm, -1)\n ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var line = ranges[i].head.line;\n cm.indentLine(line, null, true);\n cm.indentLine(line + 1, null, true);\n }\n });\n }\n\n function moveSel(cm, dir) {\n var newRanges = [], ranges = cm.listSelections(), primary = 0\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i]\n if (range.head == cm.getCursor()) primary = i\n var pos = range.head.ch || dir > 0 ? {line: range.head.line, ch: range.head.ch + dir} : {line: range.head.line - 1}\n newRanges.push({anchor: pos, head: pos})\n }\n cm.setSelections(newRanges, primary)\n }\n\n function contractSelection(sel) {\n var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0;\n return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)),\n head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))};\n }\n\n function handleChar(cm, ch) {\n var conf = getConfig(cm);\n if (!conf || cm.getOption(\"disableInput\")) return CodeMirror.Pass;\n\n var pairs = getOption(conf, \"pairs\");\n var pos = pairs.indexOf(ch);\n if (pos == -1) return CodeMirror.Pass;\n\n var closeBefore = getOption(conf,\"closeBefore\");\n\n var triples = getOption(conf, \"triples\");\n\n var identical = pairs.charAt(pos + 1) == ch;\n var ranges = cm.listSelections();\n var opening = pos % 2 == 0;\n\n var type;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], cur = range.head, curType;\n var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1));\n if (opening && !range.empty()) {\n curType = \"surround\";\n } else if ((identical || !opening) && next == ch) {\n if (identical && stringStartsAfter(cm, cur))\n curType = \"both\";\n else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch)\n curType = \"skipThree\";\n else\n curType = \"skip\";\n } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 &&\n cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) {\n if (cur.ch > 2 && /\\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass;\n curType = \"addFour\";\n } else if (identical) {\n var prev = cur.ch == 0 ? \" \" : cm.getRange(Pos(cur.line, cur.ch - 1), cur)\n if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = \"both\";\n else return CodeMirror.Pass;\n } else if (opening && (next.length === 0 || /\\s/.test(next) || closeBefore.indexOf(next) > -1)) {\n curType = \"both\";\n } else {\n return CodeMirror.Pass;\n }\n if (!type) type = curType;\n else if (type != curType) return CodeMirror.Pass;\n }\n\n var left = pos % 2 ? pairs.charAt(pos - 1) : ch;\n var right = pos % 2 ? ch : pairs.charAt(pos + 1);\n cm.operation(function() {\n if (type == \"skip\") {\n moveSel(cm, 1)\n } else if (type == \"skipThree\") {\n moveSel(cm, 3)\n } else if (type == \"surround\") {\n var sels = cm.getSelections();\n for (var i = 0; i < sels.length; i++)\n sels[i] = left + sels[i] + right;\n cm.replaceSelections(sels, \"around\");\n sels = cm.listSelections().slice();\n for (var i = 0; i < sels.length; i++)\n sels[i] = contractSelection(sels[i]);\n cm.setSelections(sels);\n } else if (type == \"both\") {\n cm.replaceSelection(left + right, null);\n cm.triggerElectric(left + right);\n moveSel(cm, -1)\n } else if (type == \"addFour\") {\n cm.replaceSelection(left + left + left + left, \"before\");\n moveSel(cm, 1)\n }\n });\n }\n\n function charsAround(cm, pos) {\n var str = cm.getRange(Pos(pos.line, pos.ch - 1),\n Pos(pos.line, pos.ch + 1));\n return str.length == 2 ? str : null;\n }\n\n function stringStartsAfter(cm, pos) {\n var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1))\n return /\\bstring/.test(token.type) && token.start == pos.ch &&\n (pos.ch == 0 || !/\\bstring/.test(cm.getTokenTypeAt(pos)))\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n CodeMirror.defineOption(\"showTrailingSpace\", false, function(cm, val, prev) {\n if (prev == CodeMirror.Init) prev = false;\n if (prev && !val)\n cm.removeOverlay(\"trailingspace\");\n else if (!prev && val)\n cm.addOverlay({\n token: function(stream) {\n for (var l = stream.string.length, i = l; i && /\\s/.test(stream.string.charAt(i - 1)); --i) {}\n if (i > stream.pos) { stream.pos = i; return null; }\n stream.pos = l;\n return \"trailingspace\";\n },\n name: \"trailingspace\"\n });\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"brace\", function(cm, start) {\n var line = start.line, lineText = cm.getLine(line);\n var tokenType;\n\n function findOpening(openCh) {\n for (var at = start.ch, pass = 0;;) {\n var found = at <= 0 ? -1 : lineText.lastIndexOf(openCh, at - 1);\n if (found == -1) {\n if (pass == 1) break;\n pass = 1;\n at = lineText.length;\n continue;\n }\n if (pass == 1 && found < start.ch) break;\n tokenType = cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1));\n if (!/^(comment|string)/.test(tokenType)) return found + 1;\n at = found - 1;\n }\n }\n\n var startBrace = findOpening(\"{\"), startBracket = findOpening(\"[\")\n var startToken, endToken, startCh\n if (startBrace != null && (startBracket == null || startBracket > startBrace)) {\n startCh = startBrace; startToken = \"{\"; endToken = \"}\"\n } else if (startBracket != null) {\n startCh = startBracket; startToken = \"[\"; endToken = \"]\"\n } else {\n return\n }\n\n var count = 1, lastLine = cm.lastLine(), end, endCh;\n outer: for (var i = line; i <= lastLine; ++i) {\n var text = cm.getLine(i), pos = i == line ? startCh : 0;\n for (;;) {\n var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n if (nextOpen < 0) nextOpen = text.length;\n if (nextClose < 0) nextClose = text.length;\n pos = Math.min(nextOpen, nextClose);\n if (pos == text.length) break;\n if (cm.getTokenTypeAt(CodeMirror.Pos(i, pos + 1)) == tokenType) {\n if (pos == nextOpen) ++count;\n else if (!--count) { end = i; endCh = pos; break outer; }\n }\n ++pos;\n }\n }\n if (end == null || line == end) return;\n return {from: CodeMirror.Pos(line, startCh),\n to: CodeMirror.Pos(end, endCh)};\n});\n\nCodeMirror.registerHelper(\"fold\", \"import\", function(cm, start) {\n function hasImport(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type != \"keyword\" || start.string != \"import\") return null;\n // Now find closing semicolon, return its position\n for (var i = line, e = Math.min(cm.lastLine(), line + 10); i <= e; ++i) {\n var text = cm.getLine(i), semi = text.indexOf(\";\");\n if (semi != -1) return {startCh: start.end, end: CodeMirror.Pos(i, semi)};\n }\n }\n\n var startLine = start.line, has = hasImport(startLine), prev;\n if (!has || hasImport(startLine - 1) || ((prev = hasImport(startLine - 2)) && prev.end.line == startLine - 1))\n return null;\n for (var end = has.end;;) {\n var next = hasImport(end.line + 1);\n if (next == null) break;\n end = next.end;\n }\n return {from: cm.clipPos(CodeMirror.Pos(startLine, has.startCh + 1)), to: end};\n});\n\nCodeMirror.registerHelper(\"fold\", \"include\", function(cm, start) {\n function hasInclude(line) {\n if (line < cm.firstLine() || line > cm.lastLine()) return null;\n var start = cm.getTokenAt(CodeMirror.Pos(line, 1));\n if (!/\\S/.test(start.string)) start = cm.getTokenAt(CodeMirror.Pos(line, start.end + 1));\n if (start.type == \"meta\" && start.string.slice(0, 8) == \"#include\") return start.start + 8;\n }\n\n var startLine = start.line, has = hasInclude(startLine);\n if (has == null || hasInclude(startLine - 1) != null) return null;\n for (var end = startLine;;) {\n var next = hasInclude(end + 1);\n if (next == null) break;\n ++end;\n }\n return {from: CodeMirror.Pos(startLine, has + 1),\n to: cm.clipPos(CodeMirror.Pos(end))};\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerGlobalHelper(\"fold\", \"comment\", function(mode) {\n return mode.blockCommentStart && mode.blockCommentEnd;\n}, function(cm, start) {\n var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;\n if (!startToken || !endToken) return;\n var line = start.line, lineText = cm.getLine(line);\n\n var startCh;\n for (var at = start.ch, pass = 0;;) {\n var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);\n if (found == -1) {\n if (pass == 1) return;\n pass = 1;\n at = lineText.length;\n continue;\n }\n if (pass == 1 && found < start.ch) return;\n if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1))) &&\n (found == 0 || lineText.slice(found - endToken.length, found) == endToken ||\n !/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found))))) {\n startCh = found + startToken.length;\n break;\n }\n at = found - 1;\n }\n\n var depth = 1, lastLine = cm.lastLine(), end, endCh;\n outer: for (var i = line; i <= lastLine; ++i) {\n var text = cm.getLine(i), pos = i == line ? startCh : 0;\n for (;;) {\n var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);\n if (nextOpen < 0) nextOpen = text.length;\n if (nextClose < 0) nextClose = text.length;\n pos = Math.min(nextOpen, nextClose);\n if (pos == text.length) break;\n if (pos == nextOpen) ++depth;\n else if (!--depth) { end = i; endCh = pos; break outer; }\n ++pos;\n }\n }\n if (end == null || line == end && endCh == startCh) return;\n return {from: CodeMirror.Pos(line, startCh),\n to: CodeMirror.Pos(end, endCh)};\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function doFold(cm, pos, options, force) {\n if (options && options.call) {\n var finder = options;\n options = null;\n } else {\n var finder = getOption(cm, options, \"rangeFinder\");\n }\n if (typeof pos == \"number\") pos = CodeMirror.Pos(pos, 0);\n var minSize = getOption(cm, options, \"minFoldSize\");\n\n function getRange(allowFolded) {\n var range = finder(cm, pos);\n if (!range || range.to.line - range.from.line < minSize) return null;\n var marks = cm.findMarksAt(range.from);\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold && force !== \"fold\") {\n if (!allowFolded) return null;\n range.cleared = true;\n marks[i].clear();\n }\n }\n return range;\n }\n\n var range = getRange(true);\n if (getOption(cm, options, \"scanUp\")) while (!range && pos.line > cm.firstLine()) {\n pos = CodeMirror.Pos(pos.line - 1, 0);\n range = getRange(false);\n }\n if (!range || range.cleared || force === \"unfold\") return;\n\n var myWidget = makeWidget(cm, options, range);\n CodeMirror.on(myWidget, \"mousedown\", function(e) {\n myRange.clear();\n CodeMirror.e_preventDefault(e);\n });\n var myRange = cm.markText(range.from, range.to, {\n replacedWith: myWidget,\n clearOnEnter: getOption(cm, options, \"clearOnEnter\"),\n __isFold: true\n });\n myRange.on(\"clear\", function(from, to) {\n CodeMirror.signal(cm, \"unfold\", cm, from, to);\n });\n CodeMirror.signal(cm, \"fold\", cm, range.from, range.to);\n }\n\n function makeWidget(cm, options, range) {\n var widget = getOption(cm, options, \"widget\");\n\n if (typeof widget == \"function\") {\n widget = widget(range.from, range.to);\n }\n\n if (typeof widget == \"string\") {\n var text = document.createTextNode(widget);\n widget = document.createElement(\"span\");\n widget.appendChild(text);\n widget.className = \"CodeMirror-foldmarker\";\n } else if (widget) {\n widget = widget.cloneNode(true)\n }\n return widget;\n }\n\n // Clumsy backwards-compatible interface\n CodeMirror.newFoldFunction = function(rangeFinder, widget) {\n return function(cm, pos) { doFold(cm, pos, {rangeFinder: rangeFinder, widget: widget}); };\n };\n\n // New-style interface\n CodeMirror.defineExtension(\"foldCode\", function(pos, options, force) {\n doFold(this, pos, options, force);\n });\n\n CodeMirror.defineExtension(\"isFolded\", function(pos) {\n var marks = this.findMarksAt(pos);\n for (var i = 0; i < marks.length; ++i)\n if (marks[i].__isFold) return true;\n });\n\n CodeMirror.commands.toggleFold = function(cm) {\n cm.foldCode(cm.getCursor());\n };\n CodeMirror.commands.fold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"fold\");\n };\n CodeMirror.commands.unfold = function(cm) {\n cm.foldCode(cm.getCursor(), null, \"unfold\");\n };\n CodeMirror.commands.foldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), null, \"fold\");\n });\n };\n CodeMirror.commands.unfoldAll = function(cm) {\n cm.operation(function() {\n for (var i = cm.firstLine(), e = cm.lastLine(); i <= e; i++)\n cm.foldCode(CodeMirror.Pos(i, 0), null, \"unfold\");\n });\n };\n\n CodeMirror.registerHelper(\"fold\", \"combine\", function() {\n var funcs = Array.prototype.slice.call(arguments, 0);\n return function(cm, start) {\n for (var i = 0; i < funcs.length; ++i) {\n var found = funcs[i](cm, start);\n if (found) return found;\n }\n };\n });\n\n CodeMirror.registerHelper(\"fold\", \"auto\", function(cm, start) {\n var helpers = cm.getHelpers(start, \"fold\");\n for (var i = 0; i < helpers.length; i++) {\n var cur = helpers[i](cm, start);\n if (cur) return cur;\n }\n });\n\n var defaultOptions = {\n rangeFinder: CodeMirror.fold.auto,\n widget: \"\\u2194\",\n minFoldSize: 0,\n scanUp: false,\n clearOnEnter: true\n };\n\n CodeMirror.defineOption(\"foldOptions\", null);\n\n function getOption(cm, options, name) {\n if (options && options[name] !== undefined)\n return options[name];\n var editorOptions = cm.options.foldOptions;\n if (editorOptions && editorOptions[name] !== undefined)\n return editorOptions[name];\n return defaultOptions[name];\n }\n\n CodeMirror.defineExtension(\"foldOption\", function(options, name) {\n return getOption(this, options, name);\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"./foldcode\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./foldcode\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"foldGutter\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.clearGutter(cm.state.foldGutter.options.gutter);\n cm.state.foldGutter = null;\n cm.off(\"gutterClick\", onGutterClick);\n cm.off(\"changes\", onChange);\n cm.off(\"viewportChange\", onViewportChange);\n cm.off(\"fold\", onFold);\n cm.off(\"unfold\", onFold);\n cm.off(\"swapDoc\", onChange);\n }\n if (val) {\n cm.state.foldGutter = new State(parseOptions(val));\n updateInViewport(cm);\n cm.on(\"gutterClick\", onGutterClick);\n cm.on(\"changes\", onChange);\n cm.on(\"viewportChange\", onViewportChange);\n cm.on(\"fold\", onFold);\n cm.on(\"unfold\", onFold);\n cm.on(\"swapDoc\", onChange);\n }\n });\n\n var Pos = CodeMirror.Pos;\n\n function State(options) {\n this.options = options;\n this.from = this.to = 0;\n }\n\n function parseOptions(opts) {\n if (opts === true) opts = {};\n if (opts.gutter == null) opts.gutter = \"CodeMirror-foldgutter\";\n if (opts.indicatorOpen == null) opts.indicatorOpen = \"CodeMirror-foldgutter-open\";\n if (opts.indicatorFolded == null) opts.indicatorFolded = \"CodeMirror-foldgutter-folded\";\n return opts;\n }\n\n function isFolded(cm, line) {\n var marks = cm.findMarks(Pos(line, 0), Pos(line + 1, 0));\n for (var i = 0; i < marks.length; ++i) {\n if (marks[i].__isFold) {\n var fromPos = marks[i].find(-1);\n if (fromPos && fromPos.line === line)\n return marks[i];\n }\n }\n }\n\n function marker(spec) {\n if (typeof spec == \"string\") {\n var elt = document.createElement(\"div\");\n elt.className = spec + \" CodeMirror-guttermarker-subtle\";\n return elt;\n } else {\n return spec.cloneNode(true);\n }\n }\n\n function updateFoldInfo(cm, from, to) {\n var opts = cm.state.foldGutter.options, cur = from - 1;\n var minSize = cm.foldOption(opts, \"minFoldSize\");\n var func = cm.foldOption(opts, \"rangeFinder\");\n // we can reuse the built-in indicator element if its className matches the new state\n var clsFolded = typeof opts.indicatorFolded == \"string\" && classTest(opts.indicatorFolded);\n var clsOpen = typeof opts.indicatorOpen == \"string\" && classTest(opts.indicatorOpen);\n cm.eachLine(from, to, function(line) {\n ++cur;\n var mark = null;\n var old = line.gutterMarkers;\n if (old) old = old[opts.gutter];\n if (isFolded(cm, cur)) {\n if (clsFolded && old && clsFolded.test(old.className)) return;\n mark = marker(opts.indicatorFolded);\n } else {\n var pos = Pos(cur, 0);\n var range = func && func(cm, pos);\n if (range && range.to.line - range.from.line >= minSize) {\n if (clsOpen && old && clsOpen.test(old.className)) return;\n mark = marker(opts.indicatorOpen);\n }\n }\n if (!mark && !old) return;\n cm.setGutterMarker(line, opts.gutter, mark);\n });\n }\n\n // copied from CodeMirror/src/util/dom.js\n function classTest(cls) { return new RegExp(\"(^|\\\\s)\" + cls + \"(?:$|\\\\s)\\\\s*\") }\n\n function updateInViewport(cm) {\n var vp = cm.getViewport(), state = cm.state.foldGutter;\n if (!state) return;\n cm.operation(function() {\n updateFoldInfo(cm, vp.from, vp.to);\n });\n state.from = vp.from; state.to = vp.to;\n }\n\n function onGutterClick(cm, line, gutter) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n if (gutter != opts.gutter) return;\n var folded = isFolded(cm, line);\n if (folded) folded.clear();\n else cm.foldCode(Pos(line, 0), opts);\n }\n\n function onChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n state.from = state.to = 0;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() { updateInViewport(cm); }, opts.foldOnChangeTimeSpan || 600);\n }\n\n function onViewportChange(cm) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var opts = state.options;\n clearTimeout(state.changeUpdate);\n state.changeUpdate = setTimeout(function() {\n var vp = cm.getViewport();\n if (state.from == state.to || vp.from - state.to > 20 || state.from - vp.to > 20) {\n updateInViewport(cm);\n } else {\n cm.operation(function() {\n if (vp.from < state.from) {\n updateFoldInfo(cm, vp.from, state.from);\n state.from = vp.from;\n }\n if (vp.to > state.to) {\n updateFoldInfo(cm, state.to, vp.to);\n state.to = vp.to;\n }\n });\n }\n }, opts.updateViewportTimeSpan || 400);\n }\n\n function onFold(cm, from) {\n var state = cm.state.foldGutter;\n if (!state) return;\n var line = from.line;\n if (line >= state.from && line < state.to)\n updateFoldInfo(cm, line, line + 1);\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction lineIndent(cm, lineNo) {\n var text = cm.getLine(lineNo)\n var spaceTo = text.search(/\\S/)\n if (spaceTo == -1 || /\\bcomment\\b/.test(cm.getTokenTypeAt(CodeMirror.Pos(lineNo, spaceTo + 1))))\n return -1\n return CodeMirror.countColumn(text, null, cm.getOption(\"tabSize\"))\n}\n\nCodeMirror.registerHelper(\"fold\", \"indent\", function(cm, start) {\n var myIndent = lineIndent(cm, start.line)\n if (myIndent < 0) return\n var lastLineInFold = null\n\n // Go through lines until we find a line that definitely doesn't belong in\n // the block we're folding, or to the end.\n for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {\n var indent = lineIndent(cm, i)\n if (indent == -1) {\n } else if (indent > myIndent) {\n // Lines with a greater indent are considered part of the block.\n lastLineInFold = i;\n } else {\n // If this line has non-space, non-comment content, and is\n // indented less or equal to the start line, it is the start of\n // another block.\n break;\n }\n }\n if (lastLineInFold) return {\n from: CodeMirror.Pos(start.line, cm.getLine(start.line).length),\n to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)\n };\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"fold\", \"markdown\", function(cm, start) {\n var maxDepth = 100;\n\n function isHeader(lineNo) {\n var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));\n return tokentype && /\\bheader\\b/.test(tokentype);\n }\n\n function headerLevel(lineNo, line, nextLine) {\n var match = line && line.match(/^#+/);\n if (match && isHeader(lineNo)) return match[0].length;\n match = nextLine && nextLine.match(/^[=\\-]+\\s*$/);\n if (match && isHeader(lineNo + 1)) return nextLine[0] == \"=\" ? 1 : 2;\n return maxDepth;\n }\n\n var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);\n var level = headerLevel(start.line, firstLine, nextLine);\n if (level === maxDepth) return undefined;\n\n var lastLineNo = cm.lastLine();\n var end = start.line, nextNextLine = cm.getLine(end + 2);\n while (end < lastLineNo) {\n if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;\n ++end;\n nextLine = nextNextLine;\n nextNextLine = cm.getLine(end + 2);\n }\n\n return {\n from: CodeMirror.Pos(start.line, firstLine.length),\n to: CodeMirror.Pos(end, cm.getLine(end).length)\n };\n});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var Pos = CodeMirror.Pos;\n function cmp(a, b) { return a.line - b.line || a.ch - b.ch; }\n\n var nameStartChar = \"A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n var nameChar = nameStartChar + \"\\-\\:\\.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n var xmlTagStart = new RegExp(\"<(/?)([\" + nameStartChar + \"][\" + nameChar + \"]*)\", \"g\");\n\n function Iter(cm, line, ch, range) {\n this.line = line; this.ch = ch;\n this.cm = cm; this.text = cm.getLine(line);\n this.min = range ? Math.max(range.from, cm.firstLine()) : cm.firstLine();\n this.max = range ? Math.min(range.to - 1, cm.lastLine()) : cm.lastLine();\n }\n\n function tagAt(iter, ch) {\n var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch));\n return type && /\\btag\\b/.test(type);\n }\n\n function nextLine(iter) {\n if (iter.line >= iter.max) return;\n iter.ch = 0;\n iter.text = iter.cm.getLine(++iter.line);\n return true;\n }\n function prevLine(iter) {\n if (iter.line <= iter.min) return;\n iter.text = iter.cm.getLine(--iter.line);\n iter.ch = iter.text.length;\n return true;\n }\n\n function toTagEnd(iter) {\n for (;;) {\n var gt = iter.text.indexOf(\">\", iter.ch);\n if (gt == -1) { if (nextLine(iter)) continue; else return; }\n if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; }\n var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n iter.ch = gt + 1;\n return selfClose ? \"selfClose\" : \"regular\";\n }\n }\n function toTagStart(iter) {\n for (;;) {\n var lt = iter.ch ? iter.text.lastIndexOf(\"<\", iter.ch - 1) : -1;\n if (lt == -1) { if (prevLine(iter)) continue; else return; }\n if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; }\n xmlTagStart.lastIndex = lt;\n iter.ch = lt;\n var match = xmlTagStart.exec(iter.text);\n if (match && match.index == lt) return match;\n }\n }\n\n function toNextTag(iter) {\n for (;;) {\n xmlTagStart.lastIndex = iter.ch;\n var found = xmlTagStart.exec(iter.text);\n if (!found) { if (nextLine(iter)) continue; else return; }\n if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; }\n iter.ch = found.index + found[0].length;\n return found;\n }\n }\n function toPrevTag(iter) {\n for (;;) {\n var gt = iter.ch ? iter.text.lastIndexOf(\">\", iter.ch - 1) : -1;\n if (gt == -1) { if (prevLine(iter)) continue; else return; }\n if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; }\n var lastSlash = iter.text.lastIndexOf(\"/\", gt);\n var selfClose = lastSlash > -1 && !/\\S/.test(iter.text.slice(lastSlash + 1, gt));\n iter.ch = gt + 1;\n return selfClose ? \"selfClose\" : \"regular\";\n }\n }\n\n function findMatchingClose(iter, tag) {\n var stack = [];\n for (;;) {\n var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0);\n if (!next || !(end = toTagEnd(iter))) return;\n if (end == \"selfClose\") continue;\n if (next[1]) { // closing tag\n for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) {\n stack.length = i;\n break;\n }\n if (i < 0 && (!tag || tag == next[2])) return {\n tag: next[2],\n from: Pos(startLine, startCh),\n to: Pos(iter.line, iter.ch)\n };\n } else { // opening tag\n stack.push(next[2]);\n }\n }\n }\n function findMatchingOpen(iter, tag) {\n var stack = [];\n for (;;) {\n var prev = toPrevTag(iter);\n if (!prev) return;\n if (prev == \"selfClose\") { toTagStart(iter); continue; }\n var endLine = iter.line, endCh = iter.ch;\n var start = toTagStart(iter);\n if (!start) return;\n if (start[1]) { // closing tag\n stack.push(start[2]);\n } else { // opening tag\n for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) {\n stack.length = i;\n break;\n }\n if (i < 0 && (!tag || tag == start[2])) return {\n tag: start[2],\n from: Pos(iter.line, iter.ch),\n to: Pos(endLine, endCh)\n };\n }\n }\n }\n\n CodeMirror.registerHelper(\"fold\", \"xml\", function(cm, start) {\n var iter = new Iter(cm, start.line, 0);\n for (;;) {\n var openTag = toNextTag(iter)\n if (!openTag || iter.line != start.line) return\n var end = toTagEnd(iter)\n if (!end) return\n if (!openTag[1] && end != \"selfClose\") {\n var startPos = Pos(iter.line, iter.ch);\n var endPos = findMatchingClose(iter, openTag[2]);\n return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null\n }\n }\n });\n CodeMirror.findMatchingTag = function(cm, pos, range) {\n var iter = new Iter(cm, pos.line, pos.ch, range);\n if (iter.text.indexOf(\">\") == -1 && iter.text.indexOf(\"<\") == -1) return;\n var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch);\n var start = end && toTagStart(iter);\n if (!end || !start || cmp(iter, pos) > 0) return;\n var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]};\n if (end == \"selfClose\") return {open: here, close: null, at: \"open\"};\n\n if (start[1]) { // closing tag\n return {open: findMatchingOpen(iter, start[2]), close: here, at: \"close\"};\n } else { // opening tag\n iter = new Iter(cm, to.line, to.ch, range);\n return {open: here, close: findMatchingClose(iter, start[2]), at: \"open\"};\n }\n };\n\n CodeMirror.findEnclosingTag = function(cm, pos, range, tag) {\n var iter = new Iter(cm, pos.line, pos.ch, range);\n for (;;) {\n var open = findMatchingOpen(iter, tag);\n if (!open) break;\n var forward = new Iter(cm, pos.line, pos.ch, range);\n var close = findMatchingClose(forward, open.tag);\n if (close) return {open: open, close: close};\n }\n };\n\n // Used by addon/edit/closetag.js\n CodeMirror.scanForClosingTag = function(cm, pos, name, end) {\n var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null);\n return findMatchingClose(iter, name);\n };\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.multiplexingMode = function(outer /*, others */) {\n // Others should be {open, close, mode [, delimStyle] [, innerStyle] [, parseDelimiters]} objects\n var others = Array.prototype.slice.call(arguments, 1);\n\n function indexOf(string, pattern, from, returnEnd) {\n if (typeof pattern == \"string\") {\n var found = string.indexOf(pattern, from);\n return returnEnd && found > -1 ? found + pattern.length : found;\n }\n var m = pattern.exec(from ? string.slice(from) : string);\n return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;\n }\n\n return {\n startState: function() {\n return {\n outer: CodeMirror.startState(outer),\n innerActive: null,\n inner: null,\n startingInner: false\n };\n },\n\n copyState: function(state) {\n return {\n outer: CodeMirror.copyState(outer, state.outer),\n innerActive: state.innerActive,\n inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner),\n startingInner: state.startingInner\n };\n },\n\n token: function(stream, state) {\n if (!state.innerActive) {\n var cutOff = Infinity, oldContent = stream.string;\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n var found = indexOf(oldContent, other.open, stream.pos);\n if (found == stream.pos) {\n if (!other.parseDelimiters) stream.match(other.open);\n state.startingInner = !!other.parseDelimiters\n state.innerActive = other;\n\n // Get the outer indent, making sure to handle CodeMirror.Pass\n var outerIndent = 0;\n if (outer.indent) {\n var possibleOuterIndent = outer.indent(state.outer, \"\", \"\");\n if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;\n }\n\n state.inner = CodeMirror.startState(other.mode, outerIndent);\n return other.delimStyle && (other.delimStyle + \" \" + other.delimStyle + \"-open\");\n } else if (found != -1 && found < cutOff) {\n cutOff = found;\n }\n }\n if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);\n var outerToken = outer.token(stream, state.outer);\n if (cutOff != Infinity) stream.string = oldContent;\n return outerToken;\n } else {\n var curInner = state.innerActive, oldContent = stream.string;\n if (!curInner.close && stream.sol()) {\n state.innerActive = state.inner = null;\n return this.token(stream, state);\n }\n var found = curInner.close && !state.startingInner ?\n indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;\n if (found == stream.pos && !curInner.parseDelimiters) {\n stream.match(curInner.close);\n state.innerActive = state.inner = null;\n return curInner.delimStyle && (curInner.delimStyle + \" \" + curInner.delimStyle + \"-close\");\n }\n if (found > -1) stream.string = oldContent.slice(0, found);\n var innerToken = curInner.mode.token(stream, state.inner);\n if (found > -1) stream.string = oldContent;\n else if (stream.pos > stream.start) state.startingInner = false\n\n if (found == stream.pos && curInner.parseDelimiters)\n state.innerActive = state.inner = null;\n\n if (curInner.innerStyle) {\n if (innerToken) innerToken = innerToken + \" \" + curInner.innerStyle;\n else innerToken = curInner.innerStyle;\n }\n\n return innerToken;\n }\n },\n\n indent: function(state, textAfter, line) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (!mode.indent) return CodeMirror.Pass;\n return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);\n },\n\n blankLine: function(state) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (mode.blankLine) {\n mode.blankLine(state.innerActive ? state.inner : state.outer);\n }\n if (!state.innerActive) {\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n if (other.open === \"\\n\") {\n state.innerActive = other;\n state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, \"\", \"\") : 0);\n }\n }\n } else if (state.innerActive.close === \"\\n\") {\n state.innerActive = state.inner = null;\n }\n },\n\n electricChars: outer.electricChars,\n\n innerMode: function(state) {\n return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Utility function that allows modes to be combined. The mode given\n// as the base argument takes care of most of the normal mode\n// functionality, but a second (typically simple) mode is used, which\n// can override the style of text. Both modes get to parse all of the\n// text, but when both assign a non-null style to a piece of code, the\n// overlay wins, unless the combine argument was true and not overridden,\n// or state.overlay.combineTokens was true, in which case the styles are\n// combined.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.overlayMode = function(base, overlay, combine) {\n return {\n startState: function() {\n return {\n base: CodeMirror.startState(base),\n overlay: CodeMirror.startState(overlay),\n basePos: 0, baseCur: null,\n overlayPos: 0, overlayCur: null,\n streamSeen: null\n };\n },\n copyState: function(state) {\n return {\n base: CodeMirror.copyState(base, state.base),\n overlay: CodeMirror.copyState(overlay, state.overlay),\n basePos: state.basePos, baseCur: null,\n overlayPos: state.overlayPos, overlayCur: null\n };\n },\n\n token: function(stream, state) {\n if (stream != state.streamSeen ||\n Math.min(state.basePos, state.overlayPos) < stream.start) {\n state.streamSeen = stream;\n state.basePos = state.overlayPos = stream.start;\n }\n\n if (stream.start == state.basePos) {\n state.baseCur = base.token(stream, state.base);\n state.basePos = stream.pos;\n }\n if (stream.start == state.overlayPos) {\n stream.pos = stream.start;\n state.overlayCur = overlay.token(stream, state.overlay);\n state.overlayPos = stream.pos;\n }\n stream.pos = Math.min(state.basePos, state.overlayPos);\n\n // state.overlay.combineTokens always takes precedence over combine,\n // unless set to null\n if (state.overlayCur == null) return state.baseCur;\n else if (state.baseCur != null &&\n state.overlay.combineTokens ||\n combine && state.overlay.combineTokens == null)\n return state.baseCur + \" \" + state.overlayCur;\n else return state.overlayCur;\n },\n\n indent: base.indent && function(state, textAfter, line) {\n return base.indent(state.base, textAfter, line);\n },\n electricChars: base.electricChars,\n\n innerMode: function(state) { return {state: state.base, mode: base}; },\n\n blankLine: function(state) {\n var baseToken, overlayToken;\n if (base.blankLine) baseToken = base.blankLine(state.base);\n if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);\n\n return overlayToken == null ?\n baseToken :\n (combine && baseToken != null ? baseToken + \" \" + overlayToken : overlayToken);\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineSimpleMode = function(name, states) {\n CodeMirror.defineMode(name, function(config) {\n return CodeMirror.simpleMode(config, states);\n });\n };\n\n CodeMirror.simpleMode = function(config, states) {\n ensureState(states, \"start\");\n var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n var list = states_[state] = [], orig = states[state];\n for (var i = 0; i < orig.length; i++) {\n var data = orig[i];\n list.push(new Rule(data, states));\n if (data.indent || data.dedent) hasIndentation = true;\n }\n }\n var mode = {\n startState: function() {\n return {state: \"start\", pending: null,\n local: null, localState: null,\n indent: hasIndentation ? [] : null};\n },\n copyState: function(state) {\n var s = {state: state.state, pending: state.pending,\n local: state.local, localState: null,\n indent: state.indent && state.indent.slice(0)};\n if (state.localState)\n s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n if (state.stack)\n s.stack = state.stack.slice(0);\n for (var pers = state.persistentStates; pers; pers = pers.next)\n s.persistentStates = {mode: pers.mode,\n spec: pers.spec,\n state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n next: s.persistentStates};\n return s;\n },\n token: tokenFunction(states_, config),\n innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n indent: indentFunction(states_, meta)\n };\n if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n mode[prop] = meta[prop];\n return mode;\n };\n\n function ensureState(states, name) {\n if (!states.hasOwnProperty(name))\n throw new Error(\"Undefined state \" + name + \" in simple mode\");\n }\n\n function toRegex(val, caret) {\n if (!val) return /(?:)/;\n var flags = \"\";\n if (val instanceof RegExp) {\n if (val.ignoreCase) flags = \"i\";\n if (val.unicode) flags += \"u\"\n val = val.source;\n } else {\n val = String(val);\n }\n return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n }\n\n function asToken(val) {\n if (!val) return null;\n if (val.apply) return val\n if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n var result = [];\n for (var i = 0; i < val.length; i++)\n result.push(val[i] && val[i].replace(/\\./g, \" \"));\n return result;\n }\n\n function Rule(data, states) {\n if (data.next || data.push) ensureState(states, data.next || data.push);\n this.regex = toRegex(data.regex);\n this.token = asToken(data.token);\n this.data = data;\n }\n\n function tokenFunction(states, config) {\n return function(stream, state) {\n if (state.pending) {\n var pend = state.pending.shift();\n if (state.pending.length == 0) state.pending = null;\n stream.pos += pend.text.length;\n return pend.token;\n }\n\n if (state.local) {\n if (state.local.end && stream.match(state.local.end)) {\n var tok = state.local.endToken || null;\n state.local = state.localState = null;\n return tok;\n } else {\n var tok = state.local.mode.token(stream, state.localState), m;\n if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n stream.pos = stream.start + m.index;\n return tok;\n }\n }\n\n var curState = states[state.state];\n for (var i = 0; i < curState.length; i++) {\n var rule = curState[i];\n var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n if (matches) {\n if (rule.data.next) {\n state.state = rule.data.next;\n } else if (rule.data.push) {\n (state.stack || (state.stack = [])).push(state.state);\n state.state = rule.data.push;\n } else if (rule.data.pop && state.stack && state.stack.length) {\n state.state = state.stack.pop();\n }\n\n if (rule.data.mode)\n enterLocalMode(config, state, rule.data.mode, rule.token);\n if (rule.data.indent)\n state.indent.push(stream.indentation() + config.indentUnit);\n if (rule.data.dedent)\n state.indent.pop();\n var token = rule.token\n if (token && token.apply) token = token(matches)\n if (matches.length > 2 && rule.token && typeof rule.token != \"string\") {\n for (var j = 2; j < matches.length; j++)\n if (matches[j])\n (state.pending || (state.pending = [])).push({text: matches[j], token: rule.token[j - 1]});\n stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n return token[0];\n } else if (token && token.join) {\n return token[0];\n } else {\n return token;\n }\n }\n }\n stream.next();\n return null;\n };\n }\n\n function cmp(a, b) {\n if (a === b) return true;\n if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n var props = 0;\n for (var prop in a) if (a.hasOwnProperty(prop)) {\n if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n props++;\n }\n for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n return props == 0;\n }\n\n function enterLocalMode(config, state, spec, token) {\n var pers;\n if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n var lState = pers ? pers.state : CodeMirror.startState(mode);\n if (spec.persistent && !pers)\n state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n state.localState = lState;\n state.local = {mode: mode,\n end: spec.end && toRegex(spec.end),\n endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n endToken: token && token.join ? token[token.length - 1] : token};\n }\n\n function indexOf(val, arr) {\n for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n }\n\n function indentFunction(states, meta) {\n return function(state, textAfter, line) {\n if (state.local && state.local.mode.indent)\n return state.local.mode.indent(state.localState, textAfter, line);\n if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n return CodeMirror.Pass;\n\n var pos = state.indent.length - 1, rules = states[state.state];\n scan: for (;;) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n var m = rule.regex.exec(textAfter);\n if (m && m[0]) {\n pos--;\n if (rule.next || rule.push) rules = states[rule.next || rule.push];\n textAfter = textAfter.slice(m[0].length);\n continue scan;\n }\n }\n }\n break;\n }\n return pos < 0 ? 0 : state.indent[pos];\n };\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.runMode = function(string, modespec, callback, options) {\n var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);\n var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;\n\n // Create a tokenizing callback function if passed-in callback is a DOM element.\n if (callback.appendChild) {\n var ie = /MSIE \\d/.test(navigator.userAgent);\n var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);\n var node = callback, col = 0;\n node.innerHTML = \"\";\n callback = function(text, style) {\n if (text == \"\\n\") {\n // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.\n // Emitting a carriage return makes everything ok.\n node.appendChild(document.createTextNode(ie_lt9 ? '\\r' : text));\n col = 0;\n return;\n }\n var content = \"\";\n // replace tabs\n for (var pos = 0;;) {\n var idx = text.indexOf(\"\\t\", pos);\n if (idx == -1) {\n content += text.slice(pos);\n col += text.length - pos;\n break;\n } else {\n col += idx - pos;\n content += text.slice(pos, idx);\n var size = tabSize - col % tabSize;\n col += size;\n for (var i = 0; i < size; ++i) content += \" \";\n pos = idx + 1;\n }\n }\n // Create a node with token style and append it to the callback DOM element.\n if (style) {\n var sp = node.appendChild(document.createElement(\"span\"));\n sp.className = \"cm-\" + style.replace(/ +/g, \" cm-\");\n sp.appendChild(document.createTextNode(content));\n } else {\n node.appendChild(document.createTextNode(content));\n }\n };\n }\n\n var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);\n for (var i = 0, e = lines.length; i < e; ++i) {\n if (i) callback(\"\\n\");\n var stream = new CodeMirror.StringStream(lines[i], null, {\n lookAhead: function(n) { return lines[i + n] },\n baseToken: function() {}\n });\n if (!stream.string && mode.blankLine) mode.blankLine(state);\n while (!stream.eol()) {\n var style = mode.token(stream, state);\n callback(stream.current(), style, i, stream.start, state, mode);\n stream.start = stream.pos;\n }\n }\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"scrollPastEnd\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.off(\"change\", onChange);\n cm.off(\"refresh\", updateBottomMargin);\n cm.display.lineSpace.parentNode.style.paddingBottom = \"\";\n cm.state.scrollPastEndPadding = null;\n }\n if (val) {\n cm.on(\"change\", onChange);\n cm.on(\"refresh\", updateBottomMargin);\n updateBottomMargin(cm);\n }\n });\n\n function onChange(cm, change) {\n if (CodeMirror.changeEnd(change).line == cm.lastLine())\n updateBottomMargin(cm);\n }\n\n function updateBottomMargin(cm) {\n var padding = \"\";\n if (cm.lineCount() > 1) {\n var totalH = cm.display.scroller.clientHeight - 30,\n lastLineH = cm.getLineHandle(cm.lastLine()).height;\n padding = (totalH - lastLineH) + \"px\";\n }\n if (cm.state.scrollPastEndPadding != padding) {\n cm.state.scrollPastEndPadding = padding;\n cm.display.lineSpace.parentNode.style.paddingBottom = padding;\n cm.off(\"refresh\", updateBottomMargin);\n cm.setSize();\n cm.on(\"refresh\", updateBottomMargin);\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Defines jumpToLine command. Uses dialog.js if present.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../dialog/dialog\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../dialog/dialog\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n // default search panel location\n CodeMirror.defineOption(\"search\", {bottom: false});\n\n function dialog(cm, text, shortText, deflt, f) {\n if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true, bottom: cm.options.search.bottom});\n else f(prompt(shortText, deflt));\n }\n\n function getJumpDialog(cm) {\n return cm.phrase(\"Jump to line:\") + ' ' + cm.phrase(\"(Use line:column or scroll% syntax)\") + '';\n }\n\n function interpretLine(cm, string) {\n var num = Number(string)\n if (/^[-+]/.test(string)) return cm.getCursor().line + num\n else return num - 1\n }\n\n CodeMirror.commands.jumpToLine = function(cm) {\n var cur = cm.getCursor();\n dialog(cm, getJumpDialog(cm), cm.phrase(\"Jump to line:\"), (cur.line + 1) + \":\" + cur.ch, function(posStr) {\n if (!posStr) return;\n\n var match;\n if (match = /^\\s*([\\+\\-]?\\d+)\\s*\\:\\s*(\\d+)\\s*$/.exec(posStr)) {\n cm.setCursor(interpretLine(cm, match[1]), Number(match[2]))\n } else if (match = /^\\s*([\\+\\-]?\\d+(\\.\\d+)?)\\%\\s*/.exec(posStr)) {\n var line = Math.round(cm.lineCount() * Number(match[1]) / 100);\n if (/^[-+]/.test(match[1])) line = cur.line + line + 1;\n cm.setCursor(line - 1, cur.ch);\n } else if (match = /^\\s*\\:?\\s*([\\+\\-]?\\d+)\\s*/.exec(posStr)) {\n cm.setCursor(interpretLine(cm, match[1]), cur.ch);\n }\n });\n };\n\n CodeMirror.keyMap[\"default\"][\"Alt-G\"] = \"jumpToLine\";\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Define search commands. Depends on dialog.js or another\n// implementation of the openDialog method.\n\n// Replace works a little oddly -- it will do the replace on the next\n// Ctrl-G (or whatever is bound to findNext) press. You prevent a\n// replace by making sure the match is no longer selected when hitting\n// Ctrl-G.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"./searchcursor\"), require(\"../dialog/dialog\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"./searchcursor\", \"../dialog/dialog\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n // default search panel location\n CodeMirror.defineOption(\"search\", {bottom: false});\n\n function searchOverlay(query, caseInsensitive) {\n if (typeof query == \"string\")\n query = new RegExp(query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\"), caseInsensitive ? \"gi\" : \"g\");\n else if (!query.global)\n query = new RegExp(query.source, query.ignoreCase ? \"gi\" : \"g\");\n\n return {token: function(stream) {\n query.lastIndex = stream.pos;\n var match = query.exec(stream.string);\n if (match && match.index == stream.pos) {\n stream.pos += match[0].length || 1;\n return \"searching\";\n } else if (match) {\n stream.pos = match.index;\n } else {\n stream.skipToEnd();\n }\n }};\n }\n\n function SearchState() {\n this.posFrom = this.posTo = this.lastQuery = this.query = null;\n this.overlay = null;\n }\n\n function getSearchState(cm) {\n return cm.state.search || (cm.state.search = new SearchState());\n }\n\n function queryCaseInsensitive(query) {\n return typeof query == \"string\" && query == query.toLowerCase();\n }\n\n function getSearchCursor(cm, query, pos) {\n // Heuristic: if the query string is all lowercase, do a case insensitive search.\n return cm.getSearchCursor(query, pos, {caseFold: queryCaseInsensitive(query), multiline: true});\n }\n\n function persistentDialog(cm, text, deflt, onEnter, onKeyDown) {\n cm.openDialog(text, onEnter, {\n value: deflt,\n selectValueOnOpen: true,\n closeOnEnter: false,\n onClose: function() { clearSearch(cm); },\n onKeyDown: onKeyDown,\n bottom: cm.options.search.bottom\n });\n }\n\n function dialog(cm, text, shortText, deflt, f) {\n if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true, bottom: cm.options.search.bottom});\n else f(prompt(shortText, deflt));\n }\n\n function confirmDialog(cm, text, shortText, fs) {\n if (cm.openConfirm) cm.openConfirm(text, fs);\n else if (confirm(shortText)) fs[0]();\n }\n\n function parseString(string) {\n return string.replace(/\\\\([nrt\\\\])/g, function(match, ch) {\n if (ch == \"n\") return \"\\n\"\n if (ch == \"r\") return \"\\r\"\n if (ch == \"t\") return \"\\t\"\n if (ch == \"\\\\\") return \"\\\\\"\n return match\n })\n }\n\n function parseQuery(query) {\n var isRE = query.match(/^\\/(.*)\\/([a-z]*)$/);\n if (isRE) {\n try { query = new RegExp(isRE[1], isRE[2].indexOf(\"i\") == -1 ? \"\" : \"i\"); }\n catch(e) {} // Not a regular expression after all, do a string search\n } else {\n query = parseString(query)\n }\n if (typeof query == \"string\" ? query == \"\" : query.test(\"\"))\n query = /x^/;\n return query;\n }\n\n function startSearch(cm, state, query) {\n state.queryText = query;\n state.query = parseQuery(query);\n cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));\n state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));\n cm.addOverlay(state.overlay);\n if (cm.showMatchesOnScrollbar) {\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query));\n }\n }\n\n function doSearch(cm, rev, persistent, immediate) {\n var state = getSearchState(cm);\n if (state.query) return findNext(cm, rev);\n var q = cm.getSelection() || state.lastQuery;\n if (q instanceof RegExp && q.source == \"x^\") q = null\n if (persistent && cm.openDialog) {\n var hiding = null\n var searchNext = function(query, event) {\n CodeMirror.e_stop(event);\n if (!query) return;\n if (query != state.queryText) {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n }\n if (hiding) hiding.style.opacity = 1\n findNext(cm, event.shiftKey, function(_, to) {\n var dialog\n if (to.line < 3 && document.querySelector &&\n (dialog = cm.display.wrapper.querySelector(\".CodeMirror-dialog\")) &&\n dialog.getBoundingClientRect().bottom - 4 > cm.cursorCoords(to, \"window\").top)\n (hiding = dialog).style.opacity = .4\n })\n };\n persistentDialog(cm, getQueryDialog(cm), q, searchNext, function(event, query) {\n var keyName = CodeMirror.keyName(event)\n var extra = cm.getOption('extraKeys'), cmd = (extra && extra[keyName]) || CodeMirror.keyMap[cm.getOption(\"keyMap\")][keyName]\n if (cmd == \"findNext\" || cmd == \"findPrev\" ||\n cmd == \"findPersistentNext\" || cmd == \"findPersistentPrev\") {\n CodeMirror.e_stop(event);\n startSearch(cm, getSearchState(cm), query);\n cm.execCommand(cmd);\n } else if (cmd == \"find\" || cmd == \"findPersistent\") {\n CodeMirror.e_stop(event);\n searchNext(query, event);\n }\n });\n if (immediate && q) {\n startSearch(cm, state, q);\n findNext(cm, rev);\n }\n } else {\n dialog(cm, getQueryDialog(cm), \"Search for:\", q, function(query) {\n if (query && !state.query) cm.operation(function() {\n startSearch(cm, state, query);\n state.posFrom = state.posTo = cm.getCursor();\n findNext(cm, rev);\n });\n });\n }\n }\n\n function findNext(cm, rev, callback) {cm.operation(function() {\n var state = getSearchState(cm);\n var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo);\n if (!cursor.find(rev)) {\n cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0));\n if (!cursor.find(rev)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()}, 20);\n state.posFrom = cursor.from(); state.posTo = cursor.to();\n if (callback) callback(cursor.from(), cursor.to())\n });}\n\n function clearSearch(cm) {cm.operation(function() {\n var state = getSearchState(cm);\n state.lastQuery = state.query;\n if (!state.query) return;\n state.query = state.queryText = null;\n cm.removeOverlay(state.overlay);\n if (state.annotate) { state.annotate.clear(); state.annotate = null; }\n });}\n\n\n function getQueryDialog(cm) {\n return '' + cm.phrase(\"Search:\") + ' ' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '';\n }\n function getReplaceQueryDialog(cm) {\n return ' ' + cm.phrase(\"(Use /re/ syntax for regexp search)\") + '';\n }\n function getReplacementQueryDialog(cm) {\n return '' + cm.phrase(\"With:\") + ' ';\n }\n function getDoReplaceConfirm(cm) {\n return '' + cm.phrase(\"Replace?\") + ' ';\n }\n\n function replaceAll(cm, query, text) {\n cm.operation(function() {\n for (var cursor = getSearchCursor(cm, query); cursor.findNext();) {\n if (typeof query != \"string\") {\n var match = cm.getRange(cursor.from(), cursor.to()).match(query);\n cursor.replace(text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n } else cursor.replace(text);\n }\n });\n }\n\n function replace(cm, all) {\n if (cm.getOption(\"readOnly\")) return;\n var query = cm.getSelection() || getSearchState(cm).lastQuery;\n var dialogText = '' + (all ? cm.phrase(\"Replace all:\") : cm.phrase(\"Replace:\")) + '';\n dialog(cm, dialogText + getReplaceQueryDialog(cm), dialogText, query, function(query) {\n if (!query) return;\n query = parseQuery(query);\n dialog(cm, getReplacementQueryDialog(cm), cm.phrase(\"Replace with:\"), \"\", function(text) {\n text = parseString(text)\n if (all) {\n replaceAll(cm, query, text)\n } else {\n clearSearch(cm);\n var cursor = getSearchCursor(cm, query, cm.getCursor(\"from\"));\n var advance = function() {\n var start = cursor.from(), match;\n if (!(match = cursor.findNext())) {\n cursor = getSearchCursor(cm, query);\n if (!(match = cursor.findNext()) ||\n (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return;\n }\n cm.setSelection(cursor.from(), cursor.to());\n cm.scrollIntoView({from: cursor.from(), to: cursor.to()});\n confirmDialog(cm, getDoReplaceConfirm(cm), cm.phrase(\"Replace?\"),\n [function() {doReplace(match);}, advance,\n function() {replaceAll(cm, query, text)}]);\n };\n var doReplace = function(match) {\n cursor.replace(typeof query == \"string\" ? text :\n text.replace(/\\$(\\d)/g, function(_, i) {return match[i];}));\n advance();\n };\n advance();\n }\n });\n });\n }\n\n CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);};\n CodeMirror.commands.findPersistent = function(cm) {clearSearch(cm); doSearch(cm, false, true);};\n CodeMirror.commands.findPersistentNext = function(cm) {doSearch(cm, false, true, true);};\n CodeMirror.commands.findPersistentPrev = function(cm) {doSearch(cm, true, true, true);};\n CodeMirror.commands.findNext = doSearch;\n CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);};\n CodeMirror.commands.clearSearch = clearSearch;\n CodeMirror.commands.replace = replace;\n CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);};\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n var WRAP_CLASS = \"CodeMirror-activeline\";\n var BACK_CLASS = \"CodeMirror-activeline-background\";\n var GUTT_CLASS = \"CodeMirror-activeline-gutter\";\n\n CodeMirror.defineOption(\"styleActiveLine\", false, function(cm, val, old) {\n var prev = old == CodeMirror.Init ? false : old;\n if (val == prev) return\n if (prev) {\n cm.off(\"beforeSelectionChange\", selectionChange);\n clearActiveLines(cm);\n delete cm.state.activeLines;\n }\n if (val) {\n cm.state.activeLines = [];\n updateActiveLines(cm, cm.listSelections());\n cm.on(\"beforeSelectionChange\", selectionChange);\n }\n });\n\n function clearActiveLines(cm) {\n for (var i = 0; i < cm.state.activeLines.length; i++) {\n cm.removeLineClass(cm.state.activeLines[i], \"wrap\", WRAP_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"background\", BACK_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"gutter\", GUTT_CLASS);\n }\n }\n\n function sameArray(a, b) {\n if (a.length != b.length) return false;\n for (var i = 0; i < a.length; i++)\n if (a[i] != b[i]) return false;\n return true;\n }\n\n function updateActiveLines(cm, ranges) {\n var active = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var option = cm.getOption(\"styleActiveLine\");\n if (typeof option == \"object\" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())\n continue\n var line = cm.getLineHandleVisualStart(range.head.line);\n if (active[active.length - 1] != line) active.push(line);\n }\n if (sameArray(cm.state.activeLines, active)) return;\n cm.operation(function() {\n clearActiveLines(cm);\n for (var i = 0; i < active.length; i++) {\n cm.addLineClass(active[i], \"wrap\", WRAP_CLASS);\n cm.addLineClass(active[i], \"background\", BACK_CLASS);\n cm.addLineClass(active[i], \"gutter\", GUTT_CLASS);\n }\n cm.state.activeLines = active;\n });\n }\n\n function selectionChange(cm, sel) {\n updateActiveLines(cm, sel.ranges);\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Because sometimes you need to mark the selected *text*.\n//\n// Adds an option 'styleSelectedText' which, when enabled, gives\n// selected text the CSS class given as option value, or\n// \"CodeMirror-selectedtext\" when the value is not a string.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"styleSelectedText\", false, function(cm, val, old) {\n var prev = old && old != CodeMirror.Init;\n if (val && !prev) {\n cm.state.markedSelection = [];\n cm.state.markedSelectionStyle = typeof val == \"string\" ? val : \"CodeMirror-selectedtext\";\n reset(cm);\n cm.on(\"cursorActivity\", onCursorActivity);\n cm.on(\"change\", onChange);\n } else if (!val && prev) {\n cm.off(\"cursorActivity\", onCursorActivity);\n cm.off(\"change\", onChange);\n clear(cm);\n cm.state.markedSelection = cm.state.markedSelectionStyle = null;\n }\n });\n\n function onCursorActivity(cm) {\n if (cm.state.markedSelection)\n cm.operation(function() { update(cm); });\n }\n\n function onChange(cm) {\n if (cm.state.markedSelection && cm.state.markedSelection.length)\n cm.operation(function() { clear(cm); });\n }\n\n var CHUNK_SIZE = 8;\n var Pos = CodeMirror.Pos;\n var cmp = CodeMirror.cmpPos;\n\n function coverRange(cm, from, to, addAt) {\n if (cmp(from, to) == 0) return;\n var array = cm.state.markedSelection;\n var cls = cm.state.markedSelectionStyle;\n for (var line = from.line;;) {\n var start = line == from.line ? from : Pos(line, 0);\n var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;\n var end = atEnd ? to : Pos(endLine, 0);\n var mark = cm.markText(start, end, {className: cls});\n if (addAt == null) array.push(mark);\n else array.splice(addAt++, 0, mark);\n if (atEnd) break;\n line = endLine;\n }\n }\n\n function clear(cm) {\n var array = cm.state.markedSelection;\n for (var i = 0; i < array.length; ++i) array[i].clear();\n array.length = 0;\n }\n\n function reset(cm) {\n clear(cm);\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++)\n coverRange(cm, ranges[i].from(), ranges[i].to());\n }\n\n function update(cm) {\n if (!cm.somethingSelected()) return clear(cm);\n if (cm.listSelections().length > 1) return reset(cm);\n\n var from = cm.getCursor(\"start\"), to = cm.getCursor(\"end\");\n\n var array = cm.state.markedSelection;\n if (!array.length) return coverRange(cm, from, to);\n\n var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();\n if (!coverStart || !coverEnd || to.line - from.line <= CHUNK_SIZE ||\n cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)\n return reset(cm);\n\n while (cmp(from, coverStart.from) > 0) {\n array.shift().clear();\n coverStart = array[0].find();\n }\n if (cmp(from, coverStart.from) < 0) {\n if (coverStart.to.line - from.line < CHUNK_SIZE) {\n array.shift().clear();\n coverRange(cm, from, coverStart.to, 0);\n } else {\n coverRange(cm, from, coverStart.from, 0);\n }\n }\n\n while (cmp(to, coverEnd.to) < 0) {\n array.pop().clear();\n coverEnd = array[array.length - 1].find();\n }\n if (cmp(to, coverEnd.to) > 0) {\n if (to.line - coverEnd.from.line < CHUNK_SIZE) {\n array.pop().clear();\n coverRange(cm, coverEnd.from, to);\n } else {\n coverRange(cm, coverEnd.to, to);\n }\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"selectionPointer\", false, function(cm, val) {\n var data = cm.state.selectionPointer;\n if (data) {\n CodeMirror.off(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n CodeMirror.off(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n CodeMirror.off(window, \"scroll\", data.windowScroll);\n cm.off(\"cursorActivity\", reset);\n cm.off(\"scroll\", reset);\n cm.state.selectionPointer = null;\n cm.display.lineDiv.style.cursor = \"\";\n }\n if (val) {\n data = cm.state.selectionPointer = {\n value: typeof val == \"string\" ? val : \"default\",\n mousemove: function(event) { mousemove(cm, event); },\n mouseout: function(event) { mouseout(cm, event); },\n windowScroll: function() { reset(cm); },\n rects: null,\n mouseX: null, mouseY: null,\n willUpdate: false\n };\n CodeMirror.on(cm.getWrapperElement(), \"mousemove\", data.mousemove);\n CodeMirror.on(cm.getWrapperElement(), \"mouseout\", data.mouseout);\n CodeMirror.on(window, \"scroll\", data.windowScroll);\n cm.on(\"cursorActivity\", reset);\n cm.on(\"scroll\", reset);\n }\n });\n\n function mousemove(cm, event) {\n var data = cm.state.selectionPointer;\n if (event.buttons == null ? event.which : event.buttons) {\n data.mouseX = data.mouseY = null;\n } else {\n data.mouseX = event.clientX;\n data.mouseY = event.clientY;\n }\n scheduleUpdate(cm);\n }\n\n function mouseout(cm, event) {\n if (!cm.getWrapperElement().contains(event.relatedTarget)) {\n var data = cm.state.selectionPointer;\n data.mouseX = data.mouseY = null;\n scheduleUpdate(cm);\n }\n }\n\n function reset(cm) {\n cm.state.selectionPointer.rects = null;\n scheduleUpdate(cm);\n }\n\n function scheduleUpdate(cm) {\n if (!cm.state.selectionPointer.willUpdate) {\n cm.state.selectionPointer.willUpdate = true;\n setTimeout(function() {\n update(cm);\n cm.state.selectionPointer.willUpdate = false;\n }, 50);\n }\n }\n\n function update(cm) {\n var data = cm.state.selectionPointer;\n if (!data) return;\n if (data.rects == null && data.mouseX != null) {\n data.rects = [];\n if (cm.somethingSelected()) {\n for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)\n data.rects.push(sel.getBoundingClientRect());\n }\n }\n var inside = false;\n if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {\n var rect = data.rects[i];\n if (rect.left <= data.mouseX && rect.right >= data.mouseX &&\n rect.top <= data.mouseY && rect.bottom >= data.mouseY)\n inside = true;\n }\n var cursor = inside ? data.value : \"\";\n if (cm.display.lineDiv.style.cursor != cursor)\n cm.display.lineDiv.style.cursor = cursor;\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var cmds = CodeMirror.commands;\n var Pos = CodeMirror.Pos;\n function posEq(a, b) { return a.line == b.line && a.ch == b.ch; }\n\n // Kill 'ring'\n\n var killRing = [];\n function addToRing(str) {\n killRing.push(str);\n if (killRing.length > 50) killRing.shift();\n }\n function growRingTop(str) {\n if (!killRing.length) return addToRing(str);\n killRing[killRing.length - 1] += str;\n }\n function getFromRing(n) { return killRing[killRing.length - (n ? Math.min(n, 1) : 1)] || \"\"; }\n function popFromRing() { if (killRing.length > 1) killRing.pop(); return getFromRing(); }\n\n var lastKill = null;\n\n // Internal generic kill function, used by several mapped kill \"family\" functions.\n function _kill(cm, from, to, ring, text) {\n if (text == null) text = cm.getRange(from, to);\n\n if (ring == \"grow\" && lastKill && lastKill.cm == cm && posEq(from, lastKill.pos) && cm.isClean(lastKill.gen))\n growRingTop(text);\n else if (ring !== false)\n addToRing(text);\n cm.replaceRange(\"\", from, to, \"+delete\");\n\n if (ring == \"grow\") lastKill = {cm: cm, pos: from, gen: cm.changeGeneration()};\n else lastKill = null;\n }\n\n // Boundaries of various units\n\n function byChar(cm, pos, dir) {\n return cm.findPosH(pos, dir, \"char\", true);\n }\n\n function byWord(cm, pos, dir) {\n return cm.findPosH(pos, dir, \"word\", true);\n }\n\n function byLine(cm, pos, dir) {\n return cm.findPosV(pos, dir, \"line\", cm.doc.sel.goalColumn);\n }\n\n function byPage(cm, pos, dir) {\n return cm.findPosV(pos, dir, \"page\", cm.doc.sel.goalColumn);\n }\n\n function byParagraph(cm, pos, dir) {\n var no = pos.line, line = cm.getLine(no);\n var sawText = /\\S/.test(dir < 0 ? line.slice(0, pos.ch) : line.slice(pos.ch));\n var fst = cm.firstLine(), lst = cm.lastLine();\n for (;;) {\n no += dir;\n if (no < fst || no > lst)\n return cm.clipPos(Pos(no - dir, dir < 0 ? 0 : null));\n line = cm.getLine(no);\n var hasText = /\\S/.test(line);\n if (hasText) sawText = true;\n else if (sawText) return Pos(no, 0);\n }\n }\n\n function bySentence(cm, pos, dir) {\n var line = pos.line, ch = pos.ch;\n var text = cm.getLine(pos.line), sawWord = false;\n for (;;) {\n var next = text.charAt(ch + (dir < 0 ? -1 : 0));\n if (!next) { // End/beginning of line reached\n if (line == (dir < 0 ? cm.firstLine() : cm.lastLine())) return Pos(line, ch);\n text = cm.getLine(line + dir);\n if (!/\\S/.test(text)) return Pos(line, ch);\n line += dir;\n ch = dir < 0 ? text.length : 0;\n continue;\n }\n if (sawWord && /[!?.]/.test(next)) return Pos(line, ch + (dir > 0 ? 1 : 0));\n if (!sawWord) sawWord = /\\w/.test(next);\n ch += dir;\n }\n }\n\n function byExpr(cm, pos, dir) {\n var wrap;\n if (cm.findMatchingBracket && (wrap = cm.findMatchingBracket(pos, {strict: true}))\n && wrap.match && (wrap.forward ? 1 : -1) == dir)\n return dir > 0 ? Pos(wrap.to.line, wrap.to.ch + 1) : wrap.to;\n\n for (var first = true;; first = false) {\n var token = cm.getTokenAt(pos);\n var after = Pos(pos.line, dir < 0 ? token.start : token.end);\n if (first && dir > 0 && token.end == pos.ch || !/\\w/.test(token.string)) {\n var newPos = cm.findPosH(after, dir, \"char\");\n if (posEq(after, newPos)) return pos;\n else pos = newPos;\n } else {\n return after;\n }\n }\n }\n\n // Prefixes (only crudely supported)\n\n function getPrefix(cm, precise) {\n var digits = cm.state.emacsPrefix;\n if (!digits) return precise ? null : 1;\n clearPrefix(cm);\n return digits == \"-\" ? -1 : Number(digits);\n }\n\n function repeated(cmd) {\n var f = typeof cmd == \"string\" ? function(cm) { cm.execCommand(cmd); } : cmd;\n return function(cm) {\n var prefix = getPrefix(cm);\n f(cm);\n for (var i = 1; i < prefix; ++i) f(cm);\n };\n }\n\n function findEnd(cm, pos, by, dir) {\n var prefix = getPrefix(cm);\n if (prefix < 0) { dir = -dir; prefix = -prefix; }\n for (var i = 0; i < prefix; ++i) {\n var newPos = by(cm, pos, dir);\n if (posEq(newPos, pos)) break;\n pos = newPos;\n }\n return pos;\n }\n\n function move(by, dir) {\n var f = function(cm) {\n cm.extendSelection(findEnd(cm, cm.getCursor(), by, dir));\n };\n f.motion = true;\n return f;\n }\n\n function killTo(cm, by, dir, ring) {\n var selections = cm.listSelections(), cursor;\n var i = selections.length;\n while (i--) {\n cursor = selections[i].head;\n _kill(cm, cursor, findEnd(cm, cursor, by, dir), ring);\n }\n }\n\n function _killRegion(cm, ring) {\n if (cm.somethingSelected()) {\n var selections = cm.listSelections(), selection;\n var i = selections.length;\n while (i--) {\n selection = selections[i];\n _kill(cm, selection.anchor, selection.head, ring);\n }\n return true;\n }\n }\n\n function addPrefix(cm, digit) {\n if (cm.state.emacsPrefix) {\n if (digit != \"-\") cm.state.emacsPrefix += digit;\n return;\n }\n // Not active yet\n cm.state.emacsPrefix = digit;\n cm.on(\"keyHandled\", maybeClearPrefix);\n cm.on(\"inputRead\", maybeDuplicateInput);\n }\n\n var prefixPreservingKeys = {\"Alt-G\": true, \"Ctrl-X\": true, \"Ctrl-Q\": true, \"Ctrl-U\": true};\n\n function maybeClearPrefix(cm, arg) {\n if (!cm.state.emacsPrefixMap && !prefixPreservingKeys.hasOwnProperty(arg))\n clearPrefix(cm);\n }\n\n function clearPrefix(cm) {\n cm.state.emacsPrefix = null;\n cm.off(\"keyHandled\", maybeClearPrefix);\n cm.off(\"inputRead\", maybeDuplicateInput);\n }\n\n function maybeDuplicateInput(cm, event) {\n var dup = getPrefix(cm);\n if (dup > 1 && event.origin == \"+input\") {\n var one = event.text.join(\"\\n\"), txt = \"\";\n for (var i = 1; i < dup; ++i) txt += one;\n cm.replaceSelection(txt);\n }\n }\n\n function maybeRemovePrefixMap(cm, arg) {\n if (typeof arg == \"string\" && (/^\\d$/.test(arg) || arg == \"Ctrl-U\")) return;\n cm.removeKeyMap(prefixMap);\n cm.state.emacsPrefixMap = false;\n cm.off(\"keyHandled\", maybeRemovePrefixMap);\n cm.off(\"inputRead\", maybeRemovePrefixMap);\n }\n\n // Utilities\n\n cmds.setMark = function (cm) {\n cm.setCursor(cm.getCursor());\n cm.setExtending(!cm.getExtending());\n cm.on(\"change\", function() { cm.setExtending(false); });\n }\n\n function clearMark(cm) {\n cm.setExtending(false);\n cm.setCursor(cm.getCursor());\n }\n\n function makePrompt(msg) {\n var fragment = document.createDocumentFragment();\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"text\");\n input.style.width = \"10em\";\n fragment.appendChild(document.createTextNode(msg + \": \"));\n fragment.appendChild(input);\n return fragment;\n }\n\n function getInput(cm, msg, f) {\n if (cm.openDialog)\n cm.openDialog(makePrompt(msg), f, {bottom: true});\n else\n f(prompt(msg, \"\"));\n }\n\n function operateOnWord(cm, op) {\n var start = cm.getCursor(), end = cm.findPosH(start, 1, \"word\");\n cm.replaceRange(op(cm.getRange(start, end)), start, end);\n cm.setCursor(end);\n }\n\n function toEnclosingExpr(cm) {\n var pos = cm.getCursor(), line = pos.line, ch = pos.ch;\n var stack = [];\n while (line >= cm.firstLine()) {\n var text = cm.getLine(line);\n for (var i = ch == null ? text.length : ch; i > 0;) {\n var ch = text.charAt(--i);\n if (ch == \")\")\n stack.push(\"(\");\n else if (ch == \"]\")\n stack.push(\"[\");\n else if (ch == \"}\")\n stack.push(\"{\");\n else if (/[\\(\\{\\[]/.test(ch) && (!stack.length || stack.pop() != ch))\n return cm.extendSelection(Pos(line, i));\n }\n --line; ch = null;\n }\n }\n\n // Commands. Names should match emacs function names (albeit in camelCase)\n // except where emacs function names collide with code mirror core commands.\n\n cmds.killRegion = function(cm) {\n _kill(cm, cm.getCursor(\"start\"), cm.getCursor(\"end\"), true);\n };\n\n // Maps to emacs kill-line\n cmds.killLineEmacs = repeated(function(cm) {\n var start = cm.getCursor(), end = cm.clipPos(Pos(start.line));\n var text = cm.getRange(start, end);\n if (!/\\S/.test(text)) {\n text += \"\\n\";\n end = Pos(start.line + 1, 0);\n }\n _kill(cm, start, end, \"grow\", text);\n });\n\n cmds.killRingSave = function(cm) {\n addToRing(cm.getSelection());\n clearMark(cm);\n };\n\n cmds.yank = function(cm) {\n var start = cm.getCursor();\n cm.replaceRange(getFromRing(getPrefix(cm)), start, start, \"paste\");\n cm.setSelection(start, cm.getCursor());\n };\n\n cmds.yankPop = function(cm) {\n cm.replaceSelection(popFromRing(), \"around\", \"paste\");\n };\n\n cmds.forwardChar = move(byChar, 1);\n\n cmds.backwardChar = move(byChar, -1)\n\n cmds.deleteChar = function(cm) { killTo(cm, byChar, 1, false); };\n\n cmds.deleteForwardChar = function(cm) {\n _killRegion(cm, false) || killTo(cm, byChar, 1, false);\n };\n\n cmds.deleteBackwardChar = function(cm) {\n _killRegion(cm, false) || killTo(cm, byChar, -1, false);\n };\n\n cmds.forwardWord = move(byWord, 1);\n\n cmds.backwardWord = move(byWord, -1);\n\n cmds.killWord = function(cm) { killTo(cm, byWord, 1, \"grow\"); };\n\n cmds.backwardKillWord = function(cm) { killTo(cm, byWord, -1, \"grow\"); };\n\n cmds.nextLine = move(byLine, 1);\n\n cmds.previousLine = move(byLine, -1);\n\n cmds.scrollDownCommand = move(byPage, 1);\n\n cmds.scrollUpCommand = move(byPage, -1);\n\n cmds.backwardParagraph = move(byParagraph, -1);\n\n cmds.forwardParagraph = move(byParagraph, 1);\n\n cmds.backwardSentence = move(bySentence, -1);\n\n cmds.forwardSentence = move(bySentence, 1);\n\n cmds.killSentence = function(cm) { killTo(cm, bySentence, 1, \"grow\"); };\n\n cmds.backwardKillSentence = function(cm) {\n _kill(cm, cm.getCursor(), bySentence(cm, cm.getCursor(), 1), \"grow\");\n };\n\n cmds.killSexp = function(cm) { killTo(cm, byExpr, 1, \"grow\"); };\n\n cmds.backwardKillSexp = function(cm) { killTo(cm, byExpr, -1, \"grow\"); };\n\n cmds.forwardSexp = move(byExpr, 1);\n\n cmds.backwardSexp = move(byExpr, -1);\n\n cmds.markSexp = function(cm) {\n var cursor = cm.getCursor();\n cm.setSelection(findEnd(cm, cursor, byExpr, 1), cursor);\n };\n\n cmds.transposeSexps = function(cm) {\n var leftStart = byExpr(cm, cm.getCursor(), -1);\n var leftEnd = byExpr(cm, leftStart, 1);\n var rightEnd = byExpr(cm, leftEnd, 1);\n var rightStart = byExpr(cm, rightEnd, -1);\n cm.replaceRange(cm.getRange(rightStart, rightEnd) +\n cm.getRange(leftEnd, rightStart) +\n cm.getRange(leftStart, leftEnd), leftStart, rightEnd);\n };\n\n cmds.backwardUpList = repeated(toEnclosingExpr);\n\n cmds.justOneSpace = function(cm) {\n var pos = cm.getCursor(), from = pos.ch;\n var to = pos.ch, text = cm.getLine(pos.line);\n while (from && /\\s/.test(text.charAt(from - 1))) --from;\n while (to < text.length && /\\s/.test(text.charAt(to))) ++to;\n cm.replaceRange(\" \", Pos(pos.line, from), Pos(pos.line, to));\n };\n\n cmds.openLine = repeated(function(cm) {\n cm.replaceSelection(\"\\n\", \"start\");\n });\n\n // maps to emacs 'transpose-chars'\n cmds.transposeCharsRepeatable = repeated(function(cm) {\n cm.execCommand(\"transposeChars\");\n });\n\n cmds.capitalizeWord = repeated(function(cm) {\n operateOnWord(cm, function(w) {\n var letter = w.search(/\\w/);\n if (letter == -1) return w;\n return w.slice(0, letter) + w.charAt(letter).toUpperCase() +\n w.slice(letter + 1).toLowerCase();\n });\n });\n\n cmds.upcaseWord = repeated(function(cm) {\n operateOnWord(cm, function(w) { return w.toUpperCase(); });\n });\n\n cmds.downcaseWord = repeated(function(cm) {\n operateOnWord(cm, function(w) { return w.toLowerCase(); });\n });\n\n // maps to emacs 'undo'\n cmds.undoRepeatable = repeated(\"undo\");\n\n cmds.keyboardQuit = function(cm) {\n cm.execCommand(\"clearSearch\");\n clearMark(cm);\n }\n\n cmds.newline = repeated(function(cm) { cm.replaceSelection(\"\\n\", \"end\"); });\n\n cmds.gotoLine = function(cm) {\n var prefix = getPrefix(cm, true);\n if (prefix != null && prefix > 0) return cm.setCursor(prefix - 1);\n\n getInput(cm, \"Goto line\", function(str) {\n var num;\n if (str && !isNaN(num = Number(str)) && num == (num|0) && num > 0)\n cm.setCursor(num - 1);\n });\n };\n\n cmds.indentRigidly = function(cm) {\n cm.indentSelection(getPrefix(cm, true) || cm.getOption(\"indentUnit\"));\n };\n\n cmds.exchangePointAndMark = function(cm) {\n cm.setSelection(cm.getCursor(\"head\"), cm.getCursor(\"anchor\"));\n };\n\n cmds.quotedInsertTab = repeated(\"insertTab\");\n\n cmds.universalArgument = function addPrefixMap(cm) {\n cm.state.emacsPrefixMap = true;\n cm.addKeyMap(prefixMap);\n cm.on(\"keyHandled\", maybeRemovePrefixMap);\n cm.on(\"inputRead\", maybeRemovePrefixMap);\n };\n\n CodeMirror.emacs = {kill: _kill, killRegion: _killRegion, repeated: repeated};\n\n // Actual keymap\n var keyMap = CodeMirror.keyMap.emacs = CodeMirror.normalizeKeyMap({\n \"Ctrl-W\": \"killRegion\",\n \"Ctrl-K\": \"killLineEmacs\",\n \"Alt-W\": \"killRingSave\",\n \"Ctrl-Y\": \"yank\",\n \"Alt-Y\": \"yankPop\",\n \"Ctrl-Space\": \"setMark\",\n \"Ctrl-Shift-2\": \"setMark\",\n \"Ctrl-F\": \"forwardChar\",\n \"Ctrl-B\": \"backwardChar\",\n \"Right\": \"forwardChar\",\n \"Left\": \"backwardChar\",\n \"Ctrl-D\": \"deleteChar\",\n \"Delete\": \"deleteForwardChar\",\n \"Ctrl-H\": \"deleteBackwardChar\",\n \"Backspace\": \"deleteBackwardChar\",\n \"Alt-F\": \"forwardWord\",\n \"Alt-B\": \"backwardWord\",\n \"Alt-Right\": \"forwardWord\",\n \"Alt-Left\": \"backwardWord\",\n \"Alt-D\": \"killWord\",\n \"Alt-Backspace\": \"backwardKillWord\",\n \"Ctrl-N\": \"nextLine\",\n \"Ctrl-P\": \"previousLine\",\n \"Down\": \"nextLine\",\n \"Up\": \"previousLine\",\n \"Ctrl-A\": \"goLineStart\",\n \"Ctrl-E\": \"goLineEnd\",\n \"End\": \"goLineEnd\",\n \"Home\": \"goLineStart\",\n \"Alt-V\": \"scrollDownCommand\",\n \"Ctrl-V\": \"scrollUpCommand\",\n \"PageUp\": \"scrollUpCommand\",\n \"PageDown\": \"scrollDownCommand\",\n \"Ctrl-Up\": \"backwardParagraph\",\n \"Ctrl-Down\": \"forwardParagraph\",\n \"Alt-{\": \"backwardParagraph\",\n \"Alt-}\": \"forwardParagraph\",\n \"Alt-A\": \"backwardSentence\",\n \"Alt-E\": \"forwardSentence\",\n \"Alt-K\": \"killSentence\",\n \"Ctrl-X Delete\": \"backwardKillSentence\",\n \"Ctrl-Alt-K\": \"killSexp\",\n \"Ctrl-Alt-Backspace\": \"backwardKillSexp\",\n \"Ctrl-Alt-F\": \"forwardSexp\",\n \"Ctrl-Alt-B\": \"backwardSexp\",\n \"Shift-Ctrl-Alt-2\": \"markSexp\",\n \"Ctrl-Alt-T\": \"transposeSexps\",\n \"Ctrl-Alt-U\": \"backwardUpList\",\n \"Alt-Space\": \"justOneSpace\",\n \"Ctrl-O\": \"openLine\",\n \"Ctrl-T\": \"transposeCharsRepeatable\",\n \"Alt-C\": \"capitalizeWord\",\n \"Alt-U\": \"upcaseWord\",\n \"Alt-L\": \"downcaseWord\",\n \"Alt-;\": \"toggleComment\",\n \"Ctrl-/\": \"undoRepeatable\",\n \"Shift-Ctrl--\": \"undoRepeatable\",\n \"Ctrl-Z\": \"undoRepeatable\",\n \"Cmd-Z\": \"undoRepeatable\",\n \"Ctrl-X U\": \"undoRepeatable\",\n \"Shift-Ctrl-Z\": \"redo\",\n \"Shift-Alt-,\": \"goDocStart\",\n \"Shift-Alt-.\": \"goDocEnd\",\n \"Ctrl-S\": \"findPersistentNext\",\n \"Ctrl-R\": \"findPersistentPrev\",\n \"Ctrl-G\": \"keyboardQuit\",\n \"Shift-Alt-5\": \"replace\",\n \"Alt-/\": \"autocomplete\",\n \"Enter\": \"newlineAndIndent\",\n \"Ctrl-J\": \"newline\",\n \"Tab\": \"indentAuto\",\n \"Alt-G G\": \"gotoLine\",\n \"Ctrl-X Tab\": \"indentRigidly\",\n \"Ctrl-X Ctrl-X\": \"exchangePointAndMark\",\n \"Ctrl-X Ctrl-S\": \"save\",\n \"Ctrl-X Ctrl-W\": \"save\",\n \"Ctrl-X S\": \"saveAll\",\n \"Ctrl-X F\": \"open\",\n \"Ctrl-X K\": \"close\",\n \"Ctrl-X H\": \"selectAll\",\n \"Ctrl-Q Tab\": \"quotedInsertTab\",\n \"Ctrl-U\": \"universalArgument\",\n \"fallthrough\": \"default\"\n });\n\n var prefixMap = {\"Ctrl-G\": clearPrefix};\n function regPrefix(d) {\n prefixMap[d] = function(cm) { addPrefix(cm, d); };\n keyMap[\"Ctrl-\" + d] = function(cm) { addPrefix(cm, d); };\n prefixPreservingKeys[\"Ctrl-\" + d] = true;\n }\n for (var i = 0; i < 10; ++i) regPrefix(String(i));\n regPrefix(\"-\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// A rough approximation of Sublime Text's keybindings\n// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"), require(\"../addon/search/searchcursor\"), require(\"../addon/edit/matchbrackets\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\", \"../addon/search/searchcursor\", \"../addon/edit/matchbrackets\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var cmds = CodeMirror.commands;\n var Pos = CodeMirror.Pos;\n\n // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that.\n function findPosSubword(doc, start, dir) {\n if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1));\n var line = doc.getLine(start.line);\n if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0));\n var state = \"start\", type, startPos = start.ch;\n for (var pos = startPos, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) {\n var next = line.charAt(dir < 0 ? pos - 1 : pos);\n var cat = next != \"_\" && CodeMirror.isWordChar(next) ? \"w\" : \"o\";\n if (cat == \"w\" && next.toUpperCase() == next) cat = \"W\";\n if (state == \"start\") {\n if (cat != \"o\") { state = \"in\"; type = cat; }\n else startPos = pos + dir\n } else if (state == \"in\") {\n if (type != cat) {\n if (type == \"w\" && cat == \"W\" && dir < 0) pos--;\n if (type == \"W\" && cat == \"w\" && dir > 0) { // From uppercase to lowercase\n if (pos == startPos + 1) { type = \"w\"; continue; }\n else pos--;\n }\n break;\n }\n }\n }\n return Pos(start.line, pos);\n }\n\n function moveSubword(cm, dir) {\n cm.extendSelectionsBy(function(range) {\n if (cm.display.shift || cm.doc.extend || range.empty())\n return findPosSubword(cm.doc, range.head, dir);\n else\n return dir < 0 ? range.from() : range.to();\n });\n }\n\n cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); };\n cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); };\n\n cmds.scrollLineUp = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, \"local\");\n if (cm.getCursor().line >= visibleBottomLine)\n cm.execCommand(\"goLineUp\");\n }\n cm.scrollTo(null, info.top - cm.defaultTextHeight());\n };\n cmds.scrollLineDown = function(cm) {\n var info = cm.getScrollInfo();\n if (!cm.somethingSelected()) {\n var visibleTopLine = cm.lineAtHeight(info.top, \"local\")+1;\n if (cm.getCursor().line <= visibleTopLine)\n cm.execCommand(\"goLineDown\");\n }\n cm.scrollTo(null, info.top + cm.defaultTextHeight());\n };\n\n cmds.splitSelectionByLine = function(cm) {\n var ranges = cm.listSelections(), lineRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n for (var line = from.line; line <= to.line; ++line)\n if (!(to.line > from.line && line == to.line && to.ch == 0))\n lineRanges.push({anchor: line == from.line ? from : Pos(line, 0),\n head: line == to.line ? to : Pos(line)});\n }\n cm.setSelections(lineRanges, 0);\n };\n\n cmds.singleSelectionTop = function(cm) {\n var range = cm.listSelections()[0];\n cm.setSelection(range.anchor, range.head, {scroll: false});\n };\n\n cmds.selectLine = function(cm) {\n var ranges = cm.listSelections(), extended = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n extended.push({anchor: Pos(range.from().line, 0),\n head: Pos(range.to().line + 1, 0)});\n }\n cm.setSelections(extended);\n };\n\n function insertLine(cm, above) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n cm.operation(function() {\n var len = cm.listSelections().length, newSelection = [], last = -1;\n for (var i = 0; i < len; i++) {\n var head = cm.listSelections()[i].head;\n if (head.line <= last) continue;\n var at = Pos(head.line + (above ? 0 : 1), 0);\n cm.replaceRange(\"\\n\", at, null, \"+insertLine\");\n cm.indentLine(at.line, null, true);\n newSelection.push({head: at, anchor: at});\n last = head.line + 1;\n }\n cm.setSelections(newSelection);\n });\n cm.execCommand(\"indentAuto\");\n }\n\n cmds.insertLineAfter = function(cm) { return insertLine(cm, false); };\n\n cmds.insertLineBefore = function(cm) { return insertLine(cm, true); };\n\n function wordAt(cm, pos) {\n var start = pos.ch, end = start, line = cm.getLine(pos.line);\n while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start;\n while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end;\n return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)};\n }\n\n cmds.selectNextOccurrence = function(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel;\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n cm.setSelection(word.from, word.to);\n fullWord = true;\n } else {\n var text = cm.getRange(from, to);\n var query = fullWord ? new RegExp(\"\\\\b\" + text + \"\\\\b\") : text;\n var cur = cm.getSearchCursor(query, to);\n var found = cur.findNext();\n if (!found) {\n cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0));\n found = cur.findNext();\n }\n if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) return\n cm.addSelection(cur.from(), cur.to());\n }\n if (fullWord)\n cm.state.sublimeFindFullWord = cm.doc.sel;\n };\n\n cmds.skipAndSelectNextOccurrence = function(cm) {\n var prevAnchor = cm.getCursor(\"anchor\"), prevHead = cm.getCursor(\"head\");\n cmds.selectNextOccurrence(cm);\n if (CodeMirror.cmpPos(prevAnchor, prevHead) != 0) {\n cm.doc.setSelections(cm.doc.listSelections()\n .filter(function (sel) {\n return sel.anchor != prevAnchor || sel.head != prevHead;\n }));\n }\n }\n\n function addCursorToSelection(cm, dir) {\n var ranges = cm.listSelections(), newRanges = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var newAnchor = cm.findPosV(\n range.anchor, dir, \"line\", range.anchor.goalColumn);\n var newHead = cm.findPosV(\n range.head, dir, \"line\", range.head.goalColumn);\n newAnchor.goalColumn = range.anchor.goalColumn != null ?\n range.anchor.goalColumn : cm.cursorCoords(range.anchor, \"div\").left;\n newHead.goalColumn = range.head.goalColumn != null ?\n range.head.goalColumn : cm.cursorCoords(range.head, \"div\").left;\n var newRange = {anchor: newAnchor, head: newHead};\n newRanges.push(range);\n newRanges.push(newRange);\n }\n cm.setSelections(newRanges);\n }\n cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); };\n cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); };\n\n function isSelectedRange(ranges, from, to) {\n for (var i = 0; i < ranges.length; i++)\n if (CodeMirror.cmpPos(ranges[i].from(), from) == 0 &&\n CodeMirror.cmpPos(ranges[i].to(), to) == 0) return true\n return false\n }\n\n var mirror = \"(){}[]\";\n function selectBetweenBrackets(cm) {\n var ranges = cm.listSelections(), newRanges = []\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1);\n if (!opening) return false;\n for (;;) {\n var closing = cm.scanForBracket(pos, 1);\n if (!closing) return false;\n if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) {\n var startPos = Pos(opening.pos.line, opening.pos.ch + 1);\n if (CodeMirror.cmpPos(startPos, range.from()) == 0 &&\n CodeMirror.cmpPos(closing.pos, range.to()) == 0) {\n opening = cm.scanForBracket(opening.pos, -1);\n if (!opening) return false;\n } else {\n newRanges.push({anchor: startPos, head: closing.pos});\n break;\n }\n }\n pos = Pos(closing.pos.line, closing.pos.ch + 1);\n }\n }\n cm.setSelections(newRanges);\n return true;\n }\n\n cmds.selectScope = function(cm) {\n selectBetweenBrackets(cm) || cm.execCommand(\"selectAll\");\n };\n cmds.selectBetweenBrackets = function(cm) {\n if (!selectBetweenBrackets(cm)) return CodeMirror.Pass;\n };\n\n function puncType(type) {\n return !type ? null : /\\bpunctuation\\b/.test(type) ? type : undefined\n }\n\n cmds.goToBracket = function(cm) {\n cm.extendSelectionsBy(function(range) {\n var next = cm.scanForBracket(range.head, 1, puncType(cm.getTokenTypeAt(range.head)));\n if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos;\n var prev = cm.scanForBracket(range.head, -1, puncType(cm.getTokenTypeAt(Pos(range.head.line, range.head.ch + 1))));\n return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head;\n });\n };\n\n cmds.swapLineUp = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from().line - 1, to = range.to().line;\n newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch),\n head: Pos(range.head.line - 1, range.head.ch)});\n if (range.to().ch == 0 && !range.empty()) --to;\n if (from > at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = 0; i < linesToMove.length; i += 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n if (to > cm.lastLine())\n cm.replaceRange(\"\\n\" + line, Pos(cm.lastLine()), null, \"+swapLine\");\n else\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.setSelections(newSels);\n cm.scrollIntoView();\n });\n };\n\n cmds.swapLineDown = function(cm) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var range = ranges[i], from = range.to().line + 1, to = range.from().line;\n if (range.to().ch == 0 && !range.empty()) from--;\n if (from < at) linesToMove.push(from, to);\n else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to;\n at = to;\n }\n cm.operation(function() {\n for (var i = linesToMove.length - 2; i >= 0; i -= 2) {\n var from = linesToMove[i], to = linesToMove[i + 1];\n var line = cm.getLine(from);\n if (from == cm.lastLine())\n cm.replaceRange(\"\", Pos(from - 1), Pos(from), \"+swapLine\");\n else\n cm.replaceRange(\"\", Pos(from, 0), Pos(from + 1, 0), \"+swapLine\");\n cm.replaceRange(line + \"\\n\", Pos(to, 0), null, \"+swapLine\");\n }\n cm.scrollIntoView();\n });\n };\n\n cmds.toggleCommentIndented = function(cm) {\n cm.toggleComment({ indent: true });\n }\n\n cmds.joinLines = function(cm) {\n var ranges = cm.listSelections(), joined = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i], from = range.from();\n var start = from.line, end = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == end)\n end = ranges[++i].to().line;\n joined.push({start: start, end: end, anchor: !range.empty() && from});\n }\n cm.operation(function() {\n var offset = 0, ranges = [];\n for (var i = 0; i < joined.length; i++) {\n var obj = joined[i];\n var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head;\n for (var line = obj.start; line <= obj.end; line++) {\n var actual = line - offset;\n if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1);\n if (actual < cm.lastLine()) {\n cm.replaceRange(\" \", Pos(actual), Pos(actual + 1, /^\\s*/.exec(cm.getLine(actual + 1))[0].length));\n ++offset;\n }\n }\n ranges.push({anchor: anchor || head, head: head});\n }\n cm.setSelections(ranges, 0);\n });\n };\n\n cmds.duplicateLine = function(cm) {\n cm.operation(function() {\n var rangeCount = cm.listSelections().length;\n for (var i = 0; i < rangeCount; i++) {\n var range = cm.listSelections()[i];\n if (range.empty())\n cm.replaceRange(cm.getLine(range.head.line) + \"\\n\", Pos(range.head.line, 0));\n else\n cm.replaceRange(cm.getRange(range.from(), range.to()), range.from());\n }\n cm.scrollIntoView();\n });\n };\n\n\n function sortLines(cm, caseSensitive, direction) {\n if (cm.isReadOnly()) return CodeMirror.Pass\n var ranges = cm.listSelections(), toSort = [], selected;\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) continue;\n var from = range.from().line, to = range.to().line;\n while (i < ranges.length - 1 && ranges[i + 1].from().line == to)\n to = ranges[++i].to().line;\n if (!ranges[i].to().ch) to--;\n toSort.push(from, to);\n }\n if (toSort.length) selected = true;\n else toSort.push(cm.firstLine(), cm.lastLine());\n\n cm.operation(function() {\n var ranges = [];\n for (var i = 0; i < toSort.length; i += 2) {\n var from = toSort[i], to = toSort[i + 1];\n var start = Pos(from, 0), end = Pos(to);\n var lines = cm.getRange(start, end, false);\n if (caseSensitive)\n lines.sort(function(a, b) { return a < b ? -direction : a == b ? 0 : direction; });\n else\n lines.sort(function(a, b) {\n var au = a.toUpperCase(), bu = b.toUpperCase();\n if (au != bu) { a = au; b = bu; }\n return a < b ? -direction : a == b ? 0 : direction;\n });\n cm.replaceRange(lines, start, end);\n if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)});\n }\n if (selected) cm.setSelections(ranges, 0);\n });\n }\n\n cmds.sortLines = function(cm) { sortLines(cm, true, 1); };\n cmds.reverseSortLines = function(cm) { sortLines(cm, true, -1); };\n cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false, 1); };\n cmds.reverseSortLinesInsensitive = function(cm) { sortLines(cm, false, -1); };\n\n cmds.nextBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n var current = marks.shift();\n var found = current.find();\n if (found) {\n marks.push(current);\n return cm.setSelection(found.from, found.to);\n }\n }\n };\n\n cmds.prevBookmark = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) while (marks.length) {\n marks.unshift(marks.pop());\n var found = marks[marks.length - 1].find();\n if (!found)\n marks.pop();\n else\n return cm.setSelection(found.from, found.to);\n }\n };\n\n cmds.toggleBookmark = function(cm) {\n var ranges = cm.listSelections();\n var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []);\n for (var i = 0; i < ranges.length; i++) {\n var from = ranges[i].from(), to = ranges[i].to();\n var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to);\n for (var j = 0; j < found.length; j++) {\n if (found[j].sublimeBookmark) {\n found[j].clear();\n for (var k = 0; k < marks.length; k++)\n if (marks[k] == found[j])\n marks.splice(k--, 1);\n break;\n }\n }\n if (j == found.length)\n marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false}));\n }\n };\n\n cmds.clearBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks;\n if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear();\n marks.length = 0;\n };\n\n cmds.selectBookmarks = function(cm) {\n var marks = cm.state.sublimeBookmarks, ranges = [];\n if (marks) for (var i = 0; i < marks.length; i++) {\n var found = marks[i].find();\n if (!found)\n marks.splice(i--, 0);\n else\n ranges.push({anchor: found.from, head: found.to});\n }\n if (ranges.length)\n cm.setSelections(ranges, 0);\n };\n\n function modifyWordOrSelection(cm, mod) {\n cm.operation(function() {\n var ranges = cm.listSelections(), indices = [], replacements = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n if (range.empty()) { indices.push(i); replacements.push(\"\"); }\n else replacements.push(mod(cm.getRange(range.from(), range.to())));\n }\n cm.replaceSelections(replacements, \"around\", \"case\");\n for (var i = indices.length - 1, at; i >= 0; i--) {\n var range = ranges[indices[i]];\n if (at && CodeMirror.cmpPos(range.head, at) > 0) continue;\n var word = wordAt(cm, range.head);\n at = word.from;\n cm.replaceRange(mod(word.word), word.from, word.to);\n }\n });\n }\n\n cmds.smartBackspace = function(cm) {\n if (cm.somethingSelected()) return CodeMirror.Pass;\n\n cm.operation(function() {\n var cursors = cm.listSelections();\n var indentUnit = cm.getOption(\"indentUnit\");\n\n for (var i = cursors.length - 1; i >= 0; i--) {\n var cursor = cursors[i].head;\n var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor);\n var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption(\"tabSize\"));\n\n // Delete by one character by default\n var deletePos = cm.findPosH(cursor, -1, \"char\", false);\n\n if (toStartOfLine && !/\\S/.test(toStartOfLine) && column % indentUnit == 0) {\n var prevIndent = new Pos(cursor.line,\n CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit));\n\n // Smart delete only if we found a valid prevIndent location\n if (prevIndent.ch != cursor.ch) deletePos = prevIndent;\n }\n\n cm.replaceRange(\"\", deletePos, cursor, \"+delete\");\n }\n });\n };\n\n cmds.delLineRight = function(cm) {\n cm.operation(function() {\n var ranges = cm.listSelections();\n for (var i = ranges.length - 1; i >= 0; i--)\n cm.replaceRange(\"\", ranges[i].anchor, Pos(ranges[i].to().line), \"+delete\");\n cm.scrollIntoView();\n });\n };\n\n cmds.upcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); });\n };\n cmds.downcaseAtCursor = function(cm) {\n modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); });\n };\n\n cmds.setSublimeMark = function(cm) {\n if (cm.state.sublimeMark) cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n };\n cmds.selectToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) cm.setSelection(cm.getCursor(), found);\n };\n cmds.deleteToSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n var from = cm.getCursor(), to = found;\n if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; }\n cm.state.sublimeKilled = cm.getRange(from, to);\n cm.replaceRange(\"\", from, to);\n }\n };\n cmds.swapWithSublimeMark = function(cm) {\n var found = cm.state.sublimeMark && cm.state.sublimeMark.find();\n if (found) {\n cm.state.sublimeMark.clear();\n cm.state.sublimeMark = cm.setBookmark(cm.getCursor());\n cm.setCursor(found);\n }\n };\n cmds.sublimeYank = function(cm) {\n if (cm.state.sublimeKilled != null)\n cm.replaceSelection(cm.state.sublimeKilled, null, \"paste\");\n };\n\n cmds.showInCenter = function(cm) {\n var pos = cm.cursorCoords(null, \"local\");\n cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2);\n };\n\n function getTarget(cm) {\n var from = cm.getCursor(\"from\"), to = cm.getCursor(\"to\");\n if (CodeMirror.cmpPos(from, to) == 0) {\n var word = wordAt(cm, from);\n if (!word.word) return;\n from = word.from;\n to = word.to;\n }\n return {from: from, to: to, query: cm.getRange(from, to), word: word};\n }\n\n function findAndGoTo(cm, forward) {\n var target = getTarget(cm);\n if (!target) return;\n var query = target.query;\n var cur = cm.getSearchCursor(query, forward ? target.to : target.from);\n\n if (forward ? cur.findNext() : cur.findPrevious()) {\n cm.setSelection(cur.from(), cur.to());\n } else {\n cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0)\n : cm.clipPos(Pos(cm.lastLine())));\n if (forward ? cur.findNext() : cur.findPrevious())\n cm.setSelection(cur.from(), cur.to());\n else if (target.word)\n cm.setSelection(target.from, target.to);\n }\n };\n cmds.findUnder = function(cm) { findAndGoTo(cm, true); };\n cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); };\n cmds.findAllUnder = function(cm) {\n var target = getTarget(cm);\n if (!target) return;\n var cur = cm.getSearchCursor(target.query);\n var matches = [];\n var primaryIndex = -1;\n while (cur.findNext()) {\n matches.push({anchor: cur.from(), head: cur.to()});\n if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch)\n primaryIndex++;\n }\n cm.setSelections(matches, primaryIndex);\n };\n\n\n var keyMap = CodeMirror.keyMap;\n keyMap.macSublime = {\n \"Cmd-Left\": \"goLineStartSmart\",\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-Left\": \"goSubwordLeft\",\n \"Ctrl-Right\": \"goSubwordRight\",\n \"Ctrl-Alt-Up\": \"scrollLineUp\",\n \"Ctrl-Alt-Down\": \"scrollLineDown\",\n \"Cmd-L\": \"selectLine\",\n \"Shift-Cmd-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Cmd-Enter\": \"insertLineAfter\",\n \"Shift-Cmd-Enter\": \"insertLineBefore\",\n \"Cmd-D\": \"selectNextOccurrence\",\n \"Shift-Cmd-Space\": \"selectScope\",\n \"Shift-Cmd-M\": \"selectBetweenBrackets\",\n \"Cmd-M\": \"goToBracket\",\n \"Cmd-Ctrl-Up\": \"swapLineUp\",\n \"Cmd-Ctrl-Down\": \"swapLineDown\",\n \"Cmd-/\": \"toggleCommentIndented\",\n \"Cmd-J\": \"joinLines\",\n \"Shift-Cmd-D\": \"duplicateLine\",\n \"F5\": \"sortLines\",\n \"Shift-F5\": \"reverseSortLines\",\n \"Cmd-F5\": \"sortLinesInsensitive\",\n \"Shift-Cmd-F5\": \"reverseSortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Cmd-F2\": \"toggleBookmark\",\n \"Shift-Cmd-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Cmd-K Cmd-D\": \"skipAndSelectNextOccurrence\",\n \"Cmd-K Cmd-K\": \"delLineRight\",\n \"Cmd-K Cmd-U\": \"upcaseAtCursor\",\n \"Cmd-K Cmd-L\": \"downcaseAtCursor\",\n \"Cmd-K Cmd-Space\": \"setSublimeMark\",\n \"Cmd-K Cmd-A\": \"selectToSublimeMark\",\n \"Cmd-K Cmd-W\": \"deleteToSublimeMark\",\n \"Cmd-K Cmd-X\": \"swapWithSublimeMark\",\n \"Cmd-K Cmd-Y\": \"sublimeYank\",\n \"Cmd-K Cmd-C\": \"showInCenter\",\n \"Cmd-K Cmd-G\": \"clearBookmarks\",\n \"Cmd-K Cmd-Backspace\": \"delLineLeft\",\n \"Cmd-K Cmd-1\": \"foldAll\",\n \"Cmd-K Cmd-0\": \"unfoldAll\",\n \"Cmd-K Cmd-J\": \"unfoldAll\",\n \"Ctrl-Shift-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Shift-Down\": \"addCursorToNextLine\",\n \"Cmd-F3\": \"findUnder\",\n \"Shift-Cmd-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Cmd-[\": \"fold\",\n \"Shift-Cmd-]\": \"unfold\",\n \"Cmd-I\": \"findIncremental\",\n \"Shift-Cmd-I\": \"findIncrementalReverse\",\n \"Cmd-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"macDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.macSublime);\n\n keyMap.pcSublime = {\n \"Shift-Tab\": \"indentLess\",\n \"Shift-Ctrl-K\": \"deleteLine\",\n \"Alt-Q\": \"wrapLines\",\n \"Ctrl-T\": \"transposeChars\",\n \"Alt-Left\": \"goSubwordLeft\",\n \"Alt-Right\": \"goSubwordRight\",\n \"Ctrl-Up\": \"scrollLineUp\",\n \"Ctrl-Down\": \"scrollLineDown\",\n \"Ctrl-L\": \"selectLine\",\n \"Shift-Ctrl-L\": \"splitSelectionByLine\",\n \"Esc\": \"singleSelectionTop\",\n \"Ctrl-Enter\": \"insertLineAfter\",\n \"Shift-Ctrl-Enter\": \"insertLineBefore\",\n \"Ctrl-D\": \"selectNextOccurrence\",\n \"Shift-Ctrl-Space\": \"selectScope\",\n \"Shift-Ctrl-M\": \"selectBetweenBrackets\",\n \"Ctrl-M\": \"goToBracket\",\n \"Shift-Ctrl-Up\": \"swapLineUp\",\n \"Shift-Ctrl-Down\": \"swapLineDown\",\n \"Ctrl-/\": \"toggleCommentIndented\",\n \"Ctrl-J\": \"joinLines\",\n \"Shift-Ctrl-D\": \"duplicateLine\",\n \"F9\": \"sortLines\",\n \"Shift-F9\": \"reverseSortLines\",\n \"Ctrl-F9\": \"sortLinesInsensitive\",\n \"Shift-Ctrl-F9\": \"reverseSortLinesInsensitive\",\n \"F2\": \"nextBookmark\",\n \"Shift-F2\": \"prevBookmark\",\n \"Ctrl-F2\": \"toggleBookmark\",\n \"Shift-Ctrl-F2\": \"clearBookmarks\",\n \"Alt-F2\": \"selectBookmarks\",\n \"Backspace\": \"smartBackspace\",\n \"Ctrl-K Ctrl-D\": \"skipAndSelectNextOccurrence\",\n \"Ctrl-K Ctrl-K\": \"delLineRight\",\n \"Ctrl-K Ctrl-U\": \"upcaseAtCursor\",\n \"Ctrl-K Ctrl-L\": \"downcaseAtCursor\",\n \"Ctrl-K Ctrl-Space\": \"setSublimeMark\",\n \"Ctrl-K Ctrl-A\": \"selectToSublimeMark\",\n \"Ctrl-K Ctrl-W\": \"deleteToSublimeMark\",\n \"Ctrl-K Ctrl-X\": \"swapWithSublimeMark\",\n \"Ctrl-K Ctrl-Y\": \"sublimeYank\",\n \"Ctrl-K Ctrl-C\": \"showInCenter\",\n \"Ctrl-K Ctrl-G\": \"clearBookmarks\",\n \"Ctrl-K Ctrl-Backspace\": \"delLineLeft\",\n \"Ctrl-K Ctrl-1\": \"foldAll\",\n \"Ctrl-K Ctrl-0\": \"unfoldAll\",\n \"Ctrl-K Ctrl-J\": \"unfoldAll\",\n \"Ctrl-Alt-Up\": \"addCursorToPrevLine\",\n \"Ctrl-Alt-Down\": \"addCursorToNextLine\",\n \"Ctrl-F3\": \"findUnder\",\n \"Shift-Ctrl-F3\": \"findUnderPrevious\",\n \"Alt-F3\": \"findAllUnder\",\n \"Shift-Ctrl-[\": \"fold\",\n \"Shift-Ctrl-]\": \"unfold\",\n \"Ctrl-I\": \"findIncremental\",\n \"Shift-Ctrl-I\": \"findIncrementalReverse\",\n \"Ctrl-H\": \"replace\",\n \"F3\": \"findNext\",\n \"Shift-F3\": \"findPrev\",\n \"fallthrough\": \"pcDefault\"\n };\n CodeMirror.normalizeKeyMap(keyMap.pcSublime);\n\n var mac = keyMap.default == keyMap.macDefault;\n keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime;\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nfunction Context(indented, column, type, info, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.info = info;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\" && type != \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n for (;;) {\n if (!context || context.type == \"top\") return true;\n if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n context = context.prev;\n }\n}\n\nCodeMirror.defineMode(\"clike\", function(config, parserConfig) {\n var indentUnit = config.indentUnit,\n statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n keywords = parserConfig.keywords || {},\n types = parserConfig.types || {},\n builtin = parserConfig.builtin || {},\n blockKeywords = parserConfig.blockKeywords || {},\n defKeywords = parserConfig.defKeywords || {},\n atoms = parserConfig.atoms || {},\n hooks = parserConfig.hooks || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false,\n indentSwitch = parserConfig.indentSwitch !== false,\n namespaceSeparator = parserConfig.namespaceSeparator,\n isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n numberStart = parserConfig.numberStart || /[\\d\\.]/,\n number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n // An optional function that takes a {string} token and returns true if it\n // should be treated as a builtin.\n isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n var curPunc, isDefKeyword;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (numberStart.test(ch)) {\n stream.backUp(1)\n if (stream.match(number)) return \"number\"\n stream.next()\n }\n if (isPunctuationChar.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n return \"operator\";\n }\n stream.eatWhile(isIdentifierChar);\n if (namespaceSeparator) while (stream.match(namespaceSeparator))\n stream.eatWhile(isIdentifierChar);\n\n var cur = stream.current();\n if (contains(keywords, cur)) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n if (contains(defKeywords, cur)) isDefKeyword = true;\n return \"keyword\";\n }\n if (contains(types, cur)) return \"type\";\n if (contains(builtin, cur)\n || (isReservedIdentifier && isReservedIdentifier(cur))) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n return \"builtin\";\n }\n if (contains(atoms, cur)) return \"atom\";\n return \"variable\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function maybeEOL(stream, state) {\n if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n return {\n tokenize: null,\n context: new Context((basecolumn || 0) - indentUnit, 0, \"top\", null, false),\n indented: 0,\n startOfLine: true,\n prevToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n curPunc = isDefKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n while (state.context.type == \"statement\") popContext(state);\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n pushContext(state, stream.column(), \"statement\", stream.current());\n }\n\n if (style == \"variable\" &&\n ((state.prevToken == \"def\" ||\n (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n style = \"def\";\n\n if (hooks.token) {\n var result = hooks.token(stream, state, style);\n if (result !== undefined) style = result;\n }\n\n if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n state.startOfLine = false;\n state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n maybeEOL(stream, state);\n return style;\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n if (parserConfig.dontIndentStatements)\n while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n ctx = ctx.prev\n if (hooks.indent) {\n var hook = hooks.indent(state, ctx, textAfter, indentUnit);\n if (typeof hook == \"number\") return hook\n }\n var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n return ctx.indented\n }\n if (ctx.type == \"statement\")\n return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit);\n if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n return ctx.column + (closing ? 0 : 1);\n if (ctx.type == \")\" && !closing)\n return ctx.indented + statementIndentUnit;\n\n return ctx.indented + (closing ? 0 : indentUnit) +\n (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 0);\n },\n\n electricInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: \"//\",\n fold: \"brace\"\n };\n});\n\n function words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n }\n function contains(words, word) {\n if (typeof words === \"function\") {\n return words(word);\n } else {\n return words.propertyIsEnumerable(word);\n }\n }\n var cKeywords = \"auto if break case register continue return default do sizeof \" +\n \"static else struct switch extern typedef union for goto while enum const \" +\n \"volatile inline restrict asm fortran\";\n\n // Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\n var cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n \"explicit export final friend import module mutable namespace new noexcept \" +\n \"not not_eq operator or or_eq override private protected public \" +\n \"reinterpret_cast requires static_assert static_cast template this \" +\n \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\n var objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\n var objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n // Do not use this. Use the cTypes function below. This is global just to avoid\n // excessive calls when cTypes is being called multiple times during a parse.\n var basicCTypes = words(\"int long char short double float unsigned signed \" +\n \"void bool\");\n\n // Do not use this. Use the objCTypes function below. This is global just to avoid\n // excessive calls when objCTypes is being called multiple times during a parse.\n var basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n // Returns true if identifier is a \"C\" type.\n // C type is defined as those that are reserved by the compiler (basicTypes),\n // and those that end in _t (Reserved by POSIX for types)\n // http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\n function cTypes(identifier) {\n return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n }\n\n // Returns true if identifier is a \"Objective C\" type.\n function objCTypes(identifier) {\n return cTypes(identifier) || contains(basicObjCTypes, identifier);\n }\n\n var cBlockKeywords = \"case do else for if switch while struct enum union\";\n var cDefKeywords = \"struct enum union\";\n\n function cppHook(stream, state) {\n if (!state.startOfLine) return false\n for (var ch, next = null; ch = stream.peek();) {\n if (ch == \"\\\\\" && stream.match(/^.$/)) {\n next = cppHook\n break\n } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n break\n }\n stream.next()\n }\n state.tokenize = next\n return \"meta\"\n }\n\n function pointerHook(_stream, state) {\n if (state.prevToken == \"type\") return \"type\";\n return false;\n }\n\n // For C and C++ (and ObjC): identifiers starting with __\n // or _ followed by a capital letter are reserved for the compiler.\n function cIsReservedIdentifier(token) {\n if (!token || token.length < 2) return false;\n if (token[0] != '_') return false;\n return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n }\n\n function cpp14Literal(stream) {\n stream.eatWhile(/[\\w\\.']/);\n return \"number\";\n }\n\n function cpp11StringHook(stream, state) {\n stream.backUp(1);\n // Raw strings.\n if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n if (!match) {\n return false;\n }\n state.cpp11RawStringDelim = match[1];\n state.tokenize = tokenRawString;\n return tokenRawString(stream, state);\n }\n // Unicode strings/chars.\n if (stream.match(/^(?:u8|u|U|L)/)) {\n if (stream.match(/^[\"']/, /* eat */ false)) {\n return \"string\";\n }\n return false;\n }\n // Ignore this hook.\n stream.next();\n return false;\n }\n\n function cppLooksLikeConstructor(word) {\n var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n return lastTwo && lastTwo[1] == lastTwo[2];\n }\n\n // C#-style strings where \"\" escapes a quote.\n function tokenAtString(stream, state) {\n var next;\n while ((next = stream.next()) != null) {\n if (next == '\"' && !stream.eat('\"')) {\n state.tokenize = null;\n break;\n }\n }\n return \"string\";\n }\n\n // C++11 raw string literal is \"( anything )\", where\n // can be a string up to 16 characters long.\n function tokenRawString(stream, state) {\n // Escape characters that have special regex meanings.\n var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n if (match)\n state.tokenize = null;\n else\n stream.skipToEnd();\n return \"string\";\n }\n\n function def(mimes, mode) {\n if (typeof mimes == \"string\") mimes = [mimes];\n var words = [];\n function add(obj) {\n if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))\n words.push(prop);\n }\n add(mode.keywords);\n add(mode.types);\n add(mode.builtin);\n add(mode.atoms);\n if (words.length) {\n mode.helperType = mimes[0];\n CodeMirror.registerHelper(\"hintWords\", mimes[0], words);\n }\n\n for (var i = 0; i < mimes.length; ++i)\n CodeMirror.defineMIME(mimes[i], mode);\n }\n\n def([\"text/x-csrc\", \"text/x-c\", \"text/x-chdr\"], {\n name: \"clike\",\n keywords: words(cKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n defKeywords: words(cDefKeywords),\n typeFirstDefinitions: true,\n atoms: words(\"NULL true false\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n },\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def([\"text/x-c++src\", \"text/x-c++hdr\"], {\n name: \"clike\",\n keywords: words(cKeywords + \" \" + cppKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords + \" class try catch\"),\n defKeywords: words(cDefKeywords + \" class namespace\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false NULL nullptr\"),\n dontIndentStatements: /^template$/,\n isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\",\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-java\", {\n name: \"clike\",\n keywords: words(\"abstract assert break case catch class const continue default \" +\n \"do else enum extends final finally for goto if implements import \" +\n \"instanceof interface native new package private protected public \" +\n \"return static strictfp super switch synchronized this throw throws transient \" +\n \"try volatile while @interface\"),\n types: words(\"byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n blockKeywords: words(\"catch class do else finally for if switch try while\"),\n defKeywords: words(\"class interface enum @interface\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n hooks: {\n \"@\": function(stream) {\n // Don't match the @interface keyword.\n if (stream.match('interface', false)) return false;\n\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n },\n modeProps: {fold: [\"brace\", \"import\"]}\n });\n\n def(\"text/x-csharp\", {\n name: \"clike\",\n keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n \" default delegate do else enum event explicit extern finally fixed for\" +\n \" foreach goto if implicit in interface internal is lock namespace new\" +\n \" operator out override params private protected public readonly ref return sealed\" +\n \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n \" global group into join let orderby partial remove select set value var yield\"),\n types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n \" UInt64 bool byte char decimal double short int long object\" +\n \" sbyte float string ushort uint ulong\"),\n blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n defKeywords: words(\"class interface namespace struct var\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream, state) {\n if (stream.eat('\"')) {\n state.tokenize = tokenAtString;\n return tokenAtString(stream, state);\n }\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n }\n });\n\n function tokenTripleString(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"\"\"')) {\n state.tokenize = null;\n break;\n }\n escaped = stream.next() == \"\\\\\" && !escaped;\n }\n return \"string\";\n }\n\n function tokenNestedComment(depth) {\n return function (stream, state) {\n var ch\n while (ch = stream.next()) {\n if (ch == \"*\" && stream.eat(\"/\")) {\n if (depth == 1) {\n state.tokenize = null\n break\n } else {\n state.tokenize = tokenNestedComment(depth - 1)\n return state.tokenize(stream, state)\n }\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n state.tokenize = tokenNestedComment(depth + 1)\n return state.tokenize(stream, state)\n }\n }\n return \"comment\"\n }\n }\n\n def(\"text/x-scala\", {\n name: \"clike\",\n keywords: words(\n /* scala */\n \"abstract case catch class def do else extends final finally for forSome if \" +\n \"implicit import lazy match new null object override package private protected return \" +\n \"sealed super this throw trait try type val var while with yield _ \" +\n\n /* package scala */\n \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n \"readChar readInt readLong readFloat readDouble\"\n ),\n types: words(\n \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n ),\n multiLineStrings: true,\n blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n defKeywords: words(\"class enum def object package trait type val var\"),\n atoms: words(\"true false null\"),\n indentStatements: false,\n indentSwitch: false,\n isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match('\"\"')) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n \"=\": function(stream, state) {\n var cx = state.context\n if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n return \"operator\"\n } else {\n return false\n }\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n }\n },\n modeProps: {closeBrackets: {pairs: '()[]{}\"\"', triples: '\"'}}\n });\n\n function tokenKotlinString(tripleString){\n return function (stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n next = stream.next();\n if(!escaped && next == \"$\" && stream.match('{'))\n stream.skipTo(\"}\");\n escaped = !escaped && next == \"\\\\\" && !tripleString;\n }\n if (end || !tripleString)\n state.tokenize = null;\n return \"string\";\n }\n }\n\n def(\"text/x-kotlin\", {\n name: \"clike\",\n keywords: words(\n /*keywords*/\n \"package as typealias class interface this super val operator \" +\n \"var fun for is in This throw return annotation \" +\n \"break continue object if else while do try when !in !is as? \" +\n\n /*soft keywords*/\n \"file import where by get set abstract enum open inner override private public internal \" +\n \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n \"external annotation crossinline const operator infix suspend actual expect setparam value\"\n ),\n types: words(\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n ),\n intendSwitch: false,\n indentStatements: false,\n multiLineStrings: true,\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n defKeywords: words(\"class val var object interface fun\"),\n atoms: words(\"true false null this\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '*': function(_stream, state) {\n return state.prevToken == '.' ? 'variable' : 'operator';\n },\n '\"': function(stream, state) {\n state.tokenize = tokenKotlinString(stream.match('\"\"'));\n return state.tokenize(stream, state);\n },\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenNestedComment(1);\n return state.tokenize(stream, state)\n },\n indent: function(state, ctx, textAfter, indentUnit) {\n var firstChar = textAfter && textAfter.charAt(0);\n if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n return state.indented;\n if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n state.prevToken == \"variable\" && firstChar == \".\" ||\n (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n return indentUnit * 2 + ctx.indented;\n if (ctx.align && ctx.type == \"}\")\n return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n }\n },\n modeProps: {closeBrackets: {triples: '\"'}}\n });\n\n def([\"x-shader/x-vertex\", \"x-shader/x-fragment\"], {\n name: \"clike\",\n keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n \"sampler1DShadow sampler2DShadow \" +\n \"const attribute uniform varying \" +\n \"break continue discard return \" +\n \"for while do if else struct \" +\n \"in out inout\"),\n types: words(\"float int bool void \" +\n \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n \"mat2 mat3 mat4\"),\n blockKeywords: words(\"for while do if else struct\"),\n builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n \"pow exp log exp2 sqrt inversesqrt \" +\n \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n \"length distance dot cross normalize ftransform faceforward \" +\n \"reflect refract matrixCompMult \" +\n \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n \"equal notEqual any all not \" +\n \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n \"textureCube textureCubeLod \" +\n \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n \"dFdx dFdy fwidth \" +\n \"noise1 noise2 noise3 noise4\"),\n atoms: words(\"true false \" +\n \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n \"gl_FogCoord gl_PointCoord \" +\n \"gl_Position gl_PointSize gl_ClipVertex \" +\n \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n \"gl_TexCoord gl_FogFragCoord \" +\n \"gl_FragCoord gl_FrontFacing \" +\n \"gl_FragData gl_FragDepth \" +\n \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n \"gl_ProjectionMatrixInverseTranspose \" +\n \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n \"gl_TextureMatrixInverseTranspose \" +\n \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n \"gl_FogParameters \" +\n \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n \"gl_MaxDrawBuffers\"),\n indentSwitch: false,\n hooks: {\"#\": cppHook},\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-nesc\", {\n name: \"clike\",\n keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n \"signal task uses abstract extends\"),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n atoms: words(\"null true false\"),\n hooks: {\"#\": cppHook},\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-objectivec\", {\n name: \"clike\",\n keywords: words(cKeywords + \" \" + objCKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n dontIndentStatements: /^@.*$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n },\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-objectivec++\", {\n name: \"clike\",\n keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n dontIndentStatements: /^@.*$|^template$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\",\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n def(\"text/x-squirrel\", {\n name: \"clike\",\n keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n types: cTypes,\n blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n defKeywords: words(\"function local class\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\"#\": cppHook},\n modeProps: {fold: [\"brace\", \"include\"]}\n });\n\n // Ceylon Strings need to deal with interpolation\n var stringTokenizer = null;\n function tokenCeylonString(type) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"') &&\n (type == \"single\" || stream.match('\"\"'))) {\n end = true;\n break;\n }\n if (!escaped && stream.match('``')) {\n stringTokenizer = tokenCeylonString(type);\n end = true;\n break;\n }\n next = stream.next();\n escaped = type == \"single\" && !escaped && next == \"\\\\\";\n }\n if (end)\n state.tokenize = null;\n return \"string\";\n }\n }\n\n def(\"text/x-ceylon\", {\n name: \"clike\",\n keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n \" exists extends finally for function given if import in interface is let module new\" +\n \" nonempty object of out outer package return satisfies super switch then this throw\" +\n \" try value void while\"),\n types: function(word) {\n // In Ceylon all identifiers that start with an uppercase are types\n var first = word.charAt(0);\n return (first === first.toUpperCase() && first !== first.toLowerCase());\n },\n blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n defKeywords: words(\"class dynamic function interface module object package value\"),\n builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n numberStart: /[\\d#$]/,\n number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n multiLineStrings: true,\n typeFirstDefinitions: true,\n atoms: words(\"true false null larger smaller equal empty finished\"),\n indentSwitch: false,\n styleDefs: false,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n return state.tokenize(stream, state);\n },\n '`': function(stream, state) {\n if (!stringTokenizer || !stream.match('`')) return false;\n state.tokenize = stringTokenizer;\n stringTokenizer = null;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n token: function(_stream, state, style) {\n if ((style == \"variable\" || style == \"type\") &&\n state.prevToken == \".\") {\n return \"variable-2\";\n }\n }\n },\n modeProps: {\n fold: [\"brace\", \"import\"],\n closeBrackets: {triples: '\"'}\n }\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-controls-background\", \"media-current-time-display\",\n \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n \"media-return-to-realtime-button\", \"media-rewind-button\",\n \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\",\n \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../markdown/markdown\"), require(\"../../addon/mode/overlay\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../markdown/markdown\", \"../../addon/mode/overlay\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\\.beep|\\.lwz|\\.xpc|\\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\\.beeps?|xmpp|xri|ymsgr|z39\\.50[rs]?):(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]|\\([^\\s()<>]*\\))+(?:\\([^\\s()<>]*\\)|[^\\s`*!()\\[\\]{};:'\".,<>?«»“”‘’]))/i\n\nCodeMirror.defineMode(\"gfm\", function(config, modeConfig) {\n var codeDepth = 0;\n function blankLine(state) {\n state.code = false;\n return null;\n }\n var gfmOverlay = {\n startState: function() {\n return {\n code: false,\n codeBlock: false,\n ateSpace: false\n };\n },\n copyState: function(s) {\n return {\n code: s.code,\n codeBlock: s.codeBlock,\n ateSpace: s.ateSpace\n };\n },\n token: function(stream, state) {\n state.combineTokens = null;\n\n // Hack to prevent formatting override inside code blocks (block and inline)\n if (state.codeBlock) {\n if (stream.match(/^```+/)) {\n state.codeBlock = false;\n return null;\n }\n stream.skipToEnd();\n return null;\n }\n if (stream.sol()) {\n state.code = false;\n }\n if (stream.sol() && stream.match(/^```+/)) {\n stream.skipToEnd();\n state.codeBlock = true;\n return null;\n }\n // If this block is changed, it may need to be updated in Markdown mode\n if (stream.peek() === '`') {\n stream.next();\n var before = stream.pos;\n stream.eatWhile('`');\n var difference = 1 + stream.pos - before;\n if (!state.code) {\n codeDepth = difference;\n state.code = true;\n } else {\n if (difference === codeDepth) { // Must be exact\n state.code = false;\n }\n }\n return null;\n } else if (state.code) {\n stream.next();\n return null;\n }\n // Check if space. If so, links can be formatted later on\n if (stream.eatSpace()) {\n state.ateSpace = true;\n return null;\n }\n if (stream.sol() || state.ateSpace) {\n state.ateSpace = false;\n if (modeConfig.gitHubSpice !== false) {\n if(stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+@)?(?=.{0,6}\\d)(?:[a-f0-9]{7,40}\\b)/)) {\n // User/Project@SHA\n // User@SHA\n // SHA\n state.combineTokens = true;\n return \"link\";\n } else if (stream.match(/^(?:[a-zA-Z0-9\\-_]+\\/)?(?:[a-zA-Z0-9\\-_]+)?#[0-9]+\\b/)) {\n // User/Project#Num\n // User#Num\n // #Num\n state.combineTokens = true;\n return \"link\";\n }\n }\n }\n if (stream.match(urlRE) &&\n stream.string.slice(stream.start - 2, stream.start) != \"](\" &&\n (stream.start == 0 || /\\W/.test(stream.string.charAt(stream.start - 1)))) {\n // URLs\n // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls\n // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine\n // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL\n state.combineTokens = true;\n return \"link\";\n }\n stream.next();\n return null;\n },\n blankLine: blankLine\n };\n\n var markdownConfig = {\n taskLists: true,\n strikethrough: true,\n emoji: true\n };\n for (var attr in modeConfig) {\n markdownConfig[attr] = modeConfig[attr];\n }\n markdownConfig.name = \"markdown\";\n return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay);\n\n}, \"markdown\");\n\n CodeMirror.defineMIME(\"text/x-gfm\", \"gfm\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(expression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"))\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\"], mod)\n else // Plain browser env\n mod(CodeMirror)\n})(function(CodeMirror) {\n \"use strict\"\n\n // Depth means the amount of open braces in JS context, in XML\n // context 0 means not in tag, 1 means in tag, and 2 means in tag\n // and js block comment.\n function Context(state, mode, depth, prev) {\n this.state = state; this.mode = mode; this.depth = depth; this.prev = prev\n }\n\n function copyContext(context) {\n return new Context(CodeMirror.copyState(context.mode, context.state),\n context.mode,\n context.depth,\n context.prev && copyContext(context.prev))\n }\n\n CodeMirror.defineMode(\"jsx\", function(config, modeConfig) {\n var xmlMode = CodeMirror.getMode(config, {name: \"xml\", allowMissing: true, multilineTagIndentPastTag: false, allowMissingTagName: true})\n var jsMode = CodeMirror.getMode(config, modeConfig && modeConfig.base || \"javascript\")\n\n function flatXMLIndent(state) {\n var tagName = state.tagName\n state.tagName = null\n var result = xmlMode.indent(state, \"\", \"\")\n state.tagName = tagName\n return result\n }\n\n function token(stream, state) {\n if (state.context.mode == xmlMode)\n return xmlToken(stream, state, state.context)\n else\n return jsToken(stream, state, state.context)\n }\n\n function xmlToken(stream, state, cx) {\n if (cx.depth == 2) { // Inside a JS /* */ comment\n if (stream.match(/^.*?\\*\\//)) cx.depth = 1\n else stream.skipToEnd()\n return \"comment\"\n }\n\n if (stream.peek() == \"{\") {\n xmlMode.skipAttribute(cx.state)\n\n var indent = flatXMLIndent(cx.state), xmlContext = cx.state.context\n // If JS starts on same line as tag\n if (xmlContext && stream.match(/^[^>]*>\\s*$/, false)) {\n while (xmlContext.prev && !xmlContext.startOfLine)\n xmlContext = xmlContext.prev\n // If tag starts the line, use XML indentation level\n if (xmlContext.startOfLine) indent -= config.indentUnit\n // Else use JS indentation level\n else if (cx.prev.state.lexical) indent = cx.prev.state.lexical.indented\n // Else if inside of tag\n } else if (cx.depth == 1) {\n indent += config.indentUnit\n }\n\n state.context = new Context(CodeMirror.startState(jsMode, indent),\n jsMode, 0, state.context)\n return null\n }\n\n if (cx.depth == 1) { // Inside of tag\n if (stream.peek() == \"<\") { // Tag inside of tag\n xmlMode.skipAttribute(cx.state)\n state.context = new Context(CodeMirror.startState(xmlMode, flatXMLIndent(cx.state)),\n xmlMode, 0, state.context)\n return null\n } else if (stream.match(\"//\")) {\n stream.skipToEnd()\n return \"comment\"\n } else if (stream.match(\"/*\")) {\n cx.depth = 2\n return token(stream, state)\n }\n }\n\n var style = xmlMode.token(stream, cx.state), cur = stream.current(), stop\n if (/\\btag\\b/.test(style)) {\n if (/>$/.test(cur)) {\n if (cx.state.context) cx.depth = 0\n else state.context = state.context.prev\n } else if (/^ -1) {\n stream.backUp(cur.length - stop)\n }\n return style\n }\n\n function jsToken(stream, state, cx) {\n if (stream.peek() == \"<\" && jsMode.expressionAllowed(stream, cx.state)) {\n state.context = new Context(CodeMirror.startState(xmlMode, jsMode.indent(cx.state, \"\", \"\")),\n xmlMode, 0, state.context)\n jsMode.skipExpression(cx.state)\n return null\n }\n\n var style = jsMode.token(stream, cx.state)\n if (!style && cx.depth != null) {\n var cur = stream.current()\n if (cur == \"{\") {\n cx.depth++\n } else if (cur == \"}\") {\n if (--cx.depth == 0) state.context = state.context.prev\n }\n }\n return style\n }\n\n return {\n startState: function() {\n return {context: new Context(CodeMirror.startState(jsMode), jsMode)}\n },\n\n copyState: function(state) {\n return {context: copyContext(state.context)}\n },\n\n token: token,\n\n indent: function(state, textAfter, fullLine) {\n return state.context.mode.indent(state.context.state, textAfter, fullLine)\n },\n\n innerMode: function(state) {\n return state.context\n }\n }\n }, \"xml\", \"javascript\")\n\n CodeMirror.defineMIME(\"text/jsx\", \"jsx\")\n CodeMirror.defineMIME(\"text/typescript-jsx\", {name: \"jsx\", base: {name: \"javascript\", typescript: true}})\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"julia\", function(config, parserConf) {\n function wordRegexp(words, end) {\n if (typeof end === \"undefined\") { end = \"\\\\b\"; }\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\" + end);\n }\n\n var octChar = \"\\\\\\\\[0-7]{1,3}\";\n var hexChar = \"\\\\\\\\x[A-Fa-f0-9]{1,2}\";\n var sChar = \"\\\\\\\\[abefnrtv0%?'\\\"\\\\\\\\]\";\n var uChar = \"([^\\\\u0027\\\\u005C\\\\uD800-\\\\uDFFF]|[\\\\uD800-\\\\uDFFF][\\\\uDC00-\\\\uDFFF])\";\n\n var operators = parserConf.operators || wordRegexp([\n \"[<>]:\", \"[<>=]=\", \"<<=?\", \">>>?=?\", \"=>\", \"->\", \"\\\\/\\\\/\",\n \"[\\\\\\\\%*+\\\\-<>!=\\\\/^|&\\\\u00F7\\\\u22BB]=?\", \"\\\\?\", \"\\\\$\", \"~\", \":\",\n \"\\\\u00D7\", \"\\\\u2208\", \"\\\\u2209\", \"\\\\u220B\", \"\\\\u220C\", \"\\\\u2218\",\n \"\\\\u221A\", \"\\\\u221B\", \"\\\\u2229\", \"\\\\u222A\", \"\\\\u2260\", \"\\\\u2264\",\n \"\\\\u2265\", \"\\\\u2286\", \"\\\\u2288\", \"\\\\u228A\", \"\\\\u22C5\",\n \"\\\\b(in|isa)\\\\b(?!\\.?\\\\()\"], \"\");\n var delimiters = parserConf.delimiters || /^[;,()[\\]{}]/;\n var identifiers = parserConf.identifiers ||\n /^[_A-Za-z\\u00A1-\\u2217\\u2219-\\uFFFF][\\w\\u00A1-\\u2217\\u2219-\\uFFFF]*!*/;\n\n var chars = wordRegexp([octChar, hexChar, sChar, uChar], \"'\");\n\n var openersList = [\"begin\", \"function\", \"type\", \"struct\", \"immutable\", \"let\",\n \"macro\", \"for\", \"while\", \"quote\", \"if\", \"else\", \"elseif\", \"try\",\n \"finally\", \"catch\", \"do\"];\n\n var closersList = [\"end\", \"else\", \"elseif\", \"catch\", \"finally\"];\n\n var keywordsList = [\"if\", \"else\", \"elseif\", \"while\", \"for\", \"begin\", \"let\",\n \"end\", \"do\", \"try\", \"catch\", \"finally\", \"return\", \"break\", \"continue\",\n \"global\", \"local\", \"const\", \"export\", \"import\", \"importall\", \"using\",\n \"function\", \"where\", \"macro\", \"module\", \"baremodule\", \"struct\", \"type\",\n \"mutable\", \"immutable\", \"quote\", \"typealias\", \"abstract\", \"primitive\",\n \"bitstype\"];\n\n var builtinsList = [\"true\", \"false\", \"nothing\", \"NaN\", \"Inf\"];\n\n CodeMirror.registerHelper(\"hintWords\", \"julia\", keywordsList.concat(builtinsList));\n\n var openers = wordRegexp(openersList);\n var closers = wordRegexp(closersList);\n var keywords = wordRegexp(keywordsList);\n var builtins = wordRegexp(builtinsList);\n\n var macro = /^@[_A-Za-z][\\w]*/;\n var symbol = /^:[_A-Za-z\\u00A1-\\uFFFF][\\w\\u00A1-\\uFFFF]*!*/;\n var stringPrefixes = /^(`|([_A-Za-z\\u00A1-\\uFFFF]*\"(\"\")?))/;\n\n function inArray(state) {\n return (state.nestedArrays > 0);\n }\n\n function inGenerator(state) {\n return (state.nestedGenerators > 0);\n }\n\n function currentScope(state, n) {\n if (typeof(n) === \"undefined\") { n = 0; }\n if (state.scopes.length <= n) {\n return null;\n }\n return state.scopes[state.scopes.length - (n + 1)];\n }\n\n // tokenizers\n function tokenBase(stream, state) {\n // Handle multiline comments\n if (stream.match('#=', false)) {\n state.tokenize = tokenComment;\n return state.tokenize(stream, state);\n }\n\n // Handle scope changes\n var leavingExpr = state.leavingExpr;\n if (stream.sol()) {\n leavingExpr = false;\n }\n state.leavingExpr = false;\n\n if (leavingExpr) {\n if (stream.match(/^'+/)) {\n return \"operator\";\n }\n }\n\n if (stream.match(/\\.{4,}/)) {\n return \"error\";\n } else if (stream.match(/\\.{1,3}/)) {\n return \"operator\";\n }\n\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle single line comments\n if (ch === '#') {\n stream.skipToEnd();\n return \"comment\";\n }\n\n if (ch === '[') {\n state.scopes.push('[');\n state.nestedArrays++;\n }\n\n if (ch === '(') {\n state.scopes.push('(');\n state.nestedGenerators++;\n }\n\n if (inArray(state) && ch === ']') {\n while (state.scopes.length && currentScope(state) !== \"[\") { state.scopes.pop(); }\n state.scopes.pop();\n state.nestedArrays--;\n state.leavingExpr = true;\n }\n\n if (inGenerator(state) && ch === ')') {\n while (state.scopes.length && currentScope(state) !== \"(\") { state.scopes.pop(); }\n state.scopes.pop();\n state.nestedGenerators--;\n state.leavingExpr = true;\n }\n\n if (inArray(state)) {\n if (state.lastToken == \"end\" && stream.match(':')) {\n return \"operator\";\n }\n if (stream.match('end')) {\n return \"number\";\n }\n }\n\n var match;\n if (match = stream.match(openers, false)) {\n state.scopes.push(match[0]);\n }\n\n if (stream.match(closers, false)) {\n state.scopes.pop();\n }\n\n // Handle type annotations\n if (stream.match(/^::(?![:\\$])/)) {\n state.tokenize = tokenAnnotation;\n return state.tokenize(stream, state);\n }\n\n // Handle symbols\n if (!leavingExpr && stream.match(symbol) ||\n stream.match(/:([<>]:|<<=?|>>>?=?|->|\\/\\/|\\.{2,3}|[\\.\\\\%*+\\-<>!\\/^|&]=?|[~\\?\\$])/)) {\n return \"builtin\";\n }\n\n // Handle parametric types\n //if (stream.match(/^{[^}]*}(?=\\()/)) {\n // return \"builtin\";\n //}\n\n // Handle operators and Delimiters\n if (stream.match(operators)) {\n return \"operator\";\n }\n\n // Handle Number Literals\n if (stream.match(/^\\.?\\d/, false)) {\n var imMatcher = RegExp(/^im\\b/);\n var numberLiteral = false;\n if (stream.match(/^0x\\.[0-9a-f_]+p[\\+\\-]?[_\\d]+/i)) { numberLiteral = true; }\n // Integers\n if (stream.match(/^0x[0-9a-f_]+/i)) { numberLiteral = true; } // Hex\n if (stream.match(/^0b[01_]+/i)) { numberLiteral = true; } // Binary\n if (stream.match(/^0o[0-7_]+/i)) { numberLiteral = true; } // Octal\n // Floats\n if (stream.match(/^(?:(?:\\d[_\\d]*)?\\.(?!\\.)(?:\\d[_\\d]*)?|\\d[_\\d]*\\.(?!\\.)(?:\\d[_\\d]*))?([Eef][\\+\\-]?[_\\d]+)?/i)) { numberLiteral = true; }\n if (stream.match(/^\\d[_\\d]*(e[\\+\\-]?\\d+)?/i)) { numberLiteral = true; } // Decimal\n if (numberLiteral) {\n // Integer literals may be \"long\"\n stream.match(imMatcher);\n state.leavingExpr = true;\n return \"number\";\n }\n }\n\n // Handle Chars\n if (stream.match('\\'')) {\n state.tokenize = tokenChar;\n return state.tokenize(stream, state);\n }\n\n // Handle Strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenStringFactory(stream.current());\n return state.tokenize(stream, state);\n }\n\n if (stream.match(macro)) {\n return \"meta\";\n }\n\n if (stream.match(delimiters)) {\n return null;\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(builtins)) {\n return \"builtin\";\n }\n\n var isDefinition = state.isDefinition || state.lastToken == \"function\" ||\n state.lastToken == \"macro\" || state.lastToken == \"type\" ||\n state.lastToken == \"struct\" || state.lastToken == \"immutable\";\n\n if (stream.match(identifiers)) {\n if (isDefinition) {\n if (stream.peek() === '.') {\n state.isDefinition = true;\n return \"variable\";\n }\n state.isDefinition = false;\n return \"def\";\n }\n state.leavingExpr = true;\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return \"error\";\n }\n\n function tokenAnnotation(stream, state) {\n stream.match(/.*?(?=[,;{}()=\\s]|$)/);\n if (stream.match('{')) {\n state.nestedParameters++;\n } else if (stream.match('}') && state.nestedParameters > 0) {\n state.nestedParameters--;\n }\n if (state.nestedParameters > 0) {\n stream.match(/.*?(?={|})/) || stream.next();\n } else if (state.nestedParameters == 0) {\n state.tokenize = tokenBase;\n }\n return \"builtin\";\n }\n\n function tokenComment(stream, state) {\n if (stream.match('#=')) {\n state.nestedComments++;\n }\n if (!stream.match(/.*?(?=(#=|=#))/)) {\n stream.skipToEnd();\n }\n if (stream.match('=#')) {\n state.nestedComments--;\n if (state.nestedComments == 0)\n state.tokenize = tokenBase;\n }\n return \"comment\";\n }\n\n function tokenChar(stream, state) {\n var isChar = false, match;\n if (stream.match(chars)) {\n isChar = true;\n } else if (match = stream.match(/\\\\u([a-f0-9]{1,4})(?=')/i)) {\n var value = parseInt(match[1], 16);\n if (value <= 55295 || value >= 57344) { // (U+0,U+D7FF), (U+E000,U+FFFF)\n isChar = true;\n stream.next();\n }\n } else if (match = stream.match(/\\\\U([A-Fa-f0-9]{5,8})(?=')/)) {\n var value = parseInt(match[1], 16);\n if (value <= 1114111) { // U+10FFFF\n isChar = true;\n stream.next();\n }\n }\n if (isChar) {\n state.leavingExpr = true;\n state.tokenize = tokenBase;\n return \"string\";\n }\n if (!stream.match(/^[^']+(?=')/)) { stream.skipToEnd(); }\n if (stream.match('\\'')) { state.tokenize = tokenBase; }\n return \"error\";\n }\n\n function tokenStringFactory(delimiter) {\n if (delimiter.substr(-3) === '\"\"\"') {\n delimiter = '\"\"\"';\n } else if (delimiter.substr(-1) === '\"') {\n delimiter = '\"';\n }\n function tokenString(stream, state) {\n if (stream.eat('\\\\')) {\n stream.next();\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n state.leavingExpr = true;\n return \"string\";\n } else {\n stream.eat(/[`\"]/);\n }\n stream.eatWhile(/[^\\\\`\"]/);\n return \"string\";\n }\n return tokenString;\n }\n\n var external = {\n startState: function() {\n return {\n tokenize: tokenBase,\n scopes: [],\n lastToken: null,\n leavingExpr: false,\n isDefinition: false,\n nestedArrays: 0,\n nestedComments: 0,\n nestedGenerators: 0,\n nestedParameters: 0,\n firstParenPos: -1\n };\n },\n\n token: function(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n if (current && style) {\n state.lastToken = current;\n }\n\n return style;\n },\n\n indent: function(state, textAfter) {\n var delta = 0;\n if ( textAfter === ']' || textAfter === ')' || /^end\\b/.test(textAfter) ||\n /^else/.test(textAfter) || /^catch\\b/.test(textAfter) || /^elseif\\b/.test(textAfter) ||\n /^finally/.test(textAfter) ) {\n delta = -1;\n }\n return (state.scopes.length + delta) * config.indentUnit;\n },\n\n electricInput: /\\b(end|else|catch|finally)\\b/,\n blockCommentStart: \"#=\",\n blockCommentEnd: \"=#\",\n lineComment: \"#\",\n closeBrackets: \"()[]{}\\\"\\\"\",\n fold: \"indent\"\n };\n return external;\n});\n\n\nCodeMirror.defineMIME(\"text/x-julia\", \"julia\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../meta\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../meta\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"markdown\", function(cmCfg, modeCfg) {\n\n var htmlMode = CodeMirror.getMode(cmCfg, \"text/html\");\n var htmlModeMissing = htmlMode.name == \"null\"\n\n function getMode(name) {\n if (CodeMirror.findModeByName) {\n var found = CodeMirror.findModeByName(name);\n if (found) name = found.mime || found.mimes[0];\n }\n var mode = CodeMirror.getMode(cmCfg, name);\n return mode.name == \"null\" ? null : mode;\n }\n\n // Should characters that affect highlighting be highlighted separate?\n // Does not include characters that will be output (such as `1.` and `-` for lists)\n if (modeCfg.highlightFormatting === undefined)\n modeCfg.highlightFormatting = false;\n\n // Maximum number of nested blockquotes. Set to 0 for infinite nesting.\n // Excess `>` will emit `error` token.\n if (modeCfg.maxBlockquoteDepth === undefined)\n modeCfg.maxBlockquoteDepth = 0;\n\n // Turn on task lists? (\"- [ ] \" and \"- [x] \")\n if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;\n\n // Turn on strikethrough syntax\n if (modeCfg.strikethrough === undefined)\n modeCfg.strikethrough = false;\n\n if (modeCfg.emoji === undefined)\n modeCfg.emoji = false;\n\n if (modeCfg.fencedCodeBlockHighlighting === undefined)\n modeCfg.fencedCodeBlockHighlighting = true;\n\n if (modeCfg.fencedCodeBlockDefaultMode === undefined)\n modeCfg.fencedCodeBlockDefaultMode = 'text/plain';\n\n if (modeCfg.xml === undefined)\n modeCfg.xml = true;\n\n // Allow token types to be overridden by user-provided token types.\n if (modeCfg.tokenTypeOverrides === undefined)\n modeCfg.tokenTypeOverrides = {};\n\n var tokenTypes = {\n header: \"header\",\n code: \"comment\",\n quote: \"quote\",\n list1: \"variable-2\",\n list2: \"variable-3\",\n list3: \"keyword\",\n hr: \"hr\",\n image: \"image\",\n imageAltText: \"image-alt-text\",\n imageMarker: \"image-marker\",\n formatting: \"formatting\",\n linkInline: \"link\",\n linkEmail: \"link\",\n linkText: \"link\",\n linkHref: \"string\",\n em: \"em\",\n strong: \"strong\",\n strikethrough: \"strikethrough\",\n emoji: \"builtin\"\n };\n\n for (var tokenType in tokenTypes) {\n if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {\n tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];\n }\n }\n\n var hrRE = /^([*\\-_])(?:\\s*\\1){2,}\\s*$/\n , listRE = /^(?:[*\\-+]|^[0-9]+([.)]))\\s+/\n , taskListRE = /^\\[(x| )\\](?=\\s)/i // Must follow listRE\n , atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/\n , setextHeaderRE = /^ {0,3}(?:\\={1,}|-{2,})\\s*$/\n , textRE = /^[^#!\\[\\]*_\\\\<>` \"'(~:]+/\n , fencedCodeRE = /^(~~~+|```+)[ \\t]*([\\w\\/+#-]*)[^\\n`]*$/\n , linkDefRE = /^\\s*\\[[^\\]]+?\\]:.*$/ // naive link-definition\n , punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/\n , expandedTab = \" \" // CommonMark specifies tab as 4 spaces\n\n function switchInline(stream, state, f) {\n state.f = state.inline = f;\n return f(stream, state);\n }\n\n function switchBlock(stream, state, f) {\n state.f = state.block = f;\n return f(stream, state);\n }\n\n function lineIsEmpty(line) {\n return !line || !/\\S/.test(line.string)\n }\n\n // Blocks\n\n function blankLine(state) {\n // Reset linkTitle state\n state.linkTitle = false;\n state.linkHref = false;\n state.linkText = false;\n // Reset EM state\n state.em = false;\n // Reset STRONG state\n state.strong = false;\n // Reset strikethrough state\n state.strikethrough = false;\n // Reset state.quote\n state.quote = 0;\n // Reset state.indentedCode\n state.indentedCode = false;\n if (state.f == htmlBlock) {\n var exit = htmlModeMissing\n if (!exit) {\n var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n exit = inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n (!inner.state.context && inner.state.tokenize.isInText)\n }\n if (exit) {\n state.f = inlineNormal;\n state.block = blockNormal;\n state.htmlState = null;\n }\n }\n // Reset state.trailingSpace\n state.trailingSpace = 0;\n state.trailingSpaceNewLine = false;\n // Mark this line as blank\n state.prevLine = state.thisLine\n state.thisLine = {stream: null}\n return null;\n }\n\n function blockNormal(stream, state) {\n var firstTokenOnLine = stream.column() === state.indentation;\n var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream);\n var prevLineIsIndentedCode = state.indentedCode;\n var prevLineIsHr = state.prevLine.hr;\n var prevLineIsList = state.list !== false;\n var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3;\n\n state.indentedCode = false;\n\n var lineIndentation = state.indentation;\n // compute once per line (on first token)\n if (state.indentationDiff === null) {\n state.indentationDiff = state.indentation;\n if (prevLineIsList) {\n state.list = null;\n // While this list item's marker's indentation is less than the deepest\n // list item's content's indentation,pop the deepest list item\n // indentation off the stack, and update block indentation state\n while (lineIndentation < state.listStack[state.listStack.length - 1]) {\n state.listStack.pop();\n if (state.listStack.length) {\n state.indentation = state.listStack[state.listStack.length - 1];\n // less than the first list's indent -> the line is no longer a list\n } else {\n state.list = false;\n }\n }\n if (state.list !== false) {\n state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1]\n }\n }\n }\n\n // not comprehensive (currently only for setext detection purposes)\n var allowsInlineContinuation = (\n !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header &&\n (!prevLineIsList || !prevLineIsIndentedCode) &&\n !state.prevLine.fencedCodeEnd\n );\n\n var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) &&\n state.indentation <= maxNonCodeIndentation && stream.match(hrRE);\n\n var match = null;\n if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd ||\n state.prevLine.header || prevLineLineIsEmpty)) {\n stream.skipToEnd();\n state.indentedCode = true;\n return tokenTypes.code;\n } else if (stream.eatSpace()) {\n return null;\n } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) {\n state.quote = 0;\n state.header = match[1].length;\n state.thisLine.header = true;\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n state.f = state.inline;\n return getType(state);\n } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) {\n state.quote = firstTokenOnLine ? 1 : state.quote + 1;\n if (modeCfg.highlightFormatting) state.formatting = \"quote\";\n stream.eatSpace();\n return getType(state);\n } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) {\n var listType = match[1] ? \"ol\" : \"ul\";\n\n state.indentation = lineIndentation + stream.current().length;\n state.list = true;\n state.quote = 0;\n\n // Add this list item's content's indentation to the stack\n state.listStack.push(state.indentation);\n // Reset inline styles which shouldn't propagate across list items\n state.em = false;\n state.strong = false;\n state.code = false;\n state.strikethrough = false;\n\n if (modeCfg.taskLists && stream.match(taskListRE, false)) {\n state.taskList = true;\n }\n state.f = state.inline;\n if (modeCfg.highlightFormatting) state.formatting = [\"list\", \"list-\" + listType];\n return getType(state);\n } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) {\n state.quote = 0;\n state.fencedEndRE = new RegExp(match[1] + \"+ *$\");\n // try switching mode\n state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2] || modeCfg.fencedCodeBlockDefaultMode );\n if (state.localMode) state.localState = CodeMirror.startState(state.localMode);\n state.f = state.block = local;\n if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n state.code = -1\n return getType(state);\n // SETEXT has lowest block-scope precedence after HR, so check it after\n // the others (code, blockquote, list...)\n } else if (\n // if setext set, indicates line after ---/===\n state.setext || (\n // line before ---/===\n (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false &&\n !state.code && !isHr && !linkDefRE.test(stream.string) &&\n (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE))\n )\n ) {\n if ( !state.setext ) {\n state.header = match[0].charAt(0) == '=' ? 1 : 2;\n state.setext = state.header;\n } else {\n state.header = state.setext;\n // has no effect on type so we can reset it now\n state.setext = 0;\n stream.skipToEnd();\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n }\n state.thisLine.header = true;\n state.f = state.inline;\n return getType(state);\n } else if (isHr) {\n stream.skipToEnd();\n state.hr = true;\n state.thisLine.hr = true;\n return tokenTypes.hr;\n } else if (stream.peek() === '[') {\n return switchInline(stream, state, footnoteLink);\n }\n\n return switchInline(stream, state, state.inline);\n }\n\n function htmlBlock(stream, state) {\n var style = htmlMode.token(stream, state.htmlState);\n if (!htmlModeMissing) {\n var inner = CodeMirror.innerMode(htmlMode, state.htmlState)\n if ((inner.mode.name == \"xml\" && inner.state.tagStart === null &&\n (!inner.state.context && inner.state.tokenize.isInText)) ||\n (state.md_inside && stream.current().indexOf(\">\") > -1)) {\n state.f = inlineNormal;\n state.block = blockNormal;\n state.htmlState = null;\n }\n }\n return style;\n }\n\n function local(stream, state) {\n var currListInd = state.listStack[state.listStack.length - 1] || 0;\n var hasExitedList = state.indentation < currListInd;\n var maxFencedEndInd = currListInd + 3;\n if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) {\n if (modeCfg.highlightFormatting) state.formatting = \"code-block\";\n var returnType;\n if (!hasExitedList) returnType = getType(state)\n state.localMode = state.localState = null;\n state.block = blockNormal;\n state.f = inlineNormal;\n state.fencedEndRE = null;\n state.code = 0\n state.thisLine.fencedCodeEnd = true;\n if (hasExitedList) return switchBlock(stream, state, state.block);\n return returnType;\n } else if (state.localMode) {\n return state.localMode.token(stream, state.localState);\n } else {\n stream.skipToEnd();\n return tokenTypes.code;\n }\n }\n\n // Inline\n function getType(state) {\n var styles = [];\n\n if (state.formatting) {\n styles.push(tokenTypes.formatting);\n\n if (typeof state.formatting === \"string\") state.formatting = [state.formatting];\n\n for (var i = 0; i < state.formatting.length; i++) {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i]);\n\n if (state.formatting[i] === \"header\") {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.header);\n }\n\n // Add `formatting-quote` and `formatting-quote-#` for blockquotes\n // Add `error` instead if the maximum blockquote nesting depth is passed\n if (state.formatting[i] === \"quote\") {\n if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n styles.push(tokenTypes.formatting + \"-\" + state.formatting[i] + \"-\" + state.quote);\n } else {\n styles.push(\"error\");\n }\n }\n }\n }\n\n if (state.taskOpen) {\n styles.push(\"meta\");\n return styles.length ? styles.join(' ') : null;\n }\n if (state.taskClosed) {\n styles.push(\"property\");\n return styles.length ? styles.join(' ') : null;\n }\n\n if (state.linkHref) {\n styles.push(tokenTypes.linkHref, \"url\");\n } else { // Only apply inline styles to non-url text\n if (state.strong) { styles.push(tokenTypes.strong); }\n if (state.em) { styles.push(tokenTypes.em); }\n if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }\n if (state.emoji) { styles.push(tokenTypes.emoji); }\n if (state.linkText) { styles.push(tokenTypes.linkText); }\n if (state.code) { styles.push(tokenTypes.code); }\n if (state.image) { styles.push(tokenTypes.image); }\n if (state.imageAltText) { styles.push(tokenTypes.imageAltText, \"link\"); }\n if (state.imageMarker) { styles.push(tokenTypes.imageMarker); }\n }\n\n if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + \"-\" + state.header); }\n\n if (state.quote) {\n styles.push(tokenTypes.quote);\n\n // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth\n if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {\n styles.push(tokenTypes.quote + \"-\" + state.quote);\n } else {\n styles.push(tokenTypes.quote + \"-\" + modeCfg.maxBlockquoteDepth);\n }\n }\n\n if (state.list !== false) {\n var listMod = (state.listStack.length - 1) % 3;\n if (!listMod) {\n styles.push(tokenTypes.list1);\n } else if (listMod === 1) {\n styles.push(tokenTypes.list2);\n } else {\n styles.push(tokenTypes.list3);\n }\n }\n\n if (state.trailingSpaceNewLine) {\n styles.push(\"trailing-space-new-line\");\n } else if (state.trailingSpace) {\n styles.push(\"trailing-space-\" + (state.trailingSpace % 2 ? \"a\" : \"b\"));\n }\n\n return styles.length ? styles.join(' ') : null;\n }\n\n function handleText(stream, state) {\n if (stream.match(textRE, true)) {\n return getType(state);\n }\n return undefined;\n }\n\n function inlineNormal(stream, state) {\n var style = state.text(stream, state);\n if (typeof style !== 'undefined')\n return style;\n\n if (state.list) { // List marker (*, +, -, 1., etc)\n state.list = null;\n return getType(state);\n }\n\n if (state.taskList) {\n var taskOpen = stream.match(taskListRE, true)[1] === \" \";\n if (taskOpen) state.taskOpen = true;\n else state.taskClosed = true;\n if (modeCfg.highlightFormatting) state.formatting = \"task\";\n state.taskList = false;\n return getType(state);\n }\n\n state.taskOpen = false;\n state.taskClosed = false;\n\n if (state.header && stream.match(/^#+$/, true)) {\n if (modeCfg.highlightFormatting) state.formatting = \"header\";\n return getType(state);\n }\n\n var ch = stream.next();\n\n // Matches link titles present on next line\n if (state.linkTitle) {\n state.linkTitle = false;\n var matchCh = ch;\n if (ch === '(') {\n matchCh = ')';\n }\n matchCh = (matchCh+'').replace(/([.?*+^\\[\\]\\\\(){}|-])/g, \"\\\\$1\");\n var regex = '^\\\\s*(?:[^' + matchCh + '\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)' + matchCh;\n if (stream.match(new RegExp(regex), true)) {\n return tokenTypes.linkHref;\n }\n }\n\n // If this block is changed, it may need to be updated in GFM mode\n if (ch === '`') {\n var previousFormatting = state.formatting;\n if (modeCfg.highlightFormatting) state.formatting = \"code\";\n stream.eatWhile('`');\n var count = stream.current().length\n if (state.code == 0 && (!state.quote || count == 1)) {\n state.code = count\n return getType(state)\n } else if (count == state.code) { // Must be exact\n var t = getType(state)\n state.code = 0\n return t\n } else {\n state.formatting = previousFormatting\n return getType(state)\n }\n } else if (state.code) {\n return getType(state);\n }\n\n if (ch === '\\\\') {\n stream.next();\n if (modeCfg.highlightFormatting) {\n var type = getType(state);\n var formattingEscape = tokenTypes.formatting + \"-escape\";\n return type ? type + \" \" + formattingEscape : formattingEscape;\n }\n }\n\n if (ch === '!' && stream.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/, false)) {\n state.imageMarker = true;\n state.image = true;\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n return getType(state);\n }\n\n if (ch === '[' && state.imageMarker && stream.match(/[^\\]]*\\](\\(.*?\\)| ?\\[.*?\\])/, false)) {\n state.imageMarker = false;\n state.imageAltText = true\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n return getType(state);\n }\n\n if (ch === ']' && state.imageAltText) {\n if (modeCfg.highlightFormatting) state.formatting = \"image\";\n var type = getType(state);\n state.imageAltText = false;\n state.image = false;\n state.inline = state.f = linkHref;\n return type;\n }\n\n if (ch === '[' && !state.image) {\n if (state.linkText && stream.match(/^.*?\\]/)) return getType(state)\n state.linkText = true;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n return getType(state);\n }\n\n if (ch === ']' && state.linkText) {\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n state.linkText = false;\n state.inline = state.f = stream.match(/\\(.*?\\)| ?\\[.*?\\]/, false) ? linkHref : inlineNormal\n return type;\n }\n\n if (ch === '<' && stream.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/, false)) {\n state.f = state.inline = linkInline;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkInline;\n }\n\n if (ch === '<' && stream.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/, false)) {\n state.f = state.inline = linkInline;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkEmail;\n }\n\n if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\\?|!\\[CDATA\\[|[a-z][a-z0-9-]*(?:\\s+[a-z_:.\\-]+(?:\\s*=\\s*[^>]+)?)*\\s*(?:>|$))/i, false)) {\n var end = stream.string.indexOf(\">\", stream.pos);\n if (end != -1) {\n var atts = stream.string.substring(stream.start, end);\n if (/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(atts)) state.md_inside = true;\n }\n stream.backUp(1);\n state.htmlState = CodeMirror.startState(htmlMode);\n return switchBlock(stream, state, htmlBlock);\n }\n\n if (modeCfg.xml && ch === '<' && stream.match(/^\\/\\w*?>/)) {\n state.md_inside = false;\n return \"tag\";\n } else if (ch === \"*\" || ch === \"_\") {\n var len = 1, before = stream.pos == 1 ? \" \" : stream.string.charAt(stream.pos - 2)\n while (len < 3 && stream.eat(ch)) len++\n var after = stream.peek() || \" \"\n // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis\n var leftFlanking = !/\\s/.test(after) && (!punctuation.test(after) || /\\s/.test(before) || punctuation.test(before))\n var rightFlanking = !/\\s/.test(before) && (!punctuation.test(before) || /\\s/.test(after) || punctuation.test(after))\n var setEm = null, setStrong = null\n if (len % 2) { // Em\n if (!state.em && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n setEm = true\n else if (state.em == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n setEm = false\n }\n if (len > 1) { // Strong\n if (!state.strong && leftFlanking && (ch === \"*\" || !rightFlanking || punctuation.test(before)))\n setStrong = true\n else if (state.strong == ch && rightFlanking && (ch === \"*\" || !leftFlanking || punctuation.test(after)))\n setStrong = false\n }\n if (setStrong != null || setEm != null) {\n if (modeCfg.highlightFormatting) state.formatting = setEm == null ? \"strong\" : setStrong == null ? \"em\" : \"strong em\"\n if (setEm === true) state.em = ch\n if (setStrong === true) state.strong = ch\n var t = getType(state)\n if (setEm === false) state.em = false\n if (setStrong === false) state.strong = false\n return t\n }\n } else if (ch === ' ') {\n if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces\n if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n return getType(state);\n } else { // Not surrounded by spaces, back up pointer\n stream.backUp(1);\n }\n }\n }\n\n if (modeCfg.strikethrough) {\n if (ch === '~' && stream.eatWhile(ch)) {\n if (state.strikethrough) {// Remove strikethrough\n if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n var t = getType(state);\n state.strikethrough = false;\n return t;\n } else if (stream.match(/^[^\\s]/, false)) {// Add strikethrough\n state.strikethrough = true;\n if (modeCfg.highlightFormatting) state.formatting = \"strikethrough\";\n return getType(state);\n }\n } else if (ch === ' ') {\n if (stream.match('~~', true)) { // Probably surrounded by space\n if (stream.peek() === ' ') { // Surrounded by spaces, ignore\n return getType(state);\n } else { // Not surrounded by spaces, back up pointer\n stream.backUp(2);\n }\n }\n }\n }\n\n if (modeCfg.emoji && ch === \":\" && stream.match(/^(?:[a-z_\\d+][a-z_\\d+-]*|\\-[a-z_\\d+][a-z_\\d+-]*):/)) {\n state.emoji = true;\n if (modeCfg.highlightFormatting) state.formatting = \"emoji\";\n var retType = getType(state);\n state.emoji = false;\n return retType;\n }\n\n if (ch === ' ') {\n if (stream.match(/^ +$/, false)) {\n state.trailingSpace++;\n } else if (state.trailingSpace) {\n state.trailingSpaceNewLine = true;\n }\n }\n\n return getType(state);\n }\n\n function linkInline(stream, state) {\n var ch = stream.next();\n\n if (ch === \">\") {\n state.f = state.inline = inlineNormal;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var type = getType(state);\n if (type){\n type += \" \";\n } else {\n type = \"\";\n }\n return type + tokenTypes.linkInline;\n }\n\n stream.match(/^[^>]+/, true);\n\n return tokenTypes.linkInline;\n }\n\n function linkHref(stream, state) {\n // Check if space, and return NULL if so (to avoid marking the space)\n if(stream.eatSpace()){\n return null;\n }\n var ch = stream.next();\n if (ch === '(' || ch === '[') {\n state.f = state.inline = getLinkHrefInside(ch === \"(\" ? \")\" : \"]\");\n if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n state.linkHref = true;\n return getType(state);\n }\n return 'error';\n }\n\n var linkRE = {\n \")\": /^(?:[^\\\\\\(\\)]|\\\\.|\\((?:[^\\\\\\(\\)]|\\\\.)*\\))*?(?=\\))/,\n \"]\": /^(?:[^\\\\\\[\\]]|\\\\.|\\[(?:[^\\\\\\[\\]]|\\\\.)*\\])*?(?=\\])/\n }\n\n function getLinkHrefInside(endChar) {\n return function(stream, state) {\n var ch = stream.next();\n\n if (ch === endChar) {\n state.f = state.inline = inlineNormal;\n if (modeCfg.highlightFormatting) state.formatting = \"link-string\";\n var returnState = getType(state);\n state.linkHref = false;\n return returnState;\n }\n\n stream.match(linkRE[endChar])\n state.linkHref = true;\n return getType(state);\n };\n }\n\n function footnoteLink(stream, state) {\n if (stream.match(/^([^\\]\\\\]|\\\\.)*\\]:/, false)) {\n state.f = footnoteLinkInside;\n stream.next(); // Consume [\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n state.linkText = true;\n return getType(state);\n }\n return switchInline(stream, state, inlineNormal);\n }\n\n function footnoteLinkInside(stream, state) {\n if (stream.match(']:', true)) {\n state.f = state.inline = footnoteUrl;\n if (modeCfg.highlightFormatting) state.formatting = \"link\";\n var returnType = getType(state);\n state.linkText = false;\n return returnType;\n }\n\n stream.match(/^([^\\]\\\\]|\\\\.)+/, true);\n\n return tokenTypes.linkText;\n }\n\n function footnoteUrl(stream, state) {\n // Check if space, and return NULL if so (to avoid marking the space)\n if(stream.eatSpace()){\n return null;\n }\n // Match URL\n stream.match(/^[^\\s]+/, true);\n // Check for link title\n if (stream.peek() === undefined) { // End of line, set flag to check next line\n state.linkTitle = true;\n } else { // More content on line, check if link title\n stream.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\.)+\"|'(?:[^'\\\\]|\\\\.)+'|\\((?:[^)\\\\]|\\\\.)+\\)))?/, true);\n }\n state.f = state.inline = inlineNormal;\n return tokenTypes.linkHref + \" url\";\n }\n\n var mode = {\n startState: function() {\n return {\n f: blockNormal,\n\n prevLine: {stream: null},\n thisLine: {stream: null},\n\n block: blockNormal,\n htmlState: null,\n indentation: 0,\n\n inline: inlineNormal,\n text: handleText,\n\n formatting: false,\n linkText: false,\n linkHref: false,\n linkTitle: false,\n code: 0,\n em: false,\n strong: false,\n header: 0,\n setext: 0,\n hr: false,\n taskList: false,\n list: false,\n listStack: [],\n quote: 0,\n trailingSpace: 0,\n trailingSpaceNewLine: false,\n strikethrough: false,\n emoji: false,\n fencedEndRE: null\n };\n },\n\n copyState: function(s) {\n return {\n f: s.f,\n\n prevLine: s.prevLine,\n thisLine: s.thisLine,\n\n block: s.block,\n htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),\n indentation: s.indentation,\n\n localMode: s.localMode,\n localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,\n\n inline: s.inline,\n text: s.text,\n formatting: false,\n linkText: s.linkText,\n linkTitle: s.linkTitle,\n linkHref: s.linkHref,\n code: s.code,\n em: s.em,\n strong: s.strong,\n strikethrough: s.strikethrough,\n emoji: s.emoji,\n header: s.header,\n setext: s.setext,\n hr: s.hr,\n taskList: s.taskList,\n list: s.list,\n listStack: s.listStack.slice(0),\n quote: s.quote,\n indentedCode: s.indentedCode,\n trailingSpace: s.trailingSpace,\n trailingSpaceNewLine: s.trailingSpaceNewLine,\n md_inside: s.md_inside,\n fencedEndRE: s.fencedEndRE\n };\n },\n\n token: function(stream, state) {\n\n // Reset state.formatting\n state.formatting = false;\n\n if (stream != state.thisLine.stream) {\n state.header = 0;\n state.hr = false;\n\n if (stream.match(/^\\s*$/, true)) {\n blankLine(state);\n return null;\n }\n\n state.prevLine = state.thisLine\n state.thisLine = {stream: stream}\n\n // Reset state.taskList\n state.taskList = false;\n\n // Reset state.trailingSpace\n state.trailingSpace = 0;\n state.trailingSpaceNewLine = false;\n\n if (!state.localState) {\n state.f = state.block;\n if (state.f != htmlBlock) {\n var indentation = stream.match(/^\\s*/, true)[0].replace(/\\t/g, expandedTab).length;\n state.indentation = indentation;\n state.indentationDiff = null;\n if (indentation > 0) return null;\n }\n }\n }\n return state.f(stream, state);\n },\n\n innerMode: function(state) {\n if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};\n if (state.localState) return {state: state.localState, mode: state.localMode};\n return {state: state, mode: mode};\n },\n\n indent: function(state, textAfter, line) {\n if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line)\n if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line)\n return CodeMirror.Pass\n },\n\n blankLine: blankLine,\n\n getType: getType,\n\n blockCommentStart: \"\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n fold: \"markdown\"\n };\n return mode;\n}, \"xml\");\n\nCodeMirror.defineMIME(\"text/markdown\", \"markdown\");\n\nCodeMirror.defineMIME(\"text/x-markdown\", \"markdown\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.modeInfo = [\n {name: \"APL\", mime: \"text/apl\", mode: \"apl\", ext: [\"dyalog\", \"apl\"]},\n {name: \"PGP\", mimes: [\"application/pgp\", \"application/pgp-encrypted\", \"application/pgp-keys\", \"application/pgp-signature\"], mode: \"asciiarmor\", ext: [\"asc\", \"pgp\", \"sig\"]},\n {name: \"ASN.1\", mime: \"text/x-ttcn-asn\", mode: \"asn.1\", ext: [\"asn\", \"asn1\"]},\n {name: \"Asterisk\", mime: \"text/x-asterisk\", mode: \"asterisk\", file: /^extensions\\.conf$/i},\n {name: \"Brainfuck\", mime: \"text/x-brainfuck\", mode: \"brainfuck\", ext: [\"b\", \"bf\"]},\n {name: \"C\", mime: \"text/x-csrc\", mode: \"clike\", ext: [\"c\", \"h\", \"ino\"]},\n {name: \"C++\", mime: \"text/x-c++src\", mode: \"clike\", ext: [\"cpp\", \"c++\", \"cc\", \"cxx\", \"hpp\", \"h++\", \"hh\", \"hxx\"], alias: [\"cpp\"]},\n {name: \"Cobol\", mime: \"text/x-cobol\", mode: \"cobol\", ext: [\"cob\", \"cpy\"]},\n {name: \"C#\", mime: \"text/x-csharp\", mode: \"clike\", ext: [\"cs\"], alias: [\"csharp\", \"cs\"]},\n {name: \"Clojure\", mime: \"text/x-clojure\", mode: \"clojure\", ext: [\"clj\", \"cljc\", \"cljx\"]},\n {name: \"ClojureScript\", mime: \"text/x-clojurescript\", mode: \"clojure\", ext: [\"cljs\"]},\n {name: \"Closure Stylesheets (GSS)\", mime: \"text/x-gss\", mode: \"css\", ext: [\"gss\"]},\n {name: \"CMake\", mime: \"text/x-cmake\", mode: \"cmake\", ext: [\"cmake\", \"cmake.in\"], file: /^CMakeLists\\.txt$/},\n {name: \"CoffeeScript\", mimes: [\"application/vnd.coffeescript\", \"text/coffeescript\", \"text/x-coffeescript\"], mode: \"coffeescript\", ext: [\"coffee\"], alias: [\"coffee\", \"coffee-script\"]},\n {name: \"Common Lisp\", mime: \"text/x-common-lisp\", mode: \"commonlisp\", ext: [\"cl\", \"lisp\", \"el\"], alias: [\"lisp\"]},\n {name: \"Cypher\", mime: \"application/x-cypher-query\", mode: \"cypher\", ext: [\"cyp\", \"cypher\"]},\n {name: \"Cython\", mime: \"text/x-cython\", mode: \"python\", ext: [\"pyx\", \"pxd\", \"pxi\"]},\n {name: \"Crystal\", mime: \"text/x-crystal\", mode: \"crystal\", ext: [\"cr\"]},\n {name: \"CSS\", mime: \"text/css\", mode: \"css\", ext: [\"css\"]},\n {name: \"CQL\", mime: \"text/x-cassandra\", mode: \"sql\", ext: [\"cql\"]},\n {name: \"D\", mime: \"text/x-d\", mode: \"d\", ext: [\"d\"]},\n {name: \"Dart\", mimes: [\"application/dart\", \"text/x-dart\"], mode: \"dart\", ext: [\"dart\"]},\n {name: \"diff\", mime: \"text/x-diff\", mode: \"diff\", ext: [\"diff\", \"patch\"]},\n {name: \"Django\", mime: \"text/x-django\", mode: \"django\"},\n {name: \"Dockerfile\", mime: \"text/x-dockerfile\", mode: \"dockerfile\", file: /^Dockerfile$/},\n {name: \"DTD\", mime: \"application/xml-dtd\", mode: \"dtd\", ext: [\"dtd\"]},\n {name: \"Dylan\", mime: \"text/x-dylan\", mode: \"dylan\", ext: [\"dylan\", \"dyl\", \"intr\"]},\n {name: \"EBNF\", mime: \"text/x-ebnf\", mode: \"ebnf\"},\n {name: \"ECL\", mime: \"text/x-ecl\", mode: \"ecl\", ext: [\"ecl\"]},\n {name: \"edn\", mime: \"application/edn\", mode: \"clojure\", ext: [\"edn\"]},\n {name: \"Eiffel\", mime: \"text/x-eiffel\", mode: \"eiffel\", ext: [\"e\"]},\n {name: \"Elm\", mime: \"text/x-elm\", mode: \"elm\", ext: [\"elm\"]},\n {name: \"Embedded JavaScript\", mime: \"application/x-ejs\", mode: \"htmlembedded\", ext: [\"ejs\"]},\n {name: \"Embedded Ruby\", mime: \"application/x-erb\", mode: \"htmlembedded\", ext: [\"erb\"]},\n {name: \"Erlang\", mime: \"text/x-erlang\", mode: \"erlang\", ext: [\"erl\"]},\n {name: \"Esper\", mime: \"text/x-esper\", mode: \"sql\"},\n {name: \"Factor\", mime: \"text/x-factor\", mode: \"factor\", ext: [\"factor\"]},\n {name: \"FCL\", mime: \"text/x-fcl\", mode: \"fcl\"},\n {name: \"Forth\", mime: \"text/x-forth\", mode: \"forth\", ext: [\"forth\", \"fth\", \"4th\"]},\n {name: \"Fortran\", mime: \"text/x-fortran\", mode: \"fortran\", ext: [\"f\", \"for\", \"f77\", \"f90\", \"f95\"]},\n {name: \"F#\", mime: \"text/x-fsharp\", mode: \"mllike\", ext: [\"fs\"], alias: [\"fsharp\"]},\n {name: \"Gas\", mime: \"text/x-gas\", mode: \"gas\", ext: [\"s\"]},\n {name: \"Gherkin\", mime: \"text/x-feature\", mode: \"gherkin\", ext: [\"feature\"]},\n {name: \"GitHub Flavored Markdown\", mime: \"text/x-gfm\", mode: \"gfm\", file: /^(readme|contributing|history)\\.md$/i},\n {name: \"Go\", mime: \"text/x-go\", mode: \"go\", ext: [\"go\"]},\n {name: \"Groovy\", mime: \"text/x-groovy\", mode: \"groovy\", ext: [\"groovy\", \"gradle\"], file: /^Jenkinsfile$/},\n {name: \"HAML\", mime: \"text/x-haml\", mode: \"haml\", ext: [\"haml\"]},\n {name: \"Haskell\", mime: \"text/x-haskell\", mode: \"haskell\", ext: [\"hs\"]},\n {name: \"Haskell (Literate)\", mime: \"text/x-literate-haskell\", mode: \"haskell-literate\", ext: [\"lhs\"]},\n {name: \"Haxe\", mime: \"text/x-haxe\", mode: \"haxe\", ext: [\"hx\"]},\n {name: \"HXML\", mime: \"text/x-hxml\", mode: \"haxe\", ext: [\"hxml\"]},\n {name: \"ASP.NET\", mime: \"application/x-aspx\", mode: \"htmlembedded\", ext: [\"aspx\"], alias: [\"asp\", \"aspx\"]},\n {name: \"HTML\", mime: \"text/html\", mode: \"htmlmixed\", ext: [\"html\", \"htm\", \"handlebars\", \"hbs\"], alias: [\"xhtml\"]},\n {name: \"HTTP\", mime: \"message/http\", mode: \"http\"},\n {name: \"IDL\", mime: \"text/x-idl\", mode: \"idl\", ext: [\"pro\"]},\n {name: \"Pug\", mime: \"text/x-pug\", mode: \"pug\", ext: [\"jade\", \"pug\"], alias: [\"jade\"]},\n {name: \"Java\", mime: \"text/x-java\", mode: \"clike\", ext: [\"java\"]},\n {name: \"Java Server Pages\", mime: \"application/x-jsp\", mode: \"htmlembedded\", ext: [\"jsp\"], alias: [\"jsp\"]},\n {name: \"JavaScript\", mimes: [\"text/javascript\", \"text/ecmascript\", \"application/javascript\", \"application/x-javascript\", \"application/ecmascript\"],\n mode: \"javascript\", ext: [\"js\"], alias: [\"ecmascript\", \"js\", \"node\"]},\n {name: \"JSON\", mimes: [\"application/json\", \"application/x-json\"], mode: \"javascript\", ext: [\"json\", \"map\"], alias: [\"json5\"]},\n {name: \"JSON-LD\", mime: \"application/ld+json\", mode: \"javascript\", ext: [\"jsonld\"], alias: [\"jsonld\"]},\n {name: \"JSX\", mime: \"text/jsx\", mode: \"jsx\", ext: [\"jsx\"]},\n {name: \"Jinja2\", mime: \"text/jinja2\", mode: \"jinja2\", ext: [\"j2\", \"jinja\", \"jinja2\"]},\n {name: \"Julia\", mime: \"text/x-julia\", mode: \"julia\", ext: [\"jl\"], alias: [\"jl\"]},\n {name: \"Kotlin\", mime: \"text/x-kotlin\", mode: \"clike\", ext: [\"kt\"]},\n {name: \"LESS\", mime: \"text/x-less\", mode: \"css\", ext: [\"less\"]},\n {name: \"LiveScript\", mime: \"text/x-livescript\", mode: \"livescript\", ext: [\"ls\"], alias: [\"ls\"]},\n {name: \"Lua\", mime: \"text/x-lua\", mode: \"lua\", ext: [\"lua\"]},\n {name: \"Markdown\", mime: \"text/x-markdown\", mode: \"markdown\", ext: [\"markdown\", \"md\", \"mkd\"]},\n {name: \"mIRC\", mime: \"text/mirc\", mode: \"mirc\"},\n {name: \"MariaDB SQL\", mime: \"text/x-mariadb\", mode: \"sql\"},\n {name: \"Mathematica\", mime: \"text/x-mathematica\", mode: \"mathematica\", ext: [\"m\", \"nb\", \"wl\", \"wls\"]},\n {name: \"Modelica\", mime: \"text/x-modelica\", mode: \"modelica\", ext: [\"mo\"]},\n {name: \"MUMPS\", mime: \"text/x-mumps\", mode: \"mumps\", ext: [\"mps\"]},\n {name: \"MS SQL\", mime: \"text/x-mssql\", mode: \"sql\"},\n {name: \"mbox\", mime: \"application/mbox\", mode: \"mbox\", ext: [\"mbox\"]},\n {name: \"MySQL\", mime: \"text/x-mysql\", mode: \"sql\"},\n {name: \"Nginx\", mime: \"text/x-nginx-conf\", mode: \"nginx\", file: /nginx.*\\.conf$/i},\n {name: \"NSIS\", mime: \"text/x-nsis\", mode: \"nsis\", ext: [\"nsh\", \"nsi\"]},\n {name: \"NTriples\", mimes: [\"application/n-triples\", \"application/n-quads\", \"text/n-triples\"],\n mode: \"ntriples\", ext: [\"nt\", \"nq\"]},\n {name: \"Objective-C\", mime: \"text/x-objectivec\", mode: \"clike\", ext: [\"m\"], alias: [\"objective-c\", \"objc\"]},\n {name: \"Objective-C++\", mime: \"text/x-objectivec++\", mode: \"clike\", ext: [\"mm\"], alias: [\"objective-c++\", \"objc++\"]},\n {name: \"OCaml\", mime: \"text/x-ocaml\", mode: \"mllike\", ext: [\"ml\", \"mli\", \"mll\", \"mly\"]},\n {name: \"Octave\", mime: \"text/x-octave\", mode: \"octave\", ext: [\"m\"]},\n {name: \"Oz\", mime: \"text/x-oz\", mode: \"oz\", ext: [\"oz\"]},\n {name: \"Pascal\", mime: \"text/x-pascal\", mode: \"pascal\", ext: [\"p\", \"pas\"]},\n {name: \"PEG.js\", mime: \"null\", mode: \"pegjs\", ext: [\"jsonld\"]},\n {name: \"Perl\", mime: \"text/x-perl\", mode: \"perl\", ext: [\"pl\", \"pm\"]},\n {name: \"PHP\", mimes: [\"text/x-php\", \"application/x-httpd-php\", \"application/x-httpd-php-open\"], mode: \"php\", ext: [\"php\", \"php3\", \"php4\", \"php5\", \"php7\", \"phtml\"]},\n {name: \"Pig\", mime: \"text/x-pig\", mode: \"pig\", ext: [\"pig\"]},\n {name: \"Plain Text\", mime: \"text/plain\", mode: \"null\", ext: [\"txt\", \"text\", \"conf\", \"def\", \"list\", \"log\"]},\n {name: \"PLSQL\", mime: \"text/x-plsql\", mode: \"sql\", ext: [\"pls\"]},\n {name: \"PostgreSQL\", mime: \"text/x-pgsql\", mode: \"sql\"},\n {name: \"PowerShell\", mime: \"application/x-powershell\", mode: \"powershell\", ext: [\"ps1\", \"psd1\", \"psm1\"]},\n {name: \"Properties files\", mime: \"text/x-properties\", mode: \"properties\", ext: [\"properties\", \"ini\", \"in\"], alias: [\"ini\", \"properties\"]},\n {name: \"ProtoBuf\", mime: \"text/x-protobuf\", mode: \"protobuf\", ext: [\"proto\"]},\n {name: \"Python\", mime: \"text/x-python\", mode: \"python\", ext: [\"BUILD\", \"bzl\", \"py\", \"pyw\"], file: /^(BUCK|BUILD)$/},\n {name: \"Puppet\", mime: \"text/x-puppet\", mode: \"puppet\", ext: [\"pp\"]},\n {name: \"Q\", mime: \"text/x-q\", mode: \"q\", ext: [\"q\"]},\n {name: \"R\", mime: \"text/x-rsrc\", mode: \"r\", ext: [\"r\", \"R\"], alias: [\"rscript\"]},\n {name: \"reStructuredText\", mime: \"text/x-rst\", mode: \"rst\", ext: [\"rst\"], alias: [\"rst\"]},\n {name: \"RPM Changes\", mime: \"text/x-rpm-changes\", mode: \"rpm\"},\n {name: \"RPM Spec\", mime: \"text/x-rpm-spec\", mode: \"rpm\", ext: [\"spec\"]},\n {name: \"Ruby\", mime: \"text/x-ruby\", mode: \"ruby\", ext: [\"rb\"], alias: [\"jruby\", \"macruby\", \"rake\", \"rb\", \"rbx\"]},\n {name: \"Rust\", mime: \"text/x-rustsrc\", mode: \"rust\", ext: [\"rs\"]},\n {name: \"SAS\", mime: \"text/x-sas\", mode: \"sas\", ext: [\"sas\"]},\n {name: \"Sass\", mime: \"text/x-sass\", mode: \"sass\", ext: [\"sass\"]},\n {name: \"Scala\", mime: \"text/x-scala\", mode: \"clike\", ext: [\"scala\"]},\n {name: \"Scheme\", mime: \"text/x-scheme\", mode: \"scheme\", ext: [\"scm\", \"ss\"]},\n {name: \"SCSS\", mime: \"text/x-scss\", mode: \"css\", ext: [\"scss\"]},\n {name: \"Shell\", mimes: [\"text/x-sh\", \"application/x-sh\"], mode: \"shell\", ext: [\"sh\", \"ksh\", \"bash\"], alias: [\"bash\", \"sh\", \"zsh\"], file: /^PKGBUILD$/},\n {name: \"Sieve\", mime: \"application/sieve\", mode: \"sieve\", ext: [\"siv\", \"sieve\"]},\n {name: \"Slim\", mimes: [\"text/x-slim\", \"application/x-slim\"], mode: \"slim\", ext: [\"slim\"]},\n {name: \"Smalltalk\", mime: \"text/x-stsrc\", mode: \"smalltalk\", ext: [\"st\"]},\n {name: \"Smarty\", mime: \"text/x-smarty\", mode: \"smarty\", ext: [\"tpl\"]},\n {name: \"Solr\", mime: \"text/x-solr\", mode: \"solr\"},\n {name: \"SML\", mime: \"text/x-sml\", mode: \"mllike\", ext: [\"sml\", \"sig\", \"fun\", \"smackspec\"]},\n {name: \"Soy\", mime: \"text/x-soy\", mode: \"soy\", ext: [\"soy\"], alias: [\"closure template\"]},\n {name: \"SPARQL\", mime: \"application/sparql-query\", mode: \"sparql\", ext: [\"rq\", \"sparql\"], alias: [\"sparul\"]},\n {name: \"Spreadsheet\", mime: \"text/x-spreadsheet\", mode: \"spreadsheet\", alias: [\"excel\", \"formula\"]},\n {name: \"SQL\", mime: \"text/x-sql\", mode: \"sql\", ext: [\"sql\"]},\n {name: \"SQLite\", mime: \"text/x-sqlite\", mode: \"sql\"},\n {name: \"Squirrel\", mime: \"text/x-squirrel\", mode: \"clike\", ext: [\"nut\"]},\n {name: \"Stylus\", mime: \"text/x-styl\", mode: \"stylus\", ext: [\"styl\"]},\n {name: \"Swift\", mime: \"text/x-swift\", mode: \"swift\", ext: [\"swift\"]},\n {name: \"sTeX\", mime: \"text/x-stex\", mode: \"stex\"},\n {name: \"LaTeX\", mime: \"text/x-latex\", mode: \"stex\", ext: [\"text\", \"ltx\", \"tex\"], alias: [\"tex\"]},\n {name: \"SystemVerilog\", mime: \"text/x-systemverilog\", mode: \"verilog\", ext: [\"v\", \"sv\", \"svh\"]},\n {name: \"Tcl\", mime: \"text/x-tcl\", mode: \"tcl\", ext: [\"tcl\"]},\n {name: \"Textile\", mime: \"text/x-textile\", mode: \"textile\", ext: [\"textile\"]},\n {name: \"TiddlyWiki\", mime: \"text/x-tiddlywiki\", mode: \"tiddlywiki\"},\n {name: \"Tiki wiki\", mime: \"text/tiki\", mode: \"tiki\"},\n {name: \"TOML\", mime: \"text/x-toml\", mode: \"toml\", ext: [\"toml\"]},\n {name: \"Tornado\", mime: \"text/x-tornado\", mode: \"tornado\"},\n {name: \"troff\", mime: \"text/troff\", mode: \"troff\", ext: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]},\n {name: \"TTCN\", mime: \"text/x-ttcn\", mode: \"ttcn\", ext: [\"ttcn\", \"ttcn3\", \"ttcnpp\"]},\n {name: \"TTCN_CFG\", mime: \"text/x-ttcn-cfg\", mode: \"ttcn-cfg\", ext: [\"cfg\"]},\n {name: \"Turtle\", mime: \"text/turtle\", mode: \"turtle\", ext: [\"ttl\"]},\n {name: \"TypeScript\", mime: \"application/typescript\", mode: \"javascript\", ext: [\"ts\"], alias: [\"ts\"]},\n {name: \"TypeScript-JSX\", mime: \"text/typescript-jsx\", mode: \"jsx\", ext: [\"tsx\"], alias: [\"tsx\"]},\n {name: \"Twig\", mime: \"text/x-twig\", mode: \"twig\"},\n {name: \"Web IDL\", mime: \"text/x-webidl\", mode: \"webidl\", ext: [\"webidl\"]},\n {name: \"VB.NET\", mime: \"text/x-vb\", mode: \"vb\", ext: [\"vb\"]},\n {name: \"VBScript\", mime: \"text/vbscript\", mode: \"vbscript\", ext: [\"vbs\"]},\n {name: \"Velocity\", mime: \"text/velocity\", mode: \"velocity\", ext: [\"vtl\"]},\n {name: \"Verilog\", mime: \"text/x-verilog\", mode: \"verilog\", ext: [\"v\"]},\n {name: \"VHDL\", mime: \"text/x-vhdl\", mode: \"vhdl\", ext: [\"vhd\", \"vhdl\"]},\n {name: \"Vue.js Component\", mimes: [\"script/x-vue\", \"text/x-vue\"], mode: \"vue\", ext: [\"vue\"]},\n {name: \"XML\", mimes: [\"application/xml\", \"text/xml\"], mode: \"xml\", ext: [\"xml\", \"xsl\", \"xsd\", \"svg\"], alias: [\"rss\", \"wsdl\", \"xsd\"]},\n {name: \"XQuery\", mime: \"application/xquery\", mode: \"xquery\", ext: [\"xy\", \"xquery\"]},\n {name: \"Yacas\", mime: \"text/x-yacas\", mode: \"yacas\", ext: [\"ys\"]},\n {name: \"YAML\", mimes: [\"text/x-yaml\", \"text/yaml\"], mode: \"yaml\", ext: [\"yaml\", \"yml\"], alias: [\"yml\"]},\n {name: \"Z80\", mime: \"text/x-z80\", mode: \"z80\", ext: [\"z80\"]},\n {name: \"mscgen\", mime: \"text/x-mscgen\", mode: \"mscgen\", ext: [\"mscgen\", \"mscin\", \"msc\"]},\n {name: \"xu\", mime: \"text/x-xu\", mode: \"mscgen\", ext: [\"xu\"]},\n {name: \"msgenny\", mime: \"text/x-msgenny\", mode: \"mscgen\", ext: [\"msgenny\"]},\n {name: \"WebAssembly\", mime: \"text/webassembly\", mode: \"wast\", ext: [\"wat\", \"wast\"]},\n ];\n // Ensure all modes have a mime property for backwards compatibility\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.mimes) info.mime = info.mimes[0];\n }\n\n CodeMirror.findModeByMIME = function(mime) {\n mime = mime.toLowerCase();\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.mime == mime) return info;\n if (info.mimes) for (var j = 0; j < info.mimes.length; j++)\n if (info.mimes[j] == mime) return info;\n }\n if (/\\+xml$/.test(mime)) return CodeMirror.findModeByMIME(\"application/xml\")\n if (/\\+json$/.test(mime)) return CodeMirror.findModeByMIME(\"application/json\")\n };\n\n CodeMirror.findModeByExtension = function(ext) {\n ext = ext.toLowerCase();\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.ext) for (var j = 0; j < info.ext.length; j++)\n if (info.ext[j] == ext) return info;\n }\n };\n\n CodeMirror.findModeByFileName = function(filename) {\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.file && info.file.test(filename)) return info;\n }\n var dot = filename.lastIndexOf(\".\");\n var ext = dot > -1 && filename.substring(dot + 1, filename.length);\n if (ext) return CodeMirror.findModeByExtension(ext);\n };\n\n CodeMirror.findModeByName = function(name) {\n name = name.toLowerCase();\n for (var i = 0; i < CodeMirror.modeInfo.length; i++) {\n var info = CodeMirror.modeInfo[i];\n if (info.name.toLowerCase() == name) return info;\n if (info.alias) for (var j = 0; j < info.alias.length; j++)\n if (info.alias[j].toLowerCase() == name) return info;\n }\n };\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n function wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n }\n\n var wordOperators = wordRegexp([\"and\", \"or\", \"not\", \"is\"]);\n var commonKeywords = [\"as\", \"assert\", \"break\", \"class\", \"continue\",\n \"def\", \"del\", \"elif\", \"else\", \"except\", \"finally\",\n \"for\", \"from\", \"global\", \"if\", \"import\",\n \"lambda\", \"pass\", \"raise\", \"return\",\n \"try\", \"while\", \"with\", \"yield\", \"in\"];\n var commonBuiltins = [\"abs\", \"all\", \"any\", \"bin\", \"bool\", \"bytearray\", \"callable\", \"chr\",\n \"classmethod\", \"compile\", \"complex\", \"delattr\", \"dict\", \"dir\", \"divmod\",\n \"enumerate\", \"eval\", \"filter\", \"float\", \"format\", \"frozenset\",\n \"getattr\", \"globals\", \"hasattr\", \"hash\", \"help\", \"hex\", \"id\",\n \"input\", \"int\", \"isinstance\", \"issubclass\", \"iter\", \"len\",\n \"list\", \"locals\", \"map\", \"max\", \"memoryview\", \"min\", \"next\",\n \"object\", \"oct\", \"open\", \"ord\", \"pow\", \"property\", \"range\",\n \"repr\", \"reversed\", \"round\", \"set\", \"setattr\", \"slice\",\n \"sorted\", \"staticmethod\", \"str\", \"sum\", \"super\", \"tuple\",\n \"type\", \"vars\", \"zip\", \"__import__\", \"NotImplemented\",\n \"Ellipsis\", \"__debug__\"];\n CodeMirror.registerHelper(\"hintWords\", \"python\", commonKeywords.concat(commonBuiltins));\n\n function top(state) {\n return state.scopes[state.scopes.length - 1];\n }\n\n CodeMirror.defineMode(\"python\", function(conf, parserConf) {\n var ERRORCLASS = \"error\";\n\n var delimiters = parserConf.delimiters || parserConf.singleDelimiters || /^[\\(\\)\\[\\]\\{\\}@,:`=;\\.\\\\]/;\n // (Backwards-compatibility with old, cumbersome config system)\n var operators = [parserConf.singleOperators, parserConf.doubleOperators, parserConf.doubleDelimiters, parserConf.tripleDelimiters,\n parserConf.operators || /^([-+*/%\\/&|^]=?|[<>=]+|\\/\\/=?|\\*\\*=?|!=|[~!@]|\\.\\.\\.)/]\n for (var i = 0; i < operators.length; i++) if (!operators[i]) operators.splice(i--, 1)\n\n var hangingIndent = parserConf.hangingIndent || conf.indentUnit;\n\n var myKeywords = commonKeywords, myBuiltins = commonBuiltins;\n if (parserConf.extra_keywords != undefined)\n myKeywords = myKeywords.concat(parserConf.extra_keywords);\n\n if (parserConf.extra_builtins != undefined)\n myBuiltins = myBuiltins.concat(parserConf.extra_builtins);\n\n var py3 = !(parserConf.version && Number(parserConf.version) < 3)\n if (py3) {\n // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator\n var identifiers = parserConf.identifiers|| /^[_A-Za-z\\u00A1-\\uFFFF][_A-Za-z0-9\\u00A1-\\uFFFF]*/;\n myKeywords = myKeywords.concat([\"nonlocal\", \"False\", \"True\", \"None\", \"async\", \"await\"]);\n myBuiltins = myBuiltins.concat([\"ascii\", \"bytes\", \"exec\", \"print\"]);\n var stringPrefixes = new RegExp(\"^(([rbuf]|(br)|(fr))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n } else {\n var identifiers = parserConf.identifiers|| /^[_A-Za-z][_A-Za-z0-9]*/;\n myKeywords = myKeywords.concat([\"exec\", \"print\"]);\n myBuiltins = myBuiltins.concat([\"apply\", \"basestring\", \"buffer\", \"cmp\", \"coerce\", \"execfile\",\n \"file\", \"intern\", \"long\", \"raw_input\", \"reduce\", \"reload\",\n \"unichr\", \"unicode\", \"xrange\", \"False\", \"True\", \"None\"]);\n var stringPrefixes = new RegExp(\"^(([rubf]|(ur)|(br))?('{3}|\\\"{3}|['\\\"]))\", \"i\");\n }\n var keywords = wordRegexp(myKeywords);\n var builtins = wordRegexp(myBuiltins);\n\n // tokenizers\n function tokenBase(stream, state) {\n var sol = stream.sol() && state.lastToken != \"\\\\\"\n if (sol) state.indent = stream.indentation()\n // Handle scope changes\n if (sol && top(state).type == \"py\") {\n var scopeOffset = top(state).offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset)\n pushPyScope(state);\n else if (lineOffset < scopeOffset && dedent(stream, state) && stream.peek() != \"#\")\n state.errorToken = true;\n return null;\n } else {\n var style = tokenBaseInner(stream, state);\n if (scopeOffset > 0 && dedent(stream, state))\n style += \" \" + ERRORCLASS;\n return style;\n }\n }\n return tokenBaseInner(stream, state);\n }\n\n function tokenBaseInner(stream, state, inFormat) {\n if (stream.eatSpace()) return null;\n\n // Handle Comments\n if (!inFormat && stream.match(/^#.*/)) return \"comment\";\n\n // Handle Number Literals\n if (stream.match(/^[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^[\\d_]*\\.\\d+(e[\\+\\-]?\\d+)?/i)) { floatLiteral = true; }\n if (stream.match(/^[\\d_]+\\.\\d*/)) { floatLiteral = true; }\n if (stream.match(/^\\.\\d+/)) { floatLiteral = true; }\n if (floatLiteral) {\n // Float literals may be \"imaginary\"\n stream.eat(/J/i);\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^0x[0-9a-f_]+/i)) intLiteral = true;\n // Binary\n if (stream.match(/^0b[01_]+/i)) intLiteral = true;\n // Octal\n if (stream.match(/^0o[0-7_]+/i)) intLiteral = true;\n // Decimal\n if (stream.match(/^[1-9][\\d_]*(e[\\+\\-]?[\\d_]+)?/)) {\n // Decimal literals may be \"imaginary\"\n stream.eat(/J/i);\n // TODO - Can you have imaginary longs?\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^0(?![\\dx])/i)) intLiteral = true;\n if (intLiteral) {\n // Integer literals may be \"long\"\n stream.eat(/L/i);\n return \"number\";\n }\n }\n\n // Handle Strings\n if (stream.match(stringPrefixes)) {\n var isFmtString = stream.current().toLowerCase().indexOf('f') !== -1;\n if (!isFmtString) {\n state.tokenize = tokenStringFactory(stream.current(), state.tokenize);\n return state.tokenize(stream, state);\n } else {\n state.tokenize = formatStringFactory(stream.current(), state.tokenize);\n return state.tokenize(stream, state);\n }\n }\n\n for (var i = 0; i < operators.length; i++)\n if (stream.match(operators[i])) return \"operator\"\n\n if (stream.match(delimiters)) return \"punctuation\";\n\n if (state.lastToken == \".\" && stream.match(identifiers))\n return \"property\";\n\n if (stream.match(keywords) || stream.match(wordOperators))\n return \"keyword\";\n\n if (stream.match(builtins))\n return \"builtin\";\n\n if (stream.match(/^(self|cls)\\b/))\n return \"variable-2\";\n\n if (stream.match(identifiers)) {\n if (state.lastToken == \"def\" || state.lastToken == \"class\")\n return \"def\";\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return inFormat ? null :ERRORCLASS;\n }\n\n function formatStringFactory(delimiter, tokenOuter) {\n while (\"rubf\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n delimiter = delimiter.substr(1);\n\n var singleline = delimiter.length == 1;\n var OUTCLASS = \"string\";\n\n function tokenNestedExpr(depth) {\n return function(stream, state) {\n var inner = tokenBaseInner(stream, state, true)\n if (inner == \"punctuation\") {\n if (stream.current() == \"{\") {\n state.tokenize = tokenNestedExpr(depth + 1)\n } else if (stream.current() == \"}\") {\n if (depth > 1) state.tokenize = tokenNestedExpr(depth - 1)\n else state.tokenize = tokenString\n }\n }\n return inner\n }\n }\n\n function tokenString(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\{\\}\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol())\n return OUTCLASS;\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenOuter;\n return OUTCLASS;\n } else if (stream.match('{{')) {\n // ignore {{ in f-str\n return OUTCLASS;\n } else if (stream.match('{', false)) {\n // switch to nested mode\n state.tokenize = tokenNestedExpr(0)\n if (stream.current()) return OUTCLASS;\n else return state.tokenize(stream, state)\n } else if (stream.match('}}')) {\n return OUTCLASS;\n } else if (stream.match('}')) {\n // single } in f-string is an error\n return ERRORCLASS;\n } else {\n stream.eat(/['\"]/);\n }\n }\n if (singleline) {\n if (parserConf.singleLineStringErrors)\n return ERRORCLASS;\n else\n state.tokenize = tokenOuter;\n }\n return OUTCLASS;\n }\n tokenString.isString = true;\n return tokenString;\n }\n\n function tokenStringFactory(delimiter, tokenOuter) {\n while (\"rubf\".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)\n delimiter = delimiter.substr(1);\n\n var singleline = delimiter.length == 1;\n var OUTCLASS = \"string\";\n\n function tokenString(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol())\n return OUTCLASS;\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenOuter;\n return OUTCLASS;\n } else {\n stream.eat(/['\"]/);\n }\n }\n if (singleline) {\n if (parserConf.singleLineStringErrors)\n return ERRORCLASS;\n else\n state.tokenize = tokenOuter;\n }\n return OUTCLASS;\n }\n tokenString.isString = true;\n return tokenString;\n }\n\n function pushPyScope(state) {\n while (top(state).type != \"py\") state.scopes.pop()\n state.scopes.push({offset: top(state).offset + conf.indentUnit,\n type: \"py\",\n align: null})\n }\n\n function pushBracketScope(stream, state, type) {\n var align = stream.match(/^[\\s\\[\\{\\(]*(?:#|$)/, false) ? null : stream.column() + 1\n state.scopes.push({offset: state.indent + hangingIndent,\n type: type,\n align: align})\n }\n\n function dedent(stream, state) {\n var indented = stream.indentation();\n while (state.scopes.length > 1 && top(state).offset > indented) {\n if (top(state).type != \"py\") return true;\n state.scopes.pop();\n }\n return top(state).offset != indented;\n }\n\n function tokenLexer(stream, state) {\n if (stream.sol()) state.beginningOfLine = true;\n\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle decorators\n if (state.beginningOfLine && current == \"@\")\n return stream.match(identifiers, false) ? \"meta\" : py3 ? \"operator\" : ERRORCLASS;\n\n if (/\\S/.test(current)) state.beginningOfLine = false;\n\n if ((style == \"variable\" || style == \"builtin\")\n && state.lastToken == \"meta\")\n style = \"meta\";\n\n // Handle scope changes.\n if (current == \"pass\" || current == \"return\")\n state.dedent += 1;\n\n if (current == \"lambda\") state.lambda = true;\n if (current == \":\" && !state.lambda && top(state).type == \"py\" && stream.match(/^\\s*(?:#|$)/, false))\n pushPyScope(state);\n\n if (current.length == 1 && !/string|comment/.test(style)) {\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index != -1)\n pushBracketScope(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index != -1) {\n if (top(state).type == current) state.indent = state.scopes.pop().offset - hangingIndent\n else return ERRORCLASS;\n }\n }\n if (state.dedent > 0 && stream.eol() && top(state).type == \"py\") {\n if (state.scopes.length > 1) state.scopes.pop();\n state.dedent -= 1;\n }\n\n return style;\n }\n\n var external = {\n startState: function(basecolumn) {\n return {\n tokenize: tokenBase,\n scopes: [{offset: basecolumn || 0, type: \"py\", align: null}],\n indent: basecolumn || 0,\n lastToken: null,\n lambda: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var addErr = state.errorToken;\n if (addErr) state.errorToken = false;\n var style = tokenLexer(stream, state);\n\n if (style && style != \"comment\")\n state.lastToken = (style == \"keyword\" || style == \"punctuation\") ? stream.current() : style;\n if (style == \"punctuation\") style = null;\n\n if (stream.eol() && state.lambda)\n state.lambda = false;\n return addErr ? style + \" \" + ERRORCLASS : style;\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize != tokenBase)\n return state.tokenize.isString ? CodeMirror.Pass : 0;\n\n var scope = top(state), closing = scope.type == textAfter.charAt(0)\n if (scope.align != null)\n return scope.align - (closing ? 1 : 0)\n else\n return scope.offset - (closing ? hangingIndent : 0)\n },\n\n electricInput: /^\\s*[\\}\\]\\)]$/,\n closeBrackets: {triples: \"'\\\"\"},\n lineComment: \"#\",\n fold: \"indent\"\n };\n return external;\n });\n\n CodeMirror.defineMIME(\"text/x-python\", \"python\");\n\n var words = function(str) { return str.split(\" \"); };\n\n CodeMirror.defineMIME(\"text/x-cython\", {\n name: \"python\",\n extra_keywords: words(\"by cdef cimport cpdef ctypedef enum except \"+\n \"extern gil include nogil property public \"+\n \"readonly struct union DEF IF ELIF ELSE\")\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.registerHelper(\"wordChars\", \"r\", /[\\w.]/);\n\nCodeMirror.defineMode(\"r\", function(config) {\n function wordObj(words) {\n var res = {};\n for (var i = 0; i < words.length; ++i) res[words[i]] = true;\n return res;\n }\n var commonAtoms = [\"NULL\", \"NA\", \"Inf\", \"NaN\", \"NA_integer_\", \"NA_real_\", \"NA_complex_\", \"NA_character_\", \"TRUE\", \"FALSE\"];\n var commonBuiltins = [\"list\", \"quote\", \"bquote\", \"eval\", \"return\", \"call\", \"parse\", \"deparse\"];\n var commonKeywords = [\"if\", \"else\", \"repeat\", \"while\", \"function\", \"for\", \"in\", \"next\", \"break\"];\n var commonBlockKeywords = [\"if\", \"else\", \"repeat\", \"while\", \"function\", \"for\"];\n\n CodeMirror.registerHelper(\"hintWords\", \"r\", commonAtoms.concat(commonBuiltins, commonKeywords));\n\n var atoms = wordObj(commonAtoms);\n var builtins = wordObj(commonBuiltins);\n var keywords = wordObj(commonKeywords);\n var blockkeywords = wordObj(commonBlockKeywords);\n var opChars = /[+\\-*\\/^<>=!&|~$:]/;\n var curPunc;\n\n function tokenBase(stream, state) {\n curPunc = null;\n var ch = stream.next();\n if (ch == \"#\") {\n stream.skipToEnd();\n return \"comment\";\n } else if (ch == \"0\" && stream.eat(\"x\")) {\n stream.eatWhile(/[\\da-f]/i);\n return \"number\";\n } else if (ch == \".\" && stream.eat(/\\d/)) {\n stream.match(/\\d*(?:e[+\\-]?\\d+)?/);\n return \"number\";\n } else if (/\\d/.test(ch)) {\n stream.match(/\\d*(?:\\.\\d+)?(?:e[+\\-]\\d+)?L?/);\n return \"number\";\n } else if (ch == \"'\" || ch == '\"') {\n state.tokenize = tokenString(ch);\n return \"string\";\n } else if (ch == \"`\") {\n stream.match(/[^`]+`/);\n return \"variable-3\";\n } else if (ch == \".\" && stream.match(/.(?:[.]|\\d+)/)) {\n return \"keyword\";\n } else if (/[a-zA-Z\\.]/.test(ch)) {\n stream.eatWhile(/[\\w\\.]/);\n var word = stream.current();\n if (atoms.propertyIsEnumerable(word)) return \"atom\";\n if (keywords.propertyIsEnumerable(word)) {\n // Block keywords start new blocks, except 'else if', which only starts\n // one new block for the 'if', no block for the 'else'.\n if (blockkeywords.propertyIsEnumerable(word) &&\n !stream.match(/\\s*if(\\s+|$)/, false))\n curPunc = \"block\";\n return \"keyword\";\n }\n if (builtins.propertyIsEnumerable(word)) return \"builtin\";\n return \"variable\";\n } else if (ch == \"%\") {\n if (stream.skipTo(\"%\")) stream.next();\n return \"operator variable-2\";\n } else if (\n (ch == \"<\" && stream.eat(\"-\")) ||\n (ch == \"<\" && stream.match(\"<-\")) ||\n (ch == \"-\" && stream.match(/>>?/))\n ) {\n return \"operator arrow\";\n } else if (ch == \"=\" && state.ctx.argList) {\n return \"arg-is\";\n } else if (opChars.test(ch)) {\n if (ch == \"$\") return \"operator dollar\";\n stream.eatWhile(opChars);\n return \"operator\";\n } else if (/[\\(\\){}\\[\\];]/.test(ch)) {\n curPunc = ch;\n if (ch == \";\") return \"semi\";\n return null;\n } else {\n return null;\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n if (stream.eat(\"\\\\\")) {\n var ch = stream.next();\n if (ch == \"x\") stream.match(/^[a-f0-9]{2}/i);\n else if ((ch == \"u\" || ch == \"U\") && stream.eat(\"{\") && stream.skipTo(\"}\")) stream.next();\n else if (ch == \"u\") stream.match(/^[a-f0-9]{4}/i);\n else if (ch == \"U\") stream.match(/^[a-f0-9]{8}/i);\n else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/);\n return \"string-2\";\n } else {\n var next;\n while ((next = stream.next()) != null) {\n if (next == quote) { state.tokenize = tokenBase; break; }\n if (next == \"\\\\\") { stream.backUp(1); break; }\n }\n return \"string\";\n }\n };\n }\n\n var ALIGN_YES = 1, ALIGN_NO = 2, BRACELESS = 4\n\n function push(state, type, stream) {\n state.ctx = {type: type,\n indent: state.indent,\n flags: 0,\n column: stream.column(),\n prev: state.ctx};\n }\n function setFlag(state, flag) {\n var ctx = state.ctx\n state.ctx = {type: ctx.type,\n indent: ctx.indent,\n flags: ctx.flags | flag,\n column: ctx.column,\n prev: ctx.prev}\n }\n function pop(state) {\n state.indent = state.ctx.indent;\n state.ctx = state.ctx.prev;\n }\n\n return {\n startState: function() {\n return {tokenize: tokenBase,\n ctx: {type: \"top\",\n indent: -config.indentUnit,\n flags: ALIGN_NO},\n indent: 0,\n afterIdent: false};\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if ((state.ctx.flags & 3) == 0) state.ctx.flags |= ALIGN_NO\n if (state.ctx.flags & BRACELESS) pop(state)\n state.indent = stream.indentation();\n }\n if (stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (style != \"comment\" && (state.ctx.flags & ALIGN_NO) == 0) setFlag(state, ALIGN_YES)\n\n if ((curPunc == \";\" || curPunc == \"{\" || curPunc == \"}\") && state.ctx.type == \"block\") pop(state);\n if (curPunc == \"{\") push(state, \"}\", stream);\n else if (curPunc == \"(\") {\n push(state, \")\", stream);\n if (state.afterIdent) state.ctx.argList = true;\n }\n else if (curPunc == \"[\") push(state, \"]\", stream);\n else if (curPunc == \"block\") push(state, \"block\", stream);\n else if (curPunc == state.ctx.type) pop(state);\n else if (state.ctx.type == \"block\" && style != \"comment\") setFlag(state, BRACELESS)\n state.afterIdent = style == \"variable\" || style == \"keyword\";\n return style;\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx,\n closing = firstChar == ctx.type;\n if (ctx.flags & BRACELESS) ctx = ctx.prev\n if (ctx.type == \"block\") return ctx.indent + (firstChar == \"{\" ? 0 : config.indentUnit);\n else if (ctx.flags & ALIGN_YES) return ctx.column + (closing ? 0 : 1);\n else return ctx.indent + (closing ? 0 : config.indentUnit);\n },\n\n lineComment: \"#\"\n };\n});\n\nCodeMirror.defineMIME(\"text/x-rsrc\", \"r\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('shell', function() {\n\n var words = {};\n function define(style, dict) {\n for(var i = 0; i < dict.length; i++) {\n words[dict[i]] = style;\n }\n };\n\n var commonAtoms = [\"true\", \"false\"];\n var commonKeywords = [\"if\", \"then\", \"do\", \"else\", \"elif\", \"while\", \"until\", \"for\", \"in\", \"esac\", \"fi\",\n \"fin\", \"fil\", \"done\", \"exit\", \"set\", \"unset\", \"export\", \"function\"];\n var commonCommands = [\"ab\", \"awk\", \"bash\", \"beep\", \"cat\", \"cc\", \"cd\", \"chown\", \"chmod\", \"chroot\", \"clear\",\n \"cp\", \"curl\", \"cut\", \"diff\", \"echo\", \"find\", \"gawk\", \"gcc\", \"get\", \"git\", \"grep\", \"hg\", \"kill\", \"killall\",\n \"ln\", \"ls\", \"make\", \"mkdir\", \"openssl\", \"mv\", \"nc\", \"nl\", \"node\", \"npm\", \"ping\", \"ps\", \"restart\", \"rm\",\n \"rmdir\", \"sed\", \"service\", \"sh\", \"shopt\", \"shred\", \"source\", \"sort\", \"sleep\", \"ssh\", \"start\", \"stop\",\n \"su\", \"sudo\", \"svn\", \"tee\", \"telnet\", \"top\", \"touch\", \"vi\", \"vim\", \"wall\", \"wc\", \"wget\", \"who\", \"write\",\n \"yes\", \"zsh\"];\n\n CodeMirror.registerHelper(\"hintWords\", \"shell\", commonAtoms.concat(commonKeywords, commonCommands));\n\n define('atom', commonAtoms);\n define('keyword', commonKeywords);\n define('builtin', commonCommands);\n\n function tokenBase(stream, state) {\n if (stream.eatSpace()) return null;\n\n var sol = stream.sol();\n var ch = stream.next();\n\n if (ch === '\\\\') {\n stream.next();\n return null;\n }\n if (ch === '\\'' || ch === '\"' || ch === '`') {\n state.tokens.unshift(tokenString(ch, ch === \"`\" ? \"quote\" : \"string\"));\n return tokenize(stream, state);\n }\n if (ch === '#') {\n if (sol && stream.eat('!')) {\n stream.skipToEnd();\n return 'meta'; // 'comment'?\n }\n stream.skipToEnd();\n return 'comment';\n }\n if (ch === '$') {\n state.tokens.unshift(tokenDollar);\n return tokenize(stream, state);\n }\n if (ch === '+' || ch === '=') {\n return 'operator';\n }\n if (ch === '-') {\n stream.eat('-');\n stream.eatWhile(/\\w/);\n return 'attribute';\n }\n if (ch == \"<\") {\n if (stream.match(\"<<\")) return \"operator\"\n var heredoc = stream.match(/^<-?\\s*['\"]?([^'\"]*)['\"]?/)\n if (heredoc) {\n state.tokens.unshift(tokenHeredoc(heredoc[1]))\n return 'string-2'\n }\n }\n if (/\\d/.test(ch)) {\n stream.eatWhile(/\\d/);\n if(stream.eol() || !/\\w/.test(stream.peek())) {\n return 'number';\n }\n }\n stream.eatWhile(/[\\w-]/);\n var cur = stream.current();\n if (stream.peek() === '=' && /\\w+/.test(cur)) return 'def';\n return words.hasOwnProperty(cur) ? words[cur] : null;\n }\n\n function tokenString(quote, style) {\n var close = quote == \"(\" ? \")\" : quote == \"{\" ? \"}\" : quote\n return function(stream, state) {\n var next, escaped = false;\n while ((next = stream.next()) != null) {\n if (next === close && !escaped) {\n state.tokens.shift();\n break;\n } else if (next === '$' && !escaped && quote !== \"'\" && stream.peek() != close) {\n escaped = true;\n stream.backUp(1);\n state.tokens.unshift(tokenDollar);\n break;\n } else if (!escaped && quote !== close && next === quote) {\n state.tokens.unshift(tokenString(quote, style))\n return tokenize(stream, state)\n } else if (!escaped && /['\"]/.test(next) && !/['\"]/.test(quote)) {\n state.tokens.unshift(tokenStringStart(next, \"string\"));\n stream.backUp(1);\n break;\n }\n escaped = !escaped && next === '\\\\';\n }\n return style;\n };\n };\n\n function tokenStringStart(quote, style) {\n return function(stream, state) {\n state.tokens[0] = tokenString(quote, style)\n stream.next()\n return tokenize(stream, state)\n }\n }\n\n var tokenDollar = function(stream, state) {\n if (state.tokens.length > 1) stream.eat('$');\n var ch = stream.next()\n if (/['\"({]/.test(ch)) {\n state.tokens[0] = tokenString(ch, ch == \"(\" ? \"quote\" : ch == \"{\" ? \"def\" : \"string\");\n return tokenize(stream, state);\n }\n if (!/\\d/.test(ch)) stream.eatWhile(/\\w/);\n state.tokens.shift();\n return 'def';\n };\n\n function tokenHeredoc(delim) {\n return function(stream, state) {\n if (stream.sol() && stream.string == delim) state.tokens.shift()\n stream.skipToEnd()\n return \"string-2\"\n }\n }\n\n function tokenize(stream, state) {\n return (state.tokens[0] || tokenBase) (stream, state);\n };\n\n return {\n startState: function() {return {tokens:[]};},\n token: function(stream, state) {\n return tokenize(stream, state);\n },\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n lineComment: '#',\n fold: \"brace\"\n };\n});\n\nCodeMirror.defineMIME('text/x-sh', 'shell');\n// Apache uses a slightly different Media Type for Shell scripts\n// http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types\nCodeMirror.defineMIME('application/x-sh', 'shell');\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sql\", function(config, parserConfig) {\n var client = parserConfig.client || {},\n atoms = parserConfig.atoms || {\"false\": true, \"true\": true, \"null\": true},\n builtin = parserConfig.builtin || set(defaultBuiltin),\n keywords = parserConfig.keywords || set(sqlKeywords),\n operatorChars = parserConfig.operatorChars || /^[*+\\-%<>!=&|~^\\/]/,\n support = parserConfig.support || {},\n hooks = parserConfig.hooks || {},\n dateSQL = parserConfig.dateSQL || {\"date\" : true, \"time\" : true, \"timestamp\" : true},\n backslashStringEscapes = parserConfig.backslashStringEscapes !== false,\n brackets = parserConfig.brackets || /^[\\{}\\(\\)\\[\\]]/,\n punctuation = parserConfig.punctuation || /^[;.,:]/\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n\n // call hooks from the mime type\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n\n if (support.hexNumber &&\n ((ch == \"0\" && stream.match(/^[xX][0-9a-fA-F]+/))\n || (ch == \"x\" || ch == \"X\") && stream.match(/^'[0-9a-fA-F]+'/))) {\n // hex\n // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html\n return \"number\";\n } else if (support.binaryNumber &&\n (((ch == \"b\" || ch == \"B\") && stream.match(/^'[01]+'/))\n || (ch == \"0\" && stream.match(/^b[01]+/)))) {\n // bitstring\n // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html\n return \"number\";\n } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) {\n // numbers\n // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html\n stream.match(/^[0-9]*(\\.[0-9]+)?([eE][-+]?[0-9]+)?/);\n support.decimallessFloat && stream.match(/^\\.(?!\\.)/);\n return \"number\";\n } else if (ch == \"?\" && (stream.eatSpace() || stream.eol() || stream.eat(\";\"))) {\n // placeholders\n return \"variable-3\";\n } else if (ch == \"'\" || (ch == '\"' && support.doubleQuote)) {\n // strings\n // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n state.tokenize = tokenLiteral(ch);\n return state.tokenize(stream, state);\n } else if ((((support.nCharCast && (ch == \"n\" || ch == \"N\"))\n || (support.charsetCast && ch == \"_\" && stream.match(/[a-z][a-z0-9]*/i)))\n && (stream.peek() == \"'\" || stream.peek() == '\"'))) {\n // charset casting: _utf8'str', N'str', n'str'\n // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html\n return \"keyword\";\n } else if (support.escapeConstant && (ch == \"e\" || ch == \"E\")\n && (stream.peek() == \"'\" || (stream.peek() == '\"' && support.doubleQuote))) {\n // escape constant: E'str', e'str'\n // ref: https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-ESCAPE\n state.tokenize = function(stream, state) {\n return (state.tokenize = tokenLiteral(stream.next(), true))(stream, state);\n }\n return \"keyword\";\n } else if (support.commentSlashSlash && ch == \"/\" && stream.eat(\"/\")) {\n // 1-line comment\n stream.skipToEnd();\n return \"comment\";\n } else if ((support.commentHash && ch == \"#\")\n || (ch == \"-\" && stream.eat(\"-\") && (!support.commentSpaceRequired || stream.eat(\" \")))) {\n // 1-line comments\n // ref: https://kb.askmonty.org/en/comment-syntax/\n stream.skipToEnd();\n return \"comment\";\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n // multi-line comments\n // ref: https://kb.askmonty.org/en/comment-syntax/\n state.tokenize = tokenComment(1);\n return state.tokenize(stream, state);\n } else if (ch == \".\") {\n // .1 for 0.1\n if (support.zerolessFloat && stream.match(/^(?:\\d+(?:e[+-]?\\d+)?)/i))\n return \"number\";\n if (stream.match(/^\\.+/))\n return null\n // .table_name (ODBC)\n // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n if (support.ODBCdotTable && stream.match(/^[\\w\\d_$#]+/))\n return \"variable-2\";\n } else if (operatorChars.test(ch)) {\n // operators\n stream.eatWhile(operatorChars);\n return \"operator\";\n } else if (brackets.test(ch)) {\n // brackets\n return \"bracket\";\n } else if (punctuation.test(ch)) {\n // punctuation\n stream.eatWhile(punctuation);\n return \"punctuation\";\n } else if (ch == '{' &&\n (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*\"[^\"]*\"( )*}/))) {\n // dates (weird ODBC syntax)\n // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n return \"number\";\n } else {\n stream.eatWhile(/^[_\\w\\d]/);\n var word = stream.current().toLowerCase();\n // dates (standard SQL syntax)\n // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html\n if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+\"[^\"]*\"/)))\n return \"number\";\n if (atoms.hasOwnProperty(word)) return \"atom\";\n if (builtin.hasOwnProperty(word)) return \"builtin\";\n if (keywords.hasOwnProperty(word)) return \"keyword\";\n if (client.hasOwnProperty(word)) return \"string-2\";\n return null;\n }\n }\n\n // 'string', with char specified in quote escaped by '\\'\n function tokenLiteral(quote, backslashEscapes) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = (backslashStringEscapes || backslashEscapes) && !escaped && ch == \"\\\\\";\n }\n return \"string\";\n };\n }\n function tokenComment(depth) {\n return function(stream, state) {\n var m = stream.match(/^.*?(\\/\\*|\\*\\/)/)\n if (!m) stream.skipToEnd()\n else if (m[1] == \"/*\") state.tokenize = tokenComment(depth + 1)\n else if (depth > 1) state.tokenize = tokenComment(depth - 1)\n else state.tokenize = tokenBase\n return \"comment\"\n }\n }\n\n function pushContext(stream, state, type) {\n state.context = {\n prev: state.context,\n indent: stream.indentation(),\n col: stream.column(),\n type: type\n };\n }\n\n function popContext(state) {\n state.indent = state.context.indent;\n state.context = state.context.prev;\n }\n\n return {\n startState: function() {\n return {tokenize: tokenBase, context: null};\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (state.context && state.context.align == null)\n state.context.align = false;\n }\n if (state.tokenize == tokenBase && stream.eatSpace()) return null;\n\n var style = state.tokenize(stream, state);\n if (style == \"comment\") return style;\n\n if (state.context && state.context.align == null)\n state.context.align = true;\n\n var tok = stream.current();\n if (tok == \"(\")\n pushContext(stream, state, \")\");\n else if (tok == \"[\")\n pushContext(stream, state, \"]\");\n else if (state.context && state.context.type == tok)\n popContext(state);\n return style;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context;\n if (!cx) return CodeMirror.Pass;\n var closing = textAfter.charAt(0) == cx.type;\n if (cx.align) return cx.col + (closing ? 0 : 1);\n else return cx.indent + (closing ? 0 : config.indentUnit);\n },\n\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n lineComment: support.commentSlashSlash ? \"//\" : support.commentHash ? \"#\" : \"--\",\n closeBrackets: \"()[]{}''\\\"\\\"``\"\n };\n});\n\n // `identifier`\n function hookIdentifier(stream) {\n // MySQL/MariaDB identifiers\n // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"`\" && !stream.eat(\"`\")) return \"variable-2\";\n }\n stream.backUp(stream.current().length - 1);\n return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n }\n\n // \"identifier\"\n function hookIdentifierDoublequote(stream) {\n // Standard SQL /SQLite identifiers\n // ref: http://web.archive.org/web/20160813185132/http://savage.net.au/SQL/sql-99.bnf.html#delimited%20identifier\n // ref: http://sqlite.org/lang_keywords.html\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"\\\"\" && !stream.eat(\"\\\"\")) return \"variable-2\";\n }\n stream.backUp(stream.current().length - 1);\n return stream.eatWhile(/\\w/) ? \"variable-2\" : null;\n }\n\n // variable token\n function hookVar(stream) {\n // variables\n // @@prefix.varName @varName\n // varName can be quoted with ` or ' or \"\n // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html\n if (stream.eat(\"@\")) {\n stream.match('session.');\n stream.match('local.');\n stream.match('global.');\n }\n\n if (stream.eat(\"'\")) {\n stream.match(/^.*'/);\n return \"variable-2\";\n } else if (stream.eat('\"')) {\n stream.match(/^.*\"/);\n return \"variable-2\";\n } else if (stream.eat(\"`\")) {\n stream.match(/^.*`/);\n return \"variable-2\";\n } else if (stream.match(/^[0-9a-zA-Z$\\.\\_]+/)) {\n return \"variable-2\";\n }\n return null;\n };\n\n // short client keyword token\n function hookClient(stream) {\n // \\N means NULL\n // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html\n if (stream.eat(\"N\")) {\n return \"atom\";\n }\n // \\g, etc\n // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html\n return stream.match(/^[a-zA-Z.#!?]/) ? \"variable-2\" : null;\n }\n\n // these keywords are used by all SQL dialects (however, a mode can still overwrite it)\n var sqlKeywords = \"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit \";\n\n // turn a space-separated list into an array\n function set(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n }\n\n var defaultBuiltin = \"bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric\"\n\n // A generic SQL Mode. It's not a standard, it just try to support what is generally supported\n CodeMirror.defineMIME(\"text/x-sql\", {\n name: \"sql\",\n keywords: set(sqlKeywords + \"begin\"),\n builtin: set(defaultBuiltin),\n atoms: set(\"false true null unknown\"),\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n });\n\n CodeMirror.defineMIME(\"text/x-mssql\", {\n name: \"sql\",\n client: set(\"$partition binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id\"),\n keywords: set(sqlKeywords + \"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx updlock with\"),\n builtin: set(\"bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table \"),\n atoms: set(\"is not null like and or in left right between inner outer join all any some cross unpivot pivot exists\"),\n operatorChars: /^[*+\\-%<>!=^\\&|\\/]/,\n brackets: /^[\\{}\\(\\)]/,\n punctuation: /^[;.,:/]/,\n backslashStringEscapes: false,\n dateSQL: set(\"date datetimeoffset datetime2 smalldatetime datetime time\"),\n hooks: {\n \"@\": hookVar\n }\n });\n\n CodeMirror.defineMIME(\"text/x-mysql\", {\n name: \"sql\",\n client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n keywords: set(sqlKeywords + \"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n hooks: {\n \"@\": hookVar,\n \"`\": hookIdentifier,\n \"\\\\\": hookClient\n }\n });\n\n CodeMirror.defineMIME(\"text/x-mariadb\", {\n name: \"sql\",\n client: set(\"charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee\"),\n keywords: set(sqlKeywords + \"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat\"),\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired\"),\n hooks: {\n \"@\": hookVar,\n \"`\": hookIdentifier,\n \"\\\\\": hookClient\n }\n });\n\n // provided by the phpLiteAdmin project - phpliteadmin.org\n CodeMirror.defineMIME(\"text/x-sqlite\", {\n name: \"sql\",\n // commands of the official SQLite client, ref: https://www.sqlite.org/cli.html#dotcmd\n client: set(\"auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width\"),\n // ref: http://sqlite.org/lang_keywords.html\n keywords: set(sqlKeywords + \"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without\"),\n // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n builtin: set(\"bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real\"),\n // ref: http://sqlite.org/syntax/literal-value.html\n atoms: set(\"null current_date current_time current_timestamp\"),\n // ref: http://sqlite.org/lang_expr.html#binaryops\n operatorChars: /^[*+\\-%<>!=&|/~]/,\n // SQLite is weakly typed, ref: http://sqlite.org/datatype3.html. This is just a list of some common types.\n dateSQL: set(\"date time timestamp datetime\"),\n support: set(\"decimallessFloat zerolessFloat\"),\n identifierQuote: \"\\\"\", //ref: http://sqlite.org/lang_keywords.html\n hooks: {\n // bind-parameters ref:http://sqlite.org/lang_expr.html#varparam\n \"@\": hookVar,\n \":\": hookVar,\n \"?\": hookVar,\n \"$\": hookVar,\n // The preferred way to escape Identifiers is using double quotes, ref: http://sqlite.org/lang_keywords.html\n \"\\\"\": hookIdentifierDoublequote,\n // there is also support for backticks, ref: http://sqlite.org/lang_keywords.html\n \"`\": hookIdentifier\n }\n });\n\n // the query language used by Apache Cassandra is called CQL, but this mime type\n // is called Cassandra to avoid confusion with Contextual Query Language\n CodeMirror.defineMIME(\"text/x-cassandra\", {\n name: \"sql\",\n client: { },\n keywords: set(\"add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime\"),\n builtin: set(\"ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint\"),\n atoms: set(\"false true infinity NaN\"),\n operatorChars: /^[<>=]/,\n dateSQL: { },\n support: set(\"commentSlashSlash decimallessFloat\"),\n hooks: { }\n });\n\n // this is based on Peter Raganitsch's 'plsql' mode\n CodeMirror.defineMIME(\"text/x-plsql\", {\n name: \"sql\",\n client: set(\"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap\"),\n keywords: set(\"abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work\"),\n builtin: set(\"abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml\"),\n operatorChars: /^[*\\/+\\-%<>!=~]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"doubleQuote nCharCast zerolessFloat binaryNumber hexNumber\")\n });\n\n // Created to support specific hive keywords\n CodeMirror.defineMIME(\"text/x-hive\", {\n name: \"sql\",\n keywords: set(\"select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year\"),\n builtin: set(\"bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=]/,\n dateSQL: set(\"date timestamp\"),\n support: set(\"ODBCdotTable doubleQuote binaryNumber hexNumber\")\n });\n\n CodeMirror.defineMIME(\"text/x-pgsql\", {\n name: \"sql\",\n client: set(\"source\"),\n // For PostgreSQL - https://www.postgresql.org/docs/11/sql-keywords-appendix.html\n // For pl/pgsql lang - https://github.com/postgres/postgres/blob/REL_11_2/src/pl/plpgsql/src/pl_scanner.c\n keywords: set(sqlKeywords + \"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone\"),\n // https://www.postgresql.org/docs/11/datatype.html\n builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*\\/+\\-%<>!=&|^\\/#@?~]/,\n backslashStringEscapes: false,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant\")\n });\n\n // Google's SQL-like query language, GQL\n CodeMirror.defineMIME(\"text/x-gql\", {\n name: \"sql\",\n keywords: set(\"ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where\"),\n atoms: set(\"false true\"),\n builtin: set(\"blob datetime first key __key__ string integer double boolean null\"),\n operatorChars: /^[*+\\-%<>!=]/\n });\n\n // Greenplum\n CodeMirror.defineMIME(\"text/x-gpsql\", {\n name: \"sql\",\n client: set(\"source\"),\n //https://github.com/greenplum-db/gpdb/blob/master/src/include/parser/kwlist.h\n keywords: set(\"abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone\"),\n builtin: set(\"bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml\"),\n atoms: set(\"false true null unknown\"),\n operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast\")\n });\n\n // Spark SQL\n CodeMirror.defineMIME(\"text/x-sparksql\", {\n name: \"sql\",\n keywords: set(\"add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with\"),\n builtin: set(\"tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat\"),\n atoms: set(\"false true null\"),\n operatorChars: /^[*\\/+\\-%<>!=~&|^]/,\n dateSQL: set(\"date time timestamp\"),\n support: set(\"ODBCdotTable doubleQuote zerolessFloat\")\n });\n\n // Esper\n CodeMirror.defineMIME(\"text/x-esper\", {\n name: \"sql\",\n client: set(\"source\"),\n // http://www.espertech.com/esper/release-5.5.0/esper-reference/html/appendix_keywords.html\n keywords: set(\"alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window\"),\n builtin: {},\n atoms: set(\"false true null\"),\n operatorChars: /^[*+\\-%<>!=&|^\\/#@?~]/,\n dateSQL: set(\"time\"),\n support: set(\"decimallessFloat zerolessFloat binaryNumber hexNumber\")\n });\n});\n\n/*\n How Properties of Mime Types are used by SQL Mode\n =================================================\n\n keywords:\n A list of keywords you want to be highlighted.\n builtin:\n A list of builtin types you want to be highlighted (if you want types to be of class \"builtin\" instead of \"keyword\").\n operatorChars:\n All characters that must be handled as operators.\n client:\n Commands parsed and executed by the client (not the server).\n support:\n A list of supported syntaxes which are not common, but are supported by more than 1 DBMS.\n * ODBCdotTable: .tableName\n * zerolessFloat: .1\n * doubleQuote\n * nCharCast: N'string'\n * charsetCast: _utf8'string'\n * commentHash: use # char for comments\n * commentSlashSlash: use // for comments\n * commentSpaceRequired: require a space after -- for comments\n atoms:\n Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others:\n UNKNOWN, INFINITY, UNDERFLOW, NaN...\n dateSQL:\n Used for date/time SQL standard syntax, because not all DBMS's support same temporal types.\n*/\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/*\n * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de)\n * Licence: MIT\n */\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineMode(\"stex\", function(_config, parserConfig) {\n \"use strict\";\n\n function pushCommand(state, command) {\n state.cmdState.push(command);\n }\n\n function peekCommand(state) {\n if (state.cmdState.length > 0) {\n return state.cmdState[state.cmdState.length - 1];\n } else {\n return null;\n }\n }\n\n function popCommand(state) {\n var plug = state.cmdState.pop();\n if (plug) {\n plug.closeBracket();\n }\n }\n\n // returns the non-default plugin closest to the end of the list\n function getMostPowerful(state) {\n var context = state.cmdState;\n for (var i = context.length - 1; i >= 0; i--) {\n var plug = context[i];\n if (plug.name == \"DEFAULT\") {\n continue;\n }\n return plug;\n }\n return { styleIdentifier: function() { return null; } };\n }\n\n function addPluginPattern(pluginName, cmdStyle, styles) {\n return function () {\n this.name = pluginName;\n this.bracketNo = 0;\n this.style = cmdStyle;\n this.styles = styles;\n this.argument = null; // \\begin and \\end have arguments that follow. These are stored in the plugin\n\n this.styleIdentifier = function() {\n return this.styles[this.bracketNo - 1] || null;\n };\n this.openBracket = function() {\n this.bracketNo++;\n return \"bracket\";\n };\n this.closeBracket = function() {};\n };\n }\n\n var plugins = {};\n\n plugins[\"importmodule\"] = addPluginPattern(\"importmodule\", \"tag\", [\"string\", \"builtin\"]);\n plugins[\"documentclass\"] = addPluginPattern(\"documentclass\", \"tag\", [\"\", \"atom\"]);\n plugins[\"usepackage\"] = addPluginPattern(\"usepackage\", \"tag\", [\"atom\"]);\n plugins[\"begin\"] = addPluginPattern(\"begin\", \"tag\", [\"atom\"]);\n plugins[\"end\"] = addPluginPattern(\"end\", \"tag\", [\"atom\"]);\n\n plugins[\"label\" ] = addPluginPattern(\"label\" , \"tag\", [\"atom\"]);\n plugins[\"ref\" ] = addPluginPattern(\"ref\" , \"tag\", [\"atom\"]);\n plugins[\"eqref\" ] = addPluginPattern(\"eqref\" , \"tag\", [\"atom\"]);\n plugins[\"cite\" ] = addPluginPattern(\"cite\" , \"tag\", [\"atom\"]);\n plugins[\"bibitem\" ] = addPluginPattern(\"bibitem\" , \"tag\", [\"atom\"]);\n plugins[\"Bibitem\" ] = addPluginPattern(\"Bibitem\" , \"tag\", [\"atom\"]);\n plugins[\"RBibitem\" ] = addPluginPattern(\"RBibitem\" , \"tag\", [\"atom\"]);\n\n plugins[\"DEFAULT\"] = function () {\n this.name = \"DEFAULT\";\n this.style = \"tag\";\n\n this.styleIdentifier = this.openBracket = this.closeBracket = function() {};\n };\n\n function setState(state, f) {\n state.f = f;\n }\n\n // called when in a normal (no environment) context\n function normal(source, state) {\n var plug;\n // Do we look like '\\command' ? If so, attempt to apply the plugin 'command'\n if (source.match(/^\\\\[a-zA-Z@]+/)) {\n var cmdName = source.current().slice(1);\n plug = plugins.hasOwnProperty(cmdName) ? plugins[cmdName] : plugins[\"DEFAULT\"];\n plug = new plug();\n pushCommand(state, plug);\n setState(state, beginParams);\n return plug.style;\n }\n\n // escape characters\n if (source.match(/^\\\\[$&%#{}_]/)) {\n return \"tag\";\n }\n\n // white space control characters\n if (source.match(/^\\\\[,;!\\/\\\\]/)) {\n return \"tag\";\n }\n\n // find if we're starting various math modes\n if (source.match(\"\\\\[\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"\\\\]\"); });\n return \"keyword\";\n }\n if (source.match(\"\\\\(\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"\\\\)\"); });\n return \"keyword\";\n }\n if (source.match(\"$$\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"$$\"); });\n return \"keyword\";\n }\n if (source.match(\"$\")) {\n setState(state, function(source, state){ return inMathMode(source, state, \"$\"); });\n return \"keyword\";\n }\n\n var ch = source.next();\n if (ch == \"%\") {\n source.skipToEnd();\n return \"comment\";\n } else if (ch == '}' || ch == ']') {\n plug = peekCommand(state);\n if (plug) {\n plug.closeBracket(ch);\n setState(state, beginParams);\n } else {\n return \"error\";\n }\n return \"bracket\";\n } else if (ch == '{' || ch == '[') {\n plug = plugins[\"DEFAULT\"];\n plug = new plug();\n pushCommand(state, plug);\n return \"bracket\";\n } else if (/\\d/.test(ch)) {\n source.eatWhile(/[\\w.%]/);\n return \"atom\";\n } else {\n source.eatWhile(/[\\w\\-_]/);\n plug = getMostPowerful(state);\n if (plug.name == 'begin') {\n plug.argument = source.current();\n }\n return plug.styleIdentifier();\n }\n }\n\n function inMathMode(source, state, endModeSeq) {\n if (source.eatSpace()) {\n return null;\n }\n if (endModeSeq && source.match(endModeSeq)) {\n setState(state, normal);\n return \"keyword\";\n }\n if (source.match(/^\\\\[a-zA-Z@]+/)) {\n return \"tag\";\n }\n if (source.match(/^[a-zA-Z]+/)) {\n return \"variable-2\";\n }\n // escape characters\n if (source.match(/^\\\\[$&%#{}_]/)) {\n return \"tag\";\n }\n // white space control characters\n if (source.match(/^\\\\[,;!\\/]/)) {\n return \"tag\";\n }\n // special math-mode characters\n if (source.match(/^[\\^_&]/)) {\n return \"tag\";\n }\n // non-special characters\n if (source.match(/^[+\\-<>|=,\\/@!*:;'\"`~#?]/)) {\n return null;\n }\n if (source.match(/^(\\d+\\.\\d*|\\d*\\.\\d+|\\d+)/)) {\n return \"number\";\n }\n var ch = source.next();\n if (ch == \"{\" || ch == \"}\" || ch == \"[\" || ch == \"]\" || ch == \"(\" || ch == \")\") {\n return \"bracket\";\n }\n\n if (ch == \"%\") {\n source.skipToEnd();\n return \"comment\";\n }\n return \"error\";\n }\n\n function beginParams(source, state) {\n var ch = source.peek(), lastPlug;\n if (ch == '{' || ch == '[') {\n lastPlug = peekCommand(state);\n lastPlug.openBracket(ch);\n source.eat(ch);\n setState(state, normal);\n return \"bracket\";\n }\n if (/[ \\t\\r]/.test(ch)) {\n source.eat(ch);\n return null;\n }\n setState(state, normal);\n popCommand(state);\n\n return normal(source, state);\n }\n\n return {\n startState: function() {\n var f = parserConfig.inMathMode ? function(source, state){ return inMathMode(source, state); } : normal;\n return {\n cmdState: [],\n f: f\n };\n },\n copyState: function(s) {\n return {\n cmdState: s.cmdState.slice(),\n f: s.f\n };\n },\n token: function(stream, state) {\n return state.f(stream, state);\n },\n blankLine: function(state) {\n state.f = normal;\n state.cmdState.length = 0;\n },\n lineComment: \"%\"\n };\n });\n\n CodeMirror.defineMIME(\"text/x-stex\", \"stex\");\n CodeMirror.defineMIME(\"text/x-latex\", \"stex\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(parentTagName) ||\n !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(state.context.tagName))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(tagName)) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","/**\n * Utility module to work with Arrays.\n *\n * @module array\n */\n\n/**\n * Return the last element of an array. The element must exist\n *\n * @template L\n * @param {Array} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Common Math expressions.\n *\n * @module math\n */\n\nexport const floor = Math.floor\nexport const ceil = Math.ceil\nexport const abs = Math.abs\nexport const imul = Math.imul\nexport const round = Math.round\nexport const log10 = Math.log10\nexport const log2 = Math.log2\nexport const log = Math.log\nexport const sqrt = Math.sqrt\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The sum of a and b\n */\nexport const add = (a, b) => a + b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The smaller element of a and b\n */\nexport const min = (a, b) => a < b ? a : b\n\n/**\n * @function\n * @param {number} a\n * @param {number} b\n * @return {number} The bigger element of a and b\n */\nexport const max = (a, b) => a > b ? a : b\n\nexport const isNaN = Number.isNaN\n\nexport const pow = Math.pow\n/**\n * Base 10 exponential function. Returns the value of 10 raised to the power of pow.\n *\n * @param {number} exp\n * @return {number}\n */\nexport const exp10 = exp => Math.pow(10, exp)\n\nexport const sign = Math.sign\n\n/**\n * @param {number} n\n * @return {boolean} Wether n is negative. This function also differentiates between -0 and +0\n */\nexport const isNegativeZero = n => n !== 0 ? n < 0 : 1 / n < 0\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/**\n * Observable class prototype.\n *\n * @module observable\n */\n\nimport * as map from './map.js'\nimport * as set from './set.js'\nimport * as array from './array.js'\n\n/**\n * Handles named events.\n *\n * @template N\n */\nexport class Observable {\n constructor () {\n /**\n * Some desc.\n * @type {Map}\n */\n this._observers = map.create()\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n on (name, f) {\n map.setIfUndefined(this._observers, name, set.create).add(f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n once (name, f) {\n /**\n * @param {...any} args\n */\n const _f = (...args) => {\n this.off(name, _f)\n f(...args)\n }\n this.on(name, _f)\n }\n\n /**\n * @param {N} name\n * @param {function} f\n */\n off (name, f) {\n const observers = this._observers.get(name)\n if (observers !== undefined) {\n observers.delete(f)\n if (observers.size === 0) {\n this._observers.delete(name)\n }\n }\n }\n\n /**\n * Emit a named event. All registered event listeners that listen to the\n * specified name will receive the event.\n *\n * @todo This should catch exceptions\n *\n * @param {N} name The event name.\n * @param {Array} args The arguments that are applied to the event listener.\n */\n emit (name, args) {\n // copy all listeners to an array first to make sure that no event is emitted to listeners that are subscribed while the event handler is called.\n return array.from((this._observers.get(name) || map.create()).values()).forEach(f => f(...args))\n }\n\n destroy () {\n this._observers = map.create()\n }\n}\n","/**\n * Utility module to work with sets.\n *\n * @module set\n */\n\nexport const create = () => new Set()\n\n/**\n * @template T\n * @param {Set} set\n * @return {Array}\n */\nexport const toArray = set => Array.from(set)\n\n/**\n * @template T\n * @param {Set} set\n * @return {T}\n */\nexport const first = set => {\n return set.values().next().value || undefined\n}\n\n/**\n * @template T\n * @param {Iterable} entries\n * @return {Set}\n */\nexport const from = entries => {\n return new Set(entries)\n}\n"],"names":["createTimeoutClass","clearFunction","constructor","timeoutId","this","_","destroy","clearTimeout","clearInterval","arg","requestAnimationFrame","cancelAnimationFrame","cancelIdleCallback","cmOrigin","createEmptyLinePlaceholder","color","placeholder","document","createElement","setAttribute","emptyTxt","insertBefore","createTextNode","sel","CodemirrorBinding","textType","codeMirror","awareness","yUndoManager","super","doc","cmDoc","getDoc","type","cm","_onStackItemAdded","stackItem","changedParentTypes","has","_beforeChangeSelection","meta","set","_onStackItemPopped","get","anchor","index","head","setSelection","posFromIndex","_beforeChange","trackedOrigins","add","editorUndo","endOperation","undo","startOperation","editorRedo","redo","addKeyMap","on","_mux","token","f","g","undefined","createMutex","setValue","toString","_typeObserver","event","binding","getEditor","indexFromPos","getCursor","switchSel","tmp","performChange","delta","i","length","d","retain","insert","pos","replaceRange","delete","math","start","end","operation","scroll","typeObserver","_targetObserver","instance","changes","transact","hasPaste","some","change","origin","stopCapturing","a","b","left","right","remove","slice","getValue","from","delLen","removed","map","s","reduce","text","join","_pendingCursorEvent","emit","targetObserver","_cursors","Map","_changedCursors","Set","_debounceCursorEvent","timeout","timer","setTimeout","_awarenessListener","clientId","clientID","added","forEach","updated","size","y","cursors","aw","getStates","m","caret","clear","user","name","cursor","JSON","parse","headpos","anchorpos","to","caretEl","username","classList","userDiv","createRemoteCaret","awCursor","line","ch","push","markText","css","inclusiveRight","inclusiveLeft","setBookmark","widget","insertLeft","updateRemoteSelection","_cursorListener","getLocalState","hasFocus","display","wrapper","ownerDocument","newAnchor","newHead","currentAnchor","currentHead","setLocalStateField","stringify","codemirrorCursorActivity","_blurListeer","observe","unobserve","off","CodeMirror","noOptions","nonWS","Pos","cmp","cmpPos","firstNonWS","str","found","search","getMode","mode","useInnerComments","innerMode","getModeAt","commands","toggleComment","defineExtension","options","minLine","Infinity","ranges","listSelections","uncomment","lineComment","self","firstLine","getLine","test","getTokenTypeAt","commentString","Math","min","lastLine","pad","padding","blankLines","commentBlankLines","indent","baseString","whitespace","cut","blockCommentStart","fullLines","blockComment","startString","endString","blockCommentEnd","lastLineHasText","lead","blockCommentLead","atCursor","empty","somethingSelected","didSomething","lineString","lines","indexOf","endPos","startLine","open","endLine","close","insideStart","insideEnd","getRange","lastStart","lastIndexOf","firstEnd","almostLastStart","openEnd","foundEnd","mod","drawRulers","state","rulerDiv","textContent","val","getOption","cw","defaultCharWidth","charCoords","style","minHeight","scroller","offsetHeight","elt","className","col","conf","column","borderColor","lineStyle","borderLeftStyle","width","borderLeftWidth","appendChild","defineOption","parentElement","removeChild","lineSpace","defaults","pairs","closeBefore","triples","explode","old","Init","removeKeyMap","keyMap","closeBrackets","ensureBound","Backspace","getConfig","Pass","around","charsAround","cur","Enter","linesep","lineSeparator","replaceSelection","moveSel","indentLine","chars","charAt","key","handler","identical","opening","curType","range","next","prev","isWordChar","stringStartsAfter","sels","getSelections","replaceSelections","contractSelection","setSelections","triggerElectric","handleChar","deflt","override","dir","newRanges","primary","inverted","getTokenAt","removeOverlay","addOverlay","stream","l","string","registerHelper","tokenType","lineText","findOpening","openCh","at","pass","startToken","endToken","startCh","startBrace","startBracket","endCh","count","outer","nextOpen","nextClose","hasImport","e","semi","clipPos","hasInclude","registerGlobalHelper","depth","doFold","force","call","finder","minSize","allowFolded","marks","findMarksAt","__isFold","cleared","myWidget","cloneNode","makeWidget","myRange","e_preventDefault","replacedWith","clearOnEnter","signal","newFoldFunction","rangeFinder","toggleFold","foldCode","fold","unfold","foldAll","unfoldAll","funcs","Array","prototype","arguments","helpers","getHelpers","defaultOptions","auto","minFoldSize","scanUp","editorOptions","foldOptions","opts","clearGutter","foldGutter","gutter","onGutterClick","onChange","onViewportChange","onFold","State","indicatorOpen","indicatorFolded","updateInViewport","isFolded","findMarks","fromPos","find","marker","spec","updateFoldInfo","foldOption","func","clsFolded","classTest","clsOpen","eachLine","mark","gutterMarkers","setGutterMarker","cls","RegExp","vp","getViewport","folded","changeUpdate","foldOnChangeTimeSpan","updateViewportTimeSpan","lineIndent","lineNo","spaceTo","countColumn","myIndent","lastLineInFold","isHeader","tokentype","headerLevel","nextLine","match","level","lastLineNo","nextNextLine","nameStartChar","xmlTagStart","Iter","max","tagAt","iter","prevLine","toTagEnd","gt","lastSlash","selfClose","toTagStart","lt","lastIndex","exec","toNextTag","toPrevTag","findMatchingClose","tag","stack","findMatchingOpen","openTag","startPos","findMatchingTag","here","findEnclosingTag","scanForClosingTag","multiplexingMode","others","pattern","returnEnd","startState","innerActive","inner","startingInner","copyState","curInner","oldContent","sol","parseDelimiters","delimStyle","innerToken","innerStyle","cutOff","other","outerIndent","possibleOuterIndent","outerToken","textAfter","blankLine","electricChars","overlayMode","base","overlay","combine","basePos","baseCur","overlayPos","overlayCur","streamSeen","combineTokens","baseToken","overlayToken","ensureState","states","hasOwnProperty","Error","toRegex","flags","ignoreCase","unicode","source","String","Rule","data","regex","apply","replace","result","asToken","tokenFunction","config","pending","pend","shift","local","tok","localState","endScan","current","curState","rule","matches","pop","enterLocalMode","indentation","indentUnit","dedent","j","backUp","props","prop","pers","persistent","p","persistentStates","lState","forceEnd","indentFunction","dontIndentStates","arr","rules","scan","dedentIfLineStart","defineSimpleMode","defineMode","simpleMode","states_","hasIndentation","list","orig","runMode","modespec","callback","tabSize","ie_lt9","navigator","userAgent","documentMode","node","innerHTML","content","idx","sp","splitLines","StringStream","lookAhead","n","eol","changeEnd","updateBottomMargin","lineCount","clientHeight","getLineHandle","height","scrollPastEndPadding","parentNode","paddingBottom","setSize","interpretLine","num","Number","bottom","jumpToLine","shortText","openDialog","value","selectValueOnOpen","prompt","dialog","phrase","getJumpDialog","posStr","setCursor","round","SearchState","posFrom","posTo","lastQuery","query","getSearchState","queryCaseInsensitive","toLowerCase","getSearchCursor","caseFold","multiline","parseString","parseQuery","isRE","startSearch","queryText","caseInsensitive","global","skipToEnd","searchOverlay","showMatchesOnScrollbar","annotate","doSearch","rev","immediate","findNext","q","getSelection","hiding","searchNext","e_stop","opacity","shiftKey","querySelector","getBoundingClientRect","cursorCoords","top","onEnter","onKeyDown","closeOnEnter","onClose","clearSearch","persistentDialog","getQueryDialog","keyName","extra","cmd","execCommand","scrollIntoView","replaceAll","all","dialogText","getReplaceQueryDialog","getReplacementQueryDialog","advance","fs","openConfirm","confirm","confirmDialog","getDoReplaceConfirm","doReplace","findPersistent","findPersistentNext","findPersistentPrev","findPrev","WRAP_CLASS","BACK_CLASS","GUTT_CLASS","clearActiveLines","activeLines","removeLineClass","updateActiveLines","active","option","nonEmpty","getLineHandleVisualStart","sameArray","addLineClass","selectionChange","onCursorActivity","markedSelection","reset","array","coverRange","coverStart","coverEnd","update","markedSelectionStyle","addAt","atEnd","splice","selectionPointer","rects","scheduleUpdate","willUpdate","mouseX","selectionDiv","firstChild","nextSibling","inside","rect","mouseY","lineDiv","getWrapperElement","mousemove","mouseout","window","windowScroll","buttons","which","clientX","clientY","contains","relatedTarget","cmds","posEq","killRing","addToRing","getFromRing","lastKill","_kill","ring","isClean","gen","growRingTop","changeGeneration","byChar","findPosH","byWord","byLine","findPosV","goalColumn","byPage","byParagraph","no","sawText","fst","lst","bySentence","sawWord","byExpr","wrap","findMatchingBracket","strict","forward","first","after","newPos","getPrefix","precise","digits","emacsPrefix","clearPrefix","repeated","prefix","findEnd","by","move","extendSelection","motion","killTo","selections","_killRegion","selection","addPrefix","digit","maybeClearPrefix","maybeDuplicateInput","prefixPreservingKeys","emacsPrefixMap","dup","one","txt","maybeRemovePrefixMap","prefixMap","clearMark","setExtending","getInput","msg","fragment","createDocumentFragment","input","makePrompt","operateOnWord","op","setMark","getExtending","killRegion","killLineEmacs","killRingSave","yank","yankPop","forwardChar","backwardChar","deleteChar","deleteForwardChar","deleteBackwardChar","forwardWord","backwardWord","killWord","backwardKillWord","previousLine","scrollDownCommand","scrollUpCommand","backwardParagraph","forwardParagraph","backwardSentence","forwardSentence","killSentence","backwardKillSentence","killSexp","backwardKillSexp","forwardSexp","backwardSexp","markSexp","transposeSexps","leftStart","leftEnd","rightEnd","rightStart","backwardUpList","justOneSpace","openLine","transposeCharsRepeatable","capitalizeWord","w","letter","toUpperCase","upcaseWord","downcaseWord","undoRepeatable","keyboardQuit","newline","gotoLine","isNaN","indentRigidly","indentSelection","exchangePointAndMark","quotedInsertTab","universalArgument","emacs","kill","normalizeKeyMap","regPrefix","moveSubword","extendSelectionsBy","extend","cat","findPosSubword","insertLine","above","isReadOnly","len","newSelection","last","wordAt","word","addCursorToSelection","newRange","goSubwordLeft","goSubwordRight","scrollLineUp","info","getScrollInfo","visibleBottomLine","lineAtHeight","scrollTo","defaultTextHeight","scrollLineDown","visibleTopLine","splitSelectionByLine","lineRanges","singleSelectionTop","selectLine","extended","insertLineAfter","insertLineBefore","selectNextOccurrence","fullWord","sublimeFindFullWord","isSelectedRange","addSelection","skipAndSelectNextOccurrence","prevAnchor","prevHead","filter","addCursorToPrevLine","addCursorToNextLine","mirror","selectBetweenBrackets","scanForBracket","closing","puncType","sortLines","caseSensitive","direction","selected","toSort","sort","au","bu","modifyWordOrSelection","indices","replacements","getTarget","findAndGoTo","target","findPrevious","selectScope","goToBracket","swapLineUp","linesToMove","newSels","swapLineDown","toggleCommentIndented","joinLines","joined","offset","obj","actual","duplicateLine","rangeCount","reverseSortLines","sortLinesInsensitive","reverseSortLinesInsensitive","nextBookmark","sublimeBookmarks","prevBookmark","unshift","toggleBookmark","sublimeBookmark","k","clearWhenEmpty","clearBookmarks","selectBookmarks","smartBackspace","toStartOfLine","deletePos","prevIndent","findColumn","delLineRight","upcaseAtCursor","downcaseAtCursor","setSublimeMark","sublimeMark","selectToSublimeMark","deleteToSublimeMark","sublimeKilled","swapWithSublimeMark","sublimeYank","showInCenter","findUnder","findUnderPrevious","findAllUnder","primaryIndex","macSublime","pcSublime","mac","default","macDefault","sublime","Context","indented","align","pushContext","context","popContext","t","typeBefore","prevToken","typeAtEndOfLine","isTopScope","words","split","propertyIsEnumerable","parserConfig","curPunc","isDefKeyword","statementIndentUnit","dontAlignCalls","keywords","types","builtin","blockKeywords","defKeywords","atoms","hooks","multiLineStrings","indentStatements","indentSwitch","namespaceSeparator","isPunctuationChar","numberStart","number","isOperatorChar","isIdentifierChar","isReservedIdentifier","tokenBase","quote","tokenize","escaped","eat","tokenComment","eatWhile","maybeEnd","maybeEOL","typeFirstDefinitions","basecolumn","startOfLine","ctx","eatSpace","styleDefs","firstChar","dontIndentStatements","hook","switchBlock","allmanIndentation","electricInput","blockCommentContinue","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","peek","pointerHook","_stream","cIsReservedIdentifier","cpp14Literal","cpp11StringHook","cpp11RawStringDelim","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","delim","def","mimes","helperType","defineMIME","tokenTripleString","tokenNestedComment","modeProps","cx","intendSwitch","tripleString","skipTo","stringTokenizer","tokenCeylonString","keySet","keys","inline","propertyKeywords","resolveMode","tokenHooks","documentTypes","mediaTypes","mediaFeatures","mediaValueKeywords","nonStandardPropertyKeywords","fontProperties","counterDescriptors","colorKeywords","valueKeywords","allowNested","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","tokenString","tokenParenthesized","popAndPass","wordAsValue","stateArg","atBlock","documentTypes_","mediaTypes_","mediaFeatures_","mediaValueKeywords_","propertyKeywords_","nonStandardPropertyKeywords_","colorKeywords_","valueKeywords_","allWords","concat","tokenCComment","urlRE","modeConfig","codeDepth","gfmOverlay","code","codeBlock","ateSpace","before","difference","gitHubSpice","markdownConfig","taskLists","strikethrough","emoji","attr","statementIndent","jsonldMode","jsonld","jsonMode","json","trackScope","isTS","typescript","wordRE","wordCharacters","kw","A","B","C","D","operator","atom","isJsonldKeyword","cont","expressionAllowed","inSet","readRegexp","tokenQuasi","lexical","lastType","findFatArrow","fatArrowAt","arrow","sawSomething","bracket","atomicTypes","JSLexical","inScope","varname","v","localVars","vars","parseJS","cc","marked","expression","statement","lex","inList","register","block","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","body","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","targetNoComma","maybeTypeArgs","maybeTarget","me","expr","property","continueQuasi","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","_type","forspec1","forspec2","classNameAfter","classBody","classfield","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","c","isContinuedStatement","doubleIndentSwitch","skipExpression","copyContext","xmlMode","allowMissing","multilineTagIndentPastTag","allowMissingTagName","jsMode","flatXMLIndent","tagName","skipAttribute","xmlContext","stop","xmlToken","jsToken","fullLine","parserConf","wordRegexp","operators","delimiters","identifiers","keywordsList","builtinsList","openers","closers","builtins","macro","symbol","stringPrefixes","inArray","nestedArrays","currentScope","scopes","leavingExpr","nestedGenerators","inGenerator","lastToken","tokenAnnotation","imMatcher","numberLiteral","tokenChar","delimiter","substr","tokenStringFactory","isDefinition","nestedParameters","nestedComments","isChar","parseInt","firstParenPos","cmCfg","modeCfg","htmlMode","htmlModeMissing","highlightFormatting","maxBlockquoteDepth","fencedCodeBlockHighlighting","fencedCodeBlockDefaultMode","xml","tokenTypeOverrides","tokenTypes","header","list1","list2","list3","hr","image","imageAltText","imageMarker","formatting","linkInline","linkEmail","linkText","linkHref","em","strong","hrRE","listRE","taskListRE","atxHeaderRE","allowAtxHeaderWithoutSpace","setextHeaderRE","textRE","fencedCodeRE","linkDefRE","punctuation","switchInline","linkTitle","indentedCode","htmlBlock","exit","htmlState","tagStart","isInText","inlineNormal","blockNormal","trailingSpace","trailingSpaceNewLine","thisLine","firstTokenOnLine","prevLineLineIsEmpty","prevLineIsIndentedCode","prevLineIsHr","prevLineIsList","maxNonCodeIndentation","listStack","lineIndentation","indentationDiff","allowsInlineContinuation","fencedCodeEnd","isHr","getType","setext","listType","taskList","fencedEndRE","localMode","findModeByName","mime","footnoteLink","md_inside","returnType","currListInd","hasExitedList","maxFencedEndInd","styles","taskOpen","taskClosed","listMod","handleText","matchCh","previousFormatting","formattingEscape","atts","substring","leftFlanking","rightFlanking","setEm","setStrong","retType","endChar","returnState","linkRE","footnoteLinkInside","footnoteUrl","modeInfo","ext","file","alias","findModeByMIME","findModeByExtension","findModeByFileName","filename","dot","wordOperators","commonKeywords","commonBuiltins","ERRORCLASS","singleDelimiters","singleOperators","doubleOperators","doubleDelimiters","tripleDelimiters","hangingIndent","myKeywords","myBuiltins","extra_keywords","extra_builtins","py3","version","scopeOffset","lineOffset","pushPyScope","errorToken","tokenBaseInner","inFormat","floatLiteral","intLiteral","tokenOuter","singleline","OUTCLASS","tokenNestedExpr","singleLineStringErrors","isString","formatStringFactory","tokenLexer","beginningOfLine","lambda","delimiter_index","pushBracketScope","addErr","scope","wordObj","res","commonAtoms","blockkeywords","opChars","argList","setFlag","flag","afterIdent","define","dict","commonCommands","tokens","tokenDollar","heredoc","tokenStringStart","hookIdentifier","hookVar","hookClient","client","defaultBuiltin","sqlKeywords","operatorChars","support","dateSQL","backslashStringEscapes","brackets","hexNumber","binaryNumber","charCodeAt","decimallessFloat","doubleQuote","tokenLiteral","nCharCast","charsetCast","escapeConstant","commentSlashSlash","commentHash","commentSpaceRequired","zerolessFloat","ODBCdotTable","backslashEscapes","identifierQuote","_config","pushCommand","command","cmdState","peekCommand","addPluginPattern","pluginName","cmdStyle","bracketNo","argument","styleIdentifier","openBracket","closeBracket","plugins","setState","normal","plug","cmdName","beginParams","inMathMode","getMostPowerful","endModeSeq","popCommand","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","xmlConfig","editorConf","config_","setStyle","inText","chain","parser","inBlock","doctype","inTag","closure","baseState","isInAttribute","stringStartCol","terminator","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","baseIndent","multilineTagIndentFactor","alignCDATA","tagAfter","grabbers","configuration","xmlCurrentTag","xmlCurrentContext","reverse","mimeModes","appendTo","dest","src","equalFlat","item","every","isArray","callAll","args","equalityFlat","equalityDeep","equalityStrict","ArrayBuffer","Uint8Array","byteLength","Object","isOneOf","includes","create","copy","r","setIfUndefined","createT","any","floor","abs","ceil","imul","log10","log2","log","sqrt","pow","isNegativeZero","sign","assign","results","hasProperty","Observable","_observers","once","_f","observers","values"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5880.68f975b.js b/_static/build/5880.68f975b.js new file mode 100644 index 0000000..e12fe44 --- /dev/null +++ b/_static/build/5880.68f975b.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5880,9035],{59035:(e,t,r)=>{r.r(t),r.d(t,{default:()=>l});var a=r(67504),n=r(2814),o=r(60192),c=r(15786),d=r(4265);const s="jp-mod-searchable",i={id:"@jupyterlab/documentsearch:labShellWidgetListener",requires:[a.ILabShell,o.ISearchProviderRegistry],autoStart:!0,activate:(e,t,r)=>{const a=e=>{if(!e)return;const t=r.getProviderForWidget(e);t&&e.addClass(s),t||e.removeClass(s)};r.changed.connect((()=>a(t.activeWidget))),t.activeChanged.connect(((e,t)=>{const r=t.oldValue;r&&r.removeClass(s),a(t.newValue)}))}},l=[{id:"@jupyterlab/documentsearch:plugin",provides:o.ISearchProviderRegistry,requires:[d.ITranslator],optional:[n.ICommandPalette,c.ISettingRegistry],autoStart:!0,activate:(e,t,r,a)=>{const n=t.load("jupyterlab");let c=500;const d=new o.SearchProviderRegistry;d.register("jp-notebookSearchProvider",o.NotebookSearchProvider),d.register("jp-codeMirrorSearchProvider",o.CodeMirrorSearchProvider);const s=new Map,i="documentsearch:start",l="documentsearch:highlightNext",h="documentsearch:highlightPrevious";if(a){const t=a.load("@jupyterlab/documentsearch-extension:plugin"),r=e=>{c=e.get("searchDebounceTime").composite};Promise.all([t,e.restored]).then((([e])=>{r(e),e.changed.connect((e=>{r(e)}))})).catch((e=>{console.error(e.message)}))}const u=()=>{const t=e.shell.currentWidget;return!!t&&void 0!==d.getProviderForWidget(t)},m=()=>{const r=e.shell.currentWidget;if(!r)return;const a=r.id;let n=s.get(a);if(!n){const i=d.getProviderForWidget(r);if(!i)return;n=new o.SearchInstance(r,i,t,c),s.set(a,n),e.commands.notifyCommandChanged(),n.disposed.connect((()=>{s.delete(a),e.commands.notifyCommandChanged()}))}return n};return e.commands.addCommand(i,{label:n.__("Find…"),isEnabled:u,execute:e=>{const t=m();if(t){const r=e.searchText;r&&t.setSearchText(r),t.focusInput()}}}),e.commands.addCommand("documentsearch:startWithReplace",{label:n.__("Find and Replace…"),isEnabled:u,execute:e=>{const t=m();if(t){const r=e.searchText;r&&t.setSearchText(r);const a=e.replaceText;a&&t.setReplaceText(a),t.showReplace(),t.focusInput()}}}),e.commands.addCommand(l,{label:n.__("Find Next"),isEnabled:()=>{const t=e.shell.currentWidget;return!!t&&s.has(t.id)},execute:async()=>{const t=e.shell.currentWidget;if(!t)return;const r=s.get(t.id);r&&(await r.provider.highlightNext(),r.updateIndices())}}),e.commands.addCommand(h,{label:n.__("Find Previous"),isEnabled:()=>{const t=e.shell.currentWidget;return!!t&&s.has(t.id)},execute:async()=>{const t=e.shell.currentWidget;if(!t)return;const r=s.get(t.id);r&&(await r.provider.highlightPrevious(),r.updateIndices())}}),r&&(r.addItem({command:i,category:n.__("Main Area")}),r.addItem({command:l,category:n.__("Main Area")}),r.addItem({command:h,category:n.__("Main Area")})),d}},i]}}]); +//# sourceMappingURL=5880.68f975b.js.map \ No newline at end of file diff --git a/_static/build/5880.68f975b.js.map b/_static/build/5880.68f975b.js.map new file mode 100644 index 0000000..4447625 --- /dev/null +++ b/_static/build/5880.68f975b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5880.68f975b.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5955.88508f7.js b/_static/build/5955.88508f7.js new file mode 100644 index 0000000..54b496d --- /dev/null +++ b/_static/build/5955.88508f7.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5955,2358],{22358:(e,t,i)=>{i.r(t),i.d(t,{IMarkdownViewerTracker:()=>n,MarkdownDocument:()=>_,MarkdownViewer:()=>u,MarkdownViewerFactory:()=>m});var r=i(26169);const n=new r.Token("@jupyterlab/markdownviewer:IMarkdownViewerTracker");var s=i(2814),o=i(55941),a=i(985),d=i(20040),h=i(4265),c=i(94519);const l="text/markdown";class u extends c.Widget{constructor(e){super(),this._config=Object.assign({},u.defaultConfig),this._fragment="",this._ready=new r.PromiseDelegate,this._isRendering=!1,this._renderRequested=!1,this.context=e.context,this.translator=e.translator||h.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.renderer=e.renderer,this.node.tabIndex=0,this.addClass("jp-MarkdownViewer"),(this.layout=new c.StackedLayout).addWidget(this.renderer),this.context.ready.then((async()=>{await this._render(),this._monitor=new o.ActivityMonitor({signal:this.context.model.contentChanged,timeout:this._config.renderTimeout}),this._monitor.activityStopped.connect(this.update,this),this._ready.resolve(void 0)}))}get ready(){return this._ready.promise}setFragment(e){this._fragment=e,this.update()}setOption(e,t){if(this._config[e]===t)return;this._config[e]=t;const{style:i}=this.renderer.node;switch(e){case"fontFamily":i.setProperty("font-family",t);break;case"fontSize":i.setProperty("font-size",t?t+"px":null);break;case"hideFrontMatter":this.update();break;case"lineHeight":i.setProperty("line-height",t?t.toString():null);break;case"lineWidth":{const e=t?`calc(50% - ${t/2}ch)`:null;i.setProperty("padding-left",e),i.setProperty("padding-right",e);break}case"renderTimeout":this._monitor&&(this._monitor.timeout=t)}}dispose(){this.isDisposed||(this._monitor&&this._monitor.dispose(),this._monitor=null,super.dispose())}onUpdateRequest(e){this.context.isReady&&!this.isDisposed&&(this._render(),this._fragment="")}onActivateRequest(e){this.node.focus()}async _render(){if(this.isDisposed)return;if(this._isRendering)return void(this._renderRequested=!0);this._renderRequested=!1;const{context:e}=this,{model:t}=e,i=t.toString(),r={};r[l]=this._config.hideFrontMatter?g.removeFrontMatter(i):i;const n=new d.MimeModel({data:r,metadata:{fragment:this._fragment}});try{if(this._isRendering=!0,await this.renderer.renderModel(n),this._isRendering=!1,this._renderRequested)return this._render()}catch(t){requestAnimationFrame((()=>{this.dispose()})),(0,s.showErrorMessage)(this._trans.__("Renderer Failure: %1",e.path),t)}}}!function(e){e.defaultConfig={fontFamily:null,fontSize:null,lineHeight:null,lineWidth:null,hideFrontMatter:!0,renderTimeout:1e3}}(u||(u={}));class _ extends a.DocumentWidget{setFragment(e){this.content.setFragment(e)}}class m extends a.ABCWidgetFactory{constructor(e){super(g.createRegistryOptions(e)),this._fileType=e.primaryFileType,this._rendermime=e.rendermime}createNewWidget(e){var t,i,r,n,s;const o=this._rendermime.clone({resolver:e.urlResolver}).createRenderer(l),a=new u({context:e,renderer:o});return a.title.icon=null===(t=this._fileType)||void 0===t?void 0:t.icon,a.title.iconClass=null!==(r=null===(i=this._fileType)||void 0===i?void 0:i.iconClass)&&void 0!==r?r:"",a.title.iconLabel=null!==(s=null===(n=this._fileType)||void 0===n?void 0:n.iconLabel)&&void 0!==s?s:"",new _({content:a,context:e})}}var g;!function(e){e.createRegistryOptions=function(e){return Object.assign(Object.assign({},e),{readOnly:!0})},e.removeFrontMatter=function(e){const t=e.match(/^---\n[^]*?\n(---|...)\n/);if(!t)return e;const{length:i}=t[0];return e.slice(i)}}(g||(g={}))}}]); +//# sourceMappingURL=5955.88508f7.js.map \ No newline at end of file diff --git a/_static/build/5955.88508f7.js.map b/_static/build/5955.88508f7.js.map new file mode 100644 index 0000000..a2324cc --- /dev/null +++ b/_static/build/5955.88508f7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5955.88508f7.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widget.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/5971.88c5642.js b/_static/build/5971.88c5642.js new file mode 100644 index 0000000..c3e662f --- /dev/null +++ b/_static/build/5971.88c5642.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[5971,5096],{15971:(e,t,r)=>{r.r(t),r.d(t,{default:()=>v});var n=r(67504),a=r(2814),o=r(17543),c=r(60192),i=r(49005),s=r(15786),l=r(4265),d=r(90901),g=r(985),h=r(70942);class u{constructor(){this.matches=[],this.currentMatchIndex=null,this.isReadOnly=!0,this._changed=new h.Signal(this)}static canSearchOn(e){return e instanceof g.DocumentWidget&&e.content instanceof o.CSVViewer}getInitialQuery(e){return null}async startQuery(e,t){return this._target=t,this._query=e,t.content.searchService.find(e),this.matches}async endQuery(){this._target.content.searchService.clear()}async endSearch(){this._target.content.searchService.clear()}async highlightNext(){this._target.content.searchService.find(this._query)}async highlightPrevious(){this._target.content.searchService.find(this._query,!0)}async replaceCurrentMatch(e){return!1}async replaceAllMatches(e){return!1}get changed(){return this._changed}}const T="CSVTable",y="TSVTable",C={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(T,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,T,C.id,t)));const g=new o.CSVViewerFactory({name:T,fileTypes:["csv"],defaultFor:["csv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"csvviewer"});let y=L.LIGHT_STYLE,_=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:T}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("csv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=y,t.content.rendererConfig=_}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);y=e?L.LIGHT_STYLE:L.DARK_STYLE,_=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=y,e.content.rendererConfig=_}))})),c&&F(c,h,t),i&&i.register("csv",u)},id:"@jupyterlab/csvviewer-extension:csv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0},_={activate:function(e,t,r,n,c,i,s,l){let d;l&&(l.registerFactory(y,"delimiter",(e=>new o.CSVDelimiter({widget:e.content,translator:t}))),s&&(d=(0,a.createToolbarFactory)(l,s,y,_.id,t)));const g=new o.TSVViewerFactory({name:y,fileTypes:["tsv"],defaultFor:["tsv"],readOnly:!0,toolbarFactory:d,translator:t}),h=new a.WidgetTracker({namespace:"tsvviewer"});let T=L.LIGHT_STYLE,C=L.LIGHT_TEXT_CONFIG;r&&r.restore(h,{command:"docmanager:open",args:e=>({path:e.context.path,factory:y}),name:e=>e.context.path}),e.docRegistry.addWidgetFactory(g);const v=e.docRegistry.getFileType("tsv");g.widgetCreated.connect(((e,t)=>{h.add(t),t.context.pathChanged.connect((()=>{h.save(t)})),v&&(t.title.icon=v.icon,t.title.iconClass=v.iconClass,t.title.iconLabel=v.iconLabel),t.content.style=T,t.content.rendererConfig=C}));n&&n.themeChanged.connect((()=>{const e=!n||!n.theme||n.isLight(n.theme);T=e?L.LIGHT_STYLE:L.DARK_STYLE,C=e?L.LIGHT_TEXT_CONFIG:L.DARK_TEXT_CONFIG,h.forEach((e=>{e.content.style=T,e.content.rendererConfig=C}))})),c&&F(c,h,t),i&&i.register("tsv",u)},id:"@jupyterlab/csvviewer-extension:tsv",requires:[l.ITranslator],optional:[n.ILayoutRestorer,a.IThemeManager,i.IMainMenu,c.ISearchProviderRegistry,s.ISettingRegistry,a.IToolbarWidgetRegistry],autoStart:!0};function F(e,t,r){const n=r.load("jupyterlab");e.editMenu.goToLiners.add({tracker:t,goToLine:e=>a.InputDialog.getNumber({title:n.__("Go to Line"),value:0}).then((t=>{t.button.accept&&null!==t.value&&e.content.goToLine(t.value)}))})}const v=[C,_];var L;!function(e){e.LIGHT_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"#F3F3F3",backgroundColor:"white",headerBackgroundColor:"#EEEEEE",gridLineColor:"rgba(20, 20, 20, 0.15)",headerGridLineColor:"rgba(20, 20, 20, 0.25)",rowBackgroundColor:e=>e%2==0?"#F5F5F5":"white"}),e.DARK_STYLE=Object.assign(Object.assign({},d.DataGrid.defaultStyle),{voidColor:"black",backgroundColor:"#111111",headerBackgroundColor:"#424242",gridLineColor:"rgba(235, 235, 235, 0.15)",headerGridLineColor:"rgba(235, 235, 235, 0.25)",rowBackgroundColor:e=>e%2==0?"#212121":"#111111"}),e.LIGHT_TEXT_CONFIG={textColor:"#111111",matchBackgroundColor:"#FFFFE0",currentMatchBackgroundColor:"#FFFF00",horizontalAlignment:"right"},e.DARK_TEXT_CONFIG={textColor:"#F5F5F5",matchBackgroundColor:"#838423",currentMatchBackgroundColor:"#A3807A",horizontalAlignment:"right"}}(L||(L={}))}}]); +//# sourceMappingURL=5971.88c5642.js.map \ No newline at end of file diff --git a/_static/build/5971.88c5642.js.map b/_static/build/5971.88c5642.js.map new file mode 100644 index 0000000..14d4330 --- /dev/null +++ b/_static/build/5971.88c5642.js.map @@ -0,0 +1 @@ +{"version":3,"file":"5971.88c5642.js","mappings":"oRAWM,MAAO,EAAb,cAiHW,aAA0B,GAK1B,uBAAmC,KAOnC,iBAAa,EAId,cAAW,IAAI,SAAmB,KAC5C,CA9HE,mBAAmB,GAGjB,OACE,aAAkB,kBAAkB,EAAO,mBAAmB,WAElE,CAQA,gBAAgB,GAEd,OAAO,IACT,CAWA,iBACE,EACA,GAKA,OAHA,KAAK,QAAU,EACf,KAAK,OAAS,EACd,EAAa,QAAQ,cAAc,KAAK,GACjC,KAAK,OACd,CASA,iBACE,KAAK,QAAQ,QAAQ,cAAc,OACrC,CAQA,kBACE,KAAK,QAAQ,QAAQ,cAAc,OACrC,CAOA,sBACE,KAAK,QAAQ,QAAQ,cAAc,KAAK,KAAK,OAE/C,CAOA,0BACE,KAAK,QAAQ,QAAQ,cAAc,KAAK,KAAK,QAAQ,EAEvD,CAQA,0BAA0B,GACxB,OAAO,CACT,CAQA,wBAAwB,GACtB,OAAO,CACT,CAKI,cACF,OAAO,KAAK,QACd,ECjFF,MAAM,EAAc,WACd,EAAc,WAKd,EAAmC,CACvC,SA4DF,SACE,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,IAAI,EAMA,IACF,EAAgB,gBACd,EACA,aACA,GACE,IAAI,eAAa,CACf,OAAQ,EAAO,QACf,iBAIF,IACF,GAAiB,0BACf,EACA,EACA,EACA,EAAI,GACJ,KAKN,MAAM,EAAU,IAAI,mBAAiB,CACnC,KAAM,EACN,UAAW,CAAC,OACZ,WAAY,CAAC,OACb,UAAU,EACV,iBACA,eAEI,EAAU,IAAI,gBAA0C,CAC5D,UAAW,cAIb,IAAI,EAAwB,EAAQ,YAChC,EAAmC,EAAQ,kBAE3C,GAEG,EAAS,QAAQ,EAAS,CAC7B,QAAS,kBACT,KAAM,IAAU,CAAG,KAAM,EAAO,QAAQ,KAAM,QAAS,IACvD,KAAM,GAAU,EAAO,QAAQ,OAInC,EAAI,YAAY,iBAAiB,GACjC,MAAM,EAAK,EAAI,YAAY,YAAY,OACvC,EAAQ,cAAc,SAAQ,CAAC,EAAQ,KAEhC,EAAQ,IAAI,GAEjB,EAAO,QAAQ,YAAY,SAAQ,KAC5B,EAAQ,KAAK,EAAO,IAGvB,IACF,EAAO,MAAM,KAAO,EAAG,KACvB,EAAO,MAAM,UAAY,EAAG,UAC5B,EAAO,MAAM,UAAY,EAAG,WAG9B,EAAO,QAAQ,MAAQ,EACvB,EAAO,QAAQ,eAAiB,CAAc,IAkB5C,GACF,EAAa,aAAa,SAfP,KACnB,MAAM,GACJ,IAAgB,EAAa,OACzB,EAAa,QAAQ,EAAa,OAExC,EAAQ,EAAU,EAAQ,YAAc,EAAQ,WAChD,EAAiB,EACb,EAAQ,kBACR,EAAQ,iBACZ,EAAQ,SAAQ,IACd,EAAK,QAAQ,MAAQ,EACrB,EAAK,QAAQ,eAAiB,CAAc,GAC5C,IAMA,GACF,EAAe,EAAU,EAAS,GAEhC,GACF,EAAe,SAAS,MAAO,EAEnC,EAvKE,GAAI,sCACJ,SAAU,CAAC,eACX,SAAU,CACR,kBACA,gBACA,YACA,0BACA,mBACA,0BAEF,WAAW,GAMP,EAAmC,CACvC,SA2JF,SACE,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,IAAI,EAMA,IACF,EAAgB,gBACd,EACA,aACA,GACE,IAAI,eAAa,CACf,OAAQ,EAAO,QACf,iBAIF,IACF,GAAiB,0BACf,EACA,EACA,EACA,EAAI,GACJ,KAKN,MAAM,EAAU,IAAI,mBAAiB,CACnC,KAAM,EACN,UAAW,CAAC,OACZ,WAAY,CAAC,OACb,UAAU,EACV,iBACA,eAEI,EAAU,IAAI,gBAA0C,CAC5D,UAAW,cAIb,IAAI,EAAwB,EAAQ,YAChC,EAAmC,EAAQ,kBAE3C,GAEG,EAAS,QAAQ,EAAS,CAC7B,QAAS,kBACT,KAAM,IAAU,CAAG,KAAM,EAAO,QAAQ,KAAM,QAAS,IACvD,KAAM,GAAU,EAAO,QAAQ,OAInC,EAAI,YAAY,iBAAiB,GACjC,MAAM,EAAK,EAAI,YAAY,YAAY,OACvC,EAAQ,cAAc,SAAQ,CAAC,EAAQ,KAEhC,EAAQ,IAAI,GAEjB,EAAO,QAAQ,YAAY,SAAQ,KAC5B,EAAQ,KAAK,EAAO,IAGvB,IACF,EAAO,MAAM,KAAO,EAAG,KACvB,EAAO,MAAM,UAAY,EAAG,UAC5B,EAAO,MAAM,UAAY,EAAG,WAG9B,EAAO,QAAQ,MAAQ,EACvB,EAAO,QAAQ,eAAiB,CAAc,IAkB5C,GACF,EAAa,aAAa,SAfP,KACnB,MAAM,GACJ,IAAgB,EAAa,OACzB,EAAa,QAAQ,EAAa,OAExC,EAAQ,EAAU,EAAQ,YAAc,EAAQ,WAChD,EAAiB,EACb,EAAQ,kBACR,EAAQ,iBACZ,EAAQ,SAAQ,IACd,EAAK,QAAQ,MAAQ,EACrB,EAAK,QAAQ,eAAiB,CAAc,GAC5C,IAMA,GACF,EAAe,EAAU,EAAS,GAEhC,GACF,EAAe,SAAS,MAAO,EAEnC,EAtQE,GAAI,sCACJ,SAAU,CAAC,eACX,SAAU,CACR,kBACA,gBACA,YACA,0BACA,mBACA,0BAEF,WAAW,GAMb,SAAS,EACP,EACA,EACA,GAEA,MAAM,EAAQ,EAAW,KAAK,cAE9B,EAAS,SAAS,WAAW,IAAI,CAC/B,UACA,SAAW,GACF,wBAAsB,CAC3B,MAAO,EAAM,GAAG,cAChB,MAAO,IACN,MAAK,IACF,EAAM,OAAO,QAA0B,OAAhB,EAAM,OAC/B,EAAO,QAAQ,SAAS,EAAM,M,KAKxC,CAuOA,MACA,EAD8C,CAAC,EAAK,GAMpD,IAAU,GAAV,SAAU,GAIK,cAAW,+BACnB,yBAAqB,CACxB,UAAW,UACX,gBAAiB,QACjB,sBAAuB,UACvB,cAAe,yBACf,oBAAqB,yBACrB,mBAAoB,GAAM,EAAI,GAAM,EAAI,UAAY,UAMzC,aAAU,+BAClB,yBAAqB,CACxB,UAAW,QACX,gBAAiB,UACjB,sBAAuB,UACvB,cAAe,4BACf,oBAAqB,4BACrB,mBAAoB,GAAM,EAAI,GAAM,EAAI,UAAY,YAMzC,oBAAsC,CACjD,UAAW,UACX,qBAAsB,UACtB,4BAA6B,UAC7B,oBAAqB,SAMV,mBAAqC,CAChD,UAAW,UACX,qBAAsB,UACtB,4BAA6B,UAC7B,oBAAqB,QAExB,CA9CD,CAAU,MAAO,I","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/searchprovider.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6080.aa0ff24.js b/_static/build/6080.aa0ff24.js new file mode 100644 index 0000000..fdd2cd6 --- /dev/null +++ b/_static/build/6080.aa0ff24.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6080,7526],{97526:(t,e,r)=>{r.r(e),r.d(e,{MAJOR_VERSION:()=>u,MINOR_VERSION:()=>i,isCode:()=>c,isDisplayData:()=>l,isDisplayUpdate:()=>_,isError:()=>f,isExecuteResult:()=>s,isMarkdown:()=>p,isRaw:()=>o,isStream:()=>y,validateMimeValue:()=>a});var n=r(26169);const u=4,i=4;function a(t,e){const r="application/json"===t||/^application\/(.*?)+\+json$/.test(t),u=t=>"[object String]"===Object.prototype.toString.call(t);if(Array.isArray(e)){if(r)return!1;let t=!0;return e.forEach((e=>{u(e)||(t=!1)})),t}return u(e)?!r:!!r&&n.JSONExt.isObject(e)}function o(t){return"raw"===t.cell_type}function p(t){return"markdown"===t.cell_type}function c(t){return"code"===t.cell_type}function s(t){return"execute_result"===t.output_type}function l(t){return"display_data"===t.output_type}function _(t){return"update_display_data"===t.output_type}function y(t){return"stream"===t.output_type}function f(t){return"error"===t.output_type}}}]); +//# sourceMappingURL=6080.aa0ff24.js.map \ No newline at end of file diff --git a/_static/build/6080.aa0ff24.js.map b/_static/build/6080.aa0ff24.js.map new file mode 100644 index 0000000..4fe1d2c --- /dev/null +++ b/_static/build/6080.aa0ff24.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6080.aa0ff24.js","mappings":"8WAgBO,MAAM,EAAwB,EAKxB,EAAwB,EA8E/B,SAAU,EACd,EACA,GAGA,MACM,EAAsB,qBAAT,GADF,8BAC0C,KAAK,GAE1D,EAAY,GAC6B,oBAAtC,OAAO,UAAU,SAAS,KAAK,GAKxC,GAAI,MAAM,QAAQ,GAAQ,CACxB,GAAI,EACF,OAAO,EAET,IAAI,GAAQ,EAMZ,OALC,EAAmB,SAAQ,IACrB,EAAS,KACZ,GAAQ,E,IAGL,C,CAIT,OAAI,EAAS,IACH,IAIL,GAKE,mBAAiB,EAC1B,CA6MM,SAAU,EAAM,GACpB,MAA0B,QAAnB,EAAK,SACd,CAKM,SAAU,EAAW,GACzB,MAA0B,aAAnB,EAAK,SACd,CAKM,SAAU,EAAO,GACrB,MAA0B,SAAnB,EAAK,SACd,CAyJM,SAAU,EAAgB,GAC9B,MAA8B,mBAAvB,EAAO,WAChB,CAKM,SAAU,EAAc,GAC5B,MAA8B,iBAAvB,EAAO,WAChB,CAKM,SAAU,EAAgB,GAC9B,MAA8B,wBAAvB,EAAO,WAChB,CAKM,SAAU,EAAS,GACvB,MAA8B,WAAvB,EAAO,WAChB,CAKM,SAAU,EAAQ,GACtB,MAA8B,UAAvB,EAAO,WAChB,C","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/61.2808a0d.js b/_static/build/61.2808a0d.js new file mode 100644 index 0000000..ab68b11 --- /dev/null +++ b/_static/build/61.2808a0d.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[61],{65880:(u,e,t)=>{t.d(e,{r:()=>o});const r=/[[\]{}]/,n={"*":1,arc:1,area:1,group:1,image:1,line:1,path:1,rect:1,rule:1,shape:1,symbol:1,text:1,trail:1};let A,a;function o(u,e,t){return A=e||"view",a=t||n,s(u.trim()).map(i)}function F(u,e,t,r,n){const A=u.length;let a,o=0;for(;e=0?--o:r&&r.indexOf(a)>=0&&++o}return e}function s(u){const e=[],t=u.length;let r=0,n=0;for(;n"!==(u=u.slice(r+1).trim())[0])throw"Expected '>' after between selector: "+u;t=t.map(i);const n=i(u.slice(1).trim());return n.between?{between:t,stream:n}:(n.between=t,n)}(u):function(u){const e={source:A},t=[];let n,o,s=[0,0],i=0,C=0,c=u.length,B=0;if("}"===u[c-1]){if(B=u.lastIndexOf("{"),!(B>=0))throw"Unmatched right brace: "+u;try{s=function(u){const e=u.split(",");if(!u.length||e.length>2)throw u;return e.map((e=>{const t=+e;if(t!=t)throw u;return t}))}(u.substring(B+1,c-1))}catch(e){throw"Invalid throttle specification: "+u}c=(u=u.slice(0,B).trim()).length,B=0}if(!c)throw u;if("@"===u[0]&&(i=++B),n=F(u,B,":"),n1?(e.type=t[1],i?e.markname=t[0].slice(1):(D=t[0],a[D]?e.marktype=t[0]:e.source=t[0])):e.type=t[0],"!"===e.type.slice(-1)&&(e.consume=!0,e.type=e.type.slice(0,-1)),null!=o&&(e.filter=o),s[0]&&(e.throttle=s[0]),s[1]&&(e.debounce=s[1]),e}(u)}},34358:(u,e,t)=>{t.d(e,{BJ:()=>ou,Lt:()=>A,YP:()=>iu,_G:()=>Fu,t$:()=>n,wk:()=>su});var r=t(68542);const n="Literal",A="CallExpression";function a(u){this.type=u}var o,F,s,i,C;a.prototype.visit=function(u){let e,t,r;if(u(this))return 1;for(e=function(u){switch(u.type){case"ArrayExpression":return u.elements;case"BinaryExpression":case"LogicalExpression":return[u.left,u.right];case A:return[u.callee].concat(u.arguments);case"ConditionalExpression":return[u.test,u.consequent,u.alternate];case"MemberExpression":return[u.object,u.property];case"ObjectExpression":return u.properties;case"Property":return[u.key,u.value];case"UnaryExpression":return[u.argument];default:return[]}}(this),t=0,r=e.length;t",o[3]="Identifier",o[4]="Keyword",o[5]="Null",o[6]="Numeric",o[7]="Punctuator",o[8]="String",o[9]="RegularExpression";var c="Identifier",B="Unexpected token %0",D="Invalid regular expression",E="Invalid regular expression: missing /",l="Octal literals are not allowed in strict mode.",f="ILLEGAL",p="Disabled.",h=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"),d=new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");function g(u,e){if(!u)throw new Error("ASSERT: "+e)}function m(u){return u>=48&&u<=57}function y(u){return"0123456789abcdefABCDEF".indexOf(u)>=0}function x(u){return"01234567".indexOf(u)>=0}function v(u){return 32===u||9===u||11===u||12===u||160===u||u>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(u)>=0}function w(u){return 10===u||13===u||8232===u||8233===u}function b(u){return 36===u||95===u||u>=65&&u<=90||u>=97&&u<=122||92===u||u>=128&&h.test(String.fromCharCode(u))}function k(u){return 36===u||95===u||u>=65&&u<=90||u>=97&&u<=122||u>=48&&u<=57||92===u||u>=128&&d.test(String.fromCharCode(u))}const M={if:1,in:1,do:1,var:1,for:1,new:1,try:1,let:1,this:1,else:1,case:1,void:1,with:1,enum:1,while:1,break:1,catch:1,throw:1,const:1,yield:1,class:1,super:1,return:1,typeof:1,delete:1,switch:1,export:1,import:1,public:1,static:1,default:1,finally:1,extends:1,package:1,private:1,function:1,continue:1,debugger:1,interface:1,protected:1,instanceof:1,implements:1};function U(){for(;s1114111||"}"!==u)&&V({},B,f),e<=65535?String.fromCharCode(e):(t=55296+(e-65536>>10),r=56320+(e-65536&1023),String.fromCharCode(t,r))}function T(){var u,e;for(u=F.charCodeAt(s++),e=String.fromCharCode(u),92===u&&(117!==F.charCodeAt(s)&&V({},B,f),++s,(u=O("u"))&&"\\"!==u&&b(u.charCodeAt(0))||V({},B,f),e=u);s>>="===(r=F.substr(s,4))?{type:7,value:r,start:n,end:s+=4}:">>>"===(t=r.substr(0,3))||"<<="===t||">>="===t?{type:7,value:t,start:n,end:s+=3}:a===(e=t.substr(0,2))[1]&&"+-<>&|".indexOf(a)>=0||"=>"===e?{type:7,value:e,start:n,end:s+=2}:("//"===e&&V({},B,f),"<>=!+-*%&|^/".indexOf(a)>=0?{type:7,value:a,start:n,end:++s}:void V({},B,f))}function I(){var u,e,t;if(g(m((t=F[s]).charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point"),e=s,u="","."!==t){if(u=F[s++],t=F[s],"0"===u){if("x"===t||"X"===t)return++s,function(u){let e="";for(;s=i)return{type:2,start:s,end:s};const u=F.charCodeAt(s);return b(u)?(e=s,t=92===F.charCodeAt(s)?T():function(){var u,e;for(u=s++;s=0&&s(g(e=0&&V({},D,t),{value:t,literal:e}}(),o=function(u,e){let t=u;e.indexOf("u")>=0&&(t=t.replace(/\\u\{([0-9a-fA-F]+)\}/g,((u,e)=>{if(parseInt(e,16)<=1114111)return"x";V({},D)})).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{new RegExp(t)}catch(u){V({},D)}try{return new RegExp(u,e)}catch(u){return null}}(n.value,A.value),{literal:n.literal+A.literal,value:o,regex:{pattern:n.value,flags:A.value},start:r,end:s})),j()):$(R())}return t}function uu(){const u=[];if(z("("),!H(")"))for(;s":case"<=":case">=":case"instanceof":case"in":e=7;break;case"<<":case">>":case">>>":e=8;break;case"+":case"-":e=9;break;case"*":case"/":case"%":e=11}return e}function Au(){var u,e;return u=function(){var u,e,t,r,n,A,a,o,F,s;if(u=C,F=ru(),0===(n=nu(r=C)))return F;for(r.prec=n,R(),e=[u,C],A=[F,r,a=ru()];(n=nu(C))>0;){for(;A.length>2&&n<=A[A.length-2].prec;)a=A.pop(),o=A.pop().value,F=A.pop(),e.pop(),t=P(o,F,a),A.push(t);(r=R()).prec=n,A.push(r),e.push(C),t=ru(),A.push(t)}for(t=A[s=A.length-1],e.pop();s>1;)e.pop(),t=P(A[s-1].value,A[s-2],t),s-=2;return t}(),H("?")&&(R(),e=Au(),z(":"),u=function(u,e,t){const r=new a("ConditionalExpression");return r.test=u,r.consequent=e,r.alternate=t,r}(u,e,Au())),u}function au(){const u=Au();if(H(","))throw new Error(p);return u}function ou(u){s=0,i=(F=u).length,C=null,j();const e=au();if(2!==C.type)throw new Error("Unexpect token after expression.");return e}var Fu={NaN:"NaN",E:"Math.E",LN2:"Math.LN2",LN10:"Math.LN10",LOG2E:"Math.LOG2E",LOG10E:"Math.LOG10E",PI:"Math.PI",SQRT1_2:"Math.SQRT1_2",SQRT2:"Math.SQRT2",MIN_VALUE:"Number.MIN_VALUE",MAX_VALUE:"Number.MAX_VALUE"};function su(u){function e(e,t,r){return n=>function(e,t,r,n){let A=u(t[0]);return r&&(A=r+"("+A+")",0===r.lastIndexOf("new ",0)&&(A="("+A+")")),A+"."+e+(n<0?"":0===n?"()":"("+t.slice(1).map(u).join(",")+")")}(e,n,t,r)}const t="new Date",n="String",A="RegExp";return{isNaN:"Number.isNaN",isFinite:"Number.isFinite",abs:"Math.abs",acos:"Math.acos",asin:"Math.asin",atan:"Math.atan",atan2:"Math.atan2",ceil:"Math.ceil",cos:"Math.cos",exp:"Math.exp",floor:"Math.floor",log:"Math.log",max:"Math.max",min:"Math.min",pow:"Math.pow",random:"Math.random",round:"Math.round",sin:"Math.sin",sqrt:"Math.sqrt",tan:"Math.tan",clamp:function(e){e.length<3&&(0,r.vU)("Missing arguments to clamp function."),e.length>3&&(0,r.vU)("Too many arguments to clamp function.");const t=e.map(u);return"Math.max("+t[1]+", Math.min("+t[2]+","+t[0]+"))"},now:"Date.now",utc:"Date.UTC",datetime:t,date:e("getDate",t,0),day:e("getDay",t,0),year:e("getFullYear",t,0),month:e("getMonth",t,0),hours:e("getHours",t,0),minutes:e("getMinutes",t,0),seconds:e("getSeconds",t,0),milliseconds:e("getMilliseconds",t,0),time:e("getTime",t,0),timezoneoffset:e("getTimezoneOffset",t,0),utcdate:e("getUTCDate",t,0),utcday:e("getUTCDay",t,0),utcyear:e("getUTCFullYear",t,0),utcmonth:e("getUTCMonth",t,0),utchours:e("getUTCHours",t,0),utcminutes:e("getUTCMinutes",t,0),utcseconds:e("getUTCSeconds",t,0),utcmilliseconds:e("getUTCMilliseconds",t,0),length:e("length",null,-1),parseFloat:"parseFloat",parseInt:"parseInt",upper:e("toUpperCase",n,0),lower:e("toLowerCase",n,0),substring:e("substring",n),split:e("split",n),trim:e("trim",n,0),regexp:A,test:e("test",A),if:function(e){e.length<3&&(0,r.vU)("Missing arguments to if function."),e.length>3&&(0,r.vU)("Too many arguments to if function.");const t=e.map(u);return"("+t[0]+"?"+t[1]+":"+t[2]+")"}}}function iu(u){const e=(u=u||{}).allowed?(0,r.Rg)(u.allowed):{},t=u.forbidden?(0,r.Rg)(u.forbidden):{},n=u.constants||Fu,A=(u.functions||su)(c),a=u.globalvar,o=u.fieldvar,F=(0,r.mf)(a)?a:u=>`${a}["${u}"]`;let s={},i={},C=0;function c(u){if((0,r.HD)(u))return u;const e=B[u.type];return null==e&&(0,r.vU)("Unsupported type: "+u.type),e(u)}const B={Literal:u=>u.raw,Identifier:u=>{const A=u.name;return C>0?A:(0,r.nr)(t,A)?(0,r.vU)("Illegal identifier: "+A):(0,r.nr)(n,A)?n[A]:(0,r.nr)(e,A)?A:(s[A]=1,F(A))},MemberExpression:u=>{const e=!u.computed,t=c(u.object);e&&(C+=1);const r=c(u.property);return t===o&&(i[function(u){const e=u&&u.length-1;return e&&('"'===u[0]&&'"'===u[e]||"'"===u[0]&&"'"===u[e])?u.slice(1,-1):u}(r)]=1),e&&(C-=1),t+(e?"."+r:"["+r+"]")},CallExpression:u=>{"Identifier"!==u.callee.type&&(0,r.vU)("Illegal callee type: "+u.callee.type);const e=u.callee.name,t=u.arguments,n=(0,r.nr)(A,e)&&A[e];return n||(0,r.vU)("Unrecognized function: "+e),(0,r.mf)(n)?n(t):n+"("+t.map(c).join(",")+")"},ArrayExpression:u=>"["+u.elements.map(c).join(",")+"]",BinaryExpression:u=>"("+c(u.left)+" "+u.operator+" "+c(u.right)+")",UnaryExpression:u=>"("+u.operator+c(u.argument)+")",ConditionalExpression:u=>"("+c(u.test)+"?"+c(u.consequent)+":"+c(u.alternate)+")",LogicalExpression:u=>"("+c(u.left)+u.operator+c(u.right)+")",ObjectExpression:u=>"{"+u.properties.map(c).join(",")+"}",Property:u=>{C+=1;const e=c(u.key);return C-=1,e+":"+c(u.value)}};function D(u){const e={code:c(u),globals:Object.keys(s),fields:Object.keys(i)};return s={},i={},e}return D.functions=A,D.constants=n,D}}}]); +//# sourceMappingURL=61.2808a0d.js.map \ No newline at end of file diff --git a/_static/build/61.2808a0d.js.map b/_static/build/61.2808a0d.js.map new file mode 100644 index 0000000..1c9a171 --- /dev/null +++ b/_static/build/61.2808a0d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"61.2808a0d.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/vega-event-selector/build/vega-event-selector.module.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/vega-expression/build/vega-expression.module.js"],"sourcesContent":["const VIEW = 'view',\n LBRACK = '[',\n RBRACK = ']',\n LBRACE = '{',\n RBRACE = '}',\n COLON = ':',\n COMMA = ',',\n NAME = '@',\n GT = '>',\n ILLEGAL = /[[\\]{}]/,\n DEFAULT_MARKS = {\n '*': 1,\n arc: 1,\n area: 1,\n group: 1,\n image: 1,\n line: 1,\n path: 1,\n rect: 1,\n rule: 1,\n shape: 1,\n symbol: 1,\n text: 1,\n trail: 1\n };\nlet DEFAULT_SOURCE, MARKS;\n\n/**\n * Parse an event selector string.\n * Returns an array of event stream definitions.\n */\nfunction eventSelector (selector, source, marks) {\n DEFAULT_SOURCE = source || VIEW;\n MARKS = marks || DEFAULT_MARKS;\n return parseMerge(selector.trim()).map(parseSelector);\n}\nfunction isMarkType(type) {\n return MARKS[type];\n}\nfunction find(s, i, endChar, pushChar, popChar) {\n const n = s.length;\n let count = 0,\n c;\n for (; i < n; ++i) {\n c = s[i];\n if (!count && c === endChar) return i;else if (popChar && popChar.indexOf(c) >= 0) --count;else if (pushChar && pushChar.indexOf(c) >= 0) ++count;\n }\n return i;\n}\nfunction parseMerge(s) {\n const output = [],\n n = s.length;\n let start = 0,\n i = 0;\n while (i < n) {\n i = find(s, i, COMMA, LBRACK + LBRACE, RBRACK + RBRACE);\n output.push(s.substring(start, i).trim());\n start = ++i;\n }\n if (output.length === 0) {\n throw 'Empty event selector: ' + s;\n }\n return output;\n}\nfunction parseSelector(s) {\n return s[0] === '[' ? parseBetween(s) : parseStream(s);\n}\nfunction parseBetween(s) {\n const n = s.length;\n let i = 1,\n b;\n i = find(s, i, RBRACK, LBRACK, RBRACK);\n if (i === n) {\n throw 'Empty between selector: ' + s;\n }\n b = parseMerge(s.substring(1, i));\n if (b.length !== 2) {\n throw 'Between selector must have two elements: ' + s;\n }\n s = s.slice(i + 1).trim();\n if (s[0] !== GT) {\n throw 'Expected \\'>\\' after between selector: ' + s;\n }\n b = b.map(parseSelector);\n const stream = parseSelector(s.slice(1).trim());\n if (stream.between) {\n return {\n between: b,\n stream: stream\n };\n } else {\n stream.between = b;\n }\n return stream;\n}\nfunction parseStream(s) {\n const stream = {\n source: DEFAULT_SOURCE\n },\n source = [];\n let throttle = [0, 0],\n markname = 0,\n start = 0,\n n = s.length,\n i = 0,\n j,\n filter;\n\n // extract throttle from end\n if (s[n - 1] === RBRACE) {\n i = s.lastIndexOf(LBRACE);\n if (i >= 0) {\n try {\n throttle = parseThrottle(s.substring(i + 1, n - 1));\n } catch (e) {\n throw 'Invalid throttle specification: ' + s;\n }\n s = s.slice(0, i).trim();\n n = s.length;\n } else throw 'Unmatched right brace: ' + s;\n i = 0;\n }\n if (!n) throw s;\n\n // set name flag based on first char\n if (s[0] === NAME) markname = ++i;\n\n // extract first part of multi-part stream selector\n j = find(s, i, COLON);\n if (j < n) {\n source.push(s.substring(start, j).trim());\n start = i = ++j;\n }\n\n // extract remaining part of stream selector\n i = find(s, i, LBRACK);\n if (i === n) {\n source.push(s.substring(start, n).trim());\n } else {\n source.push(s.substring(start, i).trim());\n filter = [];\n start = ++i;\n if (start === n) throw 'Unmatched left bracket: ' + s;\n }\n\n // extract filters\n while (i < n) {\n i = find(s, i, RBRACK);\n if (i === n) throw 'Unmatched left bracket: ' + s;\n filter.push(s.substring(start, i).trim());\n if (i < n - 1 && s[++i] !== LBRACK) throw 'Expected left bracket: ' + s;\n start = ++i;\n }\n\n // marshall event stream specification\n if (!(n = source.length) || ILLEGAL.test(source[n - 1])) {\n throw 'Invalid event selector: ' + s;\n }\n if (n > 1) {\n stream.type = source[1];\n if (markname) {\n stream.markname = source[0].slice(1);\n } else if (isMarkType(source[0])) {\n stream.marktype = source[0];\n } else {\n stream.source = source[0];\n }\n } else {\n stream.type = source[0];\n }\n if (stream.type.slice(-1) === '!') {\n stream.consume = true;\n stream.type = stream.type.slice(0, -1);\n }\n if (filter != null) stream.filter = filter;\n if (throttle[0]) stream.throttle = throttle[0];\n if (throttle[1]) stream.debounce = throttle[1];\n return stream;\n}\nfunction parseThrottle(s) {\n const a = s.split(COMMA);\n if (!s.length || a.length > 2) throw s;\n return a.map(_ => {\n const x = +_;\n if (x !== x) throw s;\n return x;\n });\n}\n\nexport { eventSelector as parseSelector };\n","import { error, toSet, isFunction, isString, hasOwnProperty } from 'vega-util';\n\nconst RawCode = 'RawCode';\nconst Literal = 'Literal';\nconst Property = 'Property';\nconst Identifier = 'Identifier';\nconst ArrayExpression = 'ArrayExpression';\nconst BinaryExpression = 'BinaryExpression';\nconst CallExpression = 'CallExpression';\nconst ConditionalExpression = 'ConditionalExpression';\nconst LogicalExpression = 'LogicalExpression';\nconst MemberExpression = 'MemberExpression';\nconst ObjectExpression = 'ObjectExpression';\nconst UnaryExpression = 'UnaryExpression';\nfunction ASTNode(type) {\n this.type = type;\n}\nASTNode.prototype.visit = function (visitor) {\n let c, i, n;\n if (visitor(this)) return 1;\n for (c = children(this), i = 0, n = c.length; i < n; ++i) {\n if (c[i].visit(visitor)) return 1;\n }\n};\nfunction children(node) {\n switch (node.type) {\n case ArrayExpression:\n return node.elements;\n case BinaryExpression:\n case LogicalExpression:\n return [node.left, node.right];\n case CallExpression:\n return [node.callee].concat(node.arguments);\n case ConditionalExpression:\n return [node.test, node.consequent, node.alternate];\n case MemberExpression:\n return [node.object, node.property];\n case ObjectExpression:\n return node.properties;\n case Property:\n return [node.key, node.value];\n case UnaryExpression:\n return [node.argument];\n case Identifier:\n case Literal:\n case RawCode:\n default:\n return [];\n }\n}\n\n/*\n The following expression parser is based on Esprima (http://esprima.org/).\n Original header comment and license for Esprima is included here:\n\n Copyright (C) 2013 Ariya Hidayat \n Copyright (C) 2013 Thaddee Tyl \n Copyright (C) 2013 Mathias Bynens \n Copyright (C) 2012 Ariya Hidayat \n Copyright (C) 2012 Mathias Bynens \n Copyright (C) 2012 Joost-Wim Boekesteijn \n Copyright (C) 2012 Kris Kowal \n Copyright (C) 2012 Yusuke Suzuki \n Copyright (C) 2012 Arpad Borsos \n Copyright (C) 2011 Ariya Hidayat \n\n Redistribution and use in source and binary forms, with or without\n modification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nvar TokenName, source, index, length, lookahead;\nvar TokenBooleanLiteral = 1,\n TokenEOF = 2,\n TokenIdentifier = 3,\n TokenKeyword = 4,\n TokenNullLiteral = 5,\n TokenNumericLiteral = 6,\n TokenPunctuator = 7,\n TokenStringLiteral = 8,\n TokenRegularExpression = 9;\nTokenName = {};\nTokenName[TokenBooleanLiteral] = 'Boolean';\nTokenName[TokenEOF] = '';\nTokenName[TokenIdentifier] = 'Identifier';\nTokenName[TokenKeyword] = 'Keyword';\nTokenName[TokenNullLiteral] = 'Null';\nTokenName[TokenNumericLiteral] = 'Numeric';\nTokenName[TokenPunctuator] = 'Punctuator';\nTokenName[TokenStringLiteral] = 'String';\nTokenName[TokenRegularExpression] = 'RegularExpression';\nvar SyntaxArrayExpression = 'ArrayExpression',\n SyntaxBinaryExpression = 'BinaryExpression',\n SyntaxCallExpression = 'CallExpression',\n SyntaxConditionalExpression = 'ConditionalExpression',\n SyntaxIdentifier = 'Identifier',\n SyntaxLiteral = 'Literal',\n SyntaxLogicalExpression = 'LogicalExpression',\n SyntaxMemberExpression = 'MemberExpression',\n SyntaxObjectExpression = 'ObjectExpression',\n SyntaxProperty = 'Property',\n SyntaxUnaryExpression = 'UnaryExpression';\n\n// Error messages should be identical to V8.\nvar MessageUnexpectedToken = 'Unexpected token %0',\n MessageUnexpectedNumber = 'Unexpected number',\n MessageUnexpectedString = 'Unexpected string',\n MessageUnexpectedIdentifier = 'Unexpected identifier',\n MessageUnexpectedReserved = 'Unexpected reserved word',\n MessageUnexpectedEOS = 'Unexpected end of input',\n MessageInvalidRegExp = 'Invalid regular expression',\n MessageUnterminatedRegExp = 'Invalid regular expression: missing /',\n MessageStrictOctalLiteral = 'Octal literals are not allowed in strict mode.',\n MessageStrictDuplicateProperty = 'Duplicate data property in object literal not allowed in strict mode';\nvar ILLEGAL = 'ILLEGAL',\n DISABLED = 'Disabled.';\n\n// See also tools/generate-unicode-regex.py.\nvar RegexNonAsciiIdentifierStart = new RegExp('[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]'),\n // eslint-disable-next-line no-misleading-character-class\n RegexNonAsciiIdentifierPart = new RegExp('[\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B2\\\\u08E4-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58\\\\u0C59\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C81-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D57\\\\u0D60-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19D9\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFC-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099\\\\u309A\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA69D\\\\uA69F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C4\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2D\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]');\n\n// Ensure the condition is true, otherwise throw an error.\n// This is only to have a better contract semantic, i.e. another safety net\n// to catch a logic error. The condition shall be fulfilled in normal case.\n// Do NOT use this to enforce a certain condition on any user input.\n\nfunction assert(condition, message) {\n /* istanbul ignore next */\n if (!condition) {\n throw new Error('ASSERT: ' + message);\n }\n}\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 && ch <= 0x39; // 0..9\n}\n\nfunction isHexDigit(ch) {\n return '0123456789abcdefABCDEF'.indexOf(ch) >= 0;\n}\nfunction isOctalDigit(ch) {\n return '01234567'.indexOf(ch) >= 0;\n}\n\n// 7.2 White Space\n\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0;\n}\n\n// 7.3 Line Terminators\n\nfunction isLineTerminator(ch) {\n return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029;\n}\n\n// 7.6 Identifier Names and Identifiers\n\nfunction isIdentifierStart(ch) {\n return ch === 0x24 || ch === 0x5F ||\n // $ (dollar) and _ (underscore)\n ch >= 0x41 && ch <= 0x5A ||\n // A..Z\n ch >= 0x61 && ch <= 0x7A ||\n // a..z\n ch === 0x5C ||\n // \\ (backslash)\n ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch));\n}\nfunction isIdentifierPart(ch) {\n return ch === 0x24 || ch === 0x5F ||\n // $ (dollar) and _ (underscore)\n ch >= 0x41 && ch <= 0x5A ||\n // A..Z\n ch >= 0x61 && ch <= 0x7A ||\n // a..z\n ch >= 0x30 && ch <= 0x39 ||\n // 0..9\n ch === 0x5C ||\n // \\ (backslash)\n ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch));\n}\n\n// 7.6.1.1 Keywords\n\nconst keywords = {\n 'if': 1,\n 'in': 1,\n 'do': 1,\n 'var': 1,\n 'for': 1,\n 'new': 1,\n 'try': 1,\n 'let': 1,\n 'this': 1,\n 'else': 1,\n 'case': 1,\n 'void': 1,\n 'with': 1,\n 'enum': 1,\n 'while': 1,\n 'break': 1,\n 'catch': 1,\n 'throw': 1,\n 'const': 1,\n 'yield': 1,\n 'class': 1,\n 'super': 1,\n 'return': 1,\n 'typeof': 1,\n 'delete': 1,\n 'switch': 1,\n 'export': 1,\n 'import': 1,\n 'public': 1,\n 'static': 1,\n 'default': 1,\n 'finally': 1,\n 'extends': 1,\n 'package': 1,\n 'private': 1,\n 'function': 1,\n 'continue': 1,\n 'debugger': 1,\n 'interface': 1,\n 'protected': 1,\n 'instanceof': 1,\n 'implements': 1\n};\nfunction skipComment() {\n while (index < length) {\n const ch = source.charCodeAt(index);\n if (isWhiteSpace(ch) || isLineTerminator(ch)) {\n ++index;\n } else {\n break;\n }\n }\n}\nfunction scanHexEscape(prefix) {\n var i,\n len,\n ch,\n code = 0;\n len = prefix === 'u' ? 4 : 2;\n for (i = 0; i < len; ++i) {\n if (index < length && isHexDigit(source[index])) {\n ch = source[index++];\n code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());\n } else {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n }\n return String.fromCharCode(code);\n}\nfunction scanUnicodeCodePointEscape() {\n var ch, code, cu1, cu2;\n ch = source[index];\n code = 0;\n\n // At least, one hex digit is required.\n if (ch === '}') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n while (index < length) {\n ch = source[index++];\n if (!isHexDigit(ch)) {\n break;\n }\n code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase());\n }\n if (code > 0x10FFFF || ch !== '}') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n\n // UTF-16 Encoding\n if (code <= 0xFFFF) {\n return String.fromCharCode(code);\n }\n cu1 = (code - 0x10000 >> 10) + 0xD800;\n cu2 = (code - 0x10000 & 1023) + 0xDC00;\n return String.fromCharCode(cu1, cu2);\n}\nfunction getEscapedIdentifier() {\n var ch, id;\n ch = source.charCodeAt(index++);\n id = String.fromCharCode(ch);\n\n // '\\u' (U+005C, U+0075) denotes an escaped character.\n if (ch === 0x5C) {\n if (source.charCodeAt(index) !== 0x75) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n ++index;\n ch = scanHexEscape('u');\n if (!ch || ch === '\\\\' || !isIdentifierStart(ch.charCodeAt(0))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n id = ch;\n }\n while (index < length) {\n ch = source.charCodeAt(index);\n if (!isIdentifierPart(ch)) {\n break;\n }\n ++index;\n id += String.fromCharCode(ch);\n\n // '\\u' (U+005C, U+0075) denotes an escaped character.\n if (ch === 0x5C) {\n id = id.substr(0, id.length - 1);\n if (source.charCodeAt(index) !== 0x75) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n ++index;\n ch = scanHexEscape('u');\n if (!ch || ch === '\\\\' || !isIdentifierPart(ch.charCodeAt(0))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n id += ch;\n }\n }\n return id;\n}\nfunction getIdentifier() {\n var start, ch;\n start = index++;\n while (index < length) {\n ch = source.charCodeAt(index);\n if (ch === 0x5C) {\n // Blackslash (U+005C) marks Unicode escape sequence.\n index = start;\n return getEscapedIdentifier();\n }\n if (isIdentifierPart(ch)) {\n ++index;\n } else {\n break;\n }\n }\n return source.slice(start, index);\n}\nfunction scanIdentifier() {\n var start, id, type;\n start = index;\n\n // Backslash (U+005C) starts an escaped character.\n id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier();\n\n // There is no keyword or literal with only one character.\n // Thus, it must be an identifier.\n if (id.length === 1) {\n type = TokenIdentifier;\n } else if (keywords.hasOwnProperty(id)) {\n // eslint-disable-line no-prototype-builtins\n type = TokenKeyword;\n } else if (id === 'null') {\n type = TokenNullLiteral;\n } else if (id === 'true' || id === 'false') {\n type = TokenBooleanLiteral;\n } else {\n type = TokenIdentifier;\n }\n return {\n type: type,\n value: id,\n start: start,\n end: index\n };\n}\n\n// 7.7 Punctuators\n\nfunction scanPunctuator() {\n var start = index,\n code = source.charCodeAt(index),\n code2,\n ch1 = source[index],\n ch2,\n ch3,\n ch4;\n switch (code) {\n // Check for most common single-character punctuators.\n case 0x2E: // . dot\n case 0x28: // ( open bracket\n case 0x29: // ) close bracket\n case 0x3B: // ; semicolon\n case 0x2C: // , comma\n case 0x7B: // { open curly brace\n case 0x7D: // } close curly brace\n case 0x5B: // [\n case 0x5D: // ]\n case 0x3A: // :\n case 0x3F: // ?\n case 0x7E:\n // ~\n ++index;\n return {\n type: TokenPunctuator,\n value: String.fromCharCode(code),\n start: start,\n end: index\n };\n default:\n code2 = source.charCodeAt(index + 1);\n\n // '=' (U+003D) marks an assignment or comparison operator.\n if (code2 === 0x3D) {\n switch (code) {\n case 0x2B: // +\n case 0x2D: // -\n case 0x2F: // /\n case 0x3C: // <\n case 0x3E: // >\n case 0x5E: // ^\n case 0x7C: // |\n case 0x25: // %\n case 0x26: // &\n case 0x2A:\n // *\n index += 2;\n return {\n type: TokenPunctuator,\n value: String.fromCharCode(code) + String.fromCharCode(code2),\n start: start,\n end: index\n };\n case 0x21: // !\n case 0x3D:\n // =\n index += 2;\n\n // !== and ===\n if (source.charCodeAt(index) === 0x3D) {\n ++index;\n }\n return {\n type: TokenPunctuator,\n value: source.slice(start, index),\n start: start,\n end: index\n };\n }\n }\n }\n\n // 4-character punctuator: >>>=\n\n ch4 = source.substr(index, 4);\n if (ch4 === '>>>=') {\n index += 4;\n return {\n type: TokenPunctuator,\n value: ch4,\n start: start,\n end: index\n };\n }\n\n // 3-character punctuators: === !== >>> <<= >>=\n\n ch3 = ch4.substr(0, 3);\n if (ch3 === '>>>' || ch3 === '<<=' || ch3 === '>>=') {\n index += 3;\n return {\n type: TokenPunctuator,\n value: ch3,\n start: start,\n end: index\n };\n }\n\n // Other 2-character punctuators: ++ -- << >> && ||\n ch2 = ch3.substr(0, 2);\n if (ch1 === ch2[1] && '+-<>&|'.indexOf(ch1) >= 0 || ch2 === '=>') {\n index += 2;\n return {\n type: TokenPunctuator,\n value: ch2,\n start: start,\n end: index\n };\n }\n if (ch2 === '//') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n\n // 1-character punctuators: < > = ! + - * % & | ^ /\n\n if ('<>=!+-*%&|^/'.indexOf(ch1) >= 0) {\n ++index;\n return {\n type: TokenPunctuator,\n value: ch1,\n start: start,\n end: index\n };\n }\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n}\n\n// 7.8.3 Numeric Literals\n\nfunction scanHexLiteral(start) {\n let number = '';\n while (index < length) {\n if (!isHexDigit(source[index])) {\n break;\n }\n number += source[index++];\n }\n if (number.length === 0) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n if (isIdentifierStart(source.charCodeAt(index))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenNumericLiteral,\n value: parseInt('0x' + number, 16),\n start: start,\n end: index\n };\n}\nfunction scanOctalLiteral(start) {\n let number = '0' + source[index++];\n while (index < length) {\n if (!isOctalDigit(source[index])) {\n break;\n }\n number += source[index++];\n }\n if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenNumericLiteral,\n value: parseInt(number, 8),\n octal: true,\n start: start,\n end: index\n };\n}\nfunction scanNumericLiteral() {\n var number, start, ch;\n ch = source[index];\n assert(isDecimalDigit(ch.charCodeAt(0)) || ch === '.', 'Numeric literal must start with a decimal digit or a decimal point');\n start = index;\n number = '';\n if (ch !== '.') {\n number = source[index++];\n ch = source[index];\n\n // Hex number starts with '0x'.\n // Octal number starts with '0'.\n if (number === '0') {\n if (ch === 'x' || ch === 'X') {\n ++index;\n return scanHexLiteral(start);\n }\n if (isOctalDigit(ch)) {\n return scanOctalLiteral(start);\n }\n\n // decimal number starts with '0' such as '09' is illegal.\n if (ch && isDecimalDigit(ch.charCodeAt(0))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n }\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n ch = source[index];\n }\n if (ch === '.') {\n number += source[index++];\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n ch = source[index];\n }\n if (ch === 'e' || ch === 'E') {\n number += source[index++];\n ch = source[index];\n if (ch === '+' || ch === '-') {\n number += source[index++];\n }\n if (isDecimalDigit(source.charCodeAt(index))) {\n while (isDecimalDigit(source.charCodeAt(index))) {\n number += source[index++];\n }\n } else {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n }\n if (isIdentifierStart(source.charCodeAt(index))) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenNumericLiteral,\n value: parseFloat(number),\n start: start,\n end: index\n };\n}\n\n// 7.8.4 String Literals\n\nfunction scanStringLiteral() {\n var str = '',\n quote,\n start,\n ch,\n code,\n octal = false;\n quote = source[index];\n assert(quote === '\\'' || quote === '\"', 'String literal must starts with a quote');\n start = index;\n ++index;\n while (index < length) {\n ch = source[index++];\n if (ch === quote) {\n quote = '';\n break;\n } else if (ch === '\\\\') {\n ch = source[index++];\n if (!ch || !isLineTerminator(ch.charCodeAt(0))) {\n switch (ch) {\n case 'u':\n case 'x':\n if (source[index] === '{') {\n ++index;\n str += scanUnicodeCodePointEscape();\n } else {\n str += scanHexEscape(ch);\n }\n break;\n case 'n':\n str += '\\n';\n break;\n case 'r':\n str += '\\r';\n break;\n case 't':\n str += '\\t';\n break;\n case 'b':\n str += '\\b';\n break;\n case 'f':\n str += '\\f';\n break;\n case 'v':\n str += '\\x0B';\n break;\n default:\n if (isOctalDigit(ch)) {\n code = '01234567'.indexOf(ch);\n\n // \\0 is not octal escape sequence\n if (code !== 0) {\n octal = true;\n }\n if (index < length && isOctalDigit(source[index])) {\n octal = true;\n code = code * 8 + '01234567'.indexOf(source[index++]);\n\n // 3 digits are only allowed when string starts\n // with 0, 1, 2, 3\n if ('0123'.indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) {\n code = code * 8 + '01234567'.indexOf(source[index++]);\n }\n }\n str += String.fromCharCode(code);\n } else {\n str += ch;\n }\n break;\n }\n } else {\n if (ch === '\\r' && source[index] === '\\n') {\n ++index;\n }\n }\n } else if (isLineTerminator(ch.charCodeAt(0))) {\n break;\n } else {\n str += ch;\n }\n }\n if (quote !== '') {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n }\n return {\n type: TokenStringLiteral,\n value: str,\n octal: octal,\n start: start,\n end: index\n };\n}\nfunction testRegExp(pattern, flags) {\n let tmp = pattern;\n if (flags.indexOf('u') >= 0) {\n // Replace each astral symbol and every Unicode code point\n // escape sequence with a single ASCII symbol to avoid throwing on\n // regular expressions that are only valid in combination with the\n // `/u` flag.\n // Note: replacing with the ASCII symbol `x` might cause false\n // negatives in unlikely scenarios. For example, `[\\u{61}-b]` is a\n // perfectly valid pattern that is equivalent to `[a-b]`, but it\n // would be replaced by `[x-b]` which throws an error.\n tmp = tmp.replace(/\\\\u\\{([0-9a-fA-F]+)\\}/g, ($0, $1) => {\n if (parseInt($1, 16) <= 0x10FFFF) {\n return 'x';\n }\n throwError({}, MessageInvalidRegExp);\n }).replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, 'x');\n }\n\n // First, detect invalid regular expressions.\n try {\n new RegExp(tmp);\n } catch (e) {\n throwError({}, MessageInvalidRegExp);\n }\n\n // Return a regular expression object for this pattern-flag pair, or\n // `null` in case the current environment doesn't support the flags it\n // uses.\n try {\n return new RegExp(pattern, flags);\n } catch (exception) {\n return null;\n }\n}\nfunction scanRegExpBody() {\n var ch, str, classMarker, terminated, body;\n ch = source[index];\n assert(ch === '/', 'Regular expression literal must start with a slash');\n str = source[index++];\n classMarker = false;\n terminated = false;\n while (index < length) {\n ch = source[index++];\n str += ch;\n if (ch === '\\\\') {\n ch = source[index++];\n // ECMA-262 7.8.5\n if (isLineTerminator(ch.charCodeAt(0))) {\n throwError({}, MessageUnterminatedRegExp);\n }\n str += ch;\n } else if (isLineTerminator(ch.charCodeAt(0))) {\n throwError({}, MessageUnterminatedRegExp);\n } else if (classMarker) {\n if (ch === ']') {\n classMarker = false;\n }\n } else {\n if (ch === '/') {\n terminated = true;\n break;\n } else if (ch === '[') {\n classMarker = true;\n }\n }\n }\n if (!terminated) {\n throwError({}, MessageUnterminatedRegExp);\n }\n\n // Exclude leading and trailing slash.\n body = str.substr(1, str.length - 2);\n return {\n value: body,\n literal: str\n };\n}\nfunction scanRegExpFlags() {\n var ch, str, flags;\n str = '';\n flags = '';\n while (index < length) {\n ch = source[index];\n if (!isIdentifierPart(ch.charCodeAt(0))) {\n break;\n }\n ++index;\n if (ch === '\\\\' && index < length) {\n throwError({}, MessageUnexpectedToken, ILLEGAL);\n } else {\n flags += ch;\n str += ch;\n }\n }\n if (flags.search(/[^gimuy]/g) >= 0) {\n throwError({}, MessageInvalidRegExp, flags);\n }\n return {\n value: flags,\n literal: str\n };\n}\nfunction scanRegExp() {\n var start, body, flags, value;\n lookahead = null;\n skipComment();\n start = index;\n body = scanRegExpBody();\n flags = scanRegExpFlags();\n value = testRegExp(body.value, flags.value);\n return {\n literal: body.literal + flags.literal,\n value: value,\n regex: {\n pattern: body.value,\n flags: flags.value\n },\n start: start,\n end: index\n };\n}\nfunction isIdentifierName(token) {\n return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral;\n}\nfunction advance() {\n skipComment();\n if (index >= length) {\n return {\n type: TokenEOF,\n start: index,\n end: index\n };\n }\n const ch = source.charCodeAt(index);\n if (isIdentifierStart(ch)) {\n return scanIdentifier();\n }\n\n // Very common: ( and ) and ;\n if (ch === 0x28 || ch === 0x29 || ch === 0x3B) {\n return scanPunctuator();\n }\n\n // String literal starts with single quote (U+0027) or double quote (U+0022).\n if (ch === 0x27 || ch === 0x22) {\n return scanStringLiteral();\n }\n\n // Dot (.) U+002E can also start a floating-point number, hence the need\n // to check the next character.\n if (ch === 0x2E) {\n if (isDecimalDigit(source.charCodeAt(index + 1))) {\n return scanNumericLiteral();\n }\n return scanPunctuator();\n }\n if (isDecimalDigit(ch)) {\n return scanNumericLiteral();\n }\n return scanPunctuator();\n}\nfunction lex() {\n const token = lookahead;\n index = token.end;\n lookahead = advance();\n index = token.end;\n return token;\n}\nfunction peek() {\n const pos = index;\n lookahead = advance();\n index = pos;\n}\nfunction finishArrayExpression(elements) {\n const node = new ASTNode(SyntaxArrayExpression);\n node.elements = elements;\n return node;\n}\nfunction finishBinaryExpression(operator, left, right) {\n const node = new ASTNode(operator === '||' || operator === '&&' ? SyntaxLogicalExpression : SyntaxBinaryExpression);\n node.operator = operator;\n node.left = left;\n node.right = right;\n return node;\n}\nfunction finishCallExpression(callee, args) {\n const node = new ASTNode(SyntaxCallExpression);\n node.callee = callee;\n node.arguments = args;\n return node;\n}\nfunction finishConditionalExpression(test, consequent, alternate) {\n const node = new ASTNode(SyntaxConditionalExpression);\n node.test = test;\n node.consequent = consequent;\n node.alternate = alternate;\n return node;\n}\nfunction finishIdentifier(name) {\n const node = new ASTNode(SyntaxIdentifier);\n node.name = name;\n return node;\n}\nfunction finishLiteral(token) {\n const node = new ASTNode(SyntaxLiteral);\n node.value = token.value;\n node.raw = source.slice(token.start, token.end);\n if (token.regex) {\n if (node.raw === '//') {\n node.raw = '/(?:)/';\n }\n node.regex = token.regex;\n }\n return node;\n}\nfunction finishMemberExpression(accessor, object, property) {\n const node = new ASTNode(SyntaxMemberExpression);\n node.computed = accessor === '[';\n node.object = object;\n node.property = property;\n if (!node.computed) property.member = true;\n return node;\n}\nfunction finishObjectExpression(properties) {\n const node = new ASTNode(SyntaxObjectExpression);\n node.properties = properties;\n return node;\n}\nfunction finishProperty(kind, key, value) {\n const node = new ASTNode(SyntaxProperty);\n node.key = key;\n node.value = value;\n node.kind = kind;\n return node;\n}\nfunction finishUnaryExpression(operator, argument) {\n const node = new ASTNode(SyntaxUnaryExpression);\n node.operator = operator;\n node.argument = argument;\n node.prefix = true;\n return node;\n}\n\n// Throw an exception\n\nfunction throwError(token, messageFormat) {\n var error,\n args = Array.prototype.slice.call(arguments, 2),\n msg = messageFormat.replace(/%(\\d)/g, (whole, index) => {\n assert(index < args.length, 'Message reference must be in range');\n return args[index];\n });\n error = new Error(msg);\n error.index = index;\n error.description = msg;\n throw error;\n}\n\n// Throw an exception because of the token.\n\nfunction throwUnexpected(token) {\n if (token.type === TokenEOF) {\n throwError(token, MessageUnexpectedEOS);\n }\n if (token.type === TokenNumericLiteral) {\n throwError(token, MessageUnexpectedNumber);\n }\n if (token.type === TokenStringLiteral) {\n throwError(token, MessageUnexpectedString);\n }\n if (token.type === TokenIdentifier) {\n throwError(token, MessageUnexpectedIdentifier);\n }\n if (token.type === TokenKeyword) {\n throwError(token, MessageUnexpectedReserved);\n }\n\n // BooleanLiteral, NullLiteral, or Punctuator.\n throwError(token, MessageUnexpectedToken, token.value);\n}\n\n// Expect the next token to match the specified punctuator.\n// If not, an exception will be thrown.\n\nfunction expect(value) {\n const token = lex();\n if (token.type !== TokenPunctuator || token.value !== value) {\n throwUnexpected(token);\n }\n}\n\n// Return true if the next token matches the specified punctuator.\n\nfunction match(value) {\n return lookahead.type === TokenPunctuator && lookahead.value === value;\n}\n\n// Return true if the next token matches the specified keyword\n\nfunction matchKeyword(keyword) {\n return lookahead.type === TokenKeyword && lookahead.value === keyword;\n}\n\n// 11.1.4 Array Initialiser\n\nfunction parseArrayInitialiser() {\n const elements = [];\n index = lookahead.start;\n expect('[');\n while (!match(']')) {\n if (match(',')) {\n lex();\n elements.push(null);\n } else {\n elements.push(parseConditionalExpression());\n if (!match(']')) {\n expect(',');\n }\n }\n }\n lex();\n return finishArrayExpression(elements);\n}\n\n// 11.1.5 Object Initialiser\n\nfunction parseObjectPropertyKey() {\n index = lookahead.start;\n const token = lex();\n\n // Note: This function is called only from parseObjectProperty(), where\n // EOF and Punctuator tokens are already filtered out.\n\n if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) {\n if (token.octal) {\n throwError(token, MessageStrictOctalLiteral);\n }\n return finishLiteral(token);\n }\n return finishIdentifier(token.value);\n}\nfunction parseObjectProperty() {\n var token, key, id, value;\n index = lookahead.start;\n token = lookahead;\n if (token.type === TokenIdentifier) {\n id = parseObjectPropertyKey();\n expect(':');\n value = parseConditionalExpression();\n return finishProperty('init', id, value);\n }\n if (token.type === TokenEOF || token.type === TokenPunctuator) {\n throwUnexpected(token);\n } else {\n key = parseObjectPropertyKey();\n expect(':');\n value = parseConditionalExpression();\n return finishProperty('init', key, value);\n }\n}\nfunction parseObjectInitialiser() {\n var properties = [],\n property,\n name,\n key,\n map = {},\n toString = String;\n index = lookahead.start;\n expect('{');\n while (!match('}')) {\n property = parseObjectProperty();\n if (property.key.type === SyntaxIdentifier) {\n name = property.key.name;\n } else {\n name = toString(property.key.value);\n }\n key = '$' + name;\n if (Object.prototype.hasOwnProperty.call(map, key)) {\n throwError({}, MessageStrictDuplicateProperty);\n } else {\n map[key] = true;\n }\n properties.push(property);\n if (!match('}')) {\n expect(',');\n }\n }\n expect('}');\n return finishObjectExpression(properties);\n}\n\n// 11.1.6 The Grouping Operator\n\nfunction parseGroupExpression() {\n expect('(');\n const expr = parseExpression();\n expect(')');\n return expr;\n}\n\n// 11.1 Primary Expressions\n\nconst legalKeywords = {\n 'if': 1\n};\nfunction parsePrimaryExpression() {\n var type, token, expr;\n if (match('(')) {\n return parseGroupExpression();\n }\n if (match('[')) {\n return parseArrayInitialiser();\n }\n if (match('{')) {\n return parseObjectInitialiser();\n }\n type = lookahead.type;\n index = lookahead.start;\n if (type === TokenIdentifier || legalKeywords[lookahead.value]) {\n expr = finishIdentifier(lex().value);\n } else if (type === TokenStringLiteral || type === TokenNumericLiteral) {\n if (lookahead.octal) {\n throwError(lookahead, MessageStrictOctalLiteral);\n }\n expr = finishLiteral(lex());\n } else if (type === TokenKeyword) {\n throw new Error(DISABLED);\n } else if (type === TokenBooleanLiteral) {\n token = lex();\n token.value = token.value === 'true';\n expr = finishLiteral(token);\n } else if (type === TokenNullLiteral) {\n token = lex();\n token.value = null;\n expr = finishLiteral(token);\n } else if (match('/') || match('/=')) {\n expr = finishLiteral(scanRegExp());\n peek();\n } else {\n throwUnexpected(lex());\n }\n return expr;\n}\n\n// 11.2 Left-Hand-Side Expressions\n\nfunction parseArguments() {\n const args = [];\n expect('(');\n if (!match(')')) {\n while (index < length) {\n args.push(parseConditionalExpression());\n if (match(')')) {\n break;\n }\n expect(',');\n }\n }\n expect(')');\n return args;\n}\nfunction parseNonComputedProperty() {\n index = lookahead.start;\n const token = lex();\n if (!isIdentifierName(token)) {\n throwUnexpected(token);\n }\n return finishIdentifier(token.value);\n}\nfunction parseNonComputedMember() {\n expect('.');\n return parseNonComputedProperty();\n}\nfunction parseComputedMember() {\n expect('[');\n const expr = parseExpression();\n expect(']');\n return expr;\n}\nfunction parseLeftHandSideExpressionAllowCall() {\n var expr, args, property;\n expr = parsePrimaryExpression();\n for (;;) {\n if (match('.')) {\n property = parseNonComputedMember();\n expr = finishMemberExpression('.', expr, property);\n } else if (match('(')) {\n args = parseArguments();\n expr = finishCallExpression(expr, args);\n } else if (match('[')) {\n property = parseComputedMember();\n expr = finishMemberExpression('[', expr, property);\n } else {\n break;\n }\n }\n return expr;\n}\n\n// 11.3 Postfix Expressions\n\nfunction parsePostfixExpression() {\n const expr = parseLeftHandSideExpressionAllowCall();\n if (lookahead.type === TokenPunctuator) {\n if (match('++') || match('--')) {\n throw new Error(DISABLED);\n }\n }\n return expr;\n}\n\n// 11.4 Unary Operators\n\nfunction parseUnaryExpression() {\n var token, expr;\n if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) {\n expr = parsePostfixExpression();\n } else if (match('++') || match('--')) {\n throw new Error(DISABLED);\n } else if (match('+') || match('-') || match('~') || match('!')) {\n token = lex();\n expr = parseUnaryExpression();\n expr = finishUnaryExpression(token.value, expr);\n } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) {\n throw new Error(DISABLED);\n } else {\n expr = parsePostfixExpression();\n }\n return expr;\n}\nfunction binaryPrecedence(token) {\n let prec = 0;\n if (token.type !== TokenPunctuator && token.type !== TokenKeyword) {\n return 0;\n }\n switch (token.value) {\n case '||':\n prec = 1;\n break;\n case '&&':\n prec = 2;\n break;\n case '|':\n prec = 3;\n break;\n case '^':\n prec = 4;\n break;\n case '&':\n prec = 5;\n break;\n case '==':\n case '!=':\n case '===':\n case '!==':\n prec = 6;\n break;\n case '<':\n case '>':\n case '<=':\n case '>=':\n case 'instanceof':\n case 'in':\n prec = 7;\n break;\n case '<<':\n case '>>':\n case '>>>':\n prec = 8;\n break;\n case '+':\n case '-':\n prec = 9;\n break;\n case '*':\n case '/':\n case '%':\n prec = 11;\n break;\n }\n return prec;\n}\n\n// 11.5 Multiplicative Operators\n// 11.6 Additive Operators\n// 11.7 Bitwise Shift Operators\n// 11.8 Relational Operators\n// 11.9 Equality Operators\n// 11.10 Binary Bitwise Operators\n// 11.11 Binary Logical Operators\n\nfunction parseBinaryExpression() {\n var marker, markers, expr, token, prec, stack, right, operator, left, i;\n marker = lookahead;\n left = parseUnaryExpression();\n token = lookahead;\n prec = binaryPrecedence(token);\n if (prec === 0) {\n return left;\n }\n token.prec = prec;\n lex();\n markers = [marker, lookahead];\n right = parseUnaryExpression();\n stack = [left, token, right];\n while ((prec = binaryPrecedence(lookahead)) > 0) {\n // Reduce: make a binary expression from the three topmost entries.\n while (stack.length > 2 && prec <= stack[stack.length - 2].prec) {\n right = stack.pop();\n operator = stack.pop().value;\n left = stack.pop();\n markers.pop();\n expr = finishBinaryExpression(operator, left, right);\n stack.push(expr);\n }\n\n // Shift.\n token = lex();\n token.prec = prec;\n stack.push(token);\n markers.push(lookahead);\n expr = parseUnaryExpression();\n stack.push(expr);\n }\n\n // Final reduce to clean-up the stack.\n i = stack.length - 1;\n expr = stack[i];\n markers.pop();\n while (i > 1) {\n markers.pop();\n expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr);\n i -= 2;\n }\n return expr;\n}\n\n// 11.12 Conditional Operator\n\nfunction parseConditionalExpression() {\n var expr, consequent, alternate;\n expr = parseBinaryExpression();\n if (match('?')) {\n lex();\n consequent = parseConditionalExpression();\n expect(':');\n alternate = parseConditionalExpression();\n expr = finishConditionalExpression(expr, consequent, alternate);\n }\n return expr;\n}\n\n// 11.14 Comma Operator\n\nfunction parseExpression() {\n const expr = parseConditionalExpression();\n if (match(',')) {\n throw new Error(DISABLED); // no sequence expressions\n }\n\n return expr;\n}\nfunction parser (code) {\n source = code;\n index = 0;\n length = source.length;\n lookahead = null;\n peek();\n const expr = parseExpression();\n if (lookahead.type !== TokenEOF) {\n throw new Error('Unexpect token after expression.');\n }\n return expr;\n}\n\nvar Constants = {\n NaN: 'NaN',\n E: 'Math.E',\n LN2: 'Math.LN2',\n LN10: 'Math.LN10',\n LOG2E: 'Math.LOG2E',\n LOG10E: 'Math.LOG10E',\n PI: 'Math.PI',\n SQRT1_2: 'Math.SQRT1_2',\n SQRT2: 'Math.SQRT2',\n MIN_VALUE: 'Number.MIN_VALUE',\n MAX_VALUE: 'Number.MAX_VALUE'\n};\n\nfunction Functions (codegen) {\n function fncall(name, args, cast, type) {\n let obj = codegen(args[0]);\n if (cast) {\n obj = cast + '(' + obj + ')';\n if (cast.lastIndexOf('new ', 0) === 0) obj = '(' + obj + ')';\n }\n return obj + '.' + name + (type < 0 ? '' : type === 0 ? '()' : '(' + args.slice(1).map(codegen).join(',') + ')');\n }\n function fn(name, cast, type) {\n return args => fncall(name, args, cast, type);\n }\n const DATE = 'new Date',\n STRING = 'String',\n REGEXP = 'RegExp';\n return {\n // MATH functions\n isNaN: 'Number.isNaN',\n isFinite: 'Number.isFinite',\n abs: 'Math.abs',\n acos: 'Math.acos',\n asin: 'Math.asin',\n atan: 'Math.atan',\n atan2: 'Math.atan2',\n ceil: 'Math.ceil',\n cos: 'Math.cos',\n exp: 'Math.exp',\n floor: 'Math.floor',\n log: 'Math.log',\n max: 'Math.max',\n min: 'Math.min',\n pow: 'Math.pow',\n random: 'Math.random',\n round: 'Math.round',\n sin: 'Math.sin',\n sqrt: 'Math.sqrt',\n tan: 'Math.tan',\n clamp: function (args) {\n if (args.length < 3) error('Missing arguments to clamp function.');\n if (args.length > 3) error('Too many arguments to clamp function.');\n const a = args.map(codegen);\n return 'Math.max(' + a[1] + ', Math.min(' + a[2] + ',' + a[0] + '))';\n },\n // DATE functions\n now: 'Date.now',\n utc: 'Date.UTC',\n datetime: DATE,\n date: fn('getDate', DATE, 0),\n day: fn('getDay', DATE, 0),\n year: fn('getFullYear', DATE, 0),\n month: fn('getMonth', DATE, 0),\n hours: fn('getHours', DATE, 0),\n minutes: fn('getMinutes', DATE, 0),\n seconds: fn('getSeconds', DATE, 0),\n milliseconds: fn('getMilliseconds', DATE, 0),\n time: fn('getTime', DATE, 0),\n timezoneoffset: fn('getTimezoneOffset', DATE, 0),\n utcdate: fn('getUTCDate', DATE, 0),\n utcday: fn('getUTCDay', DATE, 0),\n utcyear: fn('getUTCFullYear', DATE, 0),\n utcmonth: fn('getUTCMonth', DATE, 0),\n utchours: fn('getUTCHours', DATE, 0),\n utcminutes: fn('getUTCMinutes', DATE, 0),\n utcseconds: fn('getUTCSeconds', DATE, 0),\n utcmilliseconds: fn('getUTCMilliseconds', DATE, 0),\n // sequence functions\n length: fn('length', null, -1),\n // STRING functions\n parseFloat: 'parseFloat',\n parseInt: 'parseInt',\n upper: fn('toUpperCase', STRING, 0),\n lower: fn('toLowerCase', STRING, 0),\n substring: fn('substring', STRING),\n split: fn('split', STRING),\n trim: fn('trim', STRING, 0),\n // REGEXP functions\n regexp: REGEXP,\n test: fn('test', REGEXP),\n // Control Flow functions\n if: function (args) {\n if (args.length < 3) error('Missing arguments to if function.');\n if (args.length > 3) error('Too many arguments to if function.');\n const a = args.map(codegen);\n return '(' + a[0] + '?' + a[1] + ':' + a[2] + ')';\n }\n };\n}\n\nfunction stripQuotes(s) {\n const n = s && s.length - 1;\n return n && (s[0] === '\"' && s[n] === '\"' || s[0] === '\\'' && s[n] === '\\'') ? s.slice(1, -1) : s;\n}\nfunction codegen (opt) {\n opt = opt || {};\n const allowed = opt.allowed ? toSet(opt.allowed) : {},\n forbidden = opt.forbidden ? toSet(opt.forbidden) : {},\n constants = opt.constants || Constants,\n functions = (opt.functions || Functions)(visit),\n globalvar = opt.globalvar,\n fieldvar = opt.fieldvar,\n outputGlobal = isFunction(globalvar) ? globalvar : id => `${globalvar}[\"${id}\"]`;\n let globals = {},\n fields = {},\n memberDepth = 0;\n function visit(ast) {\n if (isString(ast)) return ast;\n const generator = Generators[ast.type];\n if (generator == null) error('Unsupported type: ' + ast.type);\n return generator(ast);\n }\n const Generators = {\n Literal: n => n.raw,\n Identifier: n => {\n const id = n.name;\n if (memberDepth > 0) {\n return id;\n } else if (hasOwnProperty(forbidden, id)) {\n return error('Illegal identifier: ' + id);\n } else if (hasOwnProperty(constants, id)) {\n return constants[id];\n } else if (hasOwnProperty(allowed, id)) {\n return id;\n } else {\n globals[id] = 1;\n return outputGlobal(id);\n }\n },\n MemberExpression: n => {\n const d = !n.computed,\n o = visit(n.object);\n if (d) memberDepth += 1;\n const p = visit(n.property);\n if (o === fieldvar) {\n // strip quotes to sanitize field name (#1653)\n fields[stripQuotes(p)] = 1;\n }\n if (d) memberDepth -= 1;\n return o + (d ? '.' + p : '[' + p + ']');\n },\n CallExpression: n => {\n if (n.callee.type !== 'Identifier') {\n error('Illegal callee type: ' + n.callee.type);\n }\n const callee = n.callee.name,\n args = n.arguments,\n fn = hasOwnProperty(functions, callee) && functions[callee];\n if (!fn) error('Unrecognized function: ' + callee);\n return isFunction(fn) ? fn(args) : fn + '(' + args.map(visit).join(',') + ')';\n },\n ArrayExpression: n => '[' + n.elements.map(visit).join(',') + ']',\n BinaryExpression: n => '(' + visit(n.left) + ' ' + n.operator + ' ' + visit(n.right) + ')',\n UnaryExpression: n => '(' + n.operator + visit(n.argument) + ')',\n ConditionalExpression: n => '(' + visit(n.test) + '?' + visit(n.consequent) + ':' + visit(n.alternate) + ')',\n LogicalExpression: n => '(' + visit(n.left) + n.operator + visit(n.right) + ')',\n ObjectExpression: n => '{' + n.properties.map(visit).join(',') + '}',\n Property: n => {\n memberDepth += 1;\n const k = visit(n.key);\n memberDepth -= 1;\n return k + ':' + visit(n.value);\n }\n };\n function codegen(ast) {\n const result = {\n code: visit(ast),\n globals: Object.keys(globals),\n fields: Object.keys(fields)\n };\n globals = {};\n fields = {};\n return result;\n }\n codegen.functions = functions;\n codegen.constants = constants;\n return codegen;\n}\n\nexport { ASTNode, ArrayExpression, BinaryExpression, CallExpression, ConditionalExpression, Identifier, Literal, LogicalExpression, MemberExpression, ObjectExpression, Property, RawCode, UnaryExpression, codegen as codegenExpression, Constants as constants, Functions as functions, parser as parseExpression };\n"],"names":["ILLEGAL","DEFAULT_MARKS","arc","area","group","image","line","path","rect","rule","shape","symbol","text","trail","DEFAULT_SOURCE","MARKS","eventSelector","selector","source","marks","parseMerge","trim","map","parseSelector","find","s","i","endChar","pushChar","popChar","n","length","c","count","indexOf","output","start","LBRACK","RBRACK","push","substring","b","slice","stream","between","parseBetween","j","filter","throttle","markname","lastIndexOf","a","split","_","x","parseThrottle","e","test","type","marktype","consume","debounce","parseStream","Literal","CallExpression","ASTNode","this","TokenName","index","lookahead","prototype","visit","visitor","node","elements","left","right","callee","concat","arguments","consequent","alternate","object","property","properties","key","value","argument","children","SyntaxIdentifier","MessageUnexpectedToken","MessageInvalidRegExp","MessageUnterminatedRegExp","MessageStrictOctalLiteral","DISABLED","RegexNonAsciiIdentifierStart","RegExp","RegexNonAsciiIdentifierPart","assert","condition","message","Error","isDecimalDigit","ch","isHexDigit","isOctalDigit","isWhiteSpace","isLineTerminator","isIdentifierStart","String","fromCharCode","isIdentifierPart","keywords","skipComment","charCodeAt","scanHexEscape","prefix","len","code","toLowerCase","throwError","scanUnicodeCodePointEscape","cu1","cu2","getEscapedIdentifier","id","substr","scanPunctuator","code2","ch2","ch3","ch4","ch1","end","scanNumericLiteral","number","parseInt","scanHexLiteral","octal","scanOctalLiteral","parseFloat","advance","getIdentifier","hasOwnProperty","quote","str","scanStringLiteral","lex","token","peek","pos","finishBinaryExpression","operator","finishCallExpression","args","finishIdentifier","name","finishLiteral","raw","regex","finishMemberExpression","accessor","computed","member","finishProperty","kind","messageFormat","error","Array","call","msg","replace","whole","description","throwUnexpected","expect","match","matchKeyword","keyword","parseObjectPropertyKey","parseObjectProperty","parseConditionalExpression","legalKeywords","parsePrimaryExpression","expr","body","flags","parseExpression","parseGroupExpression","finishArrayExpression","parseArrayInitialiser","toString","Object","finishObjectExpression","parseObjectInitialiser","classMarker","terminated","literal","scanRegExpBody","search","scanRegExpFlags","pattern","tmp","$0","$1","exception","testRegExp","parseArguments","parseComputedMember","parsePostfixExpression","isIdentifierName","parseNonComputedProperty","parseLeftHandSideExpressionAllowCall","parseUnaryExpression","finishUnaryExpression","binaryPrecedence","prec","marker","markers","stack","pop","parseBinaryExpression","finishConditionalExpression","parser","Constants","NaN","E","LN2","LN10","LOG2E","LOG10E","PI","SQRT1_2","SQRT2","MIN_VALUE","MAX_VALUE","Functions","codegen","fn","cast","obj","join","fncall","DATE","STRING","REGEXP","isNaN","isFinite","abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","random","round","sin","sqrt","tan","clamp","now","utc","datetime","date","day","year","month","hours","minutes","seconds","milliseconds","time","timezoneoffset","utcdate","utcday","utcyear","utcmonth","utchours","utcminutes","utcseconds","utcmilliseconds","upper","lower","regexp","if","opt","allowed","forbidden","constants","functions","globalvar","fieldvar","outputGlobal","globals","fields","memberDepth","ast","generator","Generators","Identifier","MemberExpression","d","o","p","stripQuotes","ArrayExpression","BinaryExpression","UnaryExpression","ConditionalExpression","LogicalExpression","ObjectExpression","Property","k","result","keys"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6136.b8ba2b2.js b/_static/build/6136.b8ba2b2.js new file mode 100644 index 0000000..e03aab9 --- /dev/null +++ b/_static/build/6136.b8ba2b2.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6136],{46136:(e,t,n)=>{n.r(t),n.d(t,{Commands:()=>S,default:()=>I,tabSpaceStatus:()=>y});var o=n(67504),a=n(2814),r=n(84853),d=n(69041),i=n(84920),c=n(6624),l=n(44761),s=n(49005),u=n(15786),m=n(16725),g=n(4265),f=n(94519),p=n(55941),C=n(59674);const b="notebook:toggle-autoclosing-brackets",v="console:toggle-autoclosing-brackets";var h;!function(e){e.createNew="fileeditor:create-new",e.createNewMarkdown="fileeditor:create-new-markdown-file",e.changeFontSize="fileeditor:change-font-size",e.lineNumbers="fileeditor:toggle-line-numbers",e.lineWrap="fileeditor:toggle-line-wrap",e.changeTabs="fileeditor:change-tabs",e.matchBrackets="fileeditor:toggle-match-brackets",e.autoClosingBrackets="fileeditor:toggle-autoclosing-brackets",e.autoClosingBracketsUniversal="fileeditor:toggle-autoclosing-brackets-universal",e.createConsole="fileeditor:create-console",e.replaceSelection="fileeditor:replace-selection",e.runCode="fileeditor:run-code",e.runAllCode="fileeditor:run-all",e.markdownPreview="fileeditor:markdown-preview",e.undo="fileeditor:undo",e.redo="fileeditor:redo",e.cut="fileeditor:cut",e.copy="fileeditor:copy",e.paste="fileeditor:paste",e.selectAll="fileeditor:select-all"}(h||(h={}));const _="Editor",w=["autoClosingBrackets","codeFolding","cursorBlinkRate","fontFamily","fontSize","insertSpaces","lineHeight","lineNumbers","lineWrap","matchBrackets","readOnly","rulers","showTrailingSpace","tabSize","wordWrapColumn"];function k(e){const t=Object.assign({},e);for(let t of Object.keys(e))w.includes(t)||delete e[t];return t}let x=k(r.CodeEditor.defaultConfig);var S;!function(e){function t(e){return async function(t,n){var o;const a=n||{},r=await e.execute("console:create",{activate:a.activate,name:null===(o=t.context.contentsModel)||void 0===o?void 0:o.name,path:t.context.path,preferredLanguage:t.context.model.defaultKernelLanguage,ref:t.id,insertMode:"split-bottom"});t.context.pathChanged.connect(((e,n)=>{var o;r.session.setPath(n),r.session.setName(null===(o=t.context.contentsModel)||void 0===o?void 0:o.name)}))}}function n(e){e.editor.setOptions(Object.assign({},x))}function o(e,t,n,o){e.addCommand(h.changeFontSize,{execute:e=>{const n=Number(e.delta);if(Number.isNaN(n))return void console.error(`${h.changeFontSize}: delta arg must be a number`);const a=window.getComputedStyle(document.documentElement),r=parseInt(a.getPropertyValue("--jp-code-font-size"),10),d=x.fontSize||r;return x.fontSize=d+n,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))},label:e=>{var t;return(null!==(t=e.delta)&&void 0!==t?t:0)>0?e.isMenu?n.__("Increase Text Editor Font Size"):n.__("Increase Font Size"):e.isMenu?n.__("Decrease Text Editor Font Size"):n.__("Decrease Font Size")}})}function d(e,t,n,o,a){e.addCommand(h.lineNumbers,{execute:()=>(x.lineNumbers=!x.lineNumbers,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),isEnabled:a,isToggled:()=>x.lineNumbers,label:n.__("Line Numbers")})}function i(e,t,n,o,a){e.addCommand(h.lineWrap,{execute:e=>(x.lineWrap=e.mode||"off",t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),isEnabled:a,isToggled:e=>{const t=e.mode||"off";return x.lineWrap===t},label:n.__("Word Wrap")})}function c(e,t,n,o){e.addCommand(h.changeTabs,{label:e=>{var t;return e.insertSpaces?n._n("Spaces: %1","Spaces: %1",null!==(t=e.size)&&void 0!==t?t:0):n.__("Indent with Tab")},execute:e=>(x.tabSize=e.size||4,x.insertSpaces=!!e.insertSpaces,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),isToggled:e=>{const t=!!e.insertSpaces,n=e.size||4;return x.insertSpaces===t&&x.tabSize===n}})}function l(e,t,n,o,a){e.addCommand(h.matchBrackets,{execute:()=>(x.matchBrackets=!x.matchBrackets,t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))),label:n.__("Match Brackets"),isEnabled:a,isToggled:()=>x.matchBrackets})}function s(e,t,n,o){e.addCommand(h.autoClosingBrackets,{execute:e=>{var n;return x.autoClosingBrackets=!!(null!==(n=e.force)&&void 0!==n?n:!x.autoClosingBrackets),t.set(o,"editorConfig",x).catch((e=>{console.error(`Failed to set ${o}: ${e.message}`)}))},label:n.__("Auto Close Brackets for Text Editor"),isToggled:()=>x.autoClosingBrackets}),e.addCommand(h.autoClosingBracketsUniversal,{execute:()=>{e.isToggled(h.autoClosingBrackets)||e.isToggled(b)||e.isToggled(v)?(e.execute(h.autoClosingBrackets,{force:!1}),e.execute(b,{force:!1}),e.execute(v,{force:!1})):(e.execute(h.autoClosingBrackets,{force:!0}),e.execute(b,{force:!0}),e.execute(v,{force:!0}))},label:n.__("Auto Close Brackets"),isToggled:()=>e.isToggled(h.autoClosingBrackets)||e.isToggled(b)||e.isToggled(v)})}function u(e,t,n,o){e.addCommand(h.replaceSelection,{execute:e=>{var n,o;const a=e.text||"",r=t.currentWidget;r&&(null===(o=(n=r.content.editor).replaceSelection)||void 0===o||o.call(n,a))},isEnabled:o,label:n.__("Replace Selection in Editor")})}function m(e,n,o,a){e.addCommand(h.createConsole,{execute:o=>{const a=n.currentWidget;if(a)return t(e)(a,o)},isEnabled:a,icon:C.consoleIcon,label:o.__("Create Console for Editor")})}function g(e,t,n,o){e.addCommand(h.runCode,{execute:()=>{var n;const o=null===(n=t.currentWidget)||void 0===n?void 0:n.content;if(!o)return;let a="";const r=o.editor,d=o.context.path,i=p.PathExt.extname(d),c=r.getSelection(),{start:l,end:s}=c;let u=l.column!==s.column||l.line!==s.line;if(u){const e=r.getOffsetAt(c.start),t=r.getOffsetAt(c.end);a=r.model.value.text.substring(e,t)}else if(p.MarkdownCodeBlocks.isMarkdown(i)){const{text:e}=r.model.value,t=p.MarkdownCodeBlocks.findMarkdownCodeBlocks(e);for(const e of t)if(e.startLine<=l.line&&l.line<=e.endLine){a=e.code,u=!0;break}}if(!u){a=r.getLine(c.start.line);const e=r.getCursorPosition();if(e.line+1===r.lineCount){const e=r.model.value.text;r.model.value.text=e+"\n"}r.setCursorPosition({line:e.line+1,column:e.column})}return a?e.execute("console:inject",{activate:!1,code:a,path:d}):Promise.resolve(void 0)},isEnabled:o,label:n.__("Run Code")})}function f(e,t,n,o){e.addCommand(h.runAllCode,{execute:()=>{var n;const o=null===(n=t.currentWidget)||void 0===n?void 0:n.content;if(!o)return;let a="";const r=o.editor.model.value.text,d=o.context.path,i=p.PathExt.extname(d);if(p.MarkdownCodeBlocks.isMarkdown(i)){const e=p.MarkdownCodeBlocks.findMarkdownCodeBlocks(r);for(const t of e)a+=t.code}else a=r;return a?e.execute("console:inject",{activate:!1,code:a,path:d}):Promise.resolve(void 0)},isEnabled:o,label:n.__("Run All Code")})}function w(e,t,n){e.addCommand(h.markdownPreview,{execute:()=>{const n=t.currentWidget;if(!n)return;const o=n.context.path;return e.execute("markdownviewer:open",{path:o,options:{mode:"split-right"}})},isVisible:()=>{const e=t.currentWidget;return e&&".md"===p.PathExt.extname(e.context.path)||!1},icon:C.markdownIcon,label:n.__("Show Markdown Preview")})}function S(e,t,n,o){e.addCommand(h.undo,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;n&&n.editor.undo()},isEnabled:()=>{var e;return!!o()&&!!(null===(e=t.currentWidget)||void 0===e?void 0:e.content)},icon:C.undoIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Undo")})}function T(e,t,n,o){e.addCommand(h.redo,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;n&&n.editor.redo()},isEnabled:()=>{var e;return!!o()&&!!(null===(e=t.currentWidget)||void 0===e?void 0:e.content)},icon:C.redoIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Redo")})}function y(e,t,n,o){e.addCommand(h.cut,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;if(!n)return;const o=n.editor,r=N(o);a.Clipboard.copyToSystem(r),o.replaceSelection&&o.replaceSelection("")},isEnabled:()=>{var e;if(!o())return!1;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;return!!n&&W(n.editor)},icon:C.cutIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Cut")})}function I(e,t,n,o){e.addCommand(h.copy,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;if(!n)return;const o=N(n.editor);a.Clipboard.copyToSystem(o)},isEnabled:()=>{var e;if(!o())return!1;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;return!!n&&W(n.editor)},icon:C.copyIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Copy")})}function E(e,t,n,o){e.addCommand(h.paste,{execute:async()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;if(!n)return;const o=n.editor,a=window.navigator.clipboard,r=await a.readText();r&&o.replaceSelection&&o.replaceSelection(r)},isEnabled:()=>{var e;return Boolean(o()&&(null===(e=t.currentWidget)||void 0===e?void 0:e.content))},icon:C.pasteIcon.bindprops({stylesheet:"menuItem"}),label:n.__("Paste")})}function M(e,t,n,o){e.addCommand(h.selectAll,{execute:()=>{var e;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.content;n&&n.editor.execCommand("selectAll")},isEnabled:()=>{var e;return Boolean(o()&&(null===(e=t.currentWidget)||void 0===e?void 0:e.content))},label:n.__("Select All")})}function W(e){const t=e.getSelection(),{start:n,end:o}=t;return n.column!==o.column||n.line!==o.line}function N(e){const t=e.getSelection(),n=e.getOffsetAt(t.start),o=e.getOffsetAt(t.end);return e.model.value.text.substring(n,o)}async function B(e,t,n="txt"){const o=await e.execute("docmanager:new-untitled",{path:t,type:"file",ext:n});if(null!=o){const t=await e.execute("docmanager:open",{path:o.path,factory:_});return t.isUntitled=!0,t}}function P(e,t,n){e.addCommand(h.createNew,{label:e=>{var t,o;return e.isPalette?null!==(t=e.paletteLabel)&&void 0!==t?t:n.__("New Text File"):null!==(o=e.launcherLabel)&&void 0!==o?o:n.__("Text File")},caption:e=>{var t;return null!==(t=e.caption)&&void 0!==t?t:n.__("Create a new text file")},icon:e=>{var t;return e.isPalette?void 0:C.LabIcon.resolve({icon:null!==(t=e.iconName)&&void 0!==t?t:C.textEditorIcon})},execute:n=>{var o;const a=n.cwd||t.defaultBrowser.model.path;return B(e,a,null!==(o=n.fileExt)&&void 0!==o?o:"txt")}})}function F(e,t,n){e.addCommand(h.createNewMarkdown,{label:e=>e.isPalette?n.__("New Markdown File"):n.__("Markdown File"),caption:n.__("Create a new markdown file"),icon:e=>e.isPalette?void 0:C.markdownIcon,execute:n=>{const o=n.cwd||t.defaultBrowser.model.path;return B(e,o,"md")}})}function L(e,t){e.add({command:h.createNew,category:t.__("Other"),rank:1})}function O(e,t){e.add({command:h.createNewMarkdown,category:t.__("Other"),rank:2})}function R(e,t){const n=t.__("Text Editor"),o=h.changeTabs;e.addItem({command:o,args:{insertSpaces:!1,size:4},category:n});for(const t of[1,2,4,8]){const a={insertSpaces:!0,size:t};e.addItem({command:o,args:a,category:n})}}function A(e,t){const n=t.__("Text Editor");e.addItem({command:h.createNew,args:{isPalette:!0},category:n})}function z(e,t){const n=t.__("Text Editor");e.addItem({command:h.createNewMarkdown,args:{isPalette:!0},category:n})}function j(e,t){const n=t.__("Text Editor"),o=h.changeFontSize;let a={delta:1};e.addItem({command:o,args:a,category:n}),a={delta:-1},e.addItem({command:o,args:a,category:n})}function $(e,t){e.editMenu.undoers.add({tracker:t,undo:e=>{e.content.editor.undo()},redo:e=>{e.content.editor.redo()}})}function U(e,t){e.viewMenu.editorViewers.add({tracker:t,toggleLineNumbers:e=>{const t=!e.content.editor.getOption("lineNumbers");e.content.editor.setOption("lineNumbers",t)},toggleWordWrap:e=>{const t="off"===e.content.editor.getOption("lineWrap")?"on":"off";e.content.editor.setOption("lineWrap",t)},toggleMatchBrackets:e=>{const t=!e.content.editor.getOption("matchBrackets");e.content.editor.setOption("matchBrackets",t)},lineNumbersToggled:e=>e.content.editor.getOption("lineNumbers"),wordWrapToggled:e=>"off"!==e.content.editor.getOption("lineWrap"),matchBracketsToggled:e=>e.content.editor.getOption("matchBrackets")})}function K(e,n,o,a){const r=t(n);e.fileMenu.consoleCreators.add({tracker:o,createConsoleLabel:e=>a.__("Create Console for Editor"),createConsole:r})}function J(e,t,n,o,r,d){e.runMenu.codeRunners.add({tracker:n,runLabel:e=>r.__("Run Code"),runAllLabel:e=>r.__("Run All Code"),restartAndRunAllLabel:e=>r.__("Restart Kernel and Run All Code"),isEnabled:e=>!!o.find((t=>{var n;return(null===(n=t.sessionContext.session)||void 0===n?void 0:n.path)===e.context.path})),run:()=>t.execute(h.runCode),runAll:()=>t.execute(h.runAllCode),restartAndRunAll:e=>{const n=o.find((t=>{var n;return(null===(n=t.sessionContext.session)||void 0===n?void 0:n.path)===e.context.path}));if(n)return(d||a.sessionContextDialogs).restart(n.sessionContext).then((e=>(e&&t.execute(h.runAllCode),e)))}})}e.updateSettings=function(e,t){x=k(Object.assign(Object.assign({},r.CodeEditor.defaultConfig),e.get("editorConfig").composite)),t.notifyCommandChanged()},e.updateTracker=function(e){e.forEach((e=>{n(e.content)}))},e.updateWidget=n,e.addCommands=function(e,t,n,a,r,p,C){o(e,t,n,a),d(e,t,n,a,r),i(e,t,n,a,r),c(e,t,n,a),l(e,t,n,a,r),s(e,t,n,a),u(e,p,n,r),m(e,p,n,r),g(e,p,n,r),f(e,p,n,r),w(e,p,n),P(e,C,n),F(e,C,n),S(e,p,n,r),T(e,p,n,r),y(e,p,n,r),I(e,p,n,r),E(e,p,n,r),M(e,p,n,r)},e.addChangeFontSizeCommand=o,e.addLineNumbersCommand=d,e.addWordWrapCommand=i,e.addChangeTabsCommand=c,e.addMatchBracketsCommand=l,e.addAutoClosingBracketsCommand=s,e.addReplaceSelectionCommand=u,e.addCreateConsoleCommand=m,e.addRunCodeCommand=g,e.addRunAllCodeCommand=f,e.addMarkdownPreviewCommand=w,e.addUndoCommand=S,e.addRedoCommand=T,e.addCutCommand=y,e.addCopyCommand=I,e.addPasteCommand=E,e.addSelectAllCommand=M,e.addCreateNewCommand=P,e.addCreateNewMarkdownCommand=F,e.addLauncherItems=function(e,t){L(e,t),O(e,t)},e.addCreateNewToLauncher=L,e.addCreateNewMarkdownToLauncher=O,e.addKernelLanguageLauncherItems=function(e,t,n){for(let o of n)e.add({command:h.createNew,category:t.__("Other"),rank:3,args:o})},e.addPaletteItems=function(e,t){R(e,t),A(e,t),z(e,t),j(e,t)},e.addChangeTabsCommandsToPalette=R,e.addCreateNewCommandToPalette=A,e.addCreateNewMarkdownCommandToPalette=z,e.addChangeFontSizeCommandsToPalette=j,e.addKernelLanguagePaletteItems=function(e,t,n){const o=t.__("Text Editor");for(let t of n)e.addItem({command:h.createNew,args:Object.assign(Object.assign({},t),{isPalette:!0}),category:o})},e.addMenuItems=function(e,t,n,o,a,r){$(e,n),U(e,n),K(e,t,n,o),a&&J(e,t,n,a,o,r)},e.addKernelLanguageMenuItems=function(e,t){for(let n of t)e.fileMenu.newMenu.addItem({command:h.createNew,args:n,rank:31})},e.addUndoRedoToEditMenu=$,e.addEditorViewerToViewMenu=U,e.addConsoleCreatorToFileMenu=K,e.addCodeRunnersToRunMenu=J}(S||(S={}));const T={activate:function(e,t,n,o,r,d,i,l,s,u,m,g){const f=T.id,p=r.load("jupyterlab");let C;g&&(C=(0,a.createToolbarFactory)(g,o,_,f,r));const b=new c.FileEditorFactory({editorServices:t,factoryOptions:{name:_,fileTypes:["markdown","*"],defaultFor:["markdown","*"],toolbarFactory:C,translator:r}}),{commands:v,restored:h,shell:w}=e,k=new a.WidgetTracker({namespace:"editor"}),x=new Map([["python",[{fileExt:"py",iconName:"ui-components:python",launcherLabel:p.__("Python File"),paletteLabel:p.__("New Python File"),caption:p.__("Create a new Python file")}]],["julia",[{fileExt:"jl",iconName:"ui-components:julia",launcherLabel:p.__("Julia File"),paletteLabel:p.__("New Julia File"),caption:p.__("Create a new Julia file")}]],["R",[{fileExt:"r",iconName:"ui-components:r-kernel",launcherLabel:p.__("R File"),paletteLabel:p.__("New R File"),caption:p.__("Create a new R file")}]]]);return u&&u.restore(k,{command:"docmanager:open",args:e=>({path:e.context.path,factory:_}),name:e=>e.context.path}),Promise.all([o.load(f),h]).then((([e])=>{S.updateSettings(e,v),S.updateTracker(k),e.changed.connect((()=>{S.updateSettings(e,v),S.updateTracker(k)}))})).catch((e=>{console.error(e.message),S.updateTracker(k)})),b.widgetCreated.connect(((e,t)=>{t.context.pathChanged.connect((()=>{k.save(t)})),k.add(t),S.updateWidget(t.content)})),e.docRegistry.addWidgetFactory(b),k.widgetAdded.connect(((e,t)=>{S.updateWidget(t.content)})),S.addCommands(v,o,p,f,(()=>null!==k.currentWidget&&k.currentWidget===w.currentWidget),k,n),l&&S.addLauncherItems(l,p),i&&S.addPaletteItems(i,p),s&&S.addMenuItems(s,v,k,p,d,m),(async()=>{var t,n;const o=e.serviceManager.kernelspecs;await o.ready;let a=new Set;const r=null!==(n=null===(t=o.specs)||void 0===t?void 0:t.kernelspecs)&&void 0!==n?n:{};return Object.keys(r).forEach((e=>{const t=r[e];if(t){const e=x.get(t.language);null==e||e.forEach((e=>a.add(e)))}})),a})().then((e=>{l&&S.addKernelLanguageLauncherItems(l,p,e),i&&S.addKernelLanguagePaletteItems(i,p,e),s&&S.addKernelLanguageMenuItems(s,e)})).catch((e=>{console.error(e.message)})),k},id:"@jupyterlab/fileeditor-extension:plugin",requires:[r.IEditorServices,i.IFileBrowserFactory,u.ISettingRegistry,g.ITranslator],optional:[d.IConsoleTracker,a.ICommandPalette,l.ILauncher,s.IMainMenu,o.ILayoutRestorer,a.ISessionContextDialogs,a.IToolbarWidgetRegistry],provides:c.IEditorTracker,autoStart:!0},y={id:"@jupyterlab/fileeditor-extension:tab-space-status",autoStart:!0,requires:[c.IEditorTracker,u.ISettingRegistry,g.ITranslator],optional:[m.IStatusBar],activate:(e,t,n,o,a)=>{const d=o.load("jupyterlab");if(!a)return;const i=new f.Menu({commands:e.commands}),l="fileeditor:change-tabs",{shell:s}=e,u={insertSpaces:!1,size:4,name:d.__("Indent with Tab")};i.addItem({command:l,args:u});for(const e of[1,2,4,8]){const t={insertSpaces:!0,size:e,name:d._n("Spaces: %1","Spaces: %1",e)};i.addItem({command:l,args:t})}const m=new c.TabSpaceStatus({menu:i,translator:o}),g=e=>{m.model.config=Object.assign(Object.assign({},r.CodeEditor.defaultConfig),e.get("editorConfig").composite)};Promise.all([n.load("@jupyterlab/fileeditor-extension:plugin"),e.restored]).then((([e])=>{g(e),e.changed.connect(g)})),a.registerStatusItem("@jupyterlab/fileeditor-extension:tab-space-status",{item:m,align:"right",rank:1,isActive:()=>!!s.currentWidget&&t.has(s.currentWidget)})}},I=[T,y]}}]); +//# sourceMappingURL=6136.b8ba2b2.js.map \ No newline at end of file diff --git a/_static/build/6136.b8ba2b2.js.map b/_static/build/6136.b8ba2b2.js.map new file mode 100644 index 0000000..4394a25 --- /dev/null +++ b/_static/build/6136.b8ba2b2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6136.b8ba2b2.js","mappings":"gWA6CA,MAAM,EAA8B,uCAC9B,EAA6B,sCAI7B,IAAW,GAAjB,SAAiB,GACF,YAAY,wBAEZ,oBAAoB,sCAEpB,iBAAiB,8BAEjB,cAAc,iCAEd,WAAW,8BAEX,aAAa,yBAEb,gBAAgB,mCAEhB,sBAAsB,yCAEtB,+BACX,mDAEW,gBAAgB,4BAEhB,mBAAmB,+BAEnB,UAAU,sBAEV,aAAa,qBAEb,kBAAkB,8BAElB,OAAO,kBAEP,OAAO,kBAEP,MAAM,iBAEN,OAAO,kBAEP,QAAQ,mBAER,YAAY,uBAC1B,CAzCD,CAAiB,MAAU,KAsDpB,MAAM,EAAU,SAEjB,EAAe,CACnB,sBACA,cACA,kBACA,aACA,WACA,eACA,aACA,cACA,WACA,gBACA,WACA,SACA,oBACA,UACA,kBAGF,SAAS,EAAmB,GAC1B,MAAM,EAAc,iBAAQ,GAE5B,IAAK,IAAI,KAAK,OAAO,KAAK,GACnB,EAAa,SAAS,WACjB,EAAe,GAG3B,OAAO,CACT,CAEA,IAAI,EAA6B,EAAmB,4BAM9C,IAAW,GAAjB,SAAiB,GAIf,SAAS,EACP,GAKA,OAAO,eACL,EACA,G,MAEA,MAAM,EAAU,GAAQ,GAClB,QAAgB,EAAS,QAAQ,iBAAkB,CACvD,SAAU,EAAkB,SAC5B,KAAkC,QAA9B,EAAE,EAAO,QAAQ,qBAAa,eAAE,KACpC,KAAM,EAAO,QAAQ,KACrB,kBAAmB,EAAO,QAAQ,MAAM,sBACxC,IAAK,EAAO,GACZ,WAAY,iBAGd,EAAO,QAAQ,YAAY,SAAQ,CAAC,EAAQ,K,MAC1C,EAAQ,QAAQ,QAAQ,GACxB,EAAQ,QAAQ,QAAoC,QAA7B,EAAC,EAAO,QAAQ,qBAAa,eAAE,KAAK,GAE/D,CACF,CAiCA,SAAgB,EAAa,GACZ,EAAO,OACf,WAAU,iBAAM,GACzB,CA2DA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,eAAgB,CAC7C,QAAS,IACP,MAAM,EAAQ,OAAO,EAAY,OACjC,GAAI,OAAO,MAAM,GAIf,YAHA,QAAQ,MACN,GAAG,EAAW,8CAIlB,MAAM,EAAQ,OAAO,iBAAiB,SAAS,iBACzC,EAAU,SACd,EAAM,iBAAiB,uBACvB,IAEI,EAAc,EAAO,UAAY,EAEvC,OADA,EAAO,SAAW,EAAc,EACzB,EACJ,IAAI,EAAI,eAAiB,GACzB,OAAO,IACN,QAAQ,MAAM,iBAAiB,MAAO,EAAO,UAAU,GACvD,EAEN,MAAO,I,MACL,OAAe,QAAX,EAAC,EAAK,aAAK,QAAI,GAAK,EACf,EAAK,OACR,EAAM,GAAG,kCACT,EAAM,GAAG,sBAEN,EAAK,OACR,EAAM,GAAG,kCACT,EAAM,GAAG,qB,GAIrB,CAKA,SAAgB,EACd,EACA,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,YAAa,CAC1C,QAAS,KACP,EAAO,aAAe,EAAO,YACtB,EACJ,IAAI,EAAI,eAAiB,GACzB,OAAO,IACN,QAAQ,MAAM,iBAAiB,MAAO,EAAO,UAAU,KAG7D,YACA,UAAW,IAAM,EAAO,YACxB,MAAO,EAAM,GAAG,iBAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,EACA,GAIA,EAAS,WAAW,EAAW,SAAU,CACvC,QAAS,IACP,EAAO,SAAY,EAAW,MAAsB,MAC7C,EACJ,IAAI,EAAI,eAAiB,GACzB,OAAO,IACN,QAAQ,MAAM,iBAAiB,MAAO,EAAO,UAAU,KAG7D,YACA,UAAW,IACT,MAAM,EAAY,EAAW,MAAsB,MACnD,OAAO,EAAO,WAAa,CAAQ,EAErC,MAAO,EAAM,GAAG,cAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,WAAY,CACzC,MAAO,I,MACL,OAAI,EAAK,aACA,EAAM,GACX,aACA,aACqB,QADT,EACX,EAAK,YAAe,QAAI,GAGpB,EAAM,GAAG,kB,EAGpB,QAAS,IACP,EAAO,QAAW,EAAW,MAAgB,EAC7C,EAAO,eAAiB,EAAmB,aACpC,EACJ,IAAI,EAAI,eAAiB,GACzB,OAAO,IACN,QAAQ,MAAM,iBAAiB,MAAO,EAAO,UAAU,KAG7D,UAAW,IACT,MAAM,IAAiB,EAAmB,aACpC,EAAQ,EAAW,MAAgB,EACzC,OAAO,EAAO,eAAiB,GAAgB,EAAO,UAAY,CAAI,GAG5E,CAKA,SAAgB,EACd,EACA,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,cAAe,CAC5C,QAAS,KACP,EAAO,eAAiB,EAAO,cACxB,EACJ,IAAI,EAAI,eAAiB,GACzB,OAAO,IACN,QAAQ,MAAM,iBAAiB,MAAO,EAAO,UAAU,KAG7D,MAAO,EAAM,GAAG,kBAChB,YACA,UAAW,IAAM,EAAO,eAE5B,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,oBAAqB,CAClD,QAAS,I,MAIP,OAHA,EAAO,uBACQ,QADgB,EAC7B,EAAY,aAAC,SAAK,EAAO,qBAEpB,EACJ,IAAI,EAAI,eAAiB,GACzB,OAAO,IACN,QAAQ,MAAM,iBAAiB,MAAO,EAAO,UAAU,GACvD,EAEN,MAAO,EAAM,GAAG,uCAChB,UAAW,IAAM,EAAO,sBAG1B,EAAS,WAAW,EAAW,6BAA8B,CAC3D,QAAS,KAEL,EAAS,UAAU,EAAW,sBAC9B,EAAS,UAAU,IACnB,EAAS,UAAU,IAGd,EAAS,QAAQ,EAAW,oBAAqB,CACpD,OAAO,IAEJ,EAAS,QAAQ,EAA6B,CAAE,OAAO,IACvD,EAAS,QAAQ,EAA4B,CAAE,OAAO,MAGtD,EAAS,QAAQ,EAAW,oBAAqB,CACpD,OAAO,IAEJ,EAAS,QAAQ,EAA6B,CAAE,OAAO,IACvD,EAAS,QAAQ,EAA4B,CAAE,OAAO,I,EAG/D,MAAO,EAAM,GAAG,uBAChB,UAAW,IACT,EAAS,UAAU,EAAW,sBAC9B,EAAS,UAAU,IACnB,EAAS,UAAU,IAEzB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,iBAAkB,CAC/C,QAAS,I,QACP,MAAM,EAAgB,EAAW,MAAgB,GAC3C,EAAS,EAAQ,cAClB,IAGiC,QAAtC,OAAO,QAAQ,QAAO,wBAAgB,gBAAG,GAAI,EAE/C,YACA,MAAO,EAAM,GAAG,gCAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,cAAe,CAC5C,QAAS,IACP,MAAM,EAAS,EAAQ,cAEvB,GAAK,EAIL,OAAO,EAAyB,EAAzB,CAAmC,EAAQ,EAAK,EAEzD,YACA,KAAM,cACN,MAAO,EAAM,GAAG,8BAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,QAAS,CACtC,QAAS,K,MAEP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEtC,IAAK,EACH,OAGF,IAAI,EAA2B,GAC/B,MAAM,EAAS,EAAO,OAChB,EAAO,EAAO,QAAQ,KACtB,EAAY,kBAAgB,GAC5B,EAAY,EAAO,gBACnB,MAAE,EAAK,IAAE,GAAQ,EACvB,IAAI,EAAW,EAAM,SAAW,EAAI,QAAU,EAAM,OAAS,EAAI,KAEjE,GAAI,EAAU,CAEZ,MAAM,EAAQ,EAAO,YAAY,EAAU,OACrC,EAAM,EAAO,YAAY,EAAU,KAEzC,EAAO,EAAO,MAAM,MAAM,KAAK,UAAU,EAAO,E,MAC3C,GAAI,gCAA8B,GAAY,CACnD,MAAM,KAAE,GAAS,EAAO,MAAM,MACxB,EAAS,4CAA0C,GAEzD,IAAK,MAAM,KAAS,EAClB,GAAI,EAAM,WAAa,EAAM,MAAQ,EAAM,MAAQ,EAAM,QAAS,CAChE,EAAO,EAAM,KACb,GAAW,EACX,K,EAKN,IAAK,EAAU,CAEb,EAAO,EAAO,QAAQ,EAAU,MAAM,MACtC,MAAM,EAAS,EAAO,oBACtB,GAAI,EAAO,KAAO,IAAM,EAAO,UAAW,CACxC,MAAM,EAAO,EAAO,MAAM,MAAM,KAChC,EAAO,MAAM,MAAM,KAAO,EAAO,I,CAEnC,EAAO,kBAAkB,CACvB,KAAM,EAAO,KAAO,EACpB,OAAQ,EAAO,Q,CAKnB,OAAI,EACK,EAAS,QAAQ,iBAAkB,CAAE,UAF7B,EAEuC,OAAM,SAErD,QAAQ,aAAQ,E,EAG3B,YACA,MAAO,EAAM,GAAG,aAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,WAAY,CACzC,QAAS,K,MACP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEtC,IAAK,EACH,OAGF,IAAI,EAAO,GACX,MACM,EADS,EAAO,OACF,MAAM,MAAM,KAC1B,EAAO,EAAO,QAAQ,KACtB,EAAY,kBAAgB,GAElC,GAAI,gCAA8B,GAAY,CAE5C,MAAM,EAAS,4CAA0C,GACzD,IAAK,MAAM,KAAS,EAClB,GAAQ,EAAM,I,MAGhB,EAAO,EAIT,OAAI,EACK,EAAS,QAAQ,iBAAkB,CAAE,UAF7B,EAEuC,OAAM,SAErD,QAAQ,aAAQ,E,EAG3B,YACA,MAAO,EAAM,GAAG,iBAEpB,CAKA,SAAgB,EACd,EACA,EACA,GAEA,EAAS,WAAW,EAAW,gBAAiB,CAC9C,QAAS,KACP,MAAM,EAAS,EAAQ,cACvB,IAAK,EACH,OAEF,MAAM,EAAO,EAAO,QAAQ,KAC5B,OAAO,EAAS,QAAQ,sBAAuB,CAC7C,OACA,QAAS,CACP,KAAM,gBAER,EAEJ,UAAW,KACT,MAAM,EAAS,EAAQ,cACvB,OACG,GAAmD,QAAzC,kBAAgB,EAAO,QAAQ,QAAoB,CAC/D,EAEH,KAAM,eACN,MAAO,EAAM,GAAG,0BAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,KAAM,CACnC,QAAS,K,MACP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEjC,GAIL,EAAO,OAAO,MAAM,EAEtB,UAAW,K,MACT,QAAK,QAI+B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAO3B,EAEb,KAAM,qBAAmB,CAAE,WAAY,aACvC,MAAO,EAAM,GAAG,SAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,KAAM,CACnC,QAAS,K,MACP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEjC,GAIL,EAAO,OAAO,MAAM,EAEtB,UAAW,K,MACT,QAAK,QAI+B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAO3B,EAEb,KAAM,qBAAmB,CAAE,WAAY,aACvC,MAAO,EAAM,GAAG,SAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,IAAK,CAClC,QAAS,K,MACP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEtC,IAAK,EACH,OAGF,MAAM,EAAS,EAAO,OAChB,EAAO,EAAiB,GAE9B,yBAAuB,GACvB,EAAO,kBAAoB,EAAO,iBAAiB,GAAG,EAExD,UAAW,K,MACT,IAAK,IACH,OAAO,EAGT,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEtC,QAAK,GAKE,EAAW,EAAO,OAA2B,EAEtD,KAAM,oBAAkB,CAAE,WAAY,aACtC,MAAO,EAAM,GAAG,QAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,KAAM,CACnC,QAAS,K,MACP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEtC,IAAK,EACH,OAGF,MACM,EAAO,EADE,EAAO,QAGtB,yBAAuB,EAAK,EAE9B,UAAW,K,MACT,IAAK,IACH,OAAO,EAGT,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEtC,QAAK,GAKE,EAAW,EAAO,OAA2B,EAEtD,KAAM,qBAAmB,CAAE,WAAY,aACvC,MAAO,EAAM,GAAG,SAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,MAAO,CACpC,QAAS,U,MACP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEtC,IAAK,EACH,OAGF,MAAM,EAA6B,EAAO,OAGpC,EAAY,OAAO,UAAU,UAC7B,QAA8B,EAAU,WAE1C,GAEF,EAAO,kBAAoB,EAAO,iBAAiB,E,EAGvD,UAAW,KAAK,MAAC,eAAQ,MAAoC,QAAzB,EAAI,EAAQ,qBAAa,eAAE,SAAQ,EACvE,KAAM,sBAAoB,CAAE,WAAY,aACxC,MAAO,EAAM,GAAG,UAEpB,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,EAAS,WAAW,EAAW,UAAW,CACxC,QAAS,K,MACP,MAAM,EAA8B,QAAxB,EAAG,EAAQ,qBAAa,eAAE,QAEjC,GAIU,EAAO,OACf,YAAY,YAAY,EAEjC,UAAW,KAAK,MAAC,eAAQ,MAAoC,QAAzB,EAAI,EAAQ,qBAAa,eAAE,SAAQ,EACvE,MAAO,EAAM,GAAG,eAEpB,CAKA,SAAS,EAAW,GAClB,MAAM,EAAe,EAAO,gBACtB,MAAE,EAAK,IAAE,GAAQ,EAGvB,OAFiB,EAAM,SAAW,EAAI,QAAU,EAAM,OAAS,EAAI,IAGrE,CAKA,SAAS,EAAiB,GACxB,MAAM,EAAe,EAAO,eACtB,EAAQ,EAAO,YAAY,EAAa,OACxC,EAAM,EAAO,YAAY,EAAa,KAG5C,OAFa,EAAO,MAAM,MAAM,KAAK,UAAU,EAAO,EAGxD,CAKA,eAAe,EACb,EACA,EACA,EAAc,OAEd,MAAM,QAAc,EAAS,QAAQ,0BAA2B,CAC9D,KAAM,EACN,KAAM,OACN,QAEF,GAAa,MAAT,EAAoB,CACtB,MAAM,QAAiB,EAAS,QAAQ,kBAAmB,CACzD,KAAM,EAAM,KACZ,QAAS,IAGX,OADA,EAAO,YAAa,EACb,C,CAEX,CAOA,SAAgB,EACd,EACA,EACA,GAEA,EAAS,WAAW,EAAW,UAAW,CACxC,MAAO,I,QACL,OAAI,EAAK,UAC6B,QAApC,EAAQ,EAAK,oBAAuB,QAAI,EAAM,GAAG,iBAEd,QAArC,EAAQ,EAAK,qBAAwB,QAAI,EAAM,GAAG,YAAY,EAEhE,QAAS,IAAO,aACU,QADV,EACb,EAAK,eAAkB,QAAI,EAAM,GAAG,yBAAyB,EAChE,KAAM,I,MACJ,SAAK,eACD,EACA,kBAAgB,CACd,KAA+B,QAA3B,EAAG,EAAK,gBAAmB,QAAI,kBACnC,EACR,QAAS,I,MACP,MAAM,EAAM,EAAK,KAAO,EAAe,eAAe,MAAM,KAC5D,OAAO,EACL,EACA,EACwB,QADX,EACZ,EAAK,eAAkB,QAAI,MAC7B,GAGP,CAKA,SAAgB,EACd,EACA,EACA,GAEA,EAAS,WAAW,EAAW,kBAAmB,CAChD,MAAO,GACL,EAAgB,UACZ,EAAM,GAAG,qBACT,EAAM,GAAG,iBACf,QAAS,EAAM,GAAG,8BAClB,KAAM,GAAS,EAAgB,eAAI,EAAY,eAC/C,QAAS,IACP,MAAM,EAAM,EAAU,KAAK,EAAe,eAAe,MAAM,KAC/D,OAAO,EAAU,EAAU,EAAe,KAAK,GAGrD,CAiBA,SAAgB,EACd,EACA,GAEA,EAAS,IAAI,CACX,QAAS,EAAW,UACpB,SAAU,EAAM,GAAG,SACnB,KAAM,GAEV,CAKA,SAAgB,EACd,EACA,GAEA,EAAS,IAAI,CACX,QAAS,EAAW,kBACpB,SAAU,EAAM,GAAG,SACnB,KAAM,GAEV,CAuCA,SAAgB,EACd,EACA,GAEA,MAAM,EAAkB,EAAM,GAAG,eAK3B,EAAU,EAAW,WAC3B,EAAQ,QAAQ,CAAE,UAAS,KALF,CACvB,cAAc,EACd,KAAM,GAGyB,SAAU,IAE3C,IAAK,MAAM,IAAQ,CAAC,EAAG,EAAG,EAAG,GAAI,CAC/B,MAAM,EAAmB,CACvB,cAAc,EACd,QAEF,EAAQ,QAAQ,CAAE,UAAS,OAAM,SAAU,G,CAE/C,CAKA,SAAgB,EACd,EACA,GAEA,MAAM,EAAkB,EAAM,GAAG,eACjC,EAAQ,QAAQ,CACd,QAAS,EAAW,UACpB,KAAM,CAAE,WAAW,GACnB,SAAU,GAEd,CAKA,SAAgB,EACd,EACA,GAEA,MAAM,EAAkB,EAAM,GAAG,eACjC,EAAQ,QAAQ,CACd,QAAS,EAAW,kBACpB,KAAM,CAAE,WAAW,GACnB,SAAU,GAEd,CAKA,SAAgB,EACd,EACA,GAEA,MAAM,EAAkB,EAAM,GAAG,eAC3B,EAAU,EAAW,eAE3B,IAAI,EAAO,CAAE,MAAO,GACpB,EAAQ,QAAQ,CAAE,UAAS,OAAM,SAAU,IAE3C,EAAO,CAAE,OAAQ,GACjB,EAAQ,QAAQ,CAAE,UAAS,OAAM,SAAU,GAC7C,CAwEA,SAAgB,EACd,EACA,GAEA,EAAK,SAAS,QAAQ,IAAI,CACxB,UACA,KAAM,IACJ,EAAO,QAAQ,OAAO,MAAM,EAE9B,KAAM,IACJ,EAAO,QAAQ,OAAO,MAAM,GAGlC,CAKA,SAAgB,EACd,EACA,GAEA,EAAK,SAAS,cAAc,IAAI,CAC9B,UACA,kBAAmB,IACjB,MAAM,GAAe,EAAO,QAAQ,OAAO,UAAU,eACrD,EAAO,QAAQ,OAAO,UAAU,cAAe,EAAY,EAE7D,eAAgB,IACd,MACM,EAAwB,QADb,EAAO,QAAQ,OAAO,UAAU,YACX,KAAO,MAC7C,EAAO,QAAQ,OAAO,UAAU,WAAY,EAAS,EAEvD,oBAAqB,IACnB,MAAM,GAAiB,EAAO,QAAQ,OAAO,UAAU,iBACvD,EAAO,QAAQ,OAAO,UAAU,gBAAiB,EAAc,EAEjE,mBAAoB,GAClB,EAAO,QAAQ,OAAO,UAAU,eAClC,gBAAiB,GACiC,QAAhD,EAAO,QAAQ,OAAO,UAAU,YAClC,qBAAsB,GACpB,EAAO,QAAQ,OAAO,UAAU,kBAEtC,CAKA,SAAgB,EACd,EACA,EACA,EACA,GAEA,MAAM,EAEe,EAAyB,GAC9C,EAAK,SAAS,gBAAgB,IAAI,CAChC,UACA,mBAAqB,GAAc,EAAM,GAAG,6BAC5C,iBAEJ,CAKA,SAAgB,EACd,EACA,EACA,EACA,EACA,EACA,GAEA,EAAK,QAAQ,YAAY,IAAI,CAC3B,UACA,SAAW,GAAc,EAAM,GAAG,YAClC,YAAc,GAAc,EAAM,GAAG,gBACrC,sBAAwB,GACtB,EAAM,GAAG,mCACX,UAAW,KACP,EAAe,MACf,IAAS,MAAC,OAA6B,QAA7B,IAAO,eAAe,eAAO,eAAE,QAAS,EAAQ,QAAQ,IAAI,IAE1E,IAAK,IAAM,EAAS,QAAQ,EAAW,SACvC,OAAQ,IAAM,EAAS,QAAQ,EAAW,YAC1C,iBAAkB,IAChB,MAAM,EAAS,EAAe,MAC5B,IAAS,MAAC,OAA6B,QAA7B,IAAO,eAAe,eAAO,eAAE,QAAS,EAAQ,QAAQ,IAAI,IAExE,GAAI,EACF,OAAQ,GAAkB,yBACvB,QAAQ,EAAO,gBACf,MAAK,IACA,GACG,EAAS,QAAQ,EAAW,YAE5B,I,GAKnB,CAtnCgB,iBAAhB,SACE,EACA,GAEA,EAAS,EAAkB,+BACtB,4BACC,EAAS,IAAI,gBAAgB,YAInC,EAAS,sBACX,EAKgB,gBAAhB,SACE,GAEA,EAAQ,SAAQ,IACd,EAAa,EAAO,QAAQ,GAEhC,EAMgB,eAAY,EAQZ,cAAhB,SACE,EACA,EACA,EACA,EACA,EACA,EACA,GAGA,EAAyB,EAAU,EAAiB,EAAO,GAE3D,EAAsB,EAAU,EAAiB,EAAO,EAAI,GAE5D,EAAmB,EAAU,EAAiB,EAAO,EAAI,GAEzD,EAAqB,EAAU,EAAiB,EAAO,GAEvD,EAAwB,EAAU,EAAiB,EAAO,EAAI,GAE9D,EAA8B,EAAU,EAAiB,EAAO,GAEhE,EAA2B,EAAU,EAAS,EAAO,GAErD,EAAwB,EAAU,EAAS,EAAO,GAElD,EAAkB,EAAU,EAAS,EAAO,GAE5C,EAAqB,EAAU,EAAS,EAAO,GAE/C,EAA0B,EAAU,EAAS,GAG7C,EAAoB,EAAU,EAAgB,GAG9C,EAA4B,EAAU,EAAgB,GAEtD,EAAe,EAAU,EAAS,EAAO,GAEzC,EAAe,EAAU,EAAS,EAAO,GAEzC,EAAc,EAAU,EAAS,EAAO,GAExC,EAAe,EAAU,EAAS,EAAO,GAEzC,EAAgB,EAAU,EAAS,EAAO,GAE1C,EAAoB,EAAU,EAAS,EAAO,EAChD,EAKgB,2BAAwB,EA6CxB,wBAAqB,EAyBrB,qBAAkB,EA8BlB,uBAAoB,EAsCpB,0BAAuB,EAyBvB,gCAA6B,EAsD7B,6BAA0B,EAuB1B,0BAAuB,EAyBvB,oBAAiB,EAuEjB,uBAAoB,EA6CpB,4BAAyB,EAiCzB,iBAAc,EAsCd,iBAAc,EAsCd,gBAAa,EA0Cb,iBAAc,EAyCd,kBAAe,EAkCf,sBAAmB,EAyEnB,sBAAmB,EAkCnB,8BAA2B,EAsB3B,mBAAhB,SACE,EACA,GAEA,EAAuB,EAAU,GAEjC,EAA+B,EAAU,EAC3C,EAKgB,yBAAsB,EActB,iCAA8B,EAc9B,iCAAhB,SACE,EACA,EACA,GAEA,IAAK,IAAI,KAAO,EACd,EAAS,IAAI,CACX,QAAS,EAAW,UACpB,SAAU,EAAM,GAAG,SACnB,KAAM,EACN,KAAM,GAGZ,EAKgB,kBAAhB,SACE,EACA,GAEA,EAA+B,EAAS,GAExC,EAA6B,EAAS,GAEtC,EAAqC,EAAS,GAE9C,EAAmC,EAAS,EAC9C,EAKgB,iCAA8B,EAwB9B,+BAA4B,EAe5B,uCAAoC,EAepC,qCAAkC,EAiBlC,gCAAhB,SACE,EACA,EACA,GAEA,MAAM,EAAkB,EAAM,GAAG,eACjC,IAAK,IAAI,KAAO,EACd,EAAQ,QAAQ,CACd,QAAS,EAAW,UACpB,KAAI,+BAAO,GAAG,CAAE,WAAW,IAC3B,SAAU,GAGhB,EAKgB,eAAhB,SACE,EACA,EACA,EACA,EACA,EACA,GAGA,EAAsB,EAAM,GAG5B,EAA0B,EAAM,GAGhC,EAA4B,EAAM,EAAU,EAAS,GAGjD,GACF,EACE,EACA,EACA,EACA,EACA,EACA,EAGN,EAKgB,6BAAhB,SACE,EACA,GAEA,IAAK,IAAI,KAAO,EACd,EAAK,SAAS,QAAQ,QAAQ,CAC5B,QAAS,EAAW,UACpB,KAAM,EACN,KAAM,IAGZ,EAKgB,wBAAqB,EAkBrB,4BAAyB,EA+BzB,8BAA2B,EAmB3B,0BAAuB,CAqCxC,CAzpCD,CAAiB,MAAQ,KCjGzB,MAAM,EAAgD,CACpD,SAyGF,SACE,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEA,MAAM,EAAK,EAAO,GACZ,EAAQ,EAAW,KAAK,cAE9B,IAAI,EAMA,IACF,GAAiB,0BACf,EACA,EACA,EACA,EACA,IAIJ,MAAM,EAAU,IAAI,oBAAkB,CACpC,iBACA,eAAgB,CACd,KAAM,EACN,UAAW,CAAC,WAAY,KACxB,WAAY,CAAC,WAAY,KACzB,iBACA,iBAGE,SAAE,EAAQ,SAAE,EAAQ,MAAE,GAAU,EAChC,EAAU,IAAI,gBAA2C,CAC7D,UA7BgB,WAmCZ,EAA6B,IAAI,IAA6B,CAClE,CACE,SACA,CACE,CACE,QAAS,KACT,SAAU,uBACV,cAAe,EAAM,GAAG,eACxB,aAAc,EAAM,GAAG,mBACvB,QAAS,EAAM,GAAG,+BAIxB,CACE,QACA,CACE,CACE,QAAS,KACT,SAAU,sBACV,cAAe,EAAM,GAAG,cACxB,aAAc,EAAM,GAAG,kBACvB,QAAS,EAAM,GAAG,8BAIxB,CACE,IACA,CACE,CACE,QAAS,IACT,SAAU,yBACV,cAAe,EAAM,GAAG,UACxB,aAAc,EAAM,GAAG,cACvB,QAAS,EAAM,GAAG,4BAsH1B,OA/FI,GACG,EAAS,QAAQ,EAAS,CAC7B,QAAS,kBACT,KAAM,IAAU,CAAG,KAAM,EAAO,QAAQ,KAAM,QAAS,IACvD,KAAM,GAAU,EAAO,QAAQ,OAMnC,QAAQ,IAAI,CAAC,EAAgB,KAAK,GAAK,IACpC,MAAK,EAAE,MACN,iBAAwB,EAAU,GAClC,gBAAuB,GACvB,EAAS,QAAQ,SAAQ,KACvB,iBAAwB,EAAU,GAClC,gBAAuB,EAAQ,GAC/B,IAEH,OAAO,IACN,QAAQ,MAAM,EAAO,SACrB,gBAAuB,EAAQ,IAGnC,EAAQ,cAAc,SAAQ,CAAC,EAAQ,KAErC,EAAO,QAAQ,YAAY,SAAQ,KAC5B,EAAQ,KAAK,EAAO,IAEtB,EAAQ,IAAI,GACjB,eAAsB,EAAO,QAAQ,IAEvC,EAAI,YAAY,iBAAiB,GAGjC,EAAQ,YAAY,SAAQ,CAAC,EAAQ,KACnC,eAAsB,EAAO,QAAQ,IAGvC,cACE,EACA,EACA,EACA,GAvGgB,IACU,OAA1B,EAAQ,eACR,EAAQ,gBAAkB,EAAM,eAuGhC,EACA,GAIE,GACF,mBAA0B,EAAU,GAGlC,GACF,kBAAyB,EAAS,GAGhC,GACF,eACE,EACA,EACA,EACA,EACA,EACA,GAjFgC,W,QAClC,MAAM,EAAe,EAAI,eAAe,kBAClC,EAAa,MACnB,IAAI,EAAY,IAAI,IACpB,MAAM,EAAuC,QAAlC,EAAqB,QAArB,EAAG,EAAa,aAAK,eAAE,mBAAW,QAAI,GAQjD,OAPA,OAAO,KAAK,GAAO,SAAQ,IACzB,MAAM,EAAY,EAAM,GACxB,GAAI,EAAW,CACb,MAAM,EAAO,EAA2B,IAAI,EAAU,UACtD,WAAM,SAAQ,GAAO,EAAU,IAAI,I,KAGhC,CAAS,EAyElB,GACG,MAAK,IACA,GACF,iCACE,EACA,EACA,GAIA,GACF,gCACE,EACA,EACA,GAIA,GACF,6BAAoC,EAAM,E,IAG7C,OAAO,IACN,QAAQ,MAAM,EAAO,QAAQ,IAG1B,CACT,EAnTE,GAAI,0CACJ,SAAU,CACR,kBACA,sBACA,mBACA,eAEF,SAAU,CACR,kBACA,kBACA,YACA,YACA,kBACA,yBACA,0BAEF,SAAU,iBACV,WAAW,GAOA,EAA8C,CACzD,GAAI,oDACJ,WAAW,EACX,SAAU,CAAC,iBAAgB,mBAAkB,eAC7C,SAAU,CAAC,cACX,SAAU,CACR,EACA,EACA,EACA,EACA,KAEA,MAAM,EAAQ,EAAW,KAAK,cAC9B,IAAK,EAEH,OAGF,MAAM,EAAO,IAAI,OAAK,CAAE,SAAU,EAAI,WAChC,EAAU,0BACV,MAAE,GAAU,EACZ,EAAmB,CACvB,cAAc,EACd,KAAM,EACN,KAAM,EAAM,GAAG,oBAEjB,EAAK,QAAQ,CAAE,UAAS,SACxB,IAAK,MAAM,IAAQ,CAAC,EAAG,EAAG,EAAG,GAAI,CAC/B,MAAM,EAAmB,CACvB,cAAc,EACd,OACA,KAAM,EAAM,GAAG,aAAc,aAAc,IAE7C,EAAK,QAAQ,CAAE,UAAS,Q,CAI1B,MAAM,EAAO,IAAI,iBAAe,CAAE,OAAM,eAGlC,EAAkB,IACtB,EAAK,MAAO,OAAM,+BACb,4BACC,EAAS,IAAI,gBAAgB,UAClC,EAEE,QAAQ,IAAI,CACf,EAAgB,KAAK,2CACrB,EAAI,WACH,MAAK,EAAE,MACR,EAAe,GACf,EAAS,QAAQ,QAAQ,EAAe,IAI1C,EAAU,mBACR,oDACA,CACE,OACA,MAAO,QACP,KAAM,EACN,SAAU,MAEJ,EAAM,eAAiB,EAAc,IAAI,EAAM,gBAIxD,GAQL,EAD8C,CAAC,EAAQ,E","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../src/commands.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6141.9831d58.js b/_static/build/6141.9831d58.js new file mode 100644 index 0000000..c85ed70 --- /dev/null +++ b/_static/build/6141.9831d58.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6141],{86141:(e,t,i)=>{i.r(t),i.d(t,{RenderedIFrame:()=>s,default:()=>o,rendererFactory:()=>d});var r=i(26169),a=i(94519);const n="text/html-sandboxed";class s extends a.Widget{constructor(){super(),this.addClass("jp-IFrameContainer"),this._iframe=document.createElement("iframe"),this.node.appendChild(this._iframe)}async renderModel(e){var t,i;this._iframe.parentNode&&this._iframe.parentNode.removeChild(this._iframe);const a=new r.PromiseDelegate;this._iframe=document.createElement("iframe"),this._iframe.onload=()=>{a.resolve(void 0)},this.node.appendChild(this._iframe),await a.promise;const s=e.data[n];if(!s||!this._iframe.contentWindow)return;const d=e.metadata[n];this._iframe.width=null!==(t=null==d?void 0:d.width)&&void 0!==t?t:"100%",this._iframe.height=null!==(i=null==d?void 0:d.height)&&void 0!==i?i:"400px",this._iframe.contentWindow.document.write(s)}dispose(){this._iframe.remove(),super.dispose()}}const d={safe:!1,mimeTypes:[n],defaultRank:100,createRenderer:e=>new s},o=[{id:"@jupyterlite/iframe-extension:factory",rendererFactory:d,dataType:"string",documentWidgetFactoryOptions:{name:"IFrame",primaryFileType:"IFrame",fileTypes:["IFrame"],defaultFor:["IFrame"]}}]}}]); +//# sourceMappingURL=6141.9831d58.js.map \ No newline at end of file diff --git a/_static/build/6141.9831d58.js.map b/_static/build/6141.9831d58.js.map new file mode 100644 index 0000000..ea8b07f --- /dev/null +++ b/_static/build/6141.9831d58.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6141.9831d58.js","mappings":"sOAYA,MAAMA,EAAY,sBAoBX,MAAMC,UAAuB,EAAAC,OAClCC,cACEC,QACAC,KAAKC,SAAS,sBACdD,KAAKE,QAAUC,SAASC,cAAc,UACtCJ,KAAKK,KAAKC,YAAYN,KAAKE,QAC7B,CAKAK,kBAAkBC,G,QACZR,KAAKE,QAAQO,YACfT,KAAKE,QAAQO,WAAWC,YAAYV,KAAKE,SAG3C,MAAMS,EAAQ,IAAI,EAAAC,gBAClBZ,KAAKE,QAAUC,SAASC,cAAc,UACtCJ,KAAKE,QAAQW,OAAS,KACpBF,EAAMG,aAAQ,EAAO,EAEvBd,KAAKK,KAAKC,YAAYN,KAAKE,eACrBS,EAAMI,QACZ,MAAMC,EAAOR,EAAMQ,KAAKrB,GACxB,IAAKqB,IAAShB,KAAKE,QAAQe,cACzB,OAEF,MAAMC,EAAWV,EAAMU,SAASvB,GAChCK,KAAKE,QAAQiB,MAAuB,QAAf,EAAAD,aAAQ,EAARA,EAAUC,aAAK,QAAI,OACxCnB,KAAKE,QAAQkB,OAAyB,QAAhB,EAAAF,aAAQ,EAARA,EAAUE,cAAM,QAAI,QAC1CpB,KAAKE,QAAQe,cAAcd,SAASkB,MAAML,EAC5C,CAKAM,UACEtB,KAAKE,QAAQqB,SACbxB,MAAMuB,SACR,EAQK,MAAME,EAAgD,CAC3DC,MAAM,EACNC,UAAW,CAAC/B,GACZgC,YAAa,IACbC,eAAiBC,GAAY,IAAIjC,GAiBnC,EAdsE,CACpE,CACEkC,GAAI,wCACJN,kBACAO,SAAU,SACVC,6BAA8B,CAC5BC,KAAM,SACNC,gBAAiB,SACjBC,UAAW,CAAC,UACZC,WAAY,CAAC,Y","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/iframe-extension/src/index.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { IRenderMime } from '@jupyterlab/rendermime-interfaces';\n\nimport { PromiseDelegate } from '@lumino/coreutils';\n\nimport { Widget } from '@lumino/widgets';\n\n/**\n * The MIME type for IFrame.\n */\nconst MIME_TYPE = 'text/html-sandboxed';\n\n/**\n * The interface for the metadata\n */\ninterface IIFrameMetadata {\n /**\n * The suggested width of the IFrame\n */\n width?: string;\n\n /**\n * The suggested height of the IFrame\n */\n height?: string;\n}\n\n/**\n * A class for rendering an IFrame document.\n */\nexport class RenderedIFrame extends Widget implements IRenderMime.IRenderer {\n constructor() {\n super();\n this.addClass('jp-IFrameContainer');\n this._iframe = document.createElement('iframe');\n this.node.appendChild(this._iframe);\n }\n\n /**\n * Render the IFrame into this widget's node.\n */\n async renderModel(model: IRenderMime.IMimeModel): Promise {\n if (this._iframe.parentNode) {\n this._iframe.parentNode.removeChild(this._iframe);\n }\n\n const ready = new PromiseDelegate();\n this._iframe = document.createElement('iframe');\n this._iframe.onload = () => {\n ready.resolve(void 0);\n };\n this.node.appendChild(this._iframe);\n await ready.promise;\n const data = model.data[MIME_TYPE] as string | undefined;\n if (!data || !this._iframe.contentWindow) {\n return;\n }\n const metadata = model.metadata[MIME_TYPE] as IIFrameMetadata | undefined;\n this._iframe.width = metadata?.width ?? '100%';\n this._iframe.height = metadata?.height ?? '400px';\n this._iframe.contentWindow.document.write(data);\n }\n\n /**\n * Dispose of the resources held by the iframe widget.\n */\n dispose(): void {\n this._iframe.remove();\n super.dispose();\n }\n\n private _iframe: HTMLIFrameElement;\n}\n\n/**\n * A mime renderer factory for IFrame data.\n */\nexport const rendererFactory: IRenderMime.IRendererFactory = {\n safe: false,\n mimeTypes: [MIME_TYPE],\n defaultRank: 100,\n createRenderer: (options) => new RenderedIFrame(),\n};\n\nconst extensions: IRenderMime.IExtension | IRenderMime.IExtension[] = [\n {\n id: '@jupyterlite/iframe-extension:factory',\n rendererFactory,\n dataType: 'string',\n documentWidgetFactoryOptions: {\n name: 'IFrame',\n primaryFileType: 'IFrame',\n fileTypes: ['IFrame'],\n defaultFor: ['IFrame'],\n },\n },\n];\n\nexport default extensions;\n"],"names":["MIME_TYPE","RenderedIFrame","Widget","constructor","super","this","addClass","_iframe","document","createElement","node","appendChild","async","model","parentNode","removeChild","ready","PromiseDelegate","onload","resolve","promise","data","contentWindow","metadata","width","height","write","dispose","remove","rendererFactory","safe","mimeTypes","defaultRank","createRenderer","options","id","dataType","documentWidgetFactoryOptions","name","primaryFileType","fileTypes","defaultFor"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6475.7ee8de7.js b/_static/build/6475.7ee8de7.js new file mode 100644 index 0000000..0fa6de5 --- /dev/null +++ b/_static/build/6475.7ee8de7.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6475,8370],{8370:(e,t,o)=>{o.r(t),o.d(t,{default:()=>g});var r=o(67504),n=o(2814),a=o(69041),i=o(4265),s=o(59674),c=o(65819),d=o(50027),l=o(94519);const u="jupyterlite",p={id:"@jupyterlite/console-application:buttons",autoStart:!0,requires:[i.ITranslator],optional:[a.IConsoleTracker],activate:(e,t,o)=>{if(!o)return;const{commands:r}=e,a=t.load(u),i="repl:run";r.addCommand(i,{caption:a.__("Run"),icon:s.runIcon,execute:()=>r.execute("console:run-forced")});const c=new n.CommandToolbarButton({commands:r,id:i}),p="repl:restart";r.addCommand(p,{caption:a.__("Restart"),icon:s.refreshIcon,execute:()=>r.execute("console:restart-kernel")});const m=new n.CommandToolbarButton({commands:r,id:p}),h="repl:clear";r.addCommand(h,{caption:a.__("Clear"),icon:s.clearIcon,execute:()=>r.execute("console:clear")});const w=new n.CommandToolbarButton({commands:r,id:h});o.widgetAdded.connect(((e,t)=>{const{toolbar:o}=t;t.toolbar.addItem("run",c),t.toolbar.addItem("restart",m),t.toolbar.addItem("clear",w),o.addItem("spacer",n.Toolbar.createSpacerItem());const r=document.createElement("a");r.title=a.__("Powered by JupyterLite"),r.href="/jupyterlite/jupyterlite",r.target="_blank",r.rel="noopener noreferrer";const i=new l.Widget({node:r});d.liteIcon.element({container:r,elementPosition:"center",margin:"2px 2px 2px 8px",height:"auto",width:"16px"}),i.addClass("jp-PoweredBy"),o.insertAfter("spacer","powered-by",i)}))}},m={id:"@jupyterlite/repl-extension:console",autoStart:!0,optional:[a.IConsoleTracker,n.IThemeManager],activate:(e,t,o)=>{var r;if(!t)return;const{commands:n,serviceManager:a,started:i}=e,s=window.location.search,c=new URLSearchParams(s),d=c.getAll("code"),l=c.get("kernel")||void 0,u=null===(r=c.get("theme"))||void 0===r?void 0:r.trim(),p=c.get("toolbar");if(Promise.all([i,a.ready]).then((async()=>{n.execute("console:create",{kernelPreference:{name:l}})})),u&&o){const e=decodeURIComponent(u);o.setTheme(e)}t.widgetAdded.connect((async(e,t)=>{const{console:o}=t;p||t.toolbar.dispose(),d&&(await o.sessionContext.ready,d.forEach((e=>o.inject(e))))}))}},h={id:"@jupyterlite/repl-extension:status",autoStart:!0,provides:r.ILabStatus,requires:[i.ITranslator],activate:(e,t)=>{if(!(e instanceof c.SingleWidgetApp)){const e=t.load(u);throw new Error(e.__("%1 must be activated in SingleWidgetApp.",h.id))}return e.status}},w={id:"@jupyterlite/repl-extension:paths",autoStart:!0,provides:r.JupyterFrontEnd.IPaths,activate:e=>{if(!(e instanceof c.SingleWidgetApp))throw new Error(`${w.id} must be activated in SingleWidgetApp.`);return e.paths}},b={id:"@jupyterlite/repl-extension:router",autoStart:!0,provides:r.IRouter,requires:[r.JupyterFrontEnd.IPaths],activate:(e,t)=>{const{commands:o}=e,n=t.urls.base,a=new r.Router({base:n,commands:o});return e.started.then((()=>{a.route(),window.addEventListener("popstate",(()=>{a.route()}))})),a}},g=[p,m,w,b,h]}}]); +//# sourceMappingURL=6475.7ee8de7.js.map \ No newline at end of file diff --git a/_static/build/6475.7ee8de7.js.map b/_static/build/6475.7ee8de7.js.map new file mode 100644 index 0000000..e5c8f66 --- /dev/null +++ b/_static/build/6475.7ee8de7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6475.7ee8de7.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../packages/repl-extension/src/index.ts"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n ILabStatus,\n IRouter,\n JupyterFrontEndPlugin,\n JupyterFrontEnd,\n Router,\n} from '@jupyterlab/application';\n\nimport { CommandToolbarButton, IThemeManager, Toolbar } from '@jupyterlab/apputils';\n\nimport { IConsoleTracker } from '@jupyterlab/console';\n\nimport { ITranslator } from '@jupyterlab/translation';\n\nimport { clearIcon, refreshIcon, runIcon } from '@jupyterlab/ui-components';\n\nimport { SingleWidgetApp } from '@jupyterlite/application';\n\nimport { liteIcon } from '@jupyterlite/ui-components';\n\nimport { Widget } from '@lumino/widgets';\n\n/**\n * The name of the translation bundle for internationalized strings.\n */\nconst I18N_BUNDLE = 'jupyterlite';\n\n/**\n * A plugin to add buttons to the console toolbar.\n */\nconst buttons: JupyterFrontEndPlugin = {\n id: '@jupyterlite/console-application:buttons',\n autoStart: true,\n requires: [ITranslator],\n optional: [IConsoleTracker],\n activate: (\n app: JupyterFrontEnd,\n translator: ITranslator,\n tracker: IConsoleTracker | null\n ) => {\n if (!tracker) {\n return;\n }\n\n const { commands } = app;\n const trans = translator.load(I18N_BUNDLE);\n\n // wrapper commands to be able to override the icon\n const runCommand = 'repl:run';\n commands.addCommand(runCommand, {\n caption: trans.__('Run'),\n icon: runIcon,\n execute: () => {\n return commands.execute('console:run-forced');\n },\n });\n\n const runButton = new CommandToolbarButton({\n commands,\n id: runCommand,\n });\n\n const restartCommand = 'repl:restart';\n commands.addCommand(restartCommand, {\n caption: trans.__('Restart'),\n icon: refreshIcon,\n execute: () => {\n return commands.execute('console:restart-kernel');\n },\n });\n\n const restartButton = new CommandToolbarButton({\n commands,\n id: restartCommand,\n });\n\n const clearCommand = 'repl:clear';\n commands.addCommand(clearCommand, {\n caption: trans.__('Clear'),\n icon: clearIcon,\n execute: () => {\n return commands.execute('console:clear');\n },\n });\n\n const clearButton = new CommandToolbarButton({\n commands,\n id: clearCommand,\n });\n\n tracker.widgetAdded.connect((_, console) => {\n const { toolbar } = console;\n\n console.toolbar.addItem('run', runButton);\n console.toolbar.addItem('restart', restartButton);\n console.toolbar.addItem('clear', clearButton);\n\n toolbar.addItem('spacer', Toolbar.createSpacerItem());\n\n const node = document.createElement('a');\n node.title = trans.__('Powered by JupyterLite');\n node.href = 'https://github.com/jupyterlite/jupyterlite';\n node.target = '_blank';\n node.rel = 'noopener noreferrer';\n const poweredBy = new Widget({ node });\n liteIcon.element({\n container: node,\n elementPosition: 'center',\n margin: '2px 2px 2px 8px',\n height: 'auto',\n width: '16px',\n });\n\n poweredBy.addClass('jp-PoweredBy');\n toolbar.insertAfter('spacer', 'powered-by', poweredBy);\n });\n },\n};\n\n/**\n * A plugin to open a code console and\n * parse custom parameters from the query string arguments.\n */\nconst consolePlugin: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:console',\n autoStart: true,\n optional: [IConsoleTracker, IThemeManager],\n activate: (\n app: JupyterFrontEnd,\n tracker: IConsoleTracker | null,\n themeManager: IThemeManager | null\n ) => {\n if (!tracker) {\n return;\n }\n const { commands, serviceManager, started } = app;\n\n const search = window.location.search;\n const urlParams = new URLSearchParams(search);\n const code = urlParams.getAll('code');\n const kernel = urlParams.get('kernel') || undefined;\n const theme = urlParams.get('theme')?.trim();\n const toolbar = urlParams.get('toolbar');\n\n Promise.all([started, serviceManager.ready]).then(async () => {\n commands.execute('console:create', { kernelPreference: { name: kernel } });\n });\n\n if (theme && themeManager) {\n const themeName = decodeURIComponent(theme);\n themeManager.setTheme(themeName);\n }\n\n tracker.widgetAdded.connect(async (_, widget) => {\n const { console } = widget;\n\n if (!toolbar) {\n // hide the toolbar by default if not specified\n widget.toolbar.dispose();\n }\n\n if (code) {\n await console.sessionContext.ready;\n code.forEach((line) => console.inject(line));\n }\n });\n },\n};\n\n/**\n * The default JupyterLab application status provider.\n */\nconst status: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:status',\n autoStart: true,\n provides: ILabStatus,\n requires: [ITranslator],\n activate: (app: JupyterFrontEnd, translator: ITranslator) => {\n if (!(app instanceof SingleWidgetApp)) {\n const trans = translator.load(I18N_BUNDLE);\n throw new Error(trans.__('%1 must be activated in SingleWidgetApp.', status.id));\n }\n return app.status;\n },\n};\n\n/**\n * The default paths for a single widget app.\n */\nconst paths: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:paths',\n autoStart: true,\n provides: JupyterFrontEnd.IPaths,\n activate: (app: JupyterFrontEnd): JupyterFrontEnd.IPaths => {\n if (!(app instanceof SingleWidgetApp)) {\n throw new Error(`${paths.id} must be activated in SingleWidgetApp.`);\n }\n return app.paths;\n },\n};\n\n/**\n * The default URL router provider.\n */\nconst router: JupyterFrontEndPlugin = {\n id: '@jupyterlite/repl-extension:router',\n autoStart: true,\n provides: IRouter,\n requires: [JupyterFrontEnd.IPaths],\n activate: (app: JupyterFrontEnd, paths: JupyterFrontEnd.IPaths) => {\n const { commands } = app;\n const base = paths.urls.base;\n const router = new Router({ base, commands });\n void app.started.then(() => {\n // Route the very first request on load.\n void router.route();\n\n // Route all pop state events.\n window.addEventListener('popstate', () => {\n void router.route();\n });\n });\n return router;\n },\n};\n\nconst plugins: JupyterFrontEndPlugin[] = [\n buttons,\n consolePlugin,\n paths,\n router,\n status,\n];\n\nexport default plugins;\n"],"names":["I18N_BUNDLE","buttons","id","autoStart","requires","ITranslator","optional","IConsoleTracker","activate","app","translator","tracker","commands","trans","load","runCommand","addCommand","caption","__","icon","runIcon","execute","runButton","CommandToolbarButton","restartCommand","refreshIcon","restartButton","clearCommand","clearIcon","clearButton","widgetAdded","connect","_","console","toolbar","addItem","Toolbar","node","document","createElement","title","href","target","rel","poweredBy","Widget","liteIcon","container","elementPosition","margin","height","width","addClass","insertAfter","consolePlugin","IThemeManager","themeManager","serviceManager","started","search","window","location","urlParams","URLSearchParams","code","getAll","kernel","get","undefined","theme","trim","Promise","all","ready","then","async","kernelPreference","name","themeName","decodeURIComponent","setTheme","widget","dispose","sessionContext","forEach","line","inject","status","provides","ILabStatus","SingleWidgetApp","Error","paths","JupyterFrontEnd","router","IRouter","base","urls","Router","route","addEventListener"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6493.d796aa5.js b/_static/build/6493.d796aa5.js new file mode 100644 index 0000000..8892736 --- /dev/null +++ b/_static/build/6493.d796aa5.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6493],{49160:(e,t,s)=>{var o={"./3024-day.css":[97380,7380],"./3024-night.css":[60237,237],"./abbott.css":[64569,4569],"./abcdef.css":[97858,7858],"./ambiance-mobile.css":[74690,4690],"./ambiance.css":[27334,7334,1483],"./ayu-dark.css":[5213,5213],"./ayu-mirage.css":[27692,7692],"./base16-dark.css":[28427,8427],"./base16-light.css":[59621,9621],"./bespin.css":[60451,451],"./blackboard.css":[20554,554],"./cobalt.css":[15227,5227],"./colorforth.css":[87359,7359],"./darcula.css":[91320,1320],"./dracula.css":[9156,9156],"./duotone-dark.css":[87509,7509],"./duotone-light.css":[29647,9647],"./eclipse.css":[16612,6612],"./elegant.css":[30489,489],"./erlang-dark.css":[20406,406],"./gruvbox-dark.css":[42834,2834],"./hopscotch.css":[8028,8028],"./icecoder.css":[4262,4262],"./idea.css":[4207,4207],"./isotope.css":[82359,2359],"./lesser-dark.css":[37808,7808],"./liquibyte.css":[60582,582],"./lucario.css":[36870,6870],"./material-darker.css":[89196,9196],"./material-ocean.css":[26576,6576],"./material-palenight.css":[24182,4182],"./material.css":[83051,3051],"./mbo.css":[2303,2303],"./mdn-like.css":[66664,6664],"./midnight.css":[92956,2956],"./monokai.css":[14750,4750],"./moxer.css":[63970,3970],"./neat.css":[52118,2118],"./neo.css":[38412,8412],"./night.css":[53037,3037],"./nord.css":[51989,1989],"./oceanic-next.css":[29077,9077],"./panda-syntax.css":[10330,330],"./paraiso-dark.css":[42169,2169],"./paraiso-light.css":[5823,5823],"./pastel-on-dark.css":[76952,6952],"./railscasts.css":[63004,3004],"./rubyblue.css":[92351,2351],"./seti.css":[9602,9602],"./shadowfox.css":[44749,4749],"./solarized.css":[70217,217],"./ssms.css":[45153,5153],"./the-matrix.css":[20160,160],"./tomorrow-night-bright.css":[45710,5710],"./tomorrow-night-eighties.css":[71272,1272],"./ttcn.css":[65489,5489],"./twilight.css":[68976,8976],"./vibrant-ink.css":[51261,1261],"./xq-dark.css":[40400,400],"./xq-light.css":[53546,3546],"./yeti.css":[12629,2629],"./yonce.css":[44018,4018],"./zenburn.css":[84206,4206]};function n(e){if(!s.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],n=t[0];return Promise.all(t.slice(1).map(s.e)).then((()=>s(n)))}n.keys=()=>Object.keys(o),n.id=49160,e.exports=n},66493:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>b,editorSyntaxStatus:()=>v});var o,n=s(67504),r=s(84853),i=s(23059),c=s(6624),a=s(49005),d=s(15786),l=s(16725),m=s(4265),u=s(41981),g=s.n(u);!function(e){e.changeKeyMap="codemirror:change-keymap",e.changeTheme="codemirror:change-theme",e.changeMode="codemirror:change-mode",e.find="codemirror:find",e.goToLine="codemirror:go-to-line"}(o||(o={}));const h={id:"@jupyterlab/codemirror-extension:codemirror",provides:i.ICodeMirror,activate:function(e){return new k}},p={id:"@jupyterlab/codemirror-extension:services",provides:r.IEditorServices,activate:function(e){return g().prototype.save=()=>{e.commands.execute("docmanager:save")},i.editorServices}},y={id:"@jupyterlab/codemirror-extension:commands",requires:[c.IEditorTracker,d.ISettingRegistry,m.ITranslator,i.ICodeMirror],optional:[a.IMainMenu],activate:function(e,t,n,r,c,a){var d;const l=r.load("jupyterlab"),{commands:m,restored:u}=e;let{theme:g,keyMap:h,scrollPastEnd:p,styleActiveLine:y,styleSelectedText:v,selectionPointer:b,lineWiseCopyCut:k}=i.CodeMirrorEditor.defaultConfig;async function x(e){var t,o,n,r,i;if(h=e.get("keyMap").composite||h,"vim"===h&&await c.ensureVimKeymap(),g=e.get("theme").composite||g,"jupyter"!==g&&"default"!==g){const e="solarized light"===g||"solarized dark"===g?"solarized":g;await s(49160)(`./${e}.css`)}p=null!==(t=e.get("scrollPastEnd").composite)&&void 0!==t?t:p,y=null!==(o=e.get("styleActiveLine").composite)&&void 0!==o?o:y,v=null!==(n=e.get("styleSelectedText").composite)&&void 0!==n?n:v,b=null!==(r=e.get("selectionPointer").composite)&&void 0!==r?r:b,k=null!==(i=e.get("lineWiseCopyCut").composite)&&void 0!==i?i:k}function C(){const e={keyMap:h,theme:g,scrollPastEnd:p,styleActiveLine:y,styleSelectedText:v,selectionPointer:b,lineWiseCopyCut:k};t.forEach((t=>{t.content.editor instanceof i.CodeMirrorEditor&&t.content.editor.setOptions(e)}))}function M(){return null!==t.currentWidget&&t.currentWidget===e.shell.currentWidget}if(Promise.all([n.load(f),u]).then((async([e])=>{await x(e),C(),e.changed.connect((async()=>{await x(e),C()}))})).catch((e=>{console.error(e.message),C()})),t.widgetAdded.connect(((e,t)=>{const s={keyMap:h,theme:g,scrollPastEnd:p,styleActiveLine:y,styleSelectedText:v,selectionPointer:b,lineWiseCopyCut:k};t.content.editor instanceof i.CodeMirrorEditor&&t.content.editor.setOptions(s)})),m.addCommand(o.changeTheme,{label:e=>{var t;return"default"===e.theme?l.__("codemirror"):l.__(null!==(t=e.theme)&&void 0!==t?t:g)},execute:e=>{var t;const s="theme",o=g=null!==(t=e.theme)&&void 0!==t?t:g;return n.set(f,s,o).catch((e=>{console.error(`Failed to set ${f}:${s} - ${e.message}`)}))},isToggled:e=>e.theme===g}),m.addCommand(o.changeKeyMap,{label:e=>{var t;const s=null!==(t=e.keyMap)&&void 0!==t?t:h;return"sublime"===s?l.__("Sublime Text"):l.__(s)},execute:e=>{var t;const s="keyMap",o=h=null!==(t=e.keyMap)&&void 0!==t?t:h;return n.set(f,s,o).catch((e=>{console.error(`Failed to set ${f}:${s} - ${e.message}`)}))},isToggled:e=>e.keyMap===h}),m.addCommand(o.find,{label:l.__("Find…"),execute:()=>{const e=t.currentWidget;e&&e.content.editor.execCommand("find")},isEnabled:M}),m.addCommand(o.goToLine,{label:l.__("Go to Line…"),execute:e=>{const s=t.currentWidget;if(!s)return;const o=e.line,n=e.column,r=s.content.editor;void 0!==o||void 0!==n?r.setCursorPosition({line:(null!=o?o:1)-1,column:(null!=n?n:1)-1}):r.execCommand("jumpToLine"),r.focus()},isEnabled:M}),m.addCommand(o.changeMode,{label:e=>e.name,execute:e=>{const s=e.name,o=t.currentWidget;if(s&&o){const e=i.Mode.findByName(s);e&&(o.content.model.mimeType=e.mime)}},isEnabled:M,isToggled:e=>{const s=t.currentWidget;if(!s)return!1;const o=s.content.model.mimeType,n=i.Mode.findByMIME(o),r=n&&n.name;return e.name===r}}),a){const e=null===(d=a.viewMenu.items.find((e=>{var t;return"submenu"===e.type&&"jp-mainmenu-view-codemirror-theme"===(null===(t=e.submenu)||void 0===t?void 0:t.id)})))||void 0===d?void 0:d.submenu;e&&i.Mode.getModeInfo().sort(((e,t)=>{const s=e.name||"",o=t.name||"";return s.localeCompare(o)})).forEach((t=>{0!==t.mode.indexOf("brainf")&&e.addItem({command:o.changeMode,args:Object.assign({},t)})})),a.editMenu.goToLiners.add({tracker:t,goToLine:e=>{e.content.editor.execCommand("jumpToLine")}})}},autoStart:!0},v={id:"@jupyterlab/codemirror-extension:editor-syntax-status",autoStart:!0,requires:[c.IEditorTracker,n.ILabShell,m.ITranslator],optional:[l.IStatusBar],activate:(e,t,s,o,n)=>{if(!n)return;const r=new i.EditorSyntaxStatus({commands:e.commands,translator:o});s.currentChanged.connect((()=>{const e=s.currentWidget;e&&t.has(e)&&r.model&&(r.model.editor=e.content.editor)})),n.registerStatusItem("@jupyterlab/codemirror-extension:editor-syntax-status",{item:r,align:"left",rank:0,isActive:()=>!!s.currentWidget&&!!t.currentWidget&&s.currentWidget===t.currentWidget})}},b=[y,p,v,h],f=y.id;class k{get CodeMirror(){return g()}async ensureVimKeymap(){"Vim"in g()||await Promise.all([s.e(5747),s.e(8373),s.e(3413)]).then(s.t.bind(s,83413,23))}}}}]); +//# sourceMappingURL=6493.d796aa5.js.map \ No newline at end of file diff --git a/_static/build/6493.d796aa5.js.map b/_static/build/6493.d796aa5.js.map new file mode 100644 index 0000000..a63445f --- /dev/null +++ b/_static/build/6493.d796aa5.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6493.d796aa5.js","mappings":"sHAAA,IAAIA,EAAM,CACT,iBAAkB,CACjB,MACA,MAED,mBAAoB,CACnB,MACA,KAED,eAAgB,CACf,MACA,MAED,eAAgB,CACf,MACA,MAED,wBAAyB,CACxB,MACA,MAED,iBAAkB,CACjB,MACA,KACA,MAED,iBAAkB,CACjB,KACA,MAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,eAAgB,CACf,MACA,KAED,mBAAoB,CACnB,MACA,KAED,eAAgB,CACf,MACA,MAED,mBAAoB,CACnB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,gBAAiB,CAChB,KACA,MAED,qBAAsB,CACrB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,gBAAiB,CAChB,MACA,KAED,oBAAqB,CACpB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,kBAAmB,CAClB,KACA,MAED,iBAAkB,CACjB,KACA,MAED,aAAc,CACb,KACA,MAED,gBAAiB,CAChB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,kBAAmB,CAClB,MACA,KAED,gBAAiB,CAChB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,KACA,MAED,iBAAkB,CACjB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,gBAAiB,CAChB,MACA,MAED,cAAe,CACd,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,cAAe,CACd,MACA,MAED,aAAc,CACb,MACA,MAED,qBAAsB,CACrB,MACA,MAED,qBAAsB,CACrB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,sBAAuB,CACtB,KACA,MAED,uBAAwB,CACvB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,KACA,MAED,kBAAmB,CAClB,MACA,MAED,kBAAmB,CAClB,MACA,KAED,aAAc,CACb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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/ lazy ^\\.\\/.*\\.css$ namespace object","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/index.ts"],"sourcesContent":["var map = {\n\t\"./3024-day.css\": [\n\t\t97380,\n\t\t7380\n\t],\n\t\"./3024-night.css\": [\n\t\t60237,\n\t\t237\n\t],\n\t\"./abbott.css\": [\n\t\t64569,\n\t\t4569\n\t],\n\t\"./abcdef.css\": [\n\t\t97858,\n\t\t7858\n\t],\n\t\"./ambiance-mobile.css\": [\n\t\t74690,\n\t\t4690\n\t],\n\t\"./ambiance.css\": [\n\t\t27334,\n\t\t7334,\n\t\t1483\n\t],\n\t\"./ayu-dark.css\": [\n\t\t5213,\n\t\t5213\n\t],\n\t\"./ayu-mirage.css\": [\n\t\t27692,\n\t\t7692\n\t],\n\t\"./base16-dark.css\": [\n\t\t28427,\n\t\t8427\n\t],\n\t\"./base16-light.css\": [\n\t\t59621,\n\t\t9621\n\t],\n\t\"./bespin.css\": [\n\t\t60451,\n\t\t451\n\t],\n\t\"./blackboard.css\": [\n\t\t20554,\n\t\t554\n\t],\n\t\"./cobalt.css\": [\n\t\t15227,\n\t\t5227\n\t],\n\t\"./colorforth.css\": [\n\t\t87359,\n\t\t7359\n\t],\n\t\"./darcula.css\": [\n\t\t91320,\n\t\t1320\n\t],\n\t\"./dracula.css\": [\n\t\t9156,\n\t\t9156\n\t],\n\t\"./duotone-dark.css\": [\n\t\t87509,\n\t\t7509\n\t],\n\t\"./duotone-light.css\": [\n\t\t29647,\n\t\t9647\n\t],\n\t\"./eclipse.css\": [\n\t\t16612,\n\t\t6612\n\t],\n\t\"./elegant.css\": [\n\t\t30489,\n\t\t489\n\t],\n\t\"./erlang-dark.css\": [\n\t\t20406,\n\t\t406\n\t],\n\t\"./gruvbox-dark.css\": [\n\t\t42834,\n\t\t2834\n\t],\n\t\"./hopscotch.css\": [\n\t\t8028,\n\t\t8028\n\t],\n\t\"./icecoder.css\": [\n\t\t4262,\n\t\t4262\n\t],\n\t\"./idea.css\": [\n\t\t4207,\n\t\t4207\n\t],\n\t\"./isotope.css\": [\n\t\t82359,\n\t\t2359\n\t],\n\t\"./lesser-dark.css\": [\n\t\t37808,\n\t\t7808\n\t],\n\t\"./liquibyte.css\": [\n\t\t60582,\n\t\t582\n\t],\n\t\"./lucario.css\": [\n\t\t36870,\n\t\t6870\n\t],\n\t\"./material-darker.css\": [\n\t\t89196,\n\t\t9196\n\t],\n\t\"./material-ocean.css\": [\n\t\t26576,\n\t\t6576\n\t],\n\t\"./material-palenight.css\": [\n\t\t24182,\n\t\t4182\n\t],\n\t\"./material.css\": [\n\t\t83051,\n\t\t3051\n\t],\n\t\"./mbo.css\": [\n\t\t2303,\n\t\t2303\n\t],\n\t\"./mdn-like.css\": [\n\t\t66664,\n\t\t6664\n\t],\n\t\"./midnight.css\": [\n\t\t92956,\n\t\t2956\n\t],\n\t\"./monokai.css\": [\n\t\t14750,\n\t\t4750\n\t],\n\t\"./moxer.css\": [\n\t\t63970,\n\t\t3970\n\t],\n\t\"./neat.css\": [\n\t\t52118,\n\t\t2118\n\t],\n\t\"./neo.css\": [\n\t\t38412,\n\t\t8412\n\t],\n\t\"./night.css\": [\n\t\t53037,\n\t\t3037\n\t],\n\t\"./nord.css\": [\n\t\t51989,\n\t\t1989\n\t],\n\t\"./oceanic-next.css\": [\n\t\t29077,\n\t\t9077\n\t],\n\t\"./panda-syntax.css\": [\n\t\t10330,\n\t\t330\n\t],\n\t\"./paraiso-dark.css\": [\n\t\t42169,\n\t\t2169\n\t],\n\t\"./paraiso-light.css\": [\n\t\t5823,\n\t\t5823\n\t],\n\t\"./pastel-on-dark.css\": [\n\t\t76952,\n\t\t6952\n\t],\n\t\"./railscasts.css\": [\n\t\t63004,\n\t\t3004\n\t],\n\t\"./rubyblue.css\": [\n\t\t92351,\n\t\t2351\n\t],\n\t\"./seti.css\": [\n\t\t9602,\n\t\t9602\n\t],\n\t\"./shadowfox.css\": [\n\t\t44749,\n\t\t4749\n\t],\n\t\"./solarized.css\": [\n\t\t70217,\n\t\t217\n\t],\n\t\"./ssms.css\": [\n\t\t45153,\n\t\t5153\n\t],\n\t\"./the-matrix.css\": [\n\t\t20160,\n\t\t160\n\t],\n\t\"./tomorrow-night-bright.css\": [\n\t\t45710,\n\t\t5710\n\t],\n\t\"./tomorrow-night-eighties.css\": [\n\t\t71272,\n\t\t1272\n\t],\n\t\"./ttcn.css\": [\n\t\t65489,\n\t\t5489\n\t],\n\t\"./twilight.css\": [\n\t\t68976,\n\t\t8976\n\t],\n\t\"./vibrant-ink.css\": [\n\t\t51261,\n\t\t1261\n\t],\n\t\"./xq-dark.css\": [\n\t\t40400,\n\t\t400\n\t],\n\t\"./xq-light.css\": [\n\t\t53546,\n\t\t3546\n\t],\n\t\"./yeti.css\": [\n\t\t12629,\n\t\t2629\n\t],\n\t\"./yonce.css\": [\n\t\t44018,\n\t\t4018\n\t],\n\t\"./zenburn.css\": [\n\t\t84206,\n\t\t4206\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 49160;\nmodule.exports = webpackAsyncContext;"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","all","slice","keys","Object","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6556.b3d9293.js b/_static/build/6556.b3d9293.js new file mode 100644 index 0000000..77b9af8 --- /dev/null +++ b/_static/build/6556.b3d9293.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6556,783],{36556:(e,t,i)=>{i.r(t),i.d(t,{IRetroShell:()=>u,RetroApp:()=>f,RetroShell:()=>c});var n=i(67504),s=i(61280),a=i(69207),r=i(55941),o=i(61313),d=i(43892),g=i(26169),p=i(14064),l=i(70942),h=i(94519);const u=new g.Token("@retrolab/application:IRetroShell");class c extends h.Widget{constructor(){super(),this._currentChanged=new l.Signal(this),this.id="main";const e=new h.BoxLayout;this._topHandler=new m.PanelHandler,this._menuHandler=new m.PanelHandler,this._main=new h.Panel,this._topHandler.panel.id="top-panel",this._menuHandler.panel.id="menu-panel",this._main.id="main-panel";const t=this._topWrapper=new h.Panel;t.id="top-panel-wrapper",t.addWidget(this._topHandler.panel);const i=this._menuWrapper=new h.Panel;i.id="menu-panel-wrapper",i.addWidget(this._menuHandler.panel),h.BoxLayout.setStretch(t,0),h.BoxLayout.setStretch(i,0),h.BoxLayout.setStretch(this._main,1),this._spacer=new h.Widget,this._spacer.id="spacer-widget",e.spacing=0,e.addWidget(t),e.addWidget(i),e.addWidget(this._spacer),e.addWidget(this._main),this.layout=e}get currentChanged(){return this._currentChanged}get currentWidget(){var e;return null!==(e=this._main.widgets[0])&&void 0!==e?e:null}get top(){return this._topWrapper}get menu(){return this._menuWrapper}activateById(e){const t=(0,d.find)(this.widgets("main"),(t=>t.id===e));t&&t.activate()}add(e,t,i){var n;const s=null!==(n=null==i?void 0:i.rank)&&void 0!==n?n:900;if("top"===t)return this._topHandler.addWidget(e,s);if("menu"===t)return this._menuHandler.addWidget(e,s);if("main"===t||void 0===t){if(this._main.widgets.length>0)return;this._main.addWidget(e),this._main.update(),this._currentChanged.emit(void 0)}}collapseTop(){this._topWrapper.setHidden(!0),this._spacer.setHidden(!0)}expandTop(){this._topWrapper.setHidden(!1),this._spacer.setHidden(!1)}widgets(e){switch(null!=e?e:"main"){case"top":return(0,d.iter)(this._topHandler.panel.widgets);case"menu":return(0,d.iter)(this._menuHandler.panel.widgets);case"main":return(0,d.iter)(this._main.widgets);default:throw new Error(`Invalid area: ${e}`)}}}var m,_;!function(e){e.itemCmp=function(e,t){return e.rank-t.rank},e.PanelHandler=class{constructor(){this._panelChildHook=(e,t)=>{switch(t.type){case"child-added":{const e=t.child;if(this._items.find((t=>t.widget===e)))break;const i=this._items[this._items.length-1].rank;this._items.push({widget:e,rank:i})}break;case"child-removed":{const e=t.child;d.ArrayExt.removeFirstWhere(this._items,(t=>t.widget===e))}}return!0},this._items=new Array,this._panel=new h.Panel,p.MessageLoop.installMessageHook(this._panel,this._panelChildHook)}get panel(){return this._panel}addWidget(t,i){t.parent=null;const n={widget:t,rank:i},s=d.ArrayExt.upperBound(this._items,n,e.itemCmp);d.ArrayExt.insert(this._items,s,n),this._panel.insertWidget(s,t)}}}(m||(m={}));class f extends n.JupyterFrontEnd{constructor(e={shell:new c}){var t,i;if(super(Object.assign(Object.assign({},e),{shell:null!==(t=e.shell)&&void 0!==t?t:new c})),this.name="RetroLab",this.namespace=this.name,this.status=new a.J(this),this.version=null!==(i=r.PageConfig.getOption("appVersion"))&&void 0!==i?i:"unknown",this._formatter=new o.Throttler((()=>{_.setFormat(this)}),250),e.mimeExtensions)for(const t of(0,s.as)(e.mimeExtensions))this.registerPlugin(t);this.restored.then((()=>this._formatter.invoke()))}get paths(){return{urls:{base:r.PageConfig.getOption("baseUrl"),notFound:r.PageConfig.getOption("notFoundUrl"),app:r.PageConfig.getOption("appUrl"),static:r.PageConfig.getOption("staticUrl"),settings:r.PageConfig.getOption("settingsUrl"),themes:r.PageConfig.getOption("themesUrl"),doc:r.PageConfig.getOption("docUrl"),translations:r.PageConfig.getOption("translationsApiUrl"),hubHost:r.PageConfig.getOption("hubHost")||void 0,hubPrefix:r.PageConfig.getOption("hubPrefix")||void 0,hubUser:r.PageConfig.getOption("hubUser")||void 0,hubServerName:r.PageConfig.getOption("hubServerName")||void 0},directories:{appSettings:r.PageConfig.getOption("appSettingsDir"),schemas:r.PageConfig.getOption("schemasDir"),static:r.PageConfig.getOption("staticDir"),templates:r.PageConfig.getOption("templatesDir"),themes:r.PageConfig.getOption("themesDir"),userSettings:r.PageConfig.getOption("userSettingsDir"),serverRoot:r.PageConfig.getOption("serverRoot"),workspaces:r.PageConfig.getOption("workspacesDir")}}}handleEvent(e){super.handleEvent(e),"resize"===e.type&&this._formatter.invoke()}registerPluginModule(e){let t=e.default;Object.prototype.hasOwnProperty.call(e,"__esModule")||(t=e),Array.isArray(t)||(t=[t]),t.forEach((e=>{try{this.registerPlugin(e)}catch(e){console.error(e)}}))}registerPluginModules(e){e.forEach((e=>{this.registerPluginModule(e)}))}}!function(e){e.setFormat=function(e){e.format=window.matchMedia("only screen and (max-width: 760px)").matches?"mobile":"desktop"}}(_||(_={}))}}]); +//# sourceMappingURL=6556.b3d9293.js.map \ No newline at end of file diff --git a/_static/build/6556.b3d9293.js.map b/_static/build/6556.b3d9293.js.map new file mode 100644 index 0000000..efa7b66 --- /dev/null +++ b/_static/build/6556.b3d9293.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6556.b3d9293.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@retrolab/application/lib/shell.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@retrolab/application/lib/app.js"],"sourcesContent":["// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { ArrayExt, find, iter } from '@lumino/algorithm';\nimport { Token } from '@lumino/coreutils';\nimport { MessageLoop } from '@lumino/messaging';\nimport { Signal } from '@lumino/signaling';\nimport { Panel, Widget, BoxLayout } from '@lumino/widgets';\n/**\n * The RetroLab application shell token.\n */\nexport const IRetroShell = new Token('@retrolab/application:IRetroShell');\n/**\n * The default rank for ranked panels.\n */\nconst DEFAULT_RANK = 900;\n/**\n * The application shell.\n */\nexport class RetroShell extends Widget {\n constructor() {\n super();\n this._currentChanged = new Signal(this);\n this.id = 'main';\n const rootLayout = new BoxLayout();\n this._topHandler = new Private.PanelHandler();\n this._menuHandler = new Private.PanelHandler();\n this._main = new Panel();\n this._topHandler.panel.id = 'top-panel';\n this._menuHandler.panel.id = 'menu-panel';\n this._main.id = 'main-panel';\n // create wrappers around the top and menu areas\n const topWrapper = (this._topWrapper = new Panel());\n topWrapper.id = 'top-panel-wrapper';\n topWrapper.addWidget(this._topHandler.panel);\n const menuWrapper = (this._menuWrapper = new Panel());\n menuWrapper.id = 'menu-panel-wrapper';\n menuWrapper.addWidget(this._menuHandler.panel);\n BoxLayout.setStretch(topWrapper, 0);\n BoxLayout.setStretch(menuWrapper, 0);\n BoxLayout.setStretch(this._main, 1);\n this._spacer = new Widget();\n this._spacer.id = 'spacer-widget';\n rootLayout.spacing = 0;\n rootLayout.addWidget(topWrapper);\n rootLayout.addWidget(menuWrapper);\n rootLayout.addWidget(this._spacer);\n rootLayout.addWidget(this._main);\n this.layout = rootLayout;\n }\n /**\n * A signal emitted when the current widget changes.\n */\n get currentChanged() {\n return this._currentChanged;\n }\n /**\n * The current widget in the shell's main area.\n */\n get currentWidget() {\n var _a;\n return (_a = this._main.widgets[0]) !== null && _a !== void 0 ? _a : null;\n }\n /**\n * Get the top area wrapper panel\n */\n get top() {\n return this._topWrapper;\n }\n /**\n * Get the menu area wrapper panel\n */\n get menu() {\n return this._menuWrapper;\n }\n /**\n * Activate a widget in its area.\n */\n activateById(id) {\n const widget = find(this.widgets('main'), w => w.id === id);\n if (widget) {\n widget.activate();\n }\n }\n /**\n * Add a widget to the application shell.\n *\n * @param widget - The widget being added.\n *\n * @param area - Optional region in the shell into which the widget should\n * be added.\n *\n * @param options - Optional open options.\n *\n */\n add(widget, area, options) {\n var _a;\n const rank = (_a = options === null || options === void 0 ? void 0 : options.rank) !== null && _a !== void 0 ? _a : DEFAULT_RANK;\n if (area === 'top') {\n return this._topHandler.addWidget(widget, rank);\n }\n if (area === 'menu') {\n return this._menuHandler.addWidget(widget, rank);\n }\n if (area === 'main' || area === undefined) {\n if (this._main.widgets.length > 0) {\n // do not add the widget if there is already one\n return;\n }\n this._main.addWidget(widget);\n this._main.update();\n this._currentChanged.emit(void 0);\n }\n }\n /**\n * Collapse the top area and the spacer to make the view more compact.\n */\n collapseTop() {\n this._topWrapper.setHidden(true);\n this._spacer.setHidden(true);\n }\n /**\n * Expand the top area to show the header and the spacer.\n */\n expandTop() {\n this._topWrapper.setHidden(false);\n this._spacer.setHidden(false);\n }\n /**\n * Return the list of widgets for the given area.\n *\n * @param area The area\n */\n widgets(area) {\n switch (area !== null && area !== void 0 ? area : 'main') {\n case 'top':\n return iter(this._topHandler.panel.widgets);\n case 'menu':\n return iter(this._menuHandler.panel.widgets);\n case 'main':\n return iter(this._main.widgets);\n default:\n throw new Error(`Invalid area: ${area}`);\n }\n }\n}\n/**\n * A namespace for private module data.\n */\nvar Private;\n(function (Private) {\n /**\n * A less-than comparison function for side bar rank items.\n */\n function itemCmp(first, second) {\n return first.rank - second.rank;\n }\n Private.itemCmp = itemCmp;\n /**\n * A class which manages a panel and sorts its widgets by rank.\n */\n class PanelHandler {\n constructor() {\n /**\n * A message hook for child add/remove messages on the main area dock panel.\n */\n this._panelChildHook = (handler, msg) => {\n switch (msg.type) {\n case 'child-added':\n {\n const widget = msg.child;\n // If we already know about this widget, we're done\n if (this._items.find(v => v.widget === widget)) {\n break;\n }\n // Otherwise, add to the end by default\n const rank = this._items[this._items.length - 1].rank;\n this._items.push({ widget, rank });\n }\n break;\n case 'child-removed':\n {\n const widget = msg.child;\n ArrayExt.removeFirstWhere(this._items, v => v.widget === widget);\n }\n break;\n default:\n break;\n }\n return true;\n };\n this._items = new Array();\n this._panel = new Panel();\n MessageLoop.installMessageHook(this._panel, this._panelChildHook);\n }\n /**\n * Get the panel managed by the handler.\n */\n get panel() {\n return this._panel;\n }\n /**\n * Add a widget to the panel.\n *\n * If the widget is already added, it will be moved.\n */\n addWidget(widget, rank) {\n widget.parent = null;\n const item = { widget, rank };\n const index = ArrayExt.upperBound(this._items, item, Private.itemCmp);\n ArrayExt.insert(this._items, index, item);\n this._panel.insertWidget(index, widget);\n }\n }\n Private.PanelHandler = PanelHandler;\n})(Private || (Private = {}));\n","// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\nimport { JupyterFrontEnd } from '@jupyterlab/application';\nimport { createRendermimePlugins } from '@jupyterlab/application/lib/mimerenderers';\nimport { LabStatus } from '@jupyterlab/application/lib/status';\nimport { PageConfig } from '@jupyterlab/coreutils';\nimport { Throttler } from '@lumino/polling';\nimport { RetroShell } from './shell';\n/**\n * App is the main application class. It is instantiated once and shared.\n */\nexport class RetroApp extends JupyterFrontEnd {\n /**\n * Construct a new RetroApp object.\n *\n * @param options The instantiation options for an application.\n */\n constructor(options = { shell: new RetroShell() }) {\n var _a, _b;\n super(Object.assign(Object.assign({}, options), { shell: (_a = options.shell) !== null && _a !== void 0 ? _a : new RetroShell() }));\n /**\n * The name of the application.\n */\n this.name = 'RetroLab';\n /**\n * A namespace/prefix plugins may use to denote their provenance.\n */\n this.namespace = this.name;\n /**\n * The application busy and dirty status signals and flags.\n */\n this.status = new LabStatus(this);\n /**\n * The version of the application.\n */\n this.version = (_b = PageConfig.getOption('appVersion')) !== null && _b !== void 0 ? _b : 'unknown';\n this._formatter = new Throttler(() => {\n Private.setFormat(this);\n }, 250);\n if (options.mimeExtensions) {\n for (const plugin of createRendermimePlugins(options.mimeExtensions)) {\n this.registerPlugin(plugin);\n }\n }\n this.restored.then(() => this._formatter.invoke());\n }\n /**\n * The JupyterLab application paths dictionary.\n */\n get paths() {\n return {\n urls: {\n base: PageConfig.getOption('baseUrl'),\n notFound: PageConfig.getOption('notFoundUrl'),\n app: PageConfig.getOption('appUrl'),\n static: PageConfig.getOption('staticUrl'),\n settings: PageConfig.getOption('settingsUrl'),\n themes: PageConfig.getOption('themesUrl'),\n doc: PageConfig.getOption('docUrl'),\n translations: PageConfig.getOption('translationsApiUrl'),\n hubHost: PageConfig.getOption('hubHost') || undefined,\n hubPrefix: PageConfig.getOption('hubPrefix') || undefined,\n hubUser: PageConfig.getOption('hubUser') || undefined,\n hubServerName: PageConfig.getOption('hubServerName') || undefined\n },\n directories: {\n appSettings: PageConfig.getOption('appSettingsDir'),\n schemas: PageConfig.getOption('schemasDir'),\n static: PageConfig.getOption('staticDir'),\n templates: PageConfig.getOption('templatesDir'),\n themes: PageConfig.getOption('themesDir'),\n userSettings: PageConfig.getOption('userSettingsDir'),\n serverRoot: PageConfig.getOption('serverRoot'),\n workspaces: PageConfig.getOption('workspacesDir')\n }\n };\n }\n /**\n * Handle the DOM events for the application.\n *\n * @param event - The DOM event sent to the application.\n */\n handleEvent(event) {\n super.handleEvent(event);\n if (event.type === 'resize') {\n void this._formatter.invoke();\n }\n }\n /**\n * Register plugins from a plugin module.\n *\n * @param mod - The plugin module to register.\n */\n registerPluginModule(mod) {\n let data = mod.default;\n // Handle commonjs exports.\n if (!Object.prototype.hasOwnProperty.call(mod, '__esModule')) {\n data = mod;\n }\n if (!Array.isArray(data)) {\n data = [data];\n }\n data.forEach(item => {\n try {\n this.registerPlugin(item);\n }\n catch (error) {\n console.error(error);\n }\n });\n }\n /**\n * Register the plugins from multiple plugin modules.\n *\n * @param mods - The plugin modules to register.\n */\n registerPluginModules(mods) {\n mods.forEach(mod => {\n this.registerPluginModule(mod);\n });\n }\n}\n/**\n * A namespace for module-private functionality.\n */\nvar Private;\n(function (Private) {\n /**\n * Media query for mobile devices.\n */\n const MOBILE_QUERY = 'only screen and (max-width: 760px)';\n /**\n * Sets the `format` of a Jupyter front-end application.\n *\n * @param app The front-end application whose format is set.\n */\n function setFormat(app) {\n app.format = window.matchMedia(MOBILE_QUERY).matches ? 'mobile' : 'desktop';\n }\n Private.setFormat = setFormat;\n})(Private || (Private = {}));\n"],"names":["IRetroShell","Token","RetroShell","Widget","constructor","super","this","_currentChanged","Signal","id","rootLayout","BoxLayout","_topHandler","Private","PanelHandler","_menuHandler","_main","Panel","panel","topWrapper","_topWrapper","addWidget","menuWrapper","_menuWrapper","_spacer","spacing","layout","currentChanged","currentWidget","_a","widgets","top","menu","activateById","widget","find","w","activate","add","area","options","rank","undefined","length","update","emit","collapseTop","setHidden","expandTop","iter","Error","itemCmp","first","second","_panelChildHook","handler","msg","type","child","_items","v","push","ArrayExt","Array","_panel","MessageLoop","parent","item","index","insertWidget","RetroApp","JupyterFrontEnd","shell","_b","Object","assign","name","namespace","status","version","PageConfig","_formatter","Throttler","setFormat","mimeExtensions","plugin","registerPlugin","restored","then","invoke","paths","urls","base","notFound","app","static","settings","themes","doc","translations","hubHost","hubPrefix","hubUser","hubServerName","directories","appSettings","schemas","templates","userSettings","serverRoot","workspaces","handleEvent","event","registerPluginModule","mod","data","default","prototype","hasOwnProperty","call","isArray","forEach","error","console","registerPluginModules","mods","format","window","matchMedia","matches"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6571.2c8884e.js b/_static/build/6571.2c8884e.js new file mode 100644 index 0000000..eafc4ab --- /dev/null +++ b/_static/build/6571.2c8884e.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6571],{77608:(e,t,r)=>{"use strict";r.d(t,{$m:()=>i,Dp:()=>s,Z$:()=>n,kJ:()=>c,s7:()=>o});const n=e=>e[e.length-1],o=(e,t)=>{for(let r=0;r{return e.length===t.length&&(r=(e,r)=>e===t[r],e.every(r));var r},c=Array.isArray},96571:(e,t,r)=>{"use strict";r.d(t,{jS:()=>p,jU:()=>l,UG:()=>u,hH:()=>m});var n=r(31234),o=r(1011);var s=r(99622),i=r(12904),c=r(18533);const u=c.release&&/node|io\.js/.test(c.release.name),l="undefined"!=typeof window&&!u;let a;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const f=[],h=()=>{if(void 0===a)if(u){a=n.Ue();const e=c.argv;let t=null;for(let r=0;r{if(0!==e.length){const[t,r]=e.split("=");a.set(`--${o.NF(t,"-")}`,r),a.set(`-${o.NF(t,"-")}`,r)}}))):a=n.Ue();return a},d=e=>h().has(e),p=(e,t)=>h().get(e)||t,g=e=>{return void 0===(t=u?{}[e.toUpperCase()]:s.X.getItem(e))?null:t;var t};d("--"+"production")||g("production");const y=u&&i.gB({}.FORCE_COLOR,["true","1","2"]),m=!d("no-colors")&&(!u||c.stdout.isTTY||y)&&(!u||d("color")||y||null!==g("COLORTERM")||(g("TERM")||"").includes("color"))},12904:(e,t,r)=>{"use strict";r.d(t,{Hi:()=>c,PP:()=>s,UV:()=>i,gB:()=>u});var n=r(77608),o=r(41042);const s=(e,t,r=0)=>{try{for(;re===t||null!=e&&null!=t&&e.constructor===t.constructor&&(e instanceof Array&&n.$m(e,t)||"object"==typeof e&&o.$m(e,t)),c=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let r=0;rt.includes(e)},31234:(e,t,r)=>{"use strict";r.d(t,{JG:()=>o,UI:()=>i,Ue:()=>n,Yj:()=>c,Yu:()=>s});const n=()=>new Map,o=e=>{const t=n();return e.forEach(((e,r)=>{t.set(r,e)})),t},s=(e,t,r)=>{let n=e.get(t);return void 0===n&&e.set(t,n=r()),n},i=(e,t)=>{const r=[];for(const[n,o]of e)r.push(t(o,n));return r},c=(e,t)=>{for(const[r,n]of e)if(t(n,r))return!0;return!1}},41042:(e,t,r)=>{"use strict";r.d(t,{$m:()=>c,UI:()=>o,kE:()=>s,l$:()=>i}),Object.assign;const n=Object.keys,o=(e,t)=>{const r=[];for(const n in e)r.push(t(e[n],n));return r},s=e=>n(e).length,i=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),c=(e,t)=>e===t||s(e)===s(t)&&((e,t)=>{for(const r in e)if(!t(e[r],r))return!1;return!0})(e,((e,r)=>(void 0!==e||i(t,r))&&t[r]===e))},99622:(e,t,r)=>{"use strict";r.d(t,{X:()=>s,z:()=>i});let n=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},o=!0;try{"undefined"!=typeof localStorage&&(n=localStorage,o=!1)}catch(e){}const s=n,i=e=>o||addEventListener("storage",e)},1011:(e,t,r)=>{"use strict";r.d(t,{CO:()=>l,IK:()=>n,NF:()=>i,YZ:()=>c,lz:()=>u});const n=String.fromCharCode,o=(String.fromCodePoint,/^\s*/g),s=/([A-Z])/g,i=(e,t)=>(e=>e.replace(o,""))(e.replace(s,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),c="undefined"!=typeof TextEncoder?new TextEncoder:null,u=c?e=>c.encode(e):e=>{const t=unescape(encodeURIComponent(e)),r=t.length,n=new Uint8Array(r);for(let e=0;e{var t,r,n=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function i(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var c,u=[],l=!1,a=-1;function f(){l&&c&&(l=!1,c.length?u=c.concat(u):a=-1,u.length&&h())}function h(){if(!l){var e=i(f);l=!0;for(var t=u.length;t;){for(c=u,u=[];++a1)for(var r=1;r} arr\n * @return {L}\n */\nexport const last = arr => arr[arr.length - 1]\n\n/**\n * @template C\n * @return {Array}\n */\nexport const create = () => /** @type {Array} */ ([])\n\n/**\n * @template D\n * @param {Array} a\n * @return {Array}\n */\nexport const copy = a => /** @type {Array} */ (a.slice())\n\n/**\n * Append elements from src to dest\n *\n * @template M\n * @param {Array} dest\n * @param {Array} src\n */\nexport const appendTo = (dest, src) => {\n for (let i = 0; i < src.length; i++) {\n dest.push(src[i])\n }\n}\n\n/**\n * Transforms something array-like to an actual Array.\n *\n * @function\n * @template T\n * @param {ArrayLike|Iterable} arraylike\n * @return {T}\n */\nexport const from = Array.from\n\n/**\n * True iff condition holds on every element in the Array.\n *\n * @function\n * @template ITEM\n *\n * @param {Array} arr\n * @param {function(ITEM, number, Array):boolean} f\n * @return {boolean}\n */\nexport const every = (arr, f) => arr.every(f)\n\n/**\n * True iff condition holds on some element in the Array.\n *\n * @function\n * @template S\n * @param {Array} arr\n * @param {function(S, number, Array):boolean} f\n * @return {boolean}\n */\nexport const some = (arr, f) => arr.some(f)\n\n/**\n * @template ELEM\n *\n * @param {Array} a\n * @param {Array} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a.length === b.length && every(a, (item, index) => item === b[index])\n\n/**\n * @template ELEM\n * @param {Array>} arr\n * @return {Array}\n */\nexport const flatten = arr => arr.reduce((acc, val) => acc.concat(val), [])\n\nexport const isArray = Array.isArray\n","/**\n * Isomorphic module to work access the environment (query params, env variables).\n *\n * @module map\n */\n\nimport * as map from './map.js'\nimport * as string from './string.js'\nimport * as conditions from './conditions.js'\nimport * as storage from './storage.js'\nimport * as f from './function.js'\n\n/* istanbul ignore next */\n// @ts-ignore\nexport const isNode = typeof process !== 'undefined' && process.release &&\n /node|io\\.js/.test(process.release.name)\n/* istanbul ignore next */\nexport const isBrowser = typeof window !== 'undefined' && !isNode\n/* istanbul ignore next */\nexport const isMac = typeof navigator !== 'undefined'\n ? /Mac/.test(navigator.platform)\n : false\n\n/**\n * @type {Map}\n */\nlet params\nconst args = []\n\n/* istanbul ignore next */\nconst computeParams = () => {\n if (params === undefined) {\n if (isNode) {\n params = map.create()\n const pargs = process.argv\n let currParamName = null\n /* istanbul ignore next */\n for (let i = 0; i < pargs.length; i++) {\n const parg = pargs[i]\n if (parg[0] === '-') {\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n currParamName = parg\n } else {\n if (currParamName !== null) {\n params.set(currParamName, parg)\n currParamName = null\n } else {\n args.push(parg)\n }\n }\n }\n if (currParamName !== null) {\n params.set(currParamName, '')\n }\n // in ReactNative for example this would not be true (unless connected to the Remote Debugger)\n } else if (typeof location === 'object') {\n params = map.create(); // eslint-disable-next-line no-undef\n (location.search || '?').slice(1).split('&').forEach((kv) => {\n if (kv.length !== 0) {\n const [key, value] = kv.split('=')\n params.set(`--${string.fromCamelCase(key, '-')}`, value)\n params.set(`-${string.fromCamelCase(key, '-')}`, value)\n }\n })\n } else {\n params = map.create()\n }\n }\n return params\n}\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasParam = (name) => computeParams().has(name)\n\n/**\n * @param {string} name\n * @param {string} defaultVal\n * @return {string}\n */\n/* istanbul ignore next */\nexport const getParam = (name, defaultVal) =>\n computeParams().get(name) || defaultVal\n// export const getArgs = name => computeParams() && args\n\n/**\n * @param {string} name\n * @return {string|null}\n */\n/* istanbul ignore next */\nexport const getVariable = (name) =>\n isNode\n ? conditions.undefinedToNull(process.env[name.toUpperCase()])\n : conditions.undefinedToNull(storage.varStorage.getItem(name))\n\n/**\n * @param {string} name\n * @return {string|null}\n */\nexport const getConf = (name) =>\n computeParams().get('--' + name) || getVariable(name)\n\n/**\n * @param {string} name\n * @return {boolean}\n */\n/* istanbul ignore next */\nexport const hasConf = (name) =>\n hasParam('--' + name) || getVariable(name) !== null\n\n/* istanbul ignore next */\nexport const production = hasConf('production')\n\n/* istanbul ignore next */\nconst forceColor = isNode &&\n f.isOneOf(process.env.FORCE_COLOR, ['true', '1', '2'])\n\n/* istanbul ignore next */\nexport const supportsColor = !hasParam('no-colors') &&\n (!isNode || process.stdout.isTTY || forceColor) && (\n !isNode || hasParam('color') || forceColor ||\n getVariable('COLORTERM') !== null ||\n (getVariable('TERM') || '').includes('color')\n)\n","/**\n * Often used conditions.\n *\n * @module conditions\n */\n\n/**\n * @template T\n * @param {T|null|undefined} v\n * @return {T|null}\n */\n/* istanbul ignore next */\nexport const undefinedToNull = v => v === undefined ? null : v\n","/**\n * Common functions and function call helpers.\n *\n * @module function\n */\n\nimport * as array from './array.js'\nimport * as object from './object.js'\n\n/**\n * Calls all functions in `fs` with args. Only throws after all functions were called.\n *\n * @param {Array} fs\n * @param {Array} args\n */\nexport const callAll = (fs, args, i = 0) => {\n try {\n for (; i < fs.length; i++) {\n fs[i](...args)\n }\n } finally {\n if (i < fs.length) {\n callAll(fs, args, i + 1)\n }\n }\n}\n\nexport const nop = () => {}\n\n/**\n * @template T\n * @param {function():T} f\n * @return {T}\n */\nexport const apply = f => f()\n\n/**\n * @template A\n *\n * @param {A} a\n * @return {A}\n */\nexport const id = a => a\n\n/**\n * @template T\n *\n * @param {T} a\n * @param {T} b\n * @return {boolean}\n */\nexport const equalityStrict = (a, b) => a === b\n\n/**\n * @template T\n *\n * @param {Array|object} a\n * @param {Array|object} b\n * @return {boolean}\n */\nexport const equalityFlat = (a, b) => a === b || (a != null && b != null && a.constructor === b.constructor && ((a instanceof Array && array.equalFlat(a, /** @type {Array} */ (b))) || (typeof a === 'object' && object.equalFlat(a, b))))\n\n/**\n * @param {any} a\n * @param {any} b\n * @return {boolean}\n */\nexport const equalityDeep = (a, b) => {\n if (a == null || b == null) {\n return equalityStrict(a, b)\n }\n if (a.constructor !== b.constructor) {\n return false\n }\n if (a === b) {\n return true\n }\n switch (a.constructor) {\n case ArrayBuffer:\n a = new Uint8Array(a)\n b = new Uint8Array(b)\n // eslint-disable-next-line no-fallthrough\n case Uint8Array: {\n if (a.byteLength !== b.byteLength) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n break\n }\n case Set: {\n if (a.size !== b.size) {\n return false\n }\n for (const value of a) {\n if (!b.has(value)) {\n return false\n }\n }\n break\n }\n case Map: {\n if (a.size !== b.size) {\n return false\n }\n for (const key of a.keys()) {\n if (!b.has(key) || !equalityDeep(a.get(key), b.get(key))) {\n return false\n }\n }\n break\n }\n case Object:\n if (object.length(a) !== object.length(b)) {\n return false\n }\n for (const key in a) {\n if (!object.hasProperty(a, key) || !equalityDeep(a[key], b[key])) {\n return false\n }\n }\n break\n case Array:\n if (a.length !== b.length) {\n return false\n }\n for (let i = 0; i < a.length; i++) {\n if (!equalityDeep(a[i], b[i])) {\n return false\n }\n }\n break\n default:\n return false\n }\n return true\n}\n\n/**\n * @template V\n * @template {V} OPTS\n *\n * @param {V} value\n * @param {Array} options\n */\n// @ts-ignore\nexport const isOneOf = (value, options) => options.includes(value)\n","/**\n * Utility module to work with key-value stores.\n *\n * @module map\n */\n\n/**\n * Creates a new Map instance.\n *\n * @function\n * @return {Map}\n *\n * @function\n */\nexport const create = () => new Map()\n\n/**\n * Copy a Map object into a fresh Map object.\n *\n * @function\n * @template X,Y\n * @param {Map} m\n * @return {Map}\n */\nexport const copy = m => {\n const r = create()\n m.forEach((v, k) => { r.set(k, v) })\n return r\n}\n\n/**\n * Get map property. Create T if property is undefined and set T on map.\n *\n * ```js\n * const listeners = map.setIfUndefined(events, 'eventName', set.create)\n * listeners.add(listener)\n * ```\n *\n * @function\n * @template T,K\n * @param {Map} map\n * @param {K} key\n * @param {function():T} createT\n * @return {T}\n */\nexport const setIfUndefined = (map, key, createT) => {\n let set = map.get(key)\n if (set === undefined) {\n map.set(key, set = createT())\n }\n return set\n}\n\n/**\n * Creates an Array and populates it with the content of all key-value pairs using the `f(value, key)` function.\n *\n * @function\n * @template K\n * @template V\n * @template R\n * @param {Map} m\n * @param {function(V,K):R} f\n * @return {Array}\n */\nexport const map = (m, f) => {\n const res = []\n for (const [key, value] of m) {\n res.push(f(value, key))\n }\n return res\n}\n\n/**\n * Tests whether any key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @todo should rename to some - similarly to Array.some\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const any = (m, f) => {\n for (const [key, value] of m) {\n if (f(value, key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * Tests whether all key-value pairs pass the test implemented by `f(value, key)`.\n *\n * @function\n * @template K\n * @template V\n * @param {Map} m\n * @param {function(V,K):boolean} f\n * @return {boolean}\n */\nexport const all = (m, f) => {\n for (const [key, value] of m) {\n if (!f(value, key)) {\n return false\n }\n }\n return true\n}\n","/**\n * Utility functions for working with EcmaScript objects.\n *\n * @module object\n */\n\n/**\n * @return {Object} obj\n */\nexport const create = () => Object.create(null)\n\n/**\n * Object.assign\n */\nexport const assign = Object.assign\n\n/**\n * @param {Object} obj\n */\nexport const keys = Object.keys\n\n/**\n * @param {Object} obj\n * @param {function(any,string):any} f\n */\nexport const forEach = (obj, f) => {\n for (const key in obj) {\n f(obj[key], key)\n }\n}\n\n/**\n * @template R\n * @param {Object} obj\n * @param {function(any,string):R} f\n * @return {Array}\n */\nexport const map = (obj, f) => {\n const results = []\n for (const key in obj) {\n results.push(f(obj[key], key))\n }\n return results\n}\n\n/**\n * @param {Object} obj\n * @return {number}\n */\nexport const length = obj => keys(obj).length\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const some = (obj, f) => {\n for (const key in obj) {\n if (f(obj[key], key)) {\n return true\n }\n }\n return false\n}\n\n/**\n * @param {Object} obj\n * @param {function(any,string):boolean} f\n * @return {boolean}\n */\nexport const every = (obj, f) => {\n for (const key in obj) {\n if (!f(obj[key], key)) {\n return false\n }\n }\n return true\n}\n\n/**\n * Calls `Object.prototype.hasOwnProperty`.\n *\n * @param {any} obj\n * @param {string|symbol} key\n * @return {boolean}\n */\nexport const hasProperty = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key)\n\n/**\n * @param {Object} a\n * @param {Object} b\n * @return {boolean}\n */\nexport const equalFlat = (a, b) => a === b || (length(a) === length(b) && every(a, (val, key) => (val !== undefined || hasProperty(b, key)) && b[key] === val))\n","/* global localStorage, addEventListener */\n\n/**\n * Isomorphic variable storage.\n *\n * Uses LocalStorage in the browser and falls back to in-memory storage.\n *\n * @module storage\n */\n\n/* istanbul ignore next */\nclass VarStoragePolyfill {\n constructor () {\n this.map = new Map()\n }\n\n /**\n * @param {string} key\n * @param {any} newValue\n */\n setItem (key, newValue) {\n this.map.set(key, newValue)\n }\n\n /**\n * @param {string} key\n */\n getItem (key) {\n return this.map.get(key)\n }\n}\n\n/* istanbul ignore next */\n/**\n * @type {any}\n */\nlet _localStorage = new VarStoragePolyfill()\nlet usePolyfill = true\n\ntry {\n // if the same-origin rule is violated, accessing localStorage might thrown an error\n /* istanbul ignore next */\n if (typeof localStorage !== 'undefined') {\n _localStorage = localStorage\n usePolyfill = false\n }\n} catch (e) { }\n\n/* istanbul ignore next */\n/**\n * This is basically localStorage in browser, or a polyfill in nodejs\n */\nexport const varStorage = _localStorage\n\n/* istanbul ignore next */\n/**\n * A polyfill for `addEventListener('storage', event => {..})` that does nothing if the polyfill is being used.\n *\n * @param {function({ key: string, newValue: string, oldValue: string }): void} eventHandler\n * @function\n */\nexport const onChange = eventHandler => usePolyfill || addEventListener('storage', /** @type {any} */ (eventHandler))\n","/**\n * Utility module to work with strings.\n *\n * @module string\n */\n\nexport const fromCharCode = String.fromCharCode\nexport const fromCodePoint = String.fromCodePoint\n\n/**\n * @param {string} s\n * @return {string}\n */\nconst toLowerCase = s => s.toLowerCase()\n\nconst trimLeftRegex = /^\\s*/g\n\n/**\n * @param {string} s\n * @return {string}\n */\nexport const trimLeft = s => s.replace(trimLeftRegex, '')\n\nconst fromCamelCaseRegex = /([A-Z])/g\n\n/**\n * @param {string} s\n * @param {string} separator\n * @return {string}\n */\nexport const fromCamelCase = (s, separator) => trimLeft(s.replace(fromCamelCaseRegex, match => `${separator}${toLowerCase(match)}`))\n\n/**\n * Compute the utf8ByteLength\n * @param {string} str\n * @return {number}\n */\nexport const utf8ByteLength = str => unescape(encodeURIComponent(str)).length\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Polyfill = str => {\n const encodedString = unescape(encodeURIComponent(str))\n const len = encodedString.length\n const buf = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n buf[i] = /** @type {number} */ (encodedString.codePointAt(i))\n }\n return buf\n}\n\n/* istanbul ignore next */\nexport const utf8TextEncoder = /** @type {TextEncoder} */ (typeof TextEncoder !== 'undefined' ? new TextEncoder() : null)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\nexport const _encodeUtf8Native = str => utf8TextEncoder.encode(str)\n\n/**\n * @param {string} str\n * @return {Uint8Array}\n */\n/* istanbul ignore next */\nexport const encodeUtf8 = utf8TextEncoder ? _encodeUtf8Native : _encodeUtf8Polyfill\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Polyfill = buf => {\n let remainingLen = buf.length\n let encodedString = ''\n let bufPos = 0\n while (remainingLen > 0) {\n const nextLen = remainingLen < 10000 ? remainingLen : 10000\n const bytes = buf.subarray(bufPos, bufPos + nextLen)\n bufPos += nextLen\n // Starting with ES5.1 we can supply a generic array-like object as arguments\n encodedString += String.fromCodePoint.apply(null, /** @type {any} */ (bytes))\n remainingLen -= nextLen\n }\n return decodeURIComponent(escape(encodedString))\n}\n\n/* istanbul ignore next */\nexport let utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8', { fatal: true, ignoreBOM: true })\n\n/* istanbul ignore next */\nif (utf8TextDecoder && utf8TextDecoder.decode(new Uint8Array()).length === 1) {\n // Safari doesn't handle BOM correctly.\n // This fixes a bug in Safari 13.0.5 where it produces a BOM the first time it is called.\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the first call and\n // utf8TextDecoder.decode(new Uint8Array()).length === 1 on the second call\n // Another issue is that from then on no BOM chars are recognized anymore\n /* istanbul ignore next */\n utf8TextDecoder = null\n}\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\nexport const _decodeUtf8Native = buf => /** @type {TextDecoder} */ (utf8TextDecoder).decode(buf)\n\n/**\n * @param {Uint8Array} buf\n * @return {string}\n */\n/* istanbul ignore next */\nexport const decodeUtf8 = utf8TextDecoder ? _decodeUtf8Native : _decodeUtf8Polyfill\n\n/**\n * @param {string} str The initial string\n * @param {number} index Starting position\n * @param {number} remove Number of characters to remove\n * @param {string} insert New content to insert\n */\nexport const splice = (str, index, remove, insert = '') => str.slice(0, index) + insert + str.slice(index + remove)\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n"],"names":["last","arr","length","appendTo","dest","src","i","push","from","Array","equalFlat","a","b","f","item","index","every","isArray","isNode","process","release","test","name","isBrowser","window","params","navigator","platform","args","computeParams","undefined","map","pargs","argv","currParamName","parg","set","location","search","slice","split","forEach","kv","key","value","string","hasParam","has","getParam","defaultVal","get","getVariable","v","toUpperCase","storage","forceColor","FORCE_COLOR","supportsColor","stdout","isTTY","includes","callAll","fs","equalityFlat","constructor","equalityDeep","equalityStrict","ArrayBuffer","Uint8Array","byteLength","Set","size","Map","keys","Object","isOneOf","options","create","copy","m","r","k","setIfUndefined","createT","res","any","assign","obj","results","hasProperty","prototype","hasOwnProperty","call","val","_localStorage","this","setItem","newValue","getItem","usePolyfill","localStorage","e","varStorage","onChange","eventHandler","addEventListener","fromCharCode","String","trimLeftRegex","fromCodePoint","fromCamelCaseRegex","fromCamelCase","s","separator","replace","trimLeft","match","toLowerCase","utf8TextEncoder","TextEncoder","encodeUtf8","str","encode","encodedString","unescape","encodeURIComponent","len","buf","codePointAt","utf8TextDecoder","TextDecoder","fatal","ignoreBOM","decode","cachedSetTimeout","cachedClearTimeout","module","exports","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","noop","nextTick","arguments","apply","title","browser","env","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6576.3ea568e.js b/_static/build/6576.3ea568e.js new file mode 100644 index 0000000..6477bfd --- /dev/null +++ b/_static/build/6576.3ea568e.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6576],{92138:(n,e,r)=>{r.d(e,{Z:()=>i});var o=r(34663),a=r.n(o),c=r(7638),t=r.n(c)()(a());t.push([n.id,"/*\n Name: material\n Author: Mattia Astorino (http://github.com/equinusocio)\n Website: https://material-theme.site/\n*/\n\n.cm-s-material-ocean.CodeMirror {\n background-color: #0F111A;\n color: #8F93A2;\n}\n\n.cm-s-material-ocean .CodeMirror-gutters {\n background: #0F111A;\n color: #464B5D;\n border: none;\n}\n\n.cm-s-material-ocean .CodeMirror-guttermarker,\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\n.cm-s-material-ocean .CodeMirror-linenumber {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .CodeMirror-cursor {\n border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material-ocean div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::selection,\n.cm-s-material-ocean .CodeMirror-line>span::selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-activeline-background {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material-ocean .cm-keyword {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-operator {\n color: #89DDFF;\n}\n\n.cm-s-material-ocean .cm-variable-2 {\n color: #EEFFFF;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-builtin {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-atom {\n color: #F78C6C;\n}\n\n.cm-s-material-ocean .cm-number {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-def {\n color: #82AAFF;\n}\n\n.cm-s-material-ocean .cm-string {\n color: #C3E88D;\n}\n\n.cm-s-material-ocean .cm-string-2 {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-comment {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .cm-variable {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-tag {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-meta {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-attribute {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-property {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-qualifier {\n color: #DECB6B;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #DECB6B;\n}\n\n\n.cm-s-material-ocean .cm-error {\n color: rgba(255, 255, 255, 1.0);\n background-color: #FF5370;\n}\n\n.cm-s-material-ocean .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/material-ocean.css"],names:[],mappings:"AAAA;;;;CAIC;;AAED;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,cAAc;EACd,YAAY;AACd;;AAEA;;;EAGE,cAAc;AAChB;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;;AAGA;EACE,+BAA+B;EAC/B,yBAAyB;AAC3B;;AAEA;EACE,0BAA0B;EAC1B,uBAAuB;AACzB",sourcesContent:["/*\n Name: material\n Author: Mattia Astorino (http://github.com/equinusocio)\n Website: https://material-theme.site/\n*/\n\n.cm-s-material-ocean.CodeMirror {\n background-color: #0F111A;\n color: #8F93A2;\n}\n\n.cm-s-material-ocean .CodeMirror-gutters {\n background: #0F111A;\n color: #464B5D;\n border: none;\n}\n\n.cm-s-material-ocean .CodeMirror-guttermarker,\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\n.cm-s-material-ocean .CodeMirror-linenumber {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .CodeMirror-cursor {\n border-left: 1px solid #FFCC00;\n}\n\n.cm-s-material-ocean div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\n background: rgba(113, 124, 180, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::selection,\n.cm-s-material-ocean .CodeMirror-line>span::selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\n background: rgba(128, 203, 196, 0.2);\n}\n\n.cm-s-material-ocean .CodeMirror-activeline-background {\n background: rgba(0, 0, 0, 0.5);\n}\n\n.cm-s-material-ocean .cm-keyword {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-operator {\n color: #89DDFF;\n}\n\n.cm-s-material-ocean .cm-variable-2 {\n color: #EEFFFF;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-builtin {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-atom {\n color: #F78C6C;\n}\n\n.cm-s-material-ocean .cm-number {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-def {\n color: #82AAFF;\n}\n\n.cm-s-material-ocean .cm-string {\n color: #C3E88D;\n}\n\n.cm-s-material-ocean .cm-string-2 {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-comment {\n color: #464B5D;\n}\n\n.cm-s-material-ocean .cm-variable {\n color: #f07178;\n}\n\n.cm-s-material-ocean .cm-tag {\n color: #FF5370;\n}\n\n.cm-s-material-ocean .cm-meta {\n color: #FFCB6B;\n}\n\n.cm-s-material-ocean .cm-attribute {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-property {\n color: #C792EA;\n}\n\n.cm-s-material-ocean .cm-qualifier {\n color: #DECB6B;\n}\n\n.cm-s-material-ocean .cm-variable-3,\n.cm-s-material-ocean .cm-type {\n color: #DECB6B;\n}\n\n\n.cm-s-material-ocean .cm-error {\n color: rgba(255, 255, 255, 1.0);\n background-color: #FF5370;\n}\n\n.cm-s-material-ocean .CodeMirror-matchingbracket {\n text-decoration: underline;\n color: white !important;\n}"],sourceRoot:""}]);const i=t},7638:n=>{n.exports=function(n){var e=[];return e.toString=function(){return this.map((function(e){var r="",o=void 0!==e[5];return e[4]&&(r+="@supports (".concat(e[4],") {")),e[2]&&(r+="@media ".concat(e[2]," {")),o&&(r+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),r+=n(e),o&&(r+="}"),e[2]&&(r+="}"),e[4]&&(r+="}"),r})).join("")},e.i=function(n,r,o,a,c){"string"==typeof n&&(n=[[null,n,void 0]]);var t={};if(o)for(var i=0;i0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=c),r&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=r):l[2]=r),a&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=a):l[4]="".concat(a)),e.push(l))}},e}},34663:n=>{n.exports=function(n){var e=n[1],r=n[3];if(!r)return e;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),c="/*# ".concat(a," */"),t=r.sources.map((function(n){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(n," */")}));return[e].concat(t).concat([c]).join("\n")}return[e].join("\n")}},26576:(n,e,r)=>{r.r(e),r.d(e,{default:()=>f});var o=r(1892),a=r.n(o),c=r(95760),t=r.n(c),i=r(38311),A=r.n(i),m=r(58192),l=r.n(m),s=r(38060),u=r.n(s),C=r(54865),d=r.n(C),E=r(92138),p={};p.styleTagTransform=d(),p.setAttributes=l(),p.insert=A().bind(null,"head"),p.domAPI=t(),p.insertStyleElement=u(),a()(E.Z,p);const f=E.Z&&E.Z.locals?E.Z.locals:void 0},1892:n=>{var e=[];function r(n){for(var r=-1,o=0;o{var e={};n.exports=function(n,r){var o=function(n){if(void 0===e[n]){var r=document.querySelector(n);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(n){r=null}e[n]=r}return e[n]}(n);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(r)}},38060:n=>{n.exports=function(n){var e=document.createElement("style");return n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},58192:(n,e,r)=>{n.exports=function(n){var e=r.nc;e&&n.setAttribute("nonce",e)}},95760:n=>{n.exports=function(n){var e=n.insertStyleElement(n);return{update:function(r){!function(n,e,r){var o="";r.supports&&(o+="@supports (".concat(r.supports,") {")),r.media&&(o+="@media ".concat(r.media," {"));var a=void 0!==r.layer;a&&(o+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),o+=r.css,a&&(o+="}"),r.media&&(o+="}"),r.supports&&(o+="}");var c=r.sourceMap;c&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(c))))," */")),e.styleTagTransform(o,n,e.options)}(e,n,r)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}},54865:n=>{n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}}}]); +//# sourceMappingURL=6576.3ea568e.js.map \ No newline at end of file diff --git a/_static/build/6576.3ea568e.js.map b/_static/build/6576.3ea568e.js.map new file mode 100644 index 0000000..4aa640f --- /dev/null +++ b/_static/build/6576.3ea568e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6576.3ea568e.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/material-ocean.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/material-ocean.css?99f6","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*\\n Name: material\\n Author: Mattia Astorino (http://github.com/equinusocio)\\n Website: https://material-theme.site/\\n*/\\n\\n.cm-s-material-ocean.CodeMirror {\\n background-color: #0F111A;\\n color: #8F93A2;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-gutters {\\n background: #0F111A;\\n color: #464B5D;\\n border: none;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-guttermarker,\\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\\n.cm-s-material-ocean .CodeMirror-linenumber {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-cursor {\\n border-left: 1px solid #FFCC00;\\n}\\n\\n.cm-s-material-ocean div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::selection,\\n.cm-s-material-ocean .CodeMirror-line>span::selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-activeline-background {\\n background: rgba(0, 0, 0, 0.5);\\n}\\n\\n.cm-s-material-ocean .cm-keyword {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-operator {\\n color: #89DDFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-2 {\\n color: #EEFFFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-builtin {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-atom {\\n color: #F78C6C;\\n}\\n\\n.cm-s-material-ocean .cm-number {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-def {\\n color: #82AAFF;\\n}\\n\\n.cm-s-material-ocean .cm-string {\\n color: #C3E88D;\\n}\\n\\n.cm-s-material-ocean .cm-string-2 {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-comment {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .cm-variable {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-tag {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-meta {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-attribute {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-property {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-qualifier {\\n color: #DECB6B;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #DECB6B;\\n}\\n\\n\\n.cm-s-material-ocean .cm-error {\\n color: rgba(255, 255, 255, 1.0);\\n background-color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/material-ocean.css\"],\"names\":[],\"mappings\":\"AAAA;;;;CAIC;;AAED;EACE,yBAAyB;EACzB,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,cAAc;EACd,YAAY;AACd;;AAEA;;;EAGE,cAAc;AAChB;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;EACE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;;;EAGE,oCAAoC;AACtC;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,cAAc;AAChB;;AAEA;;EAEE,cAAc;AAChB;;;AAGA;EACE,+BAA+B;EAC/B,yBAAyB;AAC3B;;AAEA;EACE,0BAA0B;EAC1B,uBAAuB;AACzB\",\"sourcesContent\":[\"/*\\n Name: material\\n Author: Mattia Astorino (http://github.com/equinusocio)\\n Website: https://material-theme.site/\\n*/\\n\\n.cm-s-material-ocean.CodeMirror {\\n background-color: #0F111A;\\n color: #8F93A2;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-gutters {\\n background: #0F111A;\\n color: #464B5D;\\n border: none;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-guttermarker,\\n.cm-s-material-ocean .CodeMirror-guttermarker-subtle,\\n.cm-s-material-ocean .CodeMirror-linenumber {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-cursor {\\n border-left: 1px solid #FFCC00;\\n}\\n\\n.cm-s-material-ocean div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean.CodeMirror-focused div.CodeMirror-selected {\\n background: rgba(113, 124, 180, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::selection,\\n.cm-s-material-ocean .CodeMirror-line>span::selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-line::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span::-moz-selection,\\n.cm-s-material-ocean .CodeMirror-line>span>span::-moz-selection {\\n background: rgba(128, 203, 196, 0.2);\\n}\\n\\n.cm-s-material-ocean .CodeMirror-activeline-background {\\n background: rgba(0, 0, 0, 0.5);\\n}\\n\\n.cm-s-material-ocean .cm-keyword {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-operator {\\n color: #89DDFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-2 {\\n color: #EEFFFF;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-builtin {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-atom {\\n color: #F78C6C;\\n}\\n\\n.cm-s-material-ocean .cm-number {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-def {\\n color: #82AAFF;\\n}\\n\\n.cm-s-material-ocean .cm-string {\\n color: #C3E88D;\\n}\\n\\n.cm-s-material-ocean .cm-string-2 {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-comment {\\n color: #464B5D;\\n}\\n\\n.cm-s-material-ocean .cm-variable {\\n color: #f07178;\\n}\\n\\n.cm-s-material-ocean .cm-tag {\\n color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .cm-meta {\\n color: #FFCB6B;\\n}\\n\\n.cm-s-material-ocean .cm-attribute {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-property {\\n color: #C792EA;\\n}\\n\\n.cm-s-material-ocean .cm-qualifier {\\n color: #DECB6B;\\n}\\n\\n.cm-s-material-ocean .cm-variable-3,\\n.cm-s-material-ocean .cm-type {\\n color: #DECB6B;\\n}\\n\\n\\n.cm-s-material-ocean .cm-error {\\n color: rgba(255, 255, 255, 1.0);\\n background-color: #FF5370;\\n}\\n\\n.cm-s-material-ocean .CodeMirror-matchingbracket {\\n text-decoration: underline;\\n color: white !important;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./material-ocean.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./material-ocean.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6591.94ed352.js b/_static/build/6591.94ed352.js new file mode 100644 index 0000000..ec55e93 --- /dev/null +++ b/_static/build/6591.94ed352.js @@ -0,0 +1,2 @@ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6591],{5179:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseManager=void 0;const n=s(70942),i=s(59566);t.BaseManager=class{constructor(e){var t;this._isDisposed=!1,this._disposed=new n.Signal(this),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings()}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._disposed.emit(void 0),n.Signal.clearData(this))}}},75334:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BuildManager=void 0;const n=s(55941),i=s(59566);t.BuildManager=class{constructor(e={}){var t;this._url="",this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings();const{baseUrl:s,appUrl:r}=this.serverSettings;this._url=n.URLExt.join(s,r,"api/build")}get isAvailable(){return"true"===n.PageConfig.getOption("buildAvailable").toLowerCase()}get shouldCheck(){return"true"===n.PageConfig.getOption("buildCheck").toLowerCase()}getStatus(){const{_url:e,serverSettings:t}=this;return i.ServerConnection.makeRequest(e,{},t).then((e=>{if(200!==e.status)throw new i.ServerConnection.ResponseError(e);return e.json()})).then((e=>{if("string"!=typeof e.status)throw new Error("Invalid data");if("string"!=typeof e.message)throw new Error("Invalid data");return e}))}build(){const{_url:e,serverSettings:t}=this;return i.ServerConnection.makeRequest(e,{method:"POST"},t).then((e=>{if(400===e.status)throw new i.ServerConnection.ResponseError(e,"Build aborted");if(200!==e.status){const t=`Build failed with ${e.status}.\n\n If you are experiencing the build failure after installing an extension (or trying to include previously installed extension after updating JupyterLab) please check the extension repository for new installation instructions as many extensions migrated to the prebuilt extensions system which no longer requires rebuilding JupyterLab (but uses a different installation procedure, typically involving a package manager such as 'pip' or 'conda').\n\n If you specifically intended to install a source extension, please run 'jupyter lab build' on the server for full output.`;throw new i.ServerConnection.ResponseError(e,t)}}))}cancel(){const{_url:e,serverSettings:t}=this;return i.ServerConnection.makeRequest(e,{method:"DELETE"},t).then((e=>{if(204!==e.status)throw new i.ServerConnection.ResponseError(e)}))}}},32756:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigWithDefaults=t.ConfigSection=void 0;const n=s(55941),i=s(76591);(t.ConfigSection||(t.ConfigSection={})).create=function(e){const t=new r(e);return t.load().then((()=>t))};class r{constructor(e){var t;this._url="unknown";const s=this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings();this._url=n.URLExt.join(s.baseUrl,"api/config",encodeURIComponent(e.name))}get data(){return this._data}async load(){const e=await i.ServerConnection.makeRequest(this._url,{},this.serverSettings);if(200!==e.status)throw await i.ServerConnection.ResponseError.create(e);this._data=await e.json()}async update(e){this._data=Object.assign(Object.assign({},this._data),e);const t={method:"PATCH",body:JSON.stringify(e)},s=await i.ServerConnection.makeRequest(this._url,t,this.serverSettings);if(200!==s.status)throw await i.ServerConnection.ResponseError.create(s);return this._data=await s.json(),this._data}}t.ConfigWithDefaults=class{constructor(e){var t,s;this._className="",this._section=e.section,this._defaults=null!==(t=e.defaults)&&void 0!==t?t:{},this._className=null!==(s=e.className)&&void 0!==s?s:""}get(e){const t=this._classData();return e in t?t[e]:this._defaults[e]}set(e,t){const s={};if(s[e]=t,this._className){const e={};return e[this._className]=s,this._section.update(e)}return this._section.update(s)}_classData(){const e=this._section.data;return this._className&&this._className in e?e[this._className]:e}}},4851:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Drive=t.ContentsManager=t.Contents=void 0;const o=s(55941),a=s(43892),c=s(70942),l=s(76591),h=r(s(8618));var d,u;(u=t.Contents||(t.Contents={})).validateContentsModel=function(e){h.validateContentsModel(e)},u.validateCheckpointModel=function(e){h.validateCheckpointModel(e)},t.ContentsManager=class{constructor(e={}){var t,s;this._isDisposed=!1,this._additionalDrives=new Map,this._fileChanged=new c.Signal(this);const n=this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:l.ServerConnection.makeSettings();this._defaultDrive=null!==(s=e.defaultDrive)&&void 0!==s?s:new _({serverSettings:n}),this._defaultDrive.fileChanged.connect(this._onFileChanged,this)}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,c.Signal.clearData(this))}addDrive(e){this._additionalDrives.set(e.name,e),e.fileChanged.connect(this._onFileChanged,this)}getModelDBFactory(e){var t;const[s]=this._driveForPath(e);return null!==(t=null==s?void 0:s.modelDBFactory)&&void 0!==t?t:null}localPath(e){const t=e.split("/"),s=t[0].split(":");return 1!==s.length&&this._additionalDrives.has(s[0])?o.PathExt.join(s.slice(1).join(":"),...t.slice(1)):o.PathExt.removeSlash(e)}normalize(e){const t=e.split(":");return 1===t.length?o.PathExt.normalize(e):`${t[0]}:${o.PathExt.normalize(t.slice(1).join(":"))}`}resolvePath(e,t){const s=this.driveName(e),n=this.localPath(e),i=o.PathExt.resolve("/",n,t);return s?`${s}:${i}`:i}driveName(e){const t=e.split("/")[0].split(":");return 1===t.length?"":this._additionalDrives.has(t[0])?t[0]:""}get(e,t){const[s,n]=this._driveForPath(e);return s.get(n,t).then((e=>{const t=[];return"directory"===e.type&&e.content?(a.each(e.content,(e=>{t.push(Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,e.path)}))})),Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,n),content:t})):Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,n)})}))}getDownloadUrl(e){const[t,s]=this._driveForPath(e);return t.getDownloadUrl(s)}newUntitled(e={}){if(e.path){const t=this.normalize(e.path),[s,n]=this._driveForPath(t);return s.newUntitled(Object.assign(Object.assign({},e),{path:n})).then((e=>Object.assign(Object.assign({},e),{path:o.PathExt.join(t,e.name)})))}return this._defaultDrive.newUntitled(e)}delete(e){const[t,s]=this._driveForPath(e);return t.delete(s)}rename(e,t){const[s,n]=this._driveForPath(e),[i,r]=this._driveForPath(t);if(s!==i)throw Error("ContentsManager: renaming files must occur within a Drive");return s.rename(n,r).then((e=>Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,r)})))}save(e,t={}){const s=this.normalize(e),[n,i]=this._driveForPath(e);return n.save(i,Object.assign(Object.assign({},t),{path:i})).then((e=>Object.assign(Object.assign({},e),{path:s})))}copy(e,t){const[s,n]=this._driveForPath(e),[i,r]=this._driveForPath(t);if(s===i)return s.copy(n,r).then((e=>Object.assign(Object.assign({},e),{path:this._toGlobalPath(s,e.path)})));throw Error("Copying files between drives is not currently implemented")}createCheckpoint(e){const[t,s]=this._driveForPath(e);return t.createCheckpoint(s)}listCheckpoints(e){const[t,s]=this._driveForPath(e);return t.listCheckpoints(s)}restoreCheckpoint(e,t){const[s,n]=this._driveForPath(e);return s.restoreCheckpoint(n,t)}deleteCheckpoint(e,t){const[s,n]=this._driveForPath(e);return s.deleteCheckpoint(n,t)}_toGlobalPath(e,t){return e===this._defaultDrive?o.PathExt.removeSlash(t):`${e.name}:${o.PathExt.removeSlash(t)}`}_driveForPath(e){const t=this.driveName(e),s=this.localPath(e);return t?[this._additionalDrives.get(t),s]:[this._defaultDrive,s]}_onFileChanged(e,t){var s,n;if(e===this._defaultDrive)this._fileChanged.emit(t);else{let i=null,r=null;(null===(s=t.newValue)||void 0===s?void 0:s.path)&&(i=Object.assign(Object.assign({},t.newValue),{path:this._toGlobalPath(e,t.newValue.path)})),(null===(n=t.oldValue)||void 0===n?void 0:n.path)&&(r=Object.assign(Object.assign({},t.oldValue),{path:this._toGlobalPath(e,t.oldValue.path)})),this._fileChanged.emit({type:t.type,newValue:i,oldValue:r})}}};class _{constructor(e={}){var t,s,n;this._isDisposed=!1,this._fileChanged=new c.Signal(this),this.name=null!==(t=e.name)&&void 0!==t?t:"Default",this._apiEndpoint=null!==(s=e.apiEndpoint)&&void 0!==s?s:"api/contents",this.serverSettings=null!==(n=e.serverSettings)&&void 0!==n?n:l.ServerConnection.makeSettings()}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,c.Signal.clearData(this))}async get(e,t){let s=this._getUrl(e);if(t){"notebook"===t.type&&delete t.format;const e=t.content?"1":"0",n=Object.assign(Object.assign({},t),{content:e});s+=o.URLExt.objectToQueryString(n)}const n=this.serverSettings,i=await l.ServerConnection.makeRequest(s,{},n);if(200!==i.status)throw await l.ServerConnection.ResponseError.create(i);const r=await i.json();return h.validateContentsModel(r),r}getDownloadUrl(e){const t=this.serverSettings.baseUrl;let s=o.URLExt.join(t,"files",o.URLExt.encodeParts(e));const n=document.cookie.match("\\b_xsrf=([^;]*)\\b");if(n){const e=new URL(s);e.searchParams.append("_xsrf",n[1]),s=e.toString()}return Promise.resolve(s)}async newUntitled(e={}){var t;let s="{}";e&&(e.ext&&(e.ext=d.normalizeExtension(e.ext)),s=JSON.stringify(e));const n=this.serverSettings,i=this._getUrl(null!==(t=e.path)&&void 0!==t?t:""),r={method:"POST",body:s},o=await l.ServerConnection.makeRequest(i,r,n);if(201!==o.status)throw await l.ServerConnection.ResponseError.create(o);const a=await o.json();return h.validateContentsModel(a),this._fileChanged.emit({type:"new",oldValue:null,newValue:a}),a}async delete(e){const t=this._getUrl(e),s=this.serverSettings,n=await l.ServerConnection.makeRequest(t,{method:"DELETE"},s);if(204!==n.status)throw await l.ServerConnection.ResponseError.create(n);this._fileChanged.emit({type:"delete",oldValue:{path:e},newValue:null})}async rename(e,t){const s=this.serverSettings,n=this._getUrl(e),i={method:"PATCH",body:JSON.stringify({path:t})},r=await l.ServerConnection.makeRequest(n,i,s);if(200!==r.status)throw await l.ServerConnection.ResponseError.create(r);const o=await r.json();return h.validateContentsModel(o),this._fileChanged.emit({type:"rename",oldValue:{path:e},newValue:o}),o}async save(e,t={}){const s=this.serverSettings,n=this._getUrl(e),i={method:"PUT",body:JSON.stringify(t)},r=await l.ServerConnection.makeRequest(n,i,s);if(200!==r.status&&201!==r.status)throw await l.ServerConnection.ResponseError.create(r);const o=await r.json();return h.validateContentsModel(o),this._fileChanged.emit({type:"save",oldValue:null,newValue:o}),o}async copy(e,t){const s=this.serverSettings,n=this._getUrl(t),i={method:"POST",body:JSON.stringify({copy_from:e})},r=await l.ServerConnection.makeRequest(n,i,s);if(201!==r.status)throw await l.ServerConnection.ResponseError.create(r);const o=await r.json();return h.validateContentsModel(o),this._fileChanged.emit({type:"new",oldValue:null,newValue:o}),o}async createCheckpoint(e){const t=this._getUrl(e,"checkpoints"),s=await l.ServerConnection.makeRequest(t,{method:"POST"},this.serverSettings);if(201!==s.status)throw await l.ServerConnection.ResponseError.create(s);const n=await s.json();return h.validateCheckpointModel(n),n}async listCheckpoints(e){const t=this._getUrl(e,"checkpoints"),s=await l.ServerConnection.makeRequest(t,{},this.serverSettings);if(200!==s.status)throw await l.ServerConnection.ResponseError.create(s);const n=await s.json();if(!Array.isArray(n))throw new Error("Invalid Checkpoint list");for(let e=0;eo.URLExt.encodeParts(e))),s=this.serverSettings.baseUrl;return o.URLExt.join(s,this._apiEndpoint,...t)}}t.Drive=_,function(e){e.normalizeExtension=function(e){return e.length>0&&0!==e.indexOf(".")&&(e=`.${e}`),e}}(d||(d={}))},8618:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateCheckpointModel=t.validateContentsModel=void 0;const n=s(74284);t.validateContentsModel=function(e){n.validateProperty(e,"name","string"),n.validateProperty(e,"path","string"),n.validateProperty(e,"type","string"),n.validateProperty(e,"created","string"),n.validateProperty(e,"last_modified","string"),n.validateProperty(e,"mimetype","object"),n.validateProperty(e,"content","object"),n.validateProperty(e,"format","object")},t.validateCheckpointModel=function(e){n.validateProperty(e,"id","string"),n.validateProperty(e,"last_modified","string")}},76591:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),i(s(32756),t),i(s(4851),t),i(s(61613),t),i(s(21941),t),i(s(40944),t),i(s(59566),t),i(s(38542),t),i(s(36090),t),i(s(94629),t),i(s(3713),t),i(s(37017),t)},59917:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.CommHandler=void 0;const o=s(43231),a=r(s(60433));class c extends o.DisposableDelegate{constructor(e,t,s,n){super(n),this._target="",this._id="",this._id=t,this._target=e,this._kernel=s}get commId(){return this._id}get targetName(){return this._target}get onClose(){return this._onClose}set onClose(e){this._onClose=e}get onMsg(){return this._onMsg}set onMsg(e){this._onMsg=e}open(e,t,s=[]){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot open");const n=a.createMessage({msgType:"comm_open",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,target_name:this._target,data:null!=e?e:{}},metadata:t,buffers:s});return this._kernel.sendShellMessage(n,!1,!0)}send(e,t,s=[],n=!0){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot send");const i=a.createMessage({msgType:"comm_msg",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:e},metadata:t,buffers:s});return this._kernel.sendShellMessage(i,!1,n)}close(e,t,s=[]){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot close");const n=a.createMessage({msgType:"comm_close",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:null!=e?e:{}},metadata:t,buffers:s}),i=this._kernel.sendShellMessage(n,!1,!0),r=this._onClose;return r&&r(a.createMessage({msgType:"comm_close",channel:"iopub",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:null!=e?e:{}},metadata:t,buffers:s})),this.dispose(),i}}t.CommHandler=c},87269:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelConnection=void 0;const o=s(55941),a=s(26169),c=s(70942),l=s(76591),h=s(59917),d=r(s(60433)),u=s(17032),_=r(s(79697)),g=r(s(76799)),p=s(21941),m=r(s(36117)),f="_RESTARTING_";class v{constructor(e){var t,s,n,i;this._createSocket=()=>{this._errorIfDisposed(),this._clearSocket(),this._updateConnectionStatus("connecting");const e=this.serverSettings,t=o.URLExt.join(e.wsUrl,m.KERNEL_SERVICE_URL,encodeURIComponent(this._id)),s=t.replace(/^((?:\w+:)?\/\/)(?:[^@\/]+@)/,"$1");console.debug(`Starting WebSocket: ${s}`);let n=o.URLExt.join(t,"channels?session_id="+encodeURIComponent(this._clientId));const i=e.token;e.appendToken&&""!==i&&(n+=`&token=${encodeURIComponent(i)}`),this._ws=new e.WebSocket(n),this._ws.binaryType="arraybuffer";let r=!1;const a=async t=>{var s,n;if(!this._isDisposed){this._reason="",this._model=void 0;try{const s=await m.getKernelModel(this._id,e);this._model=s,"dead"===(null==s?void 0:s.execution_state)?this._updateStatus("dead"):this._onWSClose(t)}catch(e){if(e instanceof l.ServerConnection.NetworkError||503===(null===(s=e.response)||void 0===s?void 0:s.status)||424===(null===(n=e.response)||void 0===n?void 0:n.status)){const e=1e3*w.getRandomIntInclusive(10,30);setTimeout(a,e,t)}else this._reason="Kernel died unexpectedly",this._updateStatus("dead")}}},c=async e=>{r||(r=!0,await a(e))};this._ws.onmessage=this._onWSMessage,this._ws.onopen=this._onWSOpen,this._ws.onclose=c,this._ws.onerror=c},this._onWSOpen=e=>{this._ws.onclose=this._onWSClose,this._ws.onerror=this._onWSClose,this._updateConnectionStatus("connected")},this._onWSMessage=e=>{let t;try{t=_.deserialize(e.data),g.validateMessage(t)}catch(e){throw e.message=`Kernel message validation error: ${e.message}`,e}this._kernelSession=t.header.session,this._msgChain=this._msgChain.then((()=>this._handleMessage(t))).catch((e=>{e.message.startsWith("Canceled future for ")&&console.error(e)})),this._anyMessage.emit({msg:t,direction:"recv"})},this._onWSClose=e=>{this.isDisposed||this._reconnect()},this._id="",this._name="",this._status="unknown",this._connectionStatus="connecting",this._kernelSession="",this._isDisposed=!1,this._ws=null,this._username="",this._reconnectLimit=7,this._reconnectAttempt=0,this._reconnectTimeout=null,this._futures=new Map,this._comms=new Map,this._targetRegistry=Object.create(null),this._info=new a.PromiseDelegate,this._pendingMessages=[],this._statusChanged=new c.Signal(this),this._connectionStatusChanged=new c.Signal(this),this._disposed=new c.Signal(this),this._iopubMessage=new c.Signal(this),this._anyMessage=new c.Signal(this),this._pendingInput=new c.Signal(this),this._unhandledMessage=new c.Signal(this),this._displayIdToParentIds=new Map,this._msgIdToDisplayIds=new Map,this._msgChain=Promise.resolve(),this._hasPendingInput=!1,this._reason="",this._noOp=()=>{},this._name=e.model.name,this._id=e.model.id,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:l.ServerConnection.makeSettings(),this._clientId=null!==(s=e.clientId)&&void 0!==s?s:a.UUID.uuid4(),this._username=null!==(n=e.username)&&void 0!==n?n:"",this.handleComms=null===(i=e.handleComms)||void 0===i||i,this._createSocket()}get disposed(){return this._disposed}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get model(){return this._model||{id:this.id,name:this.name,reason:this._reason}}get anyMessage(){return this._anyMessage}get pendingInput(){return this._pendingInput}get id(){return this._id}get name(){return this._name}get username(){return this._username}get clientId(){return this._clientId}get status(){return this._status}get connectionStatus(){return this._connectionStatus}get isDisposed(){return this._isDisposed}get info(){return this._info.promise}get spec(){return this._specPromise||(this._specPromise=p.KernelSpecAPI.getSpecs(this.serverSettings).then((e=>e.kernelspecs[this._name]))),this._specPromise}clone(e={}){return new v(Object.assign({model:this.model,username:this.username,serverSettings:this.serverSettings,handleComms:!1},e))}dispose(){this.isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._updateConnectionStatus("disconnected"),this._clearKernelState(),this._pendingMessages=[],this._clearSocket(),c.Signal.clearData(this))}sendShellMessage(e,t=!1,s=!0){return this._sendKernelShellControl(u.KernelShellFutureHandler,e,t,s)}sendControlMessage(e,t=!1,s=!0){return this._sendKernelShellControl(u.KernelControlFutureHandler,e,t,s)}_sendKernelShellControl(e,t,s=!1,n=!0){this._sendMessage(t),this._anyMessage.emit({msg:t,direction:"send"});const i=new e((()=>{const e=t.header.msg_id;this._futures.delete(e);const s=this._msgIdToDisplayIds.get(e);s&&(s.forEach((t=>{const s=this._displayIdToParentIds.get(t);if(s){const n=s.indexOf(e);if(-1===n)return;1===s.length?this._displayIdToParentIds.delete(t):(s.splice(n,1),this._displayIdToParentIds.set(t,s))}})),this._msgIdToDisplayIds.delete(e))}),t,s,n,this);return this._futures.set(t.header.msg_id,i),i}_sendMessage(e,t=!0){if("dead"===this.status)throw new Error("Kernel is dead");if((""===this._kernelSession||this._kernelSession===f)&&d.isInfoRequestMsg(e)){if("connected"===this.connectionStatus)return void this._ws.send(_.serialize(e));throw new Error("Could not send message: status is not connected")}if(t&&this._pendingMessages.length>0)this._pendingMessages.push(e);else if("connected"===this.connectionStatus&&this._kernelSession!==f)this._ws.send(_.serialize(e));else{if(!t)throw new Error("Could not send message");this._pendingMessages.push(e)}}async interrupt(){if(this.hasPendingInput=!1,"dead"===this.status)throw new Error("Kernel is dead");return m.interruptKernel(this.id,this.serverSettings)}async restart(){if("dead"===this.status)throw new Error("Kernel is dead");this._updateStatus("restarting"),this._clearKernelState(),this._kernelSession=f,await m.restartKernel(this.id,this.serverSettings),await this.reconnect(),this.hasPendingInput=!1}reconnect(){this._errorIfDisposed();const e=new a.PromiseDelegate,t=(s,n)=>{"connected"===n?(e.resolve(),this.connectionStatusChanged.disconnect(t,this)):"disconnected"===n&&(e.reject(new Error("Kernel connection disconnected")),this.connectionStatusChanged.disconnect(t,this))};return this.connectionStatusChanged.connect(t,this),this._reconnectAttempt=0,this._reconnect(),e.promise}async shutdown(){"dead"!==this.status&&await m.shutdownKernel(this.id,this.serverSettings),this.handleShutdown()}handleShutdown(){this._updateStatus("dead"),this.dispose()}async requestKernelInfo(){const e=d.createMessage({msgType:"kernel_info_request",channel:"shell",username:this._username,session:this._clientId,content:{}});let t;try{t=await w.handleShellMessage(this,e)}catch(e){if(this.isDisposed)return;throw e}if(this._errorIfDisposed(),t)return void 0===t.content.status&&(t.content.status="ok"),"ok"!==t.content.status?(this._info.reject("Kernel info reply errored"),t):(this._info.resolve(t.content),this._kernelSession=t.header.session,t)}requestComplete(e){const t=d.createMessage({msgType:"complete_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestInspect(e){const t=d.createMessage({msgType:"inspect_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestHistory(e){const t=d.createMessage({msgType:"history_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestExecute(e,t=!0,s){const n=d.createMessage({msgType:"execute_request",channel:"shell",username:this._username,session:this._clientId,content:Object.assign(Object.assign({},{silent:!1,store_history:!0,user_expressions:{},allow_stdin:!0,stop_on_error:!1}),e),metadata:s});return this.sendShellMessage(n,!0,t)}requestDebug(e,t=!0){const s=d.createMessage({msgType:"debug_request",channel:"control",username:this._username,session:this._clientId,content:e});return this.sendControlMessage(s,!0,t)}requestIsComplete(e){const t=d.createMessage({msgType:"is_complete_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}requestCommInfo(e){const t=d.createMessage({msgType:"comm_info_request",channel:"shell",username:this._username,session:this._clientId,content:e});return w.handleShellMessage(this,t)}sendInputReply(e,t){const s=d.createMessage({msgType:"input_reply",channel:"stdin",username:this._username,session:this._clientId,content:e});t&&(s.parent_header=t),this._sendMessage(s),this._anyMessage.emit({msg:s,direction:"send"}),this.hasPendingInput=!1}createComm(e,t=a.UUID.uuid4()){if(!this.handleComms)throw new Error("Comms are disabled on this kernel connection");if(this._comms.has(t))throw new Error("Comm is already created");const s=new h.CommHandler(e,t,this,(()=>{this._unregisterComm(t)}));return this._comms.set(t,s),s}hasComm(e){return this._comms.has(e)}registerCommTarget(e,t){this.handleComms&&(this._targetRegistry[e]=t)}removeCommTarget(e,t){this.handleComms&&(this.isDisposed||this._targetRegistry[e]!==t||delete this._targetRegistry[e])}registerMessageHook(e,t){var s;const n=null===(s=this._futures)||void 0===s?void 0:s.get(e);n&&n.registerMessageHook(t)}removeMessageHook(e,t){var s;const n=null===(s=this._futures)||void 0===s?void 0:s.get(e);n&&n.removeMessageHook(t)}removeInputGuard(){this.hasPendingInput=!1}async _handleDisplayId(e,t){var s,n;const i=t.parent_header.msg_id;let r=this._displayIdToParentIds.get(e);if(r){const e={header:a.JSONExt.deepCopy(t.header),parent_header:a.JSONExt.deepCopy(t.parent_header),metadata:a.JSONExt.deepCopy(t.metadata),content:a.JSONExt.deepCopy(t.content),channel:t.channel,buffers:t.buffers?t.buffers.slice():[]};e.header.msg_type="update_display_data",await Promise.all(r.map((async t=>{const s=this._futures&&this._futures.get(t);s&&await s.handleMsg(e)})))}if("update_display_data"===t.header.msg_type)return!0;r=null!==(s=this._displayIdToParentIds.get(e))&&void 0!==s?s:[],-1===r.indexOf(i)&&r.push(i),this._displayIdToParentIds.set(e,r);const o=null!==(n=this._msgIdToDisplayIds.get(i))&&void 0!==n?n:[];return-1===o.indexOf(i)&&o.push(i),this._msgIdToDisplayIds.set(i,o),!1}_clearSocket(){null!==this._ws&&(this._ws.onopen=this._noOp,this._ws.onclose=this._noOp,this._ws.onerror=this._noOp,this._ws.onmessage=this._noOp,this._ws.close(),this._ws=null)}_updateStatus(e){this._status!==e&&"dead"!==this._status&&(this._status=e,w.logKernelStatus(this),this._statusChanged.emit(e),"dead"===e&&this.dispose())}_sendPending(){for(;"connected"===this.connectionStatus&&this._kernelSession!==f&&this._pendingMessages.length>0;)this._sendMessage(this._pendingMessages[0],!1),this._pendingMessages.shift()}_clearKernelState(){this._kernelSession="",this._pendingMessages=[],this._futures.forEach((e=>{e.dispose()})),this._comms.forEach((e=>{e.dispose()})),this._msgChain=Promise.resolve(),this._futures=new Map,this._comms=new Map,this._displayIdToParentIds.clear(),this._msgIdToDisplayIds.clear()}_assertCurrentMessage(e){if(this._errorIfDisposed(),e.header.session!==this._kernelSession)throw new Error(`Canceling handling of old message: ${e.header.msg_type}`)}async _handleCommOpen(e){this._assertCurrentMessage(e);const t=e.content,s=new h.CommHandler(t.target_name,t.comm_id,this,(()=>{this._unregisterComm(t.comm_id)}));this._comms.set(t.comm_id,s);try{const n=await w.loadObject(t.target_name,t.target_module,this._targetRegistry);await n(s,e)}catch(e){throw s.close(),console.error("Exception opening new comm"),e}}async _handleCommClose(e){this._assertCurrentMessage(e);const t=e.content,s=this._comms.get(t.comm_id);if(!s)return void console.error("Comm not found for comm id "+t.comm_id);this._unregisterComm(s.commId);const n=s.onClose;n&&await n(e),s.dispose()}async _handleCommMsg(e){this._assertCurrentMessage(e);const t=e.content,s=this._comms.get(t.comm_id);if(!s)return;const n=s.onMsg;n&&await n(e)}_unregisterComm(e){this._comms.delete(e)}_updateConnectionStatus(e){if(this._connectionStatus!==e){if(this._connectionStatus=e,"connecting"!==e&&(this._reconnectAttempt=0,clearTimeout(this._reconnectTimeout)),"dead"!==this.status)if("connected"===e){let e=this._kernelSession===f,t=this.requestKernelInfo(),s=!1,n=()=>{s||(s=!0,e&&this._kernelSession===f&&(this._kernelSession=""),clearTimeout(i),this._pendingMessages.length>0&&this._sendPending())};t.then(n);let i=setTimeout(n,3e3)}else this._updateStatus("unknown");this._connectionStatusChanged.emit(e)}}async _handleMessage(e){var t,s;let n=!1;if(e.parent_header&&"iopub"===e.channel&&(d.isDisplayDataMsg(e)||d.isUpdateDisplayDataMsg(e)||d.isExecuteResultMsg(e))){const s=(null!==(t=e.content.transient)&&void 0!==t?t:{}).display_id;s&&(n=await this._handleDisplayId(s,e),this._assertCurrentMessage(e))}if(!n&&e.parent_header){const t=e.parent_header,n=null===(s=this._futures)||void 0===s?void 0:s.get(t.msg_id);if(n)await n.handleMsg(e),this._assertCurrentMessage(e);else{const s=t.session===this.clientId;"iopub"!==e.channel&&s&&this._unhandledMessage.emit(e)}}if("iopub"===e.channel){switch(e.header.msg_type){case"status":{const t=e.content.execution_state;"restarting"===t&&Promise.resolve().then((async()=>{this._updateStatus("autorestarting"),this._clearKernelState(),await this.reconnect()})),this._updateStatus(t);break}case"comm_open":this.handleComms&&await this._handleCommOpen(e);break;case"comm_msg":this.handleComms&&await this._handleCommMsg(e);break;case"comm_close":this.handleComms&&await this._handleCommClose(e)}this.isDisposed||(this._assertCurrentMessage(e),this._iopubMessage.emit(e))}}_reconnect(){if(this._errorIfDisposed(),clearTimeout(this._reconnectTimeout),this._reconnectAttempt{if(t){if("undefined"==typeof requirejs)throw new Error("requirejs not found");requirejs([t],(s=>{void 0===s[e]?i(new Error(`Object '${e}' not found in module '${t}'`)):n(s[e])}),i)}else(null==s?void 0:s[e])?n(s[e]):i(new Error(`Object '${e}' not found in registry`))}))},e.getRandomIntInclusive=function(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e}}(w||(w={}))},17032:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelShellFutureHandler=t.KernelControlFutureHandler=t.KernelFutureHandler=void 0;const o=s(26169),a=s(43231),c=r(s(60433));class l extends a.DisposableDelegate{constructor(e,t,s,n,i){super(e),this._status=0,this._stdin=h.noOp,this._iopub=h.noOp,this._reply=h.noOp,this._done=new o.PromiseDelegate,this._hooks=new h.HookList,this._disposeOnDone=!0,this._msg=t,s||this._setFlag(h.KernelFutureFlag.GotReply),this._disposeOnDone=n,this._kernel=i}get msg(){return this._msg}get done(){return this._done.promise}get onReply(){return this._reply}set onReply(e){this._reply=e}get onIOPub(){return this._iopub}set onIOPub(e){this._iopub=e}get onStdin(){return this._stdin}set onStdin(e){this._stdin=e}registerMessageHook(e){if(this.isDisposed)throw new Error("Kernel future is disposed");this._hooks.add(e)}removeMessageHook(e){this.isDisposed||this._hooks.remove(e)}sendInputReply(e,t){this._kernel.sendInputReply(e,t)}dispose(){this._stdin=h.noOp,this._iopub=h.noOp,this._reply=h.noOp,this._hooks=null,this._testFlag(h.KernelFutureFlag.IsDone)||(this._done.promise.catch((()=>{})),this._done.reject(new Error(`Canceled future for ${this.msg.header.msg_type} message before replies were done`))),super.dispose()}async handleMsg(e){switch(e.channel){case"control":case"shell":e.channel===this.msg.channel&&e.parent_header.msg_id===this.msg.header.msg_id&&await this._handleReply(e);break;case"stdin":await this._handleStdin(e);break;case"iopub":await this._handleIOPub(e)}}async _handleReply(e){const t=this._reply;t&&await t(e),this._replyMsg=e,this._setFlag(h.KernelFutureFlag.GotReply),this._testFlag(h.KernelFutureFlag.GotIdle)&&this._handleDone()}async _handleStdin(e){this._kernel.hasPendingInput=!0;const t=this._stdin;t&&await t(e)}async _handleIOPub(e){const t=await this._hooks.process(e),s=this._iopub;t&&s&&await s(e),c.isStatusMsg(e)&&"idle"===e.content.execution_state&&(this._setFlag(h.KernelFutureFlag.GotIdle),this._testFlag(h.KernelFutureFlag.GotReply)&&this._handleDone())}_handleDone(){this._testFlag(h.KernelFutureFlag.IsDone)||(this._setFlag(h.KernelFutureFlag.IsDone),this._done.resolve(this._replyMsg),this._disposeOnDone&&this.dispose())}_testFlag(e){return 0!=(this._status&e)}_setFlag(e){this._status|=e}}var h;t.KernelFutureHandler=l,t.KernelControlFutureHandler=class extends l{},t.KernelShellFutureHandler=class extends l{},function(e){e.noOp=()=>{};const t="function"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate;let s;e.HookList=class{constructor(){this._hooks=[]}add(e){this.remove(e),this._hooks.push(e)}remove(e){const t=this._hooks.indexOf(e);t>=0&&(this._hooks[t]=null,this._scheduleCompact())}async process(e){await this._processing;const t=new o.PromiseDelegate;let s;this._processing=t.promise;for(let n=this._hooks.length-1;n>=0;n--){const i=this._hooks[n];if(null!==i){try{s=await i(e)}catch(e){s=!0,console.error(e)}if(!1===s)return t.resolve(void 0),!1}}return t.resolve(void 0),!0}_scheduleCompact(){this._compactScheduled||(this._compactScheduled=!0,t((()=>{this._processing=this._processing.then((()=>{this._compactScheduled=!1,this._compact()}))})))}_compact(){let e=0;for(let t=0,s=this._hooks.length;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},55780:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KernelManager=void 0;const n=s(43892),i=s(61313),r=s(70942),o=s(76591),a=s(5179),c=s(36117),l=s(87269);class h extends a.BaseManager{constructor(e={}){var t;super(e),this._isReady=!1,this._kernelConnections=new Set,this._models=new Map,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:KernelManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._models.clear(),this._kernelConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}connectTo(e){var t;const{id:s}=e.model;let n=null===(t=e.handleComms)||void 0===t||t;if(void 0===e.handleComms)for(const e of this._kernelConnections)if(e.id===s&&e.handleComms){n=!1;break}const i=new l.KernelConnection(Object.assign(Object.assign({handleComms:n},e),{serverSettings:this.serverSettings}));return this._onStarted(i),this._models.has(s)||this.refreshRunning().catch((()=>{})),i}running(){return n.iter([...this._models.values()])}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e={},t={}){const s=await c.startNew(e,this.serverSettings);return this.connectTo(Object.assign(Object.assign({},t),{model:s}))}async shutdown(e){await c.shutdownKernel(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all([...this._models.keys()].map((e=>c.shutdownKernel(e,this.serverSettings)))),await this.refreshRunning()}async findById(e){return this._models.has(e)||await this.refreshRunning(),this._models.get(e)}async requestRunning(){var e,t;let s;try{s=await c.listRunning(this.serverSettings)}catch(s){throw(s instanceof o.ServerConnection.NetworkError||503===(null===(e=s.response)||void 0===e?void 0:e.status)||424===(null===(t=s.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(s),s}this.isDisposed||this._models.size===s.length&&n.every(s,(e=>{const t=this._models.get(e.id);return!!t&&t.name===e.name}))||(this._models=new Map(s.map((e=>[e.id,e]))),this._kernelConnections.forEach((e=>{this._models.has(e.id)||e.handleShutdown()})),this._runningChanged.emit(s))}_onStarted(e){this._kernelConnections.add(e),e.statusChanged.connect(this._onStatusChanged,this),e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._kernelConnections.delete(e),this.refreshRunning().catch((()=>{}))}_onStatusChanged(e,t){"dead"===t&&this.refreshRunning().catch((()=>{}))}}t.KernelManager=h},60433:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isInputReplyMsg=t.isInputRequestMsg=t.isDebugReplyMsg=t.isDebugRequestMsg=t.isExecuteReplyMsg=t.isInfoRequestMsg=t.isCommMsgMsg=t.isCommCloseMsg=t.isCommOpenMsg=t.isDebugEventMsg=t.isClearOutputMsg=t.isStatusMsg=t.isErrorMsg=t.isExecuteResultMsg=t.isExecuteInputMsg=t.isUpdateDisplayDataMsg=t.isDisplayDataMsg=t.isStreamMsg=t.createMessage=void 0;const n=s(26169);t.createMessage=function(e){var t,s,i,r,o;return{buffers:null!==(t=e.buffers)&&void 0!==t?t:[],channel:e.channel,content:e.content,header:{date:(new Date).toISOString(),msg_id:null!==(s=e.msgId)&&void 0!==s?s:n.UUID.uuid4(),msg_type:e.msgType,session:e.session,username:null!==(i=e.username)&&void 0!==i?i:"",version:"5.2"},metadata:null!==(r=e.metadata)&&void 0!==r?r:{},parent_header:null!==(o=e.parentHeader)&&void 0!==o?o:{}}},t.isStreamMsg=function(e){return"stream"===e.header.msg_type},t.isDisplayDataMsg=function(e){return"display_data"===e.header.msg_type},t.isUpdateDisplayDataMsg=function(e){return"update_display_data"===e.header.msg_type},t.isExecuteInputMsg=function(e){return"execute_input"===e.header.msg_type},t.isExecuteResultMsg=function(e){return"execute_result"===e.header.msg_type},t.isErrorMsg=function(e){return"error"===e.header.msg_type},t.isStatusMsg=function(e){return"status"===e.header.msg_type},t.isClearOutputMsg=function(e){return"clear_output"===e.header.msg_type},t.isDebugEventMsg=function(e){return"debug_event"===e.header.msg_type},t.isCommOpenMsg=function(e){return"comm_open"===e.header.msg_type},t.isCommCloseMsg=function(e){return"comm_close"===e.header.msg_type},t.isCommMsgMsg=function(e){return"comm_msg"===e.header.msg_type},t.isInfoRequestMsg=function(e){return"kernel_info_request"===e.header.msg_type},t.isExecuteReplyMsg=function(e){return"execute_reply"===e.header.msg_type},t.isDebugRequestMsg=function(e){return"debug_request"===e.header.msg_type},t.isDebugReplyMsg=function(e){return"debug_reply"===e.header.msg_type},t.isInputRequestMsg=function(e){return"input_request"===e.header.msg_type},t.isInputReplyMsg=function(e){return"input_reply"===e.header.msg_type}},36117:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getKernelModel=t.shutdownKernel=t.interruptKernel=t.restartKernel=t.startNew=t.listRunning=t.KERNEL_SERVICE_URL=void 0;const n=s(59566),i=s(55941),r=s(76799);t.KERNEL_SERVICE_URL="api/kernels",t.listRunning=async function(e=n.ServerConnection.makeSettings()){const s=i.URLExt.join(e.baseUrl,t.KERNEL_SERVICE_URL),o=await n.ServerConnection.makeRequest(s,{},e);if(200!==o.status)throw await n.ServerConnection.ResponseError.create(o);const a=await o.json();return r.validateModels(a),a},t.startNew=async function(e={},s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL),a={method:"POST",body:JSON.stringify(e)},c=await n.ServerConnection.makeRequest(o,a,s);if(201!==c.status)throw await n.ServerConnection.ResponseError.create(c);const l=await c.json();return r.validateModel(l),l},t.restartKernel=async function(e,s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"restart"),a=await n.ServerConnection.makeRequest(o,{method:"POST"},s);if(200!==a.status)throw await n.ServerConnection.ResponseError.create(a);const c=await a.json();r.validateModel(c)},t.interruptKernel=async function(e,s=n.ServerConnection.makeSettings()){const r=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"interrupt"),o=await n.ServerConnection.makeRequest(r,{method:"POST"},s);if(204!==o.status)throw await n.ServerConnection.ResponseError.create(o)},t.shutdownKernel=async function(e,s=n.ServerConnection.makeSettings()){const r=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e)),o=await n.ServerConnection.makeRequest(r,{method:"DELETE"},s);if(404===o.status){const t=`The kernel "${e}" does not exist on the server`;console.warn(t)}else if(204!==o.status)throw await n.ServerConnection.ResponseError.create(o)},t.getKernelModel=async function(e,s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e)),a=await n.ServerConnection.makeRequest(o,{},s);if(404===a.status)return;if(200!==a.status)throw await n.ServerConnection.ResponseError.create(a);const c=await a.json();return r.validateModel(c),c}},79697:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.serialize=t.deserialize=void 0,t.deserialize=function(e){let t;return t="string"==typeof e?JSON.parse(e):function(e){const t=new DataView(e),s=t.getUint32(0),n=[];if(s<2)throw new Error("Invalid incoming Kernel Message");for(let e=1;e<=s;e++)n.push(t.getUint32(4*e));const i=new Uint8Array(e.slice(n[0],n[1])),r=JSON.parse(new TextDecoder("utf8").decode(i));r.buffers=[];for(let t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateModels=t.validateModel=t.validateMessage=void 0;const n=s(74284),i=["username","version","session","msg_id","msg_type"],r={stream:{name:"string",text:"string"},display_data:{data:"object",metadata:"object"},execute_input:{code:"string",execution_count:"number"},execute_result:{execution_count:"number",data:"object",metadata:"object"},error:{ename:"string",evalue:"string",traceback:"object"},status:{execution_state:["string",["starting","idle","busy","restarting","dead"]]},clear_output:{wait:"boolean"},comm_open:{comm_id:"string",target_name:"string",data:"object"},comm_msg:{comm_id:"string",data:"object"},comm_close:{comm_id:"string"},shutdown_reply:{restart:"boolean"}};function o(e){n.validateProperty(e,"name","string"),n.validateProperty(e,"id","string")}t.validateMessage=function(e){n.validateProperty(e,"metadata","object"),n.validateProperty(e,"content","object"),n.validateProperty(e,"channel","string"),function(e){for(let t=0;to(e)))}},21941:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t},o=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelSpecAPI=t.KernelSpec=void 0;const a=r(s(65132));t.KernelSpec=a;const c=r(s(76735));t.KernelSpecAPI=c,o(s(48750),t)},65132:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},48750:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelSpecManager=void 0;const o=s(26169),a=s(61313),c=s(70942),l=r(s(76735)),h=s(5179);class d extends h.BaseManager{constructor(e={}){var t;super(e),this._isReady=!1,this._connectionFailure=new c.Signal(this),this._specs=null,this._specsChanged=new c.Signal(this),this._ready=Promise.all([this.requestSpecs()]).then((e=>{})).catch((e=>{})).then((()=>{this.isDisposed||(this._isReady=!0)})),this._pollSpecs=new a.Poll({auto:!1,factory:()=>this.requestSpecs(),frequency:{interval:61e3,backoff:!0,max:3e5},name:"@jupyterlab/services:KernelSpecManager#specs",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this.ready.then((()=>{this._pollSpecs.start()}))}get isReady(){return this._isReady}get ready(){return this._ready}get specs(){return this._specs}get specsChanged(){return this._specsChanged}get connectionFailure(){return this._connectionFailure}dispose(){this._pollSpecs.dispose(),super.dispose()}async refreshSpecs(){await this._pollSpecs.refresh(),await this._pollSpecs.tick}async requestSpecs(){const e=await l.getSpecs(this.serverSettings);this.isDisposed||o.JSONExt.deepEqual(e,this._specs)||(this._specs=e,this._specsChanged.emit(e))}}t.KernelSpecManager=d},76735:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSpecs=void 0;const n=s(59566),i=s(88872),r=s(55941);t.getSpecs=async function(e=n.ServerConnection.makeSettings()){const t=r.URLExt.join(e.baseUrl,"api/kernelspecs"),s=await n.ServerConnection.makeRequest(t,{},e);if(200!==s.status)throw await n.ServerConnection.ResponseError.create(s);const o=await s.json();return i.validateSpecModels(o)}},88872:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSpecModels=t.validateSpecModel=void 0;const n=s(74284);function i(e){const t=e.spec;if(!t)throw new Error("Invalid kernel spec");n.validateProperty(e,"name","string"),n.validateProperty(e,"resources","object"),n.validateProperty(t,"language","string"),n.validateProperty(t,"display_name","string"),n.validateProperty(t,"argv","array");let s=null;t.hasOwnProperty("metadata")&&(n.validateProperty(t,"metadata","object"),s=t.metadata);let i=null;return t.hasOwnProperty("env")&&(n.validateProperty(t,"env","object"),i=t.env),{name:e.name,resources:e.resources,language:t.language,display_name:t.display_name,argv:t.argv,metadata:s,env:i}}t.validateSpecModel=i,t.validateSpecModels=function(e){if(!e.hasOwnProperty("kernelspecs"))throw new Error("No kernelspecs found");let t=Object.keys(e.kernelspecs);const s=Object.create(null);let n=e.default;for(let n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceManager=void 0;const n=s(70942),i=s(75334),r=s(37017),o=s(4851),a=s(21941),c=s(38542),l=s(36090),h=s(94629),d=s(59566),u=s(3713),_=s(61613);t.ServiceManager=class{constructor(e={}){var t,s;this._isDisposed=!1,this._connectionFailure=new n.Signal(this),this._isReady=!1;const g=e.defaultDrive,p=null!==(t=e.serverSettings)&&void 0!==t?t:d.ServerConnection.makeSettings(),m={defaultDrive:g,serverSettings:p,standby:null!==(s=e.standby)&&void 0!==s?s:"when-hidden"},f=new _.KernelManager(m);this.serverSettings=p,this.contents=new o.ContentsManager(m),this.sessions=new c.SessionManager(Object.assign(Object.assign({},m),{kernelManager:f})),this.settings=new l.SettingManager(m),this.terminals=new h.TerminalManager(m),this.builder=new i.BuildManager(m),this.workspaces=new u.WorkspaceManager(m),this.nbconvert=new r.NbConvertManager(m),this.kernelspecs=new a.KernelSpecManager(m),this.kernelspecs.connectionFailure.connect(this._onConnectionFailure,this),this.sessions.connectionFailure.connect(this._onConnectionFailure,this),this.terminals.connectionFailure.connect(this._onConnectionFailure,this);const v=[this.sessions.ready,this.kernelspecs.ready];this.terminals.isAvailable()&&v.push(this.terminals.ready),this._readyPromise=Promise.all(v).then((()=>{this._isReady=!0}))}get connectionFailure(){return this._connectionFailure}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,n.Signal.clearData(this),this.contents.dispose(),this.sessions.dispose(),this.terminals.dispose())}get isReady(){return this._isReady}get ready(){return this._readyPromise}_onConnectionFailure(e,t){this._connectionFailure.emit(t)}}},37017:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NbConvertManager=void 0;const n=s(55941),i=s(59566);t.NbConvertManager=class{constructor(e={}){var t;this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:i.ServerConnection.makeSettings()}async getExportFormats(){const e=this.serverSettings.baseUrl,t=n.URLExt.join(e,"api/nbconvert"),{serverSettings:s}=this,r=await i.ServerConnection.makeRequest(t,{},s);if(200!==r.status)throw await i.ServerConnection.ResponseError.create(r);const o=await r.json(),a={};return Object.keys(o).forEach((function(e){const t=o[e].output_mimetype;a[e]={output_mimetype:t}})),a}}},59566:(e,t,s)=>{"use strict";var n,i,r,o=s(18533);Object.defineProperty(t,"__esModule",{value:!0}),t.ServerConnection=void 0;const a=s(55941);let c,l,h,d;if("undefined"==typeof window){const e=s(88741);c=null!==(n=s.g.fetch)&&void 0!==n?n:e,h=null!==(i=s.g.Request)&&void 0!==i?i:e.Request,l=null!==(r=s.g.Headers)&&void 0!==r?r:e.Headers,d=s(80396)}else c=fetch,h=Request,l=Headers,d=WebSocket;var u,_;!function(e){e.makeSettings=function(e){return _.makeSettings(e)},e.makeRequest=function(e,t,s){return _.handleRequest(e,t,s)};class t extends Error{constructor(e,t=`Invalid response: ${e.status} ${e.statusText}`,s=""){super(t),this.response=e,this.traceback=s}static async create(e){try{const s=await e.json();return s.traceback&&console.error(s.traceback),s.message?new t(e,s.message):new t(e)}catch(s){return console.debug(s),new t(e)}}}e.ResponseError=t;class s extends TypeError{constructor(e){super(e.message),this.stack=e.stack}}e.NetworkError=s}(u=t.ServerConnection||(t.ServerConnection={})),function(e){e.makeSettings=function(e={}){var t;const s=a.PageConfig.getBaseUrl(),n=a.PageConfig.getWsUrl(),i=a.URLExt.normalize(e.baseUrl)||s;let r=e.wsUrl;return r||i!==s||(r=n),r||0!==i.indexOf("http")||(r="ws"+i.slice(4)),r=null!=r?r:n,Object.assign(Object.assign({init:{cache:"no-store",credentials:"same-origin"},fetch:c,Headers:l,Request:h,WebSocket:d,token:a.PageConfig.getToken(),appUrl:a.PageConfig.getOption("appUrl"),appendToken:"undefined"==typeof window||void 0!==(null===(t=void 0===o?void 0:{})||void 0===t?void 0:t.JEST_WORKER_ID)||a.URLExt.getHostName(s)!==a.URLExt.getHostName(r)},e),{baseUrl:i,wsUrl:r})},e.handleRequest=function(e,t,s){var n;if(0!==e.indexOf(s.baseUrl))throw new Error("Can only be used for notebook server requests");"no-store"===(null!==(n=t.cache)&&void 0!==n?n:s.init.cache)&&(e+=(/\?/.test(e)?"&":"?")+(new Date).getTime());const i=new s.Request(e,Object.assign(Object.assign({},s.init),t));let r=!1;if(s.token&&(r=!0,i.headers.append("Authorization",`token ${s.token}`)),"undefined"!=typeof document&&(null===document||void 0===document?void 0:document.cookie)){const e=function(e){const t=document.cookie.match("\\b_xsrf=([^;]*)\\b");return null==t?void 0:t[1]}();void 0!==e&&(r=!0,i.headers.append("X-XSRFToken",e))}return!i.headers.has("Content-Type")&&r&&i.headers.set("Content-Type","application/json"),s.fetch.call(null,i).catch((e=>{throw new u.NetworkError(e)}))}}(_||(_={}))},12361:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionConnection=void 0;const n=s(70942),i=s(76591),r=s(967),o=s(26169);t.SessionConnection=class{constructor(e){var t,s,r,a;this._id="",this._path="",this._name="",this._type="",this._kernel=null,this._isDisposed=!1,this._disposed=new n.Signal(this),this._kernelChanged=new n.Signal(this),this._statusChanged=new n.Signal(this),this._connectionStatusChanged=new n.Signal(this),this._pendingInput=new n.Signal(this),this._iopubMessage=new n.Signal(this),this._unhandledMessage=new n.Signal(this),this._anyMessage=new n.Signal(this),this._propertyChanged=new n.Signal(this),this._id=e.model.id,this._name=e.model.name,this._path=e.model.path,this._type=e.model.type,this._username=null!==(t=e.username)&&void 0!==t?t:"",this._clientId=null!==(s=e.clientId)&&void 0!==s?s:o.UUID.uuid4(),this._connectToKernel=e.connectToKernel,this._kernelConnectionOptions=null!==(r=e.kernelConnectionOptions)&&void 0!==r?r:{},this.serverSettings=null!==(a=e.serverSettings)&&void 0!==a?a:i.ServerConnection.makeSettings(),this.setupKernel(e.model.kernel)}get disposed(){return this._disposed}get kernelChanged(){return this._kernelChanged}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get pendingInput(){return this._pendingInput}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get anyMessage(){return this._anyMessage}get propertyChanged(){return this._propertyChanged}get id(){return this._id}get kernel(){return this._kernel}get path(){return this._path}get type(){return this._type}get name(){return this._name}get model(){return{id:this.id,kernel:this.kernel&&{id:this.kernel.id,name:this.kernel.name},path:this._path,type:this._type,name:this._name}}get isDisposed(){return this._isDisposed}update(e){const t=this.model;if(this._path=e.path,this._name=e.name,this._type=e.type,null===this._kernel&&null!==e.kernel||null!==this._kernel&&null===e.kernel||null!==this._kernel&&null!==e.kernel&&this._kernel.id!==e.kernel.id){null!==this._kernel&&this._kernel.dispose();const t=this._kernel||null;this.setupKernel(e.kernel);const s=this._kernel||null;this._kernelChanged.emit({name:"kernel",oldValue:t,newValue:s})}this._handleModelChange(t)}dispose(){if(!this.isDisposed){if(this._isDisposed=!0,this._disposed.emit(),this._kernel){this._kernel.dispose();const e=this._kernel;this._kernel=null;const t=this._kernel;this._kernelChanged.emit({name:"kernel",oldValue:e,newValue:t})}n.Signal.clearData(this)}}async setPath(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({path:e})}async setName(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({name:e})}async setType(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({type:e})}async changeKernel(e){if(this.isDisposed)throw new Error("Session is disposed");return await this._patch({kernel:e}),this.kernel}async shutdown(){if(this.isDisposed)throw new Error("Session is disposed");await r.shutdownSession(this.id,this.serverSettings),this.dispose()}setupKernel(e){if(null===e)return void(this._kernel=null);const t=this._connectToKernel(Object.assign(Object.assign({},this._kernelConnectionOptions),{model:e,username:this._username,clientId:this._clientId,serverSettings:this.serverSettings}));this._kernel=t,t.statusChanged.connect(this.onKernelStatus,this),t.connectionStatusChanged.connect(this.onKernelConnectionStatus,this),t.pendingInput.connect(this.onPendingInput,this),t.unhandledMessage.connect(this.onUnhandledMessage,this),t.iopubMessage.connect(this.onIOPubMessage,this),t.anyMessage.connect(this.onAnyMessage,this)}onKernelStatus(e,t){this._statusChanged.emit(t)}onKernelConnectionStatus(e,t){this._connectionStatusChanged.emit(t)}onPendingInput(e,t){this._pendingInput.emit(t)}onIOPubMessage(e,t){this._iopubMessage.emit(t)}onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}onAnyMessage(e,t){this._anyMessage.emit(t)}async _patch(e){const t=await r.updateSession(Object.assign(Object.assign({},e),{id:this._id}),this.serverSettings);return this.update(t),t}_handleModelChange(e){e.name!==this._name&&this._propertyChanged.emit("name"),e.type!==this._type&&this._propertyChanged.emit("type"),e.path!==this._path&&this._propertyChanged.emit("path")}}},38542:function(e,t,s){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,s,n){void 0===n&&(n=s),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,n){void 0===n&&(n=s),e[n]=t[s]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var s in e)"default"!==s&&Object.prototype.hasOwnProperty.call(e,s)&&n(t,e,s);return i(t,e),t},o=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||n(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.SessionAPI=t.Session=void 0;const a=r(s(34061));t.Session=a;const c=r(s(967));t.SessionAPI=c,o(s(97953),t)},97953:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionManager=void 0;const n=s(43892),i=s(61313),r=s(70942),o=s(59566),a=s(5179),c=s(12361),l=s(967);class h extends a.BaseManager{constructor(e){var t;super(e),this._isReady=!1,this._sessionConnections=new Set,this._models=new Map,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),this._connectToKernel=e=>this._kernelManager.connectTo(e),this._kernelManager=e.kernelManager,this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:SessionManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,await this._kernelManager.ready,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._models.clear(),this._sessionConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}connectTo(e){const t=new c.SessionConnection(Object.assign(Object.assign({},e),{connectToKernel:this._connectToKernel,serverSettings:this.serverSettings}));return this._onStarted(t),this._models.has(e.model.id)||this.refreshRunning().catch((()=>{})),t}running(){return n.iter([...this._models.values()])}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e,t={}){const s=await l.startSession(e,this.serverSettings);return await this.refreshRunning(),this.connectTo(Object.assign(Object.assign({},t),{model:s}))}async shutdown(e){await l.shutdownSession(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all([...this._models.keys()].map((e=>l.shutdownSession(e,this.serverSettings)))),await this.refreshRunning()}async stopIfNeeded(e){try{const t=(await l.listRunning(this.serverSettings)).filter((t=>t.path===e));if(1===t.length){const e=t[0].id;await this.shutdown(e)}}catch(e){}}async findById(e){return this._models.has(e)||await this.refreshRunning(),this._models.get(e)}async findByPath(e){for(const t of this._models.values())if(t.path===e)return t;await this.refreshRunning();for(const t of this._models.values())if(t.path===e)return t}async requestRunning(){var e,t;let s;try{s=await l.listRunning(this.serverSettings)}catch(s){throw(s instanceof o.ServerConnection.NetworkError||503===(null===(e=s.response)||void 0===e?void 0:e.status)||424===(null===(t=s.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(s),s}this.isDisposed||this._models.size===s.length&&n.every(s,(e=>{var t,s,n,i;const r=this._models.get(e.id);return!!r&&(null===(t=r.kernel)||void 0===t?void 0:t.id)===(null===(s=e.kernel)||void 0===s?void 0:s.id)&&(null===(n=r.kernel)||void 0===n?void 0:n.name)===(null===(i=e.kernel)||void 0===i?void 0:i.name)&&r.name===e.name&&r.path===e.path&&r.type===e.type}))||(this._models=new Map(s.map((e=>[e.id,e]))),this._sessionConnections.forEach((e=>{this._models.has(e.id)?e.update(this._models.get(e.id)):e.dispose()})),this._runningChanged.emit(s))}_onStarted(e){this._sessionConnections.add(e),e.disposed.connect(this._onDisposed,this),e.propertyChanged.connect(this._onChanged,this),e.kernelChanged.connect(this._onChanged,this)}_onDisposed(e){this._sessionConnections.delete(e),this.refreshRunning().catch((()=>{}))}_onChanged(){this.refreshRunning().catch((()=>{}))}}t.SessionManager=h},967:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateSession=t.startSession=t.getSessionModel=t.shutdownSession=t.getSessionUrl=t.listRunning=t.SESSION_SERVICE_URL=void 0;const n=s(59566),i=s(55941),r=s(85833);function o(e,s){return i.URLExt.join(e,t.SESSION_SERVICE_URL,s)}t.SESSION_SERVICE_URL="api/sessions",t.listRunning=async function(e=n.ServerConnection.makeSettings()){const s=i.URLExt.join(e.baseUrl,t.SESSION_SERVICE_URL),o=await n.ServerConnection.makeRequest(s,{},e);if(200!==o.status)throw await n.ServerConnection.ResponseError.create(o);const a=await o.json();if(!Array.isArray(a))throw new Error("Invalid Session list");return a.forEach((e=>{r.updateLegacySessionModel(e),r.validateModel(e)})),a},t.getSessionUrl=o,t.shutdownSession=async function(e,t=n.ServerConnection.makeSettings()){var s;const i=o(t.baseUrl,e),r=await n.ServerConnection.makeRequest(i,{method:"DELETE"},t);if(404===r.status){const t=null!==(s=(await r.json()).message)&&void 0!==s?s:`The session "${e}"" does not exist on the server`;console.warn(t)}else{if(410===r.status)throw new n.ServerConnection.ResponseError(r,"The kernel was deleted but the session was not");if(204!==r.status)throw await n.ServerConnection.ResponseError.create(r)}},t.getSessionModel=async function(e,t=n.ServerConnection.makeSettings()){const s=o(t.baseUrl,e),i=await n.ServerConnection.makeRequest(s,{},t);if(200!==i.status)throw await n.ServerConnection.ResponseError.create(i);const a=await i.json();return r.updateLegacySessionModel(a),r.validateModel(a),a},t.startSession=async function(e,s=n.ServerConnection.makeSettings()){const o=i.URLExt.join(s.baseUrl,t.SESSION_SERVICE_URL),a={method:"POST",body:JSON.stringify(e)},c=await n.ServerConnection.makeRequest(o,a,s);if(201!==c.status)throw await n.ServerConnection.ResponseError.create(c);const l=await c.json();return r.updateLegacySessionModel(l),r.validateModel(l),l},t.updateSession=async function(e,t=n.ServerConnection.makeSettings()){const s=o(t.baseUrl,e.id),i={method:"PATCH",body:JSON.stringify(e)},a=await n.ServerConnection.makeRequest(s,i,t);if(200!==a.status)throw await n.ServerConnection.ResponseError.create(a);const c=await a.json();return r.updateLegacySessionModel(c),r.validateModel(c),c}},34061:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},85833:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateModels=t.updateLegacySessionModel=t.validateModel=void 0;const n=s(76799),i=s(74284);function r(e){i.validateProperty(e,"id","string"),i.validateProperty(e,"type","string"),i.validateProperty(e,"name","string"),i.validateProperty(e,"path","string"),i.validateProperty(e,"kernel","object"),n.validateModel(e.kernel)}t.validateModel=r,t.updateLegacySessionModel=function(e){void 0===e.path&&void 0!==e.notebook&&(e.path=e.notebook.path,e.type="notebook",e.name="")},t.validateModels=function(e){if(!Array.isArray(e))throw new Error("Invalid session list");e.forEach((e=>r(e)))}},36090:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SettingManager=void 0;const n=s(55941),i=s(63050),r=s(59566);class o extends i.DataConnector{constructor(e={}){var t;super(),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings()}async fetch(e){if(!e)throw new Error("Plugin `id` parameter is required for settings fetch.");const{serverSettings:t}=this,{baseUrl:s,appUrl:n}=t,{makeRequest:i,ResponseError:o}=r.ServerConnection,c=s+n,l=a.url(c,e),h=await i(l,{},t);if(200!==h.status)throw await o.create(h);return h.json()}async list(){var e,t;const{serverSettings:s}=this,{baseUrl:n,appUrl:i}=s,{makeRequest:o,ResponseError:c}=r.ServerConnection,l=n+i,h=a.url(l,""),d=await o(h,{},s);if(200!==d.status)throw new c(d);const u=await d.json(),_=null!==(t=null===(e=null==u?void 0:u.settings)||void 0===e?void 0:e.map((e=>(e.data={composite:{},user:{}},e))))&&void 0!==t?t:[];return{ids:_.map((e=>e.id)),values:_}}async save(e,t){const{serverSettings:s}=this,{baseUrl:n,appUrl:i}=s,{makeRequest:o,ResponseError:c}=r.ServerConnection,l=n+i,h=a.url(l,e),d={body:JSON.stringify({raw:t}),method:"PUT"},u=await o(h,d,s);if(204!==u.status)throw new c(u)}}var a;t.SettingManager=o,function(e){e.url=function(e,t){return n.URLExt.join(e,"api/settings",t)}}(a||(a={}))},80396:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=WebSocket},17964:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TerminalConnection=void 0;const n=s(55941),i=s(26169),r=s(70942),o=s(76591),a=s(43396);class c{constructor(e){var t;this._createSocket=()=>{this._errorIfDisposed(),this._clearSocket(),this._updateConnectionStatus("connecting");const e=this._name,t=this.serverSettings;let s=n.URLExt.join(t.wsUrl,"terminals","websocket",encodeURIComponent(e));const i=t.token;t.appendToken&&""!==i&&(s+=`?token=${encodeURIComponent(i)}`),this._ws=new t.WebSocket(s),this._ws.onmessage=this._onWSMessage,this._ws.onclose=this._onWSClose,this._ws.onerror=this._onWSClose},this._onWSMessage=e=>{if(this._isDisposed)return;const t=JSON.parse(e.data);"disconnect"===t[0]&&this.dispose(),"connecting"!==this._connectionStatus?this._messageReceived.emit({type:t[0],content:t.slice(1)}):"setup"===t[0]&&this._updateConnectionStatus("connected")},this._onWSClose=e=>{console.warn(`Terminal websocket closed: ${e.code}`),this.isDisposed||this._reconnect()},this._connectionStatus="connecting",this._connectionStatusChanged=new r.Signal(this),this._isDisposed=!1,this._disposed=new r.Signal(this),this._messageReceived=new r.Signal(this),this._reconnectTimeout=null,this._ws=null,this._noOp=()=>{},this._reconnectLimit=7,this._reconnectAttempt=0,this._pendingMessages=[],this._name=e.model.name,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:o.ServerConnection.makeSettings(),this._createSocket()}get disposed(){return this._disposed}get messageReceived(){return this._messageReceived}get name(){return this._name}get model(){return{name:this._name}}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._updateConnectionStatus("disconnected"),this._clearSocket(),r.Signal.clearData(this))}send(e){this._sendMessage(e)}_sendMessage(e,t=!0){if(!this._isDisposed&&e.content)if("connected"===this.connectionStatus&&this._ws){const t=[e.type,...e.content];this._ws.send(JSON.stringify(t))}else{if(!t)throw new Error(`Could not send message: ${JSON.stringify(e)}`);this._pendingMessages.push(e)}}_sendPending(){for(;"connected"===this.connectionStatus&&this._pendingMessages.length>0;)this._sendMessage(this._pendingMessages[0],!1),this._pendingMessages.shift()}reconnect(){this._errorIfDisposed();const e=new i.PromiseDelegate,t=(s,n)=>{"connected"===n?(e.resolve(),this.connectionStatusChanged.disconnect(t,this)):"disconnected"===n&&(e.reject(new Error("Terminal connection disconnected")),this.connectionStatusChanged.disconnect(t,this))};return this.connectionStatusChanged.connect(t,this),this._reconnectAttempt=0,this._reconnect(),e.promise}_reconnect(){if(this._errorIfDisposed(),clearTimeout(this._reconnectTimeout),this._reconnectAttempt{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TerminalManager=void 0;const n=s(43892),i=s(61313),r=s(70942),o=s(76591),a=s(5179),c=s(43396),l=s(17964);class h extends a.BaseManager{constructor(e={}){var t;if(super(e),this._isReady=!1,this._names=[],this._terminalConnections=new Set,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),!this.isAvailable())return this._ready=Promise.reject("Terminals unavailable"),void this._ready.catch((e=>{}));this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:TerminalManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._names.length=0,this._terminalConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}isAvailable(){return c.isAvailable()}connectTo(e){const t=new l.TerminalConnection(Object.assign(Object.assign({},e),{serverSettings:this.serverSettings}));return this._onStarted(t),this._names.includes(e.model.name)||this.refreshRunning().catch((()=>{})),t}running(){return n.iter(this._models)}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e){const t=await c.startNew(this.serverSettings,null==e?void 0:e.name,null==e?void 0:e.cwd);return await this.refreshRunning(),this.connectTo({model:t})}async shutdown(e){await c.shutdownTerminal(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all(this._names.map((e=>c.shutdownTerminal(e,this.serverSettings)))),await this.refreshRunning()}async requestRunning(){var e,t;let s;try{s=await c.listRunning(this.serverSettings)}catch(s){throw(s instanceof o.ServerConnection.NetworkError||503===(null===(e=s.response)||void 0===e?void 0:e.status)||424===(null===(t=s.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(s),s}if(this.isDisposed)return;const n=s.map((({name:e})=>e)).sort();n!==this._names&&(this._names=n,this._terminalConnections.forEach((e=>{n.includes(e.name)||e.dispose()})),this._runningChanged.emit(this._models))}_onStarted(e){this._terminalConnections.add(e),e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._terminalConnections.delete(e),this.refreshRunning().catch((()=>{}))}get _models(){return this._names.map((e=>({name:e})))}}t.TerminalManager=h},43396:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shutdownTerminal=t.listRunning=t.startNew=t.isAvailable=t.TERMINAL_SERVICE_URL=void 0;const n=s(55941),i=s(59566);function r(){return"true"===String(n.PageConfig.getOption("terminalsAvailable")).toLowerCase()}var o;t.TERMINAL_SERVICE_URL="api/terminals",t.isAvailable=r,t.startNew=async function(e=i.ServerConnection.makeSettings(),s,r){o.errorIfNotAvailable();const a=n.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL),c={method:"POST",body:JSON.stringify({name:s,cwd:r})},l=await i.ServerConnection.makeRequest(a,c,e);if(200!==l.status)throw await i.ServerConnection.ResponseError.create(l);return await l.json()},t.listRunning=async function(e=i.ServerConnection.makeSettings()){o.errorIfNotAvailable();const s=n.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL),r=await i.ServerConnection.makeRequest(s,{},e);if(200!==r.status)throw await i.ServerConnection.ResponseError.create(r);const a=await r.json();if(!Array.isArray(a))throw new Error("Invalid terminal list");return a},t.shutdownTerminal=async function(e,s=i.ServerConnection.makeSettings()){var r;o.errorIfNotAvailable();const a=n.URLExt.join(s.baseUrl,t.TERMINAL_SERVICE_URL,e),c=await i.ServerConnection.makeRequest(a,{method:"DELETE"},s);if(404===c.status){const t=null!==(r=(await c.json()).message)&&void 0!==r?r:`The terminal session "${e}"" does not exist on the server`;console.warn(t)}else if(204!==c.status)throw await i.ServerConnection.ResponseError.create(c)},function(e){e.errorIfNotAvailable=function(){if(!r())throw new Error("Terminals Unavailable")}}(o||(o={}))},83522:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAvailable=void 0;const n=s(43396);Object.defineProperty(t,"isAvailable",{enumerable:!0,get:function(){return n.isAvailable}})},74284:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateProperty=void 0,t.validateProperty=function(e,t,s,n=[]){if(!e.hasOwnProperty(t))throw Error(`Missing property '${t}'`);const i=e[t];if(void 0!==s){let e=!0;switch(s){case"array":e=Array.isArray(i);break;case"object":e=void 0!==i;break;default:e=typeof i===s}if(!e)throw new Error(`Property '${t}' is not of type '${s}'`);if(n.length>0){let e=!0;switch(s){case"string":case"number":case"boolean":e=n.includes(i);break;default:e=n.findIndex((e=>e===i))>=0}if(!e)throw new Error(`Property '${t}' is not one of the valid values ${JSON.stringify(n)}`)}}}},3713:(e,t,s)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceManager=void 0;const n=s(55941),i=s(63050),r=s(59566);class o extends i.DataConnector{constructor(e={}){var t;super(),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings()}async fetch(e){const{serverSettings:t}=this,{baseUrl:s,appUrl:n}=t,{makeRequest:i,ResponseError:o}=r.ServerConnection,c=s+n,l=a.url(c,e),h=await i(l,{},t);if(200!==h.status)throw await o.create(h);return h.json()}async list(){const{serverSettings:e}=this,{baseUrl:t,appUrl:s}=e,{makeRequest:n,ResponseError:i}=r.ServerConnection,o=t+s,c=a.url(o,""),l=await n(c,{},e);if(200!==l.status)throw await i.create(l);return(await l.json()).workspaces}async remove(e){const{serverSettings:t}=this,{baseUrl:s,appUrl:n}=t,{makeRequest:i,ResponseError:o}=r.ServerConnection,c=s+n,l=a.url(c,e),h=await i(l,{method:"DELETE"},t);if(204!==h.status)throw await o.create(h)}async save(e,t){const{serverSettings:s}=this,{baseUrl:n,appUrl:i}=s,{makeRequest:o,ResponseError:c}=r.ServerConnection,l=n+i,h=a.url(l,e),d={body:JSON.stringify(t),method:"PUT"},u=await o(h,d,s);if(204!==u.status)throw await c.create(u)}}var a;t.WorkspaceManager=o,function(e){e.url=function(e,t){return n.URLExt.join(e,"api/workspaces",t)}}(a||(a={}))},18533:e=>{var t,s,n=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(s){try{return t.call(null,e,0)}catch(s){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{s="function"==typeof clearTimeout?clearTimeout:r}catch(e){s=r}}();var a,c=[],l=!1,h=-1;function d(){l&&a&&(l=!1,a.length?c=a.concat(c):h=-1,c.length&&u())}function u(){if(!l){var e=o(d);l=!0;for(var t=c.length;t;){for(a=c,c=[];++h1)for(var s=1;s 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n"],"names":["cachedSetTimeout","cachedClearTimeout","process","module","exports","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","i","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6612.1632879.js b/_static/build/6612.1632879.js new file mode 100644 index 0000000..cfd9321 --- /dev/null +++ b/_static/build/6612.1632879.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6612],{11452:(e,c,n)=>{n.d(c,{Z:()=>a});var o=n(34663),r=n.n(o),s=n(7638),t=n.n(s)()(r());t.push([e.id,".cm-s-eclipse span.cm-meta { color: #FF1717; }\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\n.cm-s-eclipse span.cm-atom { color: #219; }\n.cm-s-eclipse span.cm-number { color: #164; }\n.cm-s-eclipse span.cm-def { color: #00f; }\n.cm-s-eclipse span.cm-variable { color: black; }\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\n.cm-s-eclipse span.cm-property { color: black; }\n.cm-s-eclipse span.cm-operator { color: black; }\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\n.cm-s-eclipse span.cm-qualifier { color: #555; }\n.cm-s-eclipse span.cm-builtin { color: #30a; }\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\n.cm-s-eclipse span.cm-tag { color: #170; }\n.cm-s-eclipse span.cm-attribute { color: #00c; }\n.cm-s-eclipse span.cm-link { color: #219; }\n.cm-s-eclipse span.cm-error { color: #f00; }\n\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n","",{version:3,sources:["webpack://./../node_modules/codemirror/theme/eclipse.css"],names:[],mappings:"AAAA,6BAA6B,cAAc,EAAE;AAC7C,gCAAgC,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE;AACrF,6BAA6B,WAAW,EAAE;AAC1C,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,WAAW,EAAE;AACzC,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,iCAAiC,YAAY,EAAE;AAC/C,iCAAiC,YAAY,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,iCAAiC,WAAW,EAAE;AAC9C,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,4BAA4B,WAAW,EAAE;AACzC,kCAAkC,WAAW,EAAE;AAC/C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,WAAW,EAAE;;AAE3C,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE",sourcesContent:[".cm-s-eclipse span.cm-meta { color: #FF1717; }\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\n.cm-s-eclipse span.cm-atom { color: #219; }\n.cm-s-eclipse span.cm-number { color: #164; }\n.cm-s-eclipse span.cm-def { color: #00f; }\n.cm-s-eclipse span.cm-variable { color: black; }\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\n.cm-s-eclipse span.cm-property { color: black; }\n.cm-s-eclipse span.cm-operator { color: black; }\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\n.cm-s-eclipse span.cm-qualifier { color: #555; }\n.cm-s-eclipse span.cm-builtin { color: #30a; }\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\n.cm-s-eclipse span.cm-tag { color: #170; }\n.cm-s-eclipse span.cm-attribute { color: #00c; }\n.cm-s-eclipse span.cm-link { color: #219; }\n.cm-s-eclipse span.cm-error { color: #f00; }\n\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\n"],sourceRoot:""}]);const a=t},7638:e=>{e.exports=function(e){var c=[];return c.toString=function(){return this.map((function(c){var n="",o=void 0!==c[5];return c[4]&&(n+="@supports (".concat(c[4],") {")),c[2]&&(n+="@media ".concat(c[2]," {")),o&&(n+="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {")),n+=e(c),o&&(n+="}"),c[2]&&(n+="}"),c[4]&&(n+="}"),n})).join("")},c.i=function(e,n,o,r,s){"string"==typeof e&&(e=[[null,e,void 0]]);var t={};if(o)for(var a=0;a0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=s),n&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=n):l[2]=n),r&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=r):l[4]="".concat(r)),c.push(l))}},c}},34663:e=>{e.exports=function(e){var c=e[1],n=e[3];if(!n)return c;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),s="/*# ".concat(r," */"),t=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot||"").concat(e," */")}));return[c].concat(t).concat([s]).join("\n")}return[c].join("\n")}},16612:(e,c,n)=>{n.r(c),n.d(c,{default:()=>E});var o=n(1892),r=n.n(o),s=n(95760),t=n.n(s),a=n(38311),i=n.n(a),A=n(58192),l=n.n(A),p=n(38060),m=n.n(p),u=n(54865),f=n.n(u),C=n(11452),d={};d.styleTagTransform=f(),d.setAttributes=l(),d.insert=i().bind(null,"head"),d.domAPI=t(),d.insertStyleElement=m(),r()(C.Z,d);const E=C.Z&&C.Z.locals?C.Z.locals:void 0},1892:e=>{var c=[];function n(e){for(var n=-1,o=0;o{var c={};e.exports=function(e,n){var o=function(e){if(void 0===c[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}c[e]=n}return c[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(n)}},38060:e=>{e.exports=function(e){var c=document.createElement("style");return e.setAttributes(c,e.attributes),e.insert(c,e.options),c}},58192:(e,c,n)=>{e.exports=function(e){var c=n.nc;c&&e.setAttribute("nonce",c)}},95760:e=>{e.exports=function(e){var c=e.insertStyleElement(e);return{update:function(n){!function(e,c,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,r&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),c.styleTagTransform(o,e,c.options)}(c,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(c)}}}},54865:e=>{e.exports=function(e,c){if(c.styleSheet)c.styleSheet.cssText=e;else{for(;c.firstChild;)c.removeChild(c.firstChild);c.appendChild(document.createTextNode(e))}}}}]); +//# sourceMappingURL=6612.1632879.js.map \ No newline at end of file diff --git a/_static/build/6612.1632879.js.map b/_static/build/6612.1632879.js.map new file mode 100644 index 0000000..b0c986f --- /dev/null +++ b/_static/build/6612.1632879.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6612.1632879.js","mappings":"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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/eclipse.css","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/api.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/codemirror/theme/eclipse.css?d8f2","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".cm-s-eclipse span.cm-meta { color: #FF1717; }\\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\\n.cm-s-eclipse span.cm-atom { color: #219; }\\n.cm-s-eclipse span.cm-number { color: #164; }\\n.cm-s-eclipse span.cm-def { color: #00f; }\\n.cm-s-eclipse span.cm-variable { color: black; }\\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\\n.cm-s-eclipse span.cm-property { color: black; }\\n.cm-s-eclipse span.cm-operator { color: black; }\\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\\n.cm-s-eclipse span.cm-qualifier { color: #555; }\\n.cm-s-eclipse span.cm-builtin { color: #30a; }\\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\\n.cm-s-eclipse span.cm-tag { color: #170; }\\n.cm-s-eclipse span.cm-attribute { color: #00c; }\\n.cm-s-eclipse span.cm-link { color: #219; }\\n.cm-s-eclipse span.cm-error { color: #f00; }\\n\\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/codemirror/theme/eclipse.css\"],\"names\":[],\"mappings\":\"AAAA,6BAA6B,cAAc,EAAE;AAC7C,gCAAgC,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE;AACrF,6BAA6B,WAAW,EAAE;AAC1C,+BAA+B,WAAW,EAAE;AAC5C,4BAA4B,WAAW,EAAE;AACzC,iCAAiC,YAAY,EAAE;AAC/C,mCAAmC,cAAc,EAAE;AACnD,+DAA+D,cAAc,EAAE;AAC/E,iCAAiC,YAAY,EAAE;AAC/C,iCAAiC,YAAY,EAAE;AAC/C,gCAAgC,cAAc,EAAE;AAChD,+BAA+B,cAAc,EAAE;AAC/C,iCAAiC,WAAW,EAAE;AAC9C,kCAAkC,WAAW,EAAE;AAC/C,gCAAgC,WAAW,EAAE;AAC7C,gCAAgC,WAAW,EAAE;AAC7C,4BAA4B,WAAW,EAAE;AACzC,kCAAkC,WAAW,EAAE;AAC/C,6BAA6B,WAAW,EAAE;AAC1C,8BAA8B,WAAW,EAAE;;AAE3C,kDAAkD,mBAAmB,EAAE;AACvE,4CAA4C,sBAAsB,EAAE,sBAAsB,EAAE\",\"sourcesContent\":[\".cm-s-eclipse span.cm-meta { color: #FF1717; }\\n.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }\\n.cm-s-eclipse span.cm-atom { color: #219; }\\n.cm-s-eclipse span.cm-number { color: #164; }\\n.cm-s-eclipse span.cm-def { color: #00f; }\\n.cm-s-eclipse span.cm-variable { color: black; }\\n.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }\\n.cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }\\n.cm-s-eclipse span.cm-property { color: black; }\\n.cm-s-eclipse span.cm-operator { color: black; }\\n.cm-s-eclipse span.cm-comment { color: #3F7F5F; }\\n.cm-s-eclipse span.cm-string { color: #2A00FF; }\\n.cm-s-eclipse span.cm-string-2 { color: #f50; }\\n.cm-s-eclipse span.cm-qualifier { color: #555; }\\n.cm-s-eclipse span.cm-builtin { color: #30a; }\\n.cm-s-eclipse span.cm-bracket { color: #cc7; }\\n.cm-s-eclipse span.cm-tag { color: #170; }\\n.cm-s-eclipse span.cm-attribute { color: #00c; }\\n.cm-s-eclipse span.cm-link { color: #219; }\\n.cm-s-eclipse span.cm-error { color: #f00; }\\n\\n.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }\\n.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./eclipse.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./eclipse.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","e","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""} \ No newline at end of file diff --git a/_static/build/6623.ae3b3cc.js b/_static/build/6623.ae3b3cc.js new file mode 100644 index 0000000..fba1df8 --- /dev/null +++ b/_static/build/6623.ae3b3cc.js @@ -0,0 +1,3 @@ +/*! For license information please see 6623.ae3b3cc.js.LICENSE.txt */ +(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[6623],{11771:e=>{e.exports={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376}},98253:e=>{e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},28536:e=>{e.exports={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",amp:"&",AMP:"&",Aring:"Å",aring:"å",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",brvbar:"¦",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",iquest:"¿",Iuml:"Ï",iuml:"ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",Ntilde:"Ñ",ntilde:"ñ",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",Ograve:"Ò",ograve:"ò",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",Ouml:"Ö",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",THORN:"Þ",thorn:"þ",times:"×",Uacute:"Ú",uacute:"ú",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",Uuml:"Ü",uuml:"ü",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ"}},71849:e=>{e.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}},96623:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Clipboard:()=>r,Collapse:()=>c,CommandLinker:()=>h,CommandToolbarButton:()=>fe,CommandToolbarButtonComponent:()=>he,DOMUtils:()=>I,Dialog:()=>R,FilenameSearcher:()=>Ae,FilterBox:()=>Oe,HoverBox:()=>B,ICommandPalette:()=>p,IFrame:()=>q,ISanitizer:()=>Be,ISessionContextDialogs:()=>Ne,ISplashScreen:()=>Pe,IThemeManager:()=>Le,IToolbarWidgetRegistry:()=>Me,IWindowResolver:()=>We,InputDialog:()=>j,MainAreaWidget:()=>_e,MenuFactory:()=>ye,ModalCommandPalette:()=>g,Printing:()=>G,ReactWidget:()=>x,ReactiveToolbar:()=>le,Sanitizer:()=>Se,SessionContext:()=>Q,Spinner:()=>Y,Styling:()=>m,ThemeManager:()=>Ie,Toolbar:()=>ae,ToolbarButton:()=>de,ToolbarButtonComponent:()=>ce,ToolbarWidgetRegistry:()=>He,UseSignal:()=>T,VDomModel:()=>E,VDomRenderer:()=>S,WidgetTracker:()=>A,WindowResolver:()=>Ge,addCommandToolbarButtonClass:()=>pe,addToolbarButtonClass:()=>ue,createDefaultFactory:()=>ze,createToolbarFactory:()=>Fe,defaultSanitizer:()=>Te,fuzzySearch:()=>Ee,sessionContextDialogs:()=>ee,setToolbar:()=>Ue,showDialog:()=>P,showErrorMessage:()=>D,translateKernelStatuses:()=>ne,updateFilterFunction:()=>ke});var r,i,s=n(26169);!function(e){function t(e,t="copy"){let n=window.getSelection();const r=[];for(let e=0,t=(null==n?void 0:n.rangeCount)||0;e{const i=t.clipboardData||window.clipboardData;"string"==typeof e?i.setData("text",e):e.types().map((t=>{i.setData(t,e.getData(t))})),t.preventDefault(),n.removeEventListener("copy",r)};n.addEventListener("copy",r),t(n)},e.generateEvent=t}(r||(r={})),function(e){e.instance=new s.MimeData}(i||(i={}));var o=n(59674),a=n(70942),l=n(94519);class c extends l.Widget{constructor(e){super(e),this._collapseChanged=new a.Signal(this);const{widget:t,collapsed:n=!0}=e;this.addClass("jp-Collapse"),this._header=new l.Widget,this._header.addClass("jp-Collapse-header"),this._content=new l.Panel,this._content.addClass("jp-Collapse-contents");const r=new l.PanelLayout;this.layout=r,r.addWidget(this._header),r.addWidget(this._content),this.widget=t,this.collapsed=n}get widget(){return this._widget}set widget(e){const t=this._widget;t&&(t.title.changed.disconnect(this._onTitleChanged,this),t.parent=null),this._widget=e,e.title.changed.connect(this._onTitleChanged,this),this._onTitleChanged(e.title),this._content.addWidget(e)}get collapsed(){return this._collapsed}set collapsed(e){e!==this._collapsed&&(e?this._collapse():this._uncollapse())}get collapseChanged(){return this._collapseChanged}toggle(){this.collapsed=!this.collapsed}dispose(){this.isDisposed||(this._header=null,this._widget=null,this._content=null,super.dispose())}handleEvent(e){"click"===e.type&&this._evtClick(e)}onAfterAttach(e){this._header.node.addEventListener("click",this)}onBeforeDetach(e){this._header.node.removeEventListener("click",this)}_collapse(){this._collapsed=!0,this._content&&this._content.hide(),this._setHeader(),this._collapseChanged.emit(void 0)}_uncollapse(){this._collapsed=!1,this._content&&this._content.show(),this._setHeader(),this._collapseChanged.emit(void 0)}_evtClick(e){this.toggle()}_onTitleChanged(e){this._setHeader()}_setHeader(){(this._collapsed?o.caretUpIcon:o.caretDownIcon).element({container:this._header.node,label:this._widget.title.label,elementPosition:"right",height:"28px"})}}const u="commandlinker-command",d="commandlinker-args";class h{constructor(e){this._isDisposed=!1,this._commands=e.commands,document.body.addEventListener("click",this)}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,document.body.removeEventListener("click",this))}connectNode(e,t,n){return e.setAttribute(`data-${u}`,t),void 0!==n&&e.setAttribute(`data-${d}`,JSON.stringify(n)),e}disconnectNode(e){return e.removeAttribute(`data-${u}`),e.removeAttribute(`data-${d}`),e}handleEvent(e){"click"===e.type&&this._evtClick(e)}populateVNodeDataset(e,t){let n;return n=void 0!==t?{[d]:JSON.stringify(t),[u]:e}:{[u]:e},n}_evtClick(e){let t=e.target;for(;t&&t.parentElement;){if(t.hasAttribute(`data-${u}`)){e.preventDefault();const n=t.getAttribute(`data-${u}`);if(!n)return;const r=t.getAttribute(`data-${d}`);let i=s.JSONExt.emptyObject;return r&&(i=JSON.parse(r)),void this._commands.execute(n,i)}t=t.parentElement}}}const p=new s.Token("@jupyterlab/apputils:ICommandPalette"),f="jp-SearchIconGroup";class g extends l.Panel{constructor(e){super(),this.addClass("jp-ModalCommandPalette"),this.id="modal-command-palette",this.palette=e.commandPalette,this._commandPalette.commands.commandExecuted.connect((()=>{this.isAttached&&this.isVisible&&this.hideAndReset()})),this.node.tabIndex=0}get palette(){return this._commandPalette}set palette(e){this._commandPalette=e,this.searchIconGroup||this._commandPalette.inputNode.insertAdjacentElement("afterend",this.createSearchIconGroup()),this.addWidget(e),this.hideAndReset()}attach(){l.Widget.attach(this,document.body)}detach(){l.Widget.detach(this)}hideAndReset(){this.hide(),this._commandPalette.inputNode.value="",this._commandPalette.refresh()}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"blur":this.node.contains(e.target)&&!this.node.contains(e.relatedTarget)&&(e.stopPropagation(),this.hideAndReset());break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}get searchIconGroup(){return this._commandPalette.node.getElementsByClassName(f)[0]}createSearchIconGroup(){const e=document.createElement("div");return e.classList.add(f),o.searchIcon.render(e),e}onAfterAttach(e){this.node.addEventListener("keydown",this,!0),this.node.addEventListener("contextmenu",this,!0)}onAfterDetach(e){this.node.removeEventListener("keydown",this,!0),this.node.removeEventListener("contextmenu",this,!0)}onBeforeHide(e){document.removeEventListener("blur",this,!0)}onAfterShow(e){document.addEventListener("blur",this,!0)}onActivateRequest(e){this.isAttached&&(this.show(),this._commandPalette.activate())}_evtKeydown(e){27===e.keyCode&&(e.stopPropagation(),e.preventDefault(),this.hideAndReset())}}var m,b,_=n(43892),y=n(14064),v=n(62471),w=n.n(v);!function(e){function t(e,t,r=""){e.localName===t&&e.classList.add("jp-mod-styled"),"select"===e.localName&&n(e);const i=e.getElementsByTagName(t);for(let e=0;e{const t=this.render();(Array.isArray(t)||t)&&C.render(t,this.node,e)}))}}class S extends x{constructor(e){super(),this._modelChanged=new a.Signal(this),this.model=null!=e?e:null}get modelChanged(){return this._modelChanged}set model(e){this._model!==e&&(this._model&&this._model.stateChanged.disconnect(this.update,this),this._model=e,e&&e.stateChanged.connect(this.update,this),this.update(),this._modelChanged.emit(void 0))}get model(){return this._model}dispose(){this.isDisposed||(this._model=null,super.dispose())}}class T extends v.Component{constructor(e){super(e),this.slot=(e,t)=>{this.props.shouldUpdate&&!this.props.shouldUpdate(e,t)||this.setState({value:[e,t]})},this.state={value:[this.props.initialSender,this.props.initialArgs]}}componentDidMount(){this.props.signal.connect(this.slot)}componentWillUnmount(){this.props.signal.disconnect(this.slot)}render(){return this.props.children(...this.state.value)}}class E{constructor(){this.stateChanged=new a.Signal(this),this._isDisposed=!1}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,a.Signal.clearData(this))}}var k,O=n(63050);class A{constructor(e){this._currentChanged=new a.Signal(this),this._isDisposed=!1,this._widgetAdded=new a.Signal(this),this._widgetUpdated=new a.Signal(this);const t=this._focusTracker=new l.FocusTracker,n=this._pool=new O.RestorablePool(e);this.namespace=e.namespace,t.currentChanged.connect(((e,t)=>{t.newValue!==this.currentWidget&&(n.current=t.newValue)}),this),n.added.connect(((e,t)=>{this._widgetAdded.emit(t)}),this),n.currentChanged.connect(((e,r)=>{null===r&&t.currentWidget?n.current=t.currentWidget:(this.onCurrentChanged(r),this._currentChanged.emit(r))}),this),n.updated.connect(((e,t)=>{this._widgetUpdated.emit(t)}),this)}get currentChanged(){return this._currentChanged}get currentWidget(){return this._pool.current||null}get restored(){return this._pool.restored}get size(){return this._pool.size}get widgetAdded(){return this._widgetAdded}get widgetUpdated(){return this._widgetUpdated}async add(e){this._focusTracker.add(e),await this._pool.add(e),this._focusTracker.activeWidget||(this._pool.current=e)}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._pool.dispose(),this._focusTracker.dispose(),a.Signal.clearData(this))}find(e){return this._pool.find(e)}forEach(e){return this._pool.forEach(e)}filter(e){return this._pool.filter(e)}inject(e){return this._pool.inject(e)}has(e){return this._pool.has(e)}async restore(e){return this._pool.restore(e)}async save(e){return this._pool.save(e)}onCurrentChanged(e){}}function P(e={}){return new R(e).launch()}function D(e,t,n=[R.okButton({label:"Dismiss"})]){console.warn("Showing error:",t);const r="string"==typeof t?t:t.message,i=e+"----"+r,s=k.errorMessagePromiseCache.get(i);if(s)return s;{const t=P({title:e,body:r,buttons:n}).then((()=>{k.errorMessagePromiseCache.delete(i)}),(e=>{throw k.errorMessagePromiseCache.delete(i),e}));return k.errorMessagePromiseCache.set(i,t),t}}class R extends l.Widget{constructor(e={}){super(),this._focusNodeSelector="",this.addClass("jp-Dialog");const t=k.handleOptions(e),n=t.renderer;if(this._host=t.host,this._defaultButton=t.defaultButton,this._buttons=t.buttons,this._hasClose=t.hasClose,this._buttonNodes=(0,_.toArray)((0,_.map)(this._buttons,(e=>n.createButtonNode(e)))),this._checkboxNode=null,t.checkbox){const{label:e="",caption:r="",checked:i=!1,className:s=""}=t.checkbox;this._checkboxNode=n.createCheckboxNode({label:e,caption:null!=r?r:e,checked:i,className:s})}this._lastMouseDownInDialog=!1;const r=this.layout=new l.PanelLayout,i=new l.Panel;i.addClass("jp-Dialog-content"),"string"==typeof e.body&&i.addClass("jp-Dialog-content-small"),r.addWidget(i),this._body=t.body;const s=n.createHeader(t.title,(()=>this.reject()),e),o=n.createBody(t.body),a=n.createFooter(this._buttonNodes,this._checkboxNode);i.addWidget(s),i.addWidget(o),i.addWidget(a),this._primary=this._buttonNodes[this._defaultButton],this._focusNodeSelector=e.focusNodeSelector,R.tracker.add(this)}dispose(){const e=this._promise;e&&(this._promise=null,e.reject(void 0),_.ArrayExt.removeFirstOf(k.launchQueue,e.promise)),super.dispose()}launch(){if(this._promise)return this._promise.promise;const e=this._promise=new s.PromiseDelegate,t=Promise.all(k.launchQueue);return k.launchQueue.push(this._promise.promise),t.then((()=>this._promise?(l.Widget.attach(this,this._host),e.promise):Promise.resolve({button:R.cancelButton(),isChecked:null,value:null})))}resolve(e){this._promise&&(void 0===e&&(e=this._defaultButton),this._resolve(this._buttons[e]))}reject(){this._promise&&this._resolve(R.cancelButton())}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"mousedown":this._evtMouseDown(e);break;case"click":this._evtClick(e);break;case"focus":this._evtFocus(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}onAfterAttach(e){var t;const n=this.node;if(n.addEventListener("keydown",this,!0),n.addEventListener("contextmenu",this,!0),n.addEventListener("click",this,!0),document.addEventListener("mousedown",this,!0),document.addEventListener("focus",this,!0),this._first=k.findFirstFocusable(this.node),this._original=document.activeElement,this._focusNodeSelector){const e=this.node.querySelector(".jp-Dialog-body"),t=null==e?void 0:e.querySelector(this._focusNodeSelector);t&&(this._primary=t)}null===(t=this._primary)||void 0===t||t.focus()}onAfterDetach(e){const t=this.node;t.removeEventListener("keydown",this,!0),t.removeEventListener("contextmenu",this,!0),t.removeEventListener("click",this,!0),document.removeEventListener("focus",this,!0),document.removeEventListener("mousedown",this,!0),this._original.focus()}onCloseRequest(e){this._promise&&this.reject(),super.onCloseRequest(e)}_evtClick(e){if(!this.node.getElementsByClassName("jp-Dialog-content")[0].contains(e.target))return e.stopPropagation(),e.preventDefault(),void(this._hasClose&&!this._lastMouseDownInDialog&&this.reject());for(const t of this._buttonNodes)if(t.contains(e.target)){const e=this._buttonNodes.indexOf(t);this.resolve(e)}}_evtKeydown(e){switch(e.keyCode){case 27:e.stopPropagation(),e.preventDefault(),this._hasClose&&this.reject();break;case 37:{const t=document.activeElement;if(t instanceof HTMLButtonElement){let n=this._buttonNodes.indexOf(t)-1;n<0&&(n=this._buttonNodes.length-1);const r=this._buttonNodes[n];e.stopPropagation(),e.preventDefault(),r.focus()}break}case 39:{const t=document.activeElement;if(t instanceof HTMLButtonElement){let n=this._buttonNodes.indexOf(t)+1;n==this._buttons.length&&(n=0);const r=this._buttonNodes[n];e.stopPropagation(),e.preventDefault(),r.focus()}break}case 9:{const t=this._buttonNodes[this._buttons.length-1];document.activeElement!==t||e.shiftKey||(e.stopPropagation(),e.preventDefault(),this._first.focus());break}case 13:{e.stopPropagation(),e.preventDefault();const t=document.activeElement;let n;t instanceof HTMLButtonElement&&(n=this._buttonNodes.indexOf(t)),this.resolve(n);break}}}_evtFocus(e){var t;const n=e.target;this.node.contains(n)||(e.stopPropagation(),null===(t=this._buttonNodes[this._defaultButton])||void 0===t||t.focus())}_evtMouseDown(e){const t=this.node.getElementsByClassName("jp-Dialog-content")[0],n=e.target;this._lastMouseDownInDialog=t.contains(n)}_resolve(e){var t,n,r;const i=this._promise;if(!i)return void this.dispose();this._promise=null,_.ArrayExt.removeFirstOf(k.launchQueue,i.promise);const s=this._body;let o=null;e.accept&&s instanceof l.Widget&&"function"==typeof s.getValue&&(o=s.getValue()),this.dispose(),i.resolve({button:e,isChecked:null!==(r=null===(n=null===(t=this._checkboxNode)||void 0===t?void 0:t.querySelector("input"))||void 0===n?void 0:n.checked)&&void 0!==r?r:null,value:o})}}!function(e){function t(e){e.accept=!1!==e.accept;const t=e.accept?"OK":"Cancel";return{label:e.label||t,iconClass:e.iconClass||"",iconLabel:e.iconLabel||"",caption:e.caption||"",className:e.className||"",accept:e.accept,actions:e.actions||[],displayType:e.displayType||"default"}}e.createButton=t,e.cancelButton=function(e={}){return e.accept=!1,t(e)},e.okButton=function(e={}){return e.accept=!0,t(e)},e.warnButton=function(e={}){return e.displayType="warn",t(e)},e.flush=function(){e.tracker.forEach((e=>{e.dispose()}))};class n{createHeader(e,t=(()=>{}),n={}){let r;return r="string"==typeof e?x.create(v.createElement(v.Fragment,null,e,n.hasClose&&v.createElement(o.Button,{className:"jp-Dialog-close-button",onMouseDown:e=>{0===e.button&&(e.preventDefault(),t())},onKeyDown:e=>{const{key:n}=e;"Enter"!==n&&" "!==n||t()},title:"Cancel",minimal:!0},v.createElement(o.LabIcon.resolveReact,{icon:o.closeIcon,iconClass:"jp-Icon",className:"jp-ToolbarButtonComponent-icon",tag:"span"})))):x.create(e),r.addClass("jp-Dialog-header"),m.styleNode(r.node),r}createBody(e){let t;return"string"==typeof e?(t=new l.Widget({node:document.createElement("span")}),t.node.textContent=e):e instanceof l.Widget?t=e:(t=x.create(e),y.MessageLoop.sendMessage(t,l.Widget.Msg.UpdateRequest)),t.addClass("jp-Dialog-body"),m.styleNode(t.node),t}createFooter(e,t){const n=new l.Widget;return n.addClass("jp-Dialog-footer"),t&&(n.node.appendChild(t),n.node.insertAdjacentHTML("beforeend",'')),(0,_.each)(e,(e=>{n.node.appendChild(e)})),m.styleNode(n.node),n}createButtonNode(e){const t=document.createElement("button");return t.className=this.createItemClass(e),t.appendChild(this.renderIcon(e)),t.appendChild(this.renderLabel(e)),t}createCheckboxNode(e){const t=document.createElement("label");t.className="jp-Dialog-checkbox",e.className&&t.classList.add(e.className),t.title=e.caption,t.textContent=e.label;const n=document.createElement("input");return n.type="checkbox",n.checked=!!e.checked,t.insertAdjacentElement("afterbegin",n),t}createItemClass(e){let t="jp-Dialog-button";e.accept?t+=" jp-mod-accept":t+=" jp-mod-reject","warn"===e.displayType&&(t+=" jp-mod-warn");const n=e.className;return n&&(t+=` ${n}`),t}renderIcon(e){const t=document.createElement("div");return t.className=this.createIconClass(e),t.appendChild(document.createTextNode(e.iconLabel)),t}createIconClass(e){const t="jp-Dialog-buttonIcon",n=e.iconClass;return n?`${t} ${n}`:t}renderLabel(e){const t=document.createElement("div");return t.className="jp-Dialog-buttonLabel",t.title=e.caption,t.appendChild(document.createTextNode(e.label)),t}}e.Renderer=n,e.defaultRenderer=new n,e.tracker=new A({namespace:"@jupyterlab/apputils:Dialog"})}(R||(R={})),function(e){e.launchQueue=[],e.errorMessagePromiseCache=new Map,e.handleOptions=function(e={}){var t,n,r,i,s,o,a,l,c;const u=null!==(t=e.buttons)&&void 0!==t?t:[R.cancelButton(),R.okButton()];return{title:null!==(n=e.title)&&void 0!==n?n:"",body:null!==(r=e.body)&&void 0!==r?r:"",host:null!==(i=e.host)&&void 0!==i?i:document.body,checkbox:null!==(s=e.checkbox)&&void 0!==s?s:null,buttons:u,defaultButton:null!==(o=e.defaultButton)&&void 0!==o?o:u.length-1,renderer:null!==(a=e.renderer)&&void 0!==a?a:R.defaultRenderer,focusNodeSelector:null!==(l=e.focusNodeSelector)&&void 0!==l?l:"",hasClose:null===(c=e.hasClose)||void 0===c||c}},e.findFirstFocusable=function(e){const t=["input","select","a[href]","textarea","button","[tabindex]"].join(",");return e.querySelectorAll(t)[0]}}(k||(k={}));var I,N=n(33349);!function(e){e.hitTestNodes=function(e,t,n){return _.ArrayExt.findFirstIndex(e,(e=>N.ElementExt.hitTest(e,t,n)))},e.findElement=function(e,t){return e.querySelector(`.${t}`)},e.findElements=function(e,t){return e.getElementsByClassName(t)},e.createDomID=function(){return`id-${s.UUID.uuid4()}`}}(I||(I={}));const L="jp-mod-outofview";var B,M,j;!function(e){e.setGeometry=function(e){const{anchor:t,host:n,node:r,privilege:i,outOfViewDisplay:s}=e;r.classList.add("jp-HoverBox"),r.classList.remove(L),r.style.maxHeight="",r.style.marginTop="";const o=e.style||window.getComputedStyle(r),a=window.innerHeight,l=t.top,c=a-t.bottom,u=parseInt(o.marginTop,10)||0,d=parseInt(o.marginLeft,10)||0,h=parseInt(o.minHeight,10)||e.minHeight;let p=parseInt(o.maxHeight,10)||e.maxHeight;const f="forceAbove"!==i&&("forceBelow"===i||("above"===i?l=p||c>=l));if(f?p=Math.min(c-u,p):(p=Math.min(l,p),r.style.marginTop="0px"),r.style.maxHeight=`${p}px`,!(p>h&&(c>=h||l>=h)))return void r.classList.add(L);const g=e.offset&&e.offset.vertical&&e.offset.vertical.above||0,m=e.offset&&e.offset.vertical&&e.offset.vertical.below||0;let b=f?a-c+m:l-r.getBoundingClientRect().height+g;r.style.top=`${Math.floor(b)}px`;const _=e.offset&&e.offset.horizontal||0;let y=t.left+_;r.style.left=`${Math.ceil(y)}px`,r.style.width="auto",r.scrollHeight>=p&&(r.style.width=""+(2*r.offsetWidth-r.clientWidth),r.scrollTop=0);const v=r.getBoundingClientRect(),w=n.getBoundingClientRect(),C=v.right;C>window.innerWidth&&(y-=C-window.innerWidth,r.style.left=`${Math.ceil(y)}px`),y<_-d&&(y=_-d,r.style.left=`${Math.ceil(y)}px`),r.classList.add(L);const x=v.bottom,S=n.contains(document.elementFromPoint(y,b)),T=n.contains(document.elementFromPoint(C,b)),E=n.contains(document.elementFromPoint(C,x)),k=n.contains(document.elementFromPoint(y,x)),O=S||T,A=k||E,P=S||k,D=E||T,R=x-b,I=C-y,N=bw.bottom,M=y+dw.right;let q=!1,$=!1,F=!1;if(N)switch((null==s?void 0:s.top)||"hidden-inside"){case"hidden-inside":O||(q=!0);break;case"hidden-outside":A||(q=!0);break;case"stick-inside":w.top>b&&(b=w.top,F=!0);break;case"stick-outside":w.top>x&&(b=w.top-R,F=!0)}if(B)switch((null==s?void 0:s.bottom)||"hidden-outside"){case"hidden-inside":A||(q=!0);break;case"hidden-outside":O||(q=!0);break;case"stick-inside":w.bottomy+d&&(y=w.left-d,$=!0);break;case"stick-outside":w.left>C&&(y=w.left-d-I,$=!0)}if(j)switch((null==s?void 0:s.right)||"hidden-outside"){case"hidden-inside":D||(q=!0);break;case"hidden-outside":P||(q=!0);break;case"stick-inside":w.right0&&this._input.value&&this._input.setSelectionRange(0,this._initialSelectionRange)}getValue(){return this._input.value}}class z extends ${constructor(e){super(e.label),this._input.type="password",this._input.value=e.text?e.text:"",e.placeholder&&(this._input.placeholder=e.placeholder)}onAfterAttach(e){super.onAfterAttach(e),this._input.value&&this._input.select()}getValue(){return this._input.value}}class W extends ${constructor(e){super(e.label),this._editable=e.editable||!1;let t,n=e.current||0;if("number"==typeof n&&(t=Math.max(0,Math.min(n,e.items.length-1)),n=""),this._list=document.createElement("select"),e.items.forEach(((e,r)=>{const i=document.createElement("option");r===t&&(i.selected=!0,n=e),i.value=e,i.textContent=e,this._list.appendChild(i)})),e.editable){const t=document.createElement("datalist");t.id="input-dialog-items",t.appendChild(this._list),this._input.type="list",this._input.value=n,this._input.setAttribute("list",t.id),e.placeholder&&(this._input.placeholder=e.placeholder),this.node.appendChild(t)}else this._input.remove(),this.node.appendChild(m.wrapSelect(this._list))}getValue(){return this._editable?this._input.value:this._list.value}}var G,V=n(4265),K=n(20435);!function(e){function t(t){return!("object"!=typeof t||!t)&&e.symbol in t}async function n(e){const t="string"==typeof e,n=function(){const e=window.document.createElement("iframe");e.setAttribute("sandbox","allow-modals allow-same-origin");return e.setAttribute("style","visibility:hidden;width:0;height:0;position:absolute;z-index:-9999;bottom:0;"),e.setAttribute("width","0"),e.setAttribute("height","0"),e}(),i=window.document.body;i.appendChild(n),t?(n.srcdoc=e,await r(n)):(n.src="about:blank",await r(n),function(e,t){e.contentDocument.body.appendChild(t.cloneNode(!0)),e.contentDocument.close()}(n,e));const s=new Promise((e=>{const t=()=>{document.removeEventListener("mousemove",t,!0),document.removeEventListener("mousedown",t,!0),document.removeEventListener("keydown",t,!0),e()};document.addEventListener("mousemove",t,!0),document.addEventListener("mousedown",t,!0),document.addEventListener("keydown",t,!0)}));var o;(o=n.contentWindow).document.execCommand("print",!1)||o.print(),await s,i.removeChild(n)}function r(e){return new Promise((t=>{e.onload=()=>t()}))}e.symbol=Symbol("printable"),e.isPrintable=t,e.getPrintFunction=function(n){return t(n)?n[e.symbol]():null},e.printWidget=function(e){return n(e.node)},e.printURL=async function(e){const t=K.ServerConnection.makeSettings();return n(await(await K.ServerConnection.makeRequest(e,{},t)).text())}}(G||(G={}));class Y extends l.Widget{constructor(){super(),this.addClass("jp-Spinner"),this.node.tabIndex=-1;const e=document.createElement("div");e.className="jp-SpinnerContent",this.node.appendChild(e)}onActivateRequest(e){this.node.focus()}}var X=n(72867),J=n(89116),Z=n(55941);class Q{constructor(e){var t,n,r,i;this._path="",this._name="",this._type="",this._prevKernelName="",this._isDisposed=!1,this._disposed=new a.Signal(this),this._session=null,this._ready=new s.PromiseDelegate,this._initializing=!1,this._initStarted=new s.PromiseDelegate,this._initPromise=new s.PromiseDelegate,this._isReady=!1,this._isTerminating=!1,this._isRestarting=!1,this._kernelChanged=new a.Signal(this),this._sessionChanged=new a.Signal(this),this._statusChanged=new a.Signal(this),this._connectionStatusChanged=new a.Signal(this),this._pendingInput=!1,this._iopubMessage=new a.Signal(this),this._unhandledMessage=new a.Signal(this),this._propertyChanged=new a.Signal(this),this._dialog=null,this._busyDisposable=null,this._pendingKernelName="",this._pendingSessionRequest="",this.sessionManager=e.sessionManager,this.specsManager=e.specsManager,this.translator=e.translator||V.nullTranslator,this._trans=this.translator.load("jupyterlab"),this._path=null!==(t=e.path)&&void 0!==t?t:s.UUID.uuid4(),this._type=null!==(n=e.type)&&void 0!==n?n:"",this._name=null!==(r=e.name)&&void 0!==r?r:"",this._setBusy=e.setBusy,this._kernelPreference=null!==(i=e.kernelPreference)&&void 0!==i?i:{}}get session(){var e;return null!==(e=this._session)&&void 0!==e?e:null}get path(){return this._path}get type(){return this._type}get name(){return this._name}get kernelChanged(){return this._kernelChanged}get sessionChanged(){return this._sessionChanged}get statusChanged(){return this._statusChanged}get pendingInput(){return this._pendingInput}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get propertyChanged(){return this._propertyChanged}get kernelPreference(){return this._kernelPreference}set kernelPreference(e){this._kernelPreference=e}get isReady(){return this._isReady}get ready(){return this._ready.promise}get isTerminating(){return this._isTerminating}get isRestarting(){return this._isRestarting}get hasNoKernel(){return this.kernelDisplayName===this.noKernelName}get kernelDisplayName(){var e,t,n,r,i,s,o,a,l,c;const u=null===(e=this.session)||void 0===e?void 0:e.kernel;if(this._pendingKernelName===this.noKernelName)return this.noKernelName;if(!u&&!this.isReady&&!1!==this.kernelPreference.canStart&&!1!==this.kernelPreference.shouldStart){let e=this._pendingKernelName||Q.getDefaultKernel({specs:this.specsManager.specs,sessions:this.sessionManager.running(),preference:this.kernelPreference})||"";return e?(e=null!==(r=null===(n=null===(t=this.specsManager.specs)||void 0===t?void 0:t.kernelspecs[e])||void 0===n?void 0:n.display_name)&&void 0!==r?r:e,e):this.noKernelName}return this._pendingKernelName?null!==(o=null===(s=null===(i=this.specsManager.specs)||void 0===i?void 0:i.kernelspecs[this._pendingKernelName])||void 0===s?void 0:s.display_name)&&void 0!==o?o:this._pendingKernelName:u?null!==(c=null===(l=null===(a=this.specsManager.specs)||void 0===a?void 0:a.kernelspecs[u.name])||void 0===l?void 0:l.display_name)&&void 0!==c?c:u.name:this.noKernelName}get kernelDisplayStatus(){var e,t;const n=null===(e=this.session)||void 0===e?void 0:e.kernel;return this._isTerminating?"terminating":this._isRestarting?"restarting":this._pendingKernelName===this.noKernelName?"unknown":!n&&this._pendingKernelName?"initializing":n||this.isReady||!1===this.kernelPreference.canStart||!1===this.kernelPreference.shouldStart?null!==(t="connected"===(null==n?void 0:n.connectionStatus)?null==n?void 0:n.status:null==n?void 0:n.connectionStatus)&&void 0!==t?t:"unknown":"initializing"}get prevKernelName(){return this._prevKernelName}get isDisposed(){return this._isDisposed}get disposed(){return this._disposed}get noKernelName(){return this._trans.__("No Kernel")}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._session&&(this.kernelPreference.shutdownOnDispose&&this.sessionManager.shutdown(this._session.id).catch((e=>{console.error(`Kernel not shut down ${e}`)})),this._session.dispose(),this._session=null),this._dialog&&this._dialog.dispose(),this._busyDisposable&&(this._busyDisposable.dispose(),this._busyDisposable=null),a.Signal.clearData(this))}async restartKernel(){var e,t,n,r,i,s;const o=(null===(e=this.session)||void 0===e?void 0:e.kernel)||null;if(!this._isRestarting){this._isRestarting=!0,this._isReady=!1,this._statusChanged.emit("restarting");try{await(null===(n=null===(t=this.session)||void 0===t?void 0:t.kernel)||void 0===n?void 0:n.restart()),this._isReady=!0}catch(e){console.error(e)}this._isRestarting=!1,this._statusChanged.emit((null===(i=null===(r=this.session)||void 0===r?void 0:r.kernel)||void 0===i?void 0:i.status)||"unknown"),this._kernelChanged.emit({name:"kernel",oldValue:o,newValue:(null===(s=this.session)||void 0===s?void 0:s.kernel)||null})}}async changeKernel(e={}){if(this.isDisposed)throw new Error("Disposed");return await this._initStarted.promise,this._changeKernel(e)}async shutdown(){if(!this.isDisposed&&this._initializing)return await this._initStarted.promise,this._pendingSessionRequest="",this._pendingKernelName=this.noKernelName,this._shutdownSession()}async initialize(){if(this._initializing)return this._initPromise.promise;this._initializing=!0;const e=await this._initialize();return e||(this._isReady=!0,this._ready.resolve(void 0)),this._pendingSessionRequest||this._initStarted.resolve(void 0),this._initPromise.resolve(e),e}async _initialize(){const e=this.sessionManager;await e.ready,await e.refreshRunning();const t=(0,_.find)(e.running(),(e=>e.path===this._path));if(t)try{const n=e.connectTo({model:t});this._handleNewSession(n)}catch(e){return this._handleSessionError(e),Promise.reject(e)}return await this._startIfNecessary()}async _shutdownSession(){var e;const t=this._session,n=this._isTerminating,r=this._isReady;this._isTerminating=!0,this._isReady=!1,this._statusChanged.emit("terminating");try{await(null==t?void 0:t.shutdown()),this._isTerminating=!1,null==t||t.dispose(),this._session=null;const e=(null==t?void 0:t.kernel)||null;this._statusChanged.emit("unknown"),this._kernelChanged.emit({name:"kernel",oldValue:e,newValue:null}),this._sessionChanged.emit({name:"session",oldValue:t,newValue:null})}catch(i){this._isTerminating=n,this._isReady=r;const s=null===(e=null==t?void 0:t.kernel)||void 0===e?void 0:e.status;throw void 0===s?this._statusChanged.emit("unknown"):this._statusChanged.emit(s),i}}async _startIfNecessary(){var e;const t=this.kernelPreference;if(this.isDisposed||(null===(e=this.session)||void 0===e?void 0:e.kernel)||!1===t.shouldStart||!1===t.canStart)return!1;let n;if(t.id)n={id:t.id};else{const e=Q.getDefaultKernel({specs:this.specsManager.specs,sessions:this.sessionManager.running(),preference:t});e&&(n={name:e})}if(n)try{return await this._changeKernel(n),!1}catch(e){}return!0}async _changeKernel(e={},t=!1){if(e.name&&(this._pendingKernelName=e.name),this._session||this._kernelChanged.emit({name:"kernel",oldValue:null,newValue:null}),this._pendingSessionRequest||this._initStarted.resolve(void 0),this._session&&!this._isTerminating)try{return await this._session.changeKernel(e),this._session.kernel}catch(e){throw this._handleSessionError(e),e}const n=Z.PathExt.dirname(this._path),r=this._pendingSessionRequest=Z.PathExt.join(n,s.UUID.uuid4());try{this._statusChanged.emit("starting");const t=await this.sessionManager.startNew({path:r,type:this._type,name:this._name,kernel:e});return this._pendingSessionRequest!==t.path?(await t.shutdown(),t.dispose(),null):(await t.setPath(this._path),await t.setName(this._name),this._session&&!this._isTerminating&&await this._shutdownSession(),this._handleNewSession(t))}catch(e){throw this._handleSessionError(e),e}}_handleNewSession(e){var t,n,r;if(this.isDisposed)throw Error("Disposed");return this._isReady||(this._isReady=!0,this._ready.resolve(void 0)),this._session&&this._session.dispose(),this._session=e,this._pendingKernelName="",e&&(this._prevKernelName=null!==(n=null===(t=e.kernel)||void 0===t?void 0:t.name)&&void 0!==n?n:"",e.disposed.connect(this._onSessionDisposed,this),e.propertyChanged.connect(this._onPropertyChanged,this),e.kernelChanged.connect(this._onKernelChanged,this),e.statusChanged.connect(this._onStatusChanged,this),e.connectionStatusChanged.connect(this._onConnectionStatusChanged,this),e.pendingInput.connect(this._onPendingInput,this),e.iopubMessage.connect(this._onIopubMessage,this),e.unhandledMessage.connect(this._onUnhandledMessage,this),e.path!==this._path&&this._onPropertyChanged(e,"path"),e.name!==this._name&&this._onPropertyChanged(e,"name"),e.type!==this._type&&this._onPropertyChanged(e,"type")),this._sessionChanged.emit({name:"session",oldValue:null,newValue:e}),this._kernelChanged.emit({oldValue:null,newValue:(null==e?void 0:e.kernel)||null,name:"kernel"}),this._statusChanged.emit((null===(r=null==e?void 0:e.kernel)||void 0===r?void 0:r.status)||"unknown"),(null==e?void 0:e.kernel)||null}async _handleSessionError(e){this._handleNewSession(null);let t="",n="";try{t=e.traceback,n=e.message}catch(e){}await this._displayKernelError(n,t)}async _displayKernelError(e,t){const n=v.createElement("div",null,e&&v.createElement("pre",null,e),t&&v.createElement("details",{className:"jp-mod-wide"},v.createElement("pre",null,t))),r=this._dialog=new R({title:this._trans.__("Error Starting Kernel"),body:n,buttons:[R.okButton()]});await r.launch(),this._dialog=null}_onSessionDisposed(){if(this._session){const e=this._session;this._session=null;const t=this._session;this._sessionChanged.emit({name:"session",oldValue:e,newValue:t})}}_onPropertyChanged(e,t){switch(t){case"path":this._path=e.path;break;case"name":this._name=e.name;break;case"type":this._type=e.type;break;default:throw new Error(`unrecognized property ${t}`)}this._propertyChanged.emit(t)}_onKernelChanged(e,t){this._kernelChanged.emit(t)}_onStatusChanged(e,t){var n;if("dead"===t){const t=null===(n=e.kernel)||void 0===n?void 0:n.model;if(null==t?void 0:t.reason){const e=t.traceback||"";this._displayKernelError(t.reason,e)}}this._setBusy&&("busy"===t?this._busyDisposable||(this._busyDisposable=this._setBusy()):this._busyDisposable&&(this._busyDisposable.dispose(),this._busyDisposable=null)),this._statusChanged.emit(t)}_onConnectionStatusChanged(e,t){this._connectionStatusChanged.emit(t)}_onPendingInput(e,t){this._pendingInput=t}_onIopubMessage(e,t){"shutdown_reply"===t.header.msg_type&&this.session.kernel.removeInputGuard(),this._iopubMessage.emit(t)}_onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}}!function(e){e.getDefaultKernel=function(e){return te.getDefaultKernel(e)}}(Q||(Q={}));const ee={async selectKernel(e,t){if(e.isDisposed)return Promise.resolve();const n=(t=t||V.nullTranslator).load("jupyterlab");let r=n.__("Cancel");e.hasNoKernel&&(r=e.kernelDisplayName);const i=[R.cancelButton({label:r}),R.okButton({label:n.__("Select")})],s=new R({title:n.__("Select Kernel"),body:new te.KernelSelector(e,t),buttons:i}),o=await s.launch();if(e.isDisposed||!o.button.accept)return;const a=o.value;if(null===a&&!e.hasNoKernel)return e.shutdown();a&&await e.changeKernel(a)},async restart(e,t){var n;const r=(t=t||V.nullTranslator).load("jupyterlab");if(await e.initialize(),e.isDisposed)throw new Error("session already disposed");const i=null===(n=e.session)||void 0===n?void 0:n.kernel;if(!i&&e.prevKernelName)return await e.changeKernel({name:e.prevKernelName}),!0;if(!i)throw new Error("No kernel to restart");const s=R.warnButton({label:"Restart"}),o=await P({title:r.__("Restart Kernel?"),body:r.__("Do you want to restart the current kernel? All variables will be lost."),buttons:[R.cancelButton(),s]});return!i.isDisposed&&!!o.button.accept&&(await e.restartKernel(),!0)}};var te;function ne(e){const t=(e=e||V.nullTranslator).load("jupyterlab");return{unknown:t.__("Unknown"),starting:t.__("Starting"),idle:t.__("Idle"),busy:t.__("Busy"),terminating:t.__("Terminating"),restarting:t.__("Restarting"),autorestarting:t.__("Autorestarting"),dead:t.__("Dead"),connected:t.__("Connected"),connecting:t.__("Connecting"),disconnected:t.__("Disconnected"),initializing:t.__("Initializing"),"":""}}!function(e){class t extends l.Widget{constructor(e,t){super({node:n(e,t)})}getValue(){const e=this.node.querySelector("select");return JSON.parse(e.value)}}function n(e,t){const n=(t=t||V.nullTranslator).load("jupyterlab"),i=document.createElement("div"),s=document.createElement("label");s.textContent=`${n.__("Select kernel for:")} "${e.name}"`,i.appendChild(s);const o=function(e){return{specs:e.specsManager.specs,sessions:e.sessionManager.running(),preference:e.kernelPreference}}(e),a=document.createElement("select");return r(a,o,t,e.hasNoKernel?null:e.kernelDisplayName),i.appendChild(a),i}function r(e,t,n,r=null){for(;e.firstChild;)e.removeChild(e.firstChild);const{preference:a,sessions:l,specs:c}=t,{name:u,id:d,language:h,canStart:p,shouldStart:f}=a,g=(n=n||V.nullTranslator).load("jupyterlab");if(!c||!1===p)return e.appendChild(s(n)),e.value="null",void(e.disabled=!0);e.disabled=!1;const m=Object.create(null),b=Object.create(null);for(const e in c.kernelspecs){const t=c.kernelspecs[e];m[e]=t.display_name,b[e]=t.language}const y=[];if(u&&u in c.kernelspecs&&y.push(u),h)for(const e in c.kernelspecs)u!==e&&b[e]===h&&y.push(e);y.length||y.push(c.default);const v=document.createElement("optgroup");v.label=g.__("Start Preferred Kernel"),y.sort(((e,t)=>m[e].localeCompare(m[t])));for(const e of y)v.appendChild(i(e,m[e]));v.firstChild&&e.appendChild(v),e.appendChild(s());const w=document.createElement("optgroup");w.label=g.__("Start Other Kernel");const C=[];for(const e in c.kernelspecs)-1===y.indexOf(e)&&C.push(e);C.sort(((e,t)=>m[e].localeCompare(m[t])));for(const e of C)w.appendChild(i(e,m[e]));if(C.length&&e.appendChild(w),!1===f)e.value="null";else{let t=0;r&&(t=[...e.options].findIndex((e=>e.text===r)),t=Math.max(t,0)),e.selectedIndex=t}if(!l)return;const x=[],S=[];(0,_.each)(l,(e=>{var t;h&&e.kernel&&b[e.kernel.name]===h&&e.kernel.id!==d?x.push(e):(null===(t=e.kernel)||void 0===t?void 0:t.id)!==d&&S.push(e)}));const T=document.createElement("optgroup");T.label=g.__("Use Kernel from Preferred Session"),e.appendChild(T),x.length&&(x.sort(((e,t)=>e.path.localeCompare(t.path))),(0,_.each)(x,(e=>{const t=e.kernel?m[e.kernel.name]:"";T.appendChild(o(e,t,n))})));const E=document.createElement("optgroup");E.label=g.__("Use Kernel from Other Session"),e.appendChild(E),S.length&&(S.sort(((e,t)=>e.path.localeCompare(t.path))),(0,_.each)(S,(e=>{const t=e.kernel?m[e.kernel.name]||e.kernel.name:"";E.appendChild(o(e,t,n))})))}function i(e,t){const n=document.createElement("option");return n.text=t,n.value=JSON.stringify({name:e}),n}function s(e){const t=(e=e||V.nullTranslator).load("jupyterlab"),n=document.createElement("optgroup");n.label=t.__("Use No Kernel");const r=document.createElement("option");return r.text=t.__("No Kernel"),r.value="null",n.appendChild(r),n}function o(e,t,n){var r,i;const s=(n=n||V.nullTranslator).load("jupyterlab"),o=document.createElement("option"),a=e.name||Z.PathExt.basename(e.path);return o.text=a,o.value=JSON.stringify({id:null===(r=e.kernel)||void 0===r?void 0:r.id}),o.title=`${s.__("Path:")} ${e.path}\n${s.__("Name:")} ${a}\n${s.__("Kernel Name:")} ${t}\n${s.__("Kernel Id:")} ${null===(i=e.kernel)||void 0===i?void 0:i.id}`,o}e.KernelSelector=t,e.getDefaultKernel=function(e){var t;const{specs:n,preference:r}=e,{name:i,language:s,shouldStart:o,canStart:a,autoStartDefault:l}=r;if(!n||!1===o||!1===a)return null;const c=l?n.default:null;if(!i&&!s)return c;for(const e in n.kernelspecs)if(e===i)return i;if(!s)return c;const u=[];for(const e in n.kernelspecs)s===(null===(t=n.kernelspecs[e])||void 0===t?void 0:t.language)&&u.push(e);if(1===u.length){const e=u[0];return console.warn("No exact match found for "+e+", using kernel "+e+" that matches language="+s),e}return c},e.populateKernelSelect=r}(te||(te={}));var re=n(61313);const ie="toolbar-popup-opener",se="jp-Toolbar-spacer";class oe extends l.PanelLayout{constructor(){super(...arguments),this._dirty=!1}onFitRequest(e){super.onFitRequest(e),this.parent.isAttached&&((0,_.some)(this.widgets,(e=>!e.isHidden))?(this.parent.node.style.minHeight="var(--jp-private-toolbar-height)",this.parent.removeClass("jp-Toolbar-micro")):(this.parent.node.style.minHeight="",this.parent.addClass("jp-Toolbar-micro"))),this._dirty=!0,this.parent.parent&&y.MessageLoop.sendMessage(this.parent.parent,l.Widget.Msg.FitRequest),this._dirty&&y.MessageLoop.sendMessage(this.parent,l.Widget.Msg.UpdateRequest)}onUpdateRequest(e){super.onUpdateRequest(e),this.parent.isVisible&&(this._dirty=!1)}onChildShown(e){super.onChildShown(e),this.parent.fit()}onChildHidden(e){super.onChildHidden(e),this.parent.fit()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}attachWidget(e,t){super.attachWidget(e,t),this.parent.fit()}detachWidget(e,t){super.detachWidget(e,t),this.parent.fit()}}class ae extends l.Widget{constructor(e={}){var t;super(),this.addClass("jp-Toolbar"),this.layout=null!==(t=e.layout)&&void 0!==t?t:new oe}names(){const e=this.layout;return(0,_.map)(e.widgets,(e=>be.nameProperty.get(e)))}addItem(e,t){const n=this.layout;return this.insertItem(n.widgets.length,e,t)}insertItem(e,t,n){if((0,_.find)(this.names(),(e=>e===t)))return!1;n.addClass("jp-Toolbar-item");const r=this.layout,i=Math.max(0,Math.min(e,r.widgets.length));return r.insertWidget(i,n),be.nameProperty.set(n,t),!0}insertAfter(e,t,n){return this._insertRelative(e,1,t,n)}insertBefore(e,t,n){return this._insertRelative(e,0,t,n)}_insertRelative(e,t,n,r){const i=(0,_.map)(this.names(),((e,t)=>({name:e,index:t}))),s=(0,_.find)(i,(t=>t.name===e));return!!s&&this.insertItem(s.index+t,n,r)}handleEvent(e){"click"===e.type&&this.handleClick(e)}handleClick(e){if(e.stopPropagation(),e.target instanceof HTMLLabelElement){const t=e.target.getAttribute("for");if(t&&this.node.querySelector(`#${t}`))return}this.node.contains(document.activeElement)||this.parent&&this.parent.activate()}onAfterAttach(e){this.node.addEventListener("click",this)}onBeforeDetach(e){this.node.removeEventListener("click",this)}}class le extends ae{constructor(){super(),this.popupOpener=new me,this._widgetWidths={},this.insertItem(0,ie,this.popupOpener),this.popupOpener.hide(),this._resizer=new re.Throttler(this._onResize.bind(this),500)}dispose(){this.isDisposed||(this._resizer&&this._resizer.dispose(),super.dispose())}insertAfter(e,t,n){return e!==ie&&super.insertAfter(e,t,n)}insertItem(e,t,n){if(n instanceof me)return super.insertItem(e,t,n);{const r=Math.max(0,Math.min(e,this.layout.widgets.length-1));return super.insertItem(r,t,n)}}onBeforeHide(e){this.popupOpener.hidePopup(),super.onBeforeHide(e)}onResize(e){super.onResize(e),e.width>0&&this._resizer&&this._resizer.invoke()}_onResize(){if(this.parent&&this.parent.isAttached){const e=this.node.clientWidth,t=this.popupOpener,n=30,r=2,i=this.layout;let s=t.isHidden?r:r+n,o=0;const a=[],l=i.widgets.length-1;for(;oe&&(s+=n),s>e&&a.push(r),o++}for(;a.length>0;){const e=a.pop();s-=this._getWidgetWidth(e),t.addWidget(e)}if(t.widgetCount()>0){const r=[];let i=0,o=t.widgetAt(i);const a=t.widgetCount();for(s+=this._getWidgetWidth(o),1===a&&s-n<=e&&(s-=n);s0;){const e=r.shift();this.addItem(be.nameProperty.get(e),e)}}t.widgetCount()>0?(t.updatePopup(),t.show()):t.hide()}}_saveWidgetWidth(e){const t=be.nameProperty.get(e);this._widgetWidths[t]=e.hasClass(se)?2:e.node.clientWidth}_getWidgetWidth(e){const t=be.nameProperty.get(e);return this._widgetWidths[t]}}function ce(e){var t,n;return v.createElement(o.Button,Object.assign({className:e.className?e.className+" jp-ToolbarButtonComponent":"jp-ToolbarButtonComponent","aria-pressed":e.pressed,"aria-disabled":!1===e.enabled},e.dataset,{disabled:!1===e.enabled,onClick:null!==(t=e.actualOnClick)&&void 0!==t&&t?t=>{var n;0===t.button&&(null===(n=e.onClick)||void 0===n||n.call(e))}:void 0,onMouseDown:null!==(n=e.actualOnClick)&&void 0!==n&&n?void 0:t=>{var n;0===t.button&&(t.preventDefault(),null===(n=e.onClick)||void 0===n||n.call(e))},onKeyDown:t=>{var n;const{key:r}=t;"Enter"!==r&&" "!==r||null===(n=e.onClick)||void 0===n||n.call(e)},title:!1===e.enabled&&e.disabledTooltip?e.disabledTooltip:e.pressed&&e.pressedTooltip?e.pressedTooltip:e.tooltip||e.iconLabel,minimal:!0}),(e.icon||e.iconClass)&&v.createElement(o.LabIcon.resolveReact,{icon:e.pressed?e.pressedIcon:e.icon,iconClass:(0,o.classes)(e.iconClass,"jp-Icon"),className:"jp-ToolbarButtonComponent-icon",tag:"span",stylesheet:"toolbarButton"}),e.label&&v.createElement("span",{className:"jp-ToolbarButtonComponent-label"},e.label))}function ue(e){return e.addClass("jp-ToolbarButton"),e}!function(e){e.createInterruptButton=function(e,t){const n=(t=t||V.nullTranslator).load("jupyterlab");return new de({icon:o.stopIcon,onClick:()=>{var t,n;null===(n=null===(t=e.session)||void 0===t?void 0:t.kernel)||void 0===n||n.interrupt()},tooltip:n.__("Interrupt the kernel")})},e.createRestartButton=function(e,t,n){const r=(n=n||V.nullTranslator).load("jupyterlab");return new de({icon:o.refreshIcon,onClick:()=>{(null!=t?t:ee).restart(e,n)},tooltip:r.__("Restart the kernel")})},e.createSpacerItem=function(){return new be.Spacer},e.createKernelNameItem=function(e,t,n){const r=x.create(v.createElement(be.KernelNameComponent,{sessionContext:e,dialogs:null!=t?t:ee,translator:n}));return r.addClass("jp-KernelName"),r},e.createKernelStatusItem=function(e,t){return new be.KernelStatus(e,t)}}(ae||(ae={}));class de extends x{constructor(e={}){var t,n;super(),this.props=e,ue(this),this._enabled=null===(t=e.enabled)||void 0===t||t,this._pressed=this._enabled&&null!==(n=e.pressed)&&void 0!==n&&n,this._onClick=e.onClick}set pressed(e){this.enabled&&e!==this._pressed&&(this._pressed=e,this.update())}get pressed(){return this._pressed}set enabled(e){e!=this._enabled&&(this._enabled=e,this._enabled||(this._pressed=!1),this.update())}get enabled(){return this._enabled}set onClick(e){e!==this._onClick&&(this._onClick=e,this.update())}get onClick(){return this._onClick}render(){return v.createElement(ce,Object.assign({},this.props,{pressed:this.pressed,enabled:this.enabled,onClick:this.onClick}))}}function he(e){return v.createElement(T,{signal:e.commands.commandChanged,shouldUpdate:(t,n)=>n.id===e.id&&"changed"===n.type||"many-changed"===n.type},(()=>v.createElement(ce,Object.assign({},be.propsFromCommand(e)))))}function pe(e){return e.addClass("jp-CommandToolbarButton"),e}class fe extends x{constructor(e){super(),this.props=e,pe(this)}render(){return v.createElement(he,Object.assign({},this.props))}}class ge extends l.Widget{constructor(){super(),this.width=0,this.addClass("jp-Toolbar-responsive-popup"),this.layout=new l.PanelLayout,l.Widget.attach(this,document.body),this.hide()}updateWidth(e){e>0&&(this.width=e,this.node.style.width=`${e}px`)}alignTo(e){const{height:t,width:n,x:r,y:i}=e.node.getBoundingClientRect(),s=this.width;this.node.style.left=r+n-s+1+"px",this.node.style.top=`${i+t+1}px`}insertWidget(e,t){this.layout.insertWidget(0,t)}widgetCount(){return this.layout.widgets.length}widgetAt(e){return this.layout.widgets[e]}}class me extends de{constructor(){super({icon:o.ellipsesIcon,onClick:()=>{this.handleClick()}}),this.addClass("jp-Toolbar-responsive-opener"),this.popup=new ge}addWidget(e){this.popup.insertWidget(0,e)}dispose(){this.isDisposed||(this.popup.dispose(),super.dispose())}hide(){super.hide(),this.hidePopup()}hidePopup(){this.popup.hide()}updatePopup(){this.popup.updateWidth(this.parent.node.clientWidth),this.popup.alignTo(this.parent)}widgetAt(e){return this.popup.widgetAt(e)}widgetCount(){return this.popup.widgetCount()}handleClick(){this.updatePopup(),this.popup.setHidden(!this.popup.isHidden)}}var be;!function(e){e.propsFromCommand=function(e){var t,n;const{commands:r,id:i,args:s}=e,o=r.iconClass(i,s),a=r.iconLabel(i,s),l=null!==(t=e.icon)&&void 0!==t?t:r.icon(i,s),c=l===o?void 0:l,u=r.label(i,s);let d=r.className(i,s);r.isToggled(i,s)&&(d+=" lm-mod-toggled"),r.isVisible(i,s)||(d+=" lm-mod-hidden");let h=r.caption(i,s)||e.label||u||a;const p=r.keyBindings.find((e=>e.command===i));p&&(h=`${h} (${p.keys.map(X.CommandRegistry.formatKeystroke).join(", ")})`);const f=r.isEnabled(i,s);return{className:d,dataset:{"data-command":e.id},icon:c,iconClass:o,tooltip:h,onClick:()=>{r.execute(i,s)},enabled:f,label:null!==(n=e.label)&&void 0!==n?n:u}},e.nameProperty=new J.AttachedProperty({name:"name",create:()=>""}),e.noOp=function(){};class t extends l.Widget{constructor(){super(),this.addClass(se)}}e.Spacer=t,e.KernelNameComponent=function(e){const t=e.translator||V.nullTranslator,n=t.load("jupyterlab"),r=()=>{e.dialogs.selectKernel(e.sessionContext,t)};return v.createElement(T,{signal:e.sessionContext.kernelChanged,initialSender:e.sessionContext},(e=>v.createElement(ce,{className:"jp-Toolbar-kernelName",onClick:r,tooltip:n.__("Switch kernel"),label:null==e?void 0:e.kernelDisplayName})))};class n extends l.Widget{constructor(e,t){super(),this.translator=t||V.nullTranslator,this._trans=this.translator.load("jupyterlab"),this.addClass("jp-Toolbar-kernelStatus"),this._statusNames=ne(this.translator),this._onStatusChanged(e),e.statusChanged.connect(this._onStatusChanged,this),e.connectionStatusChanged.connect(this._onStatusChanged,this)}_onStatusChanged(e){if(this.isDisposed)return;const t=e.kernelDisplayStatus,n={container:this.node,title:this._trans.__("Kernel %1",this._statusNames[t]||t),stylesheet:"toolbarButton",alignSelf:"normal",height:"24px"};o.LabIcon.remove(this.node),"busy"===t||"starting"===t||"terminating"===t||"restarting"===t||"initializing"===t?o.circleIcon.element(n):"connecting"===t||"disconnected"===t||"unknown"===t?o.offlineBoltIcon.element(n):o.circleEmptyIcon.element(n)}}e.KernelStatus=n}(be||(be={}));class _e extends l.Widget{constructor(e){super(e),this._changeGuard=!1,this._spinner=new Y,this._isRevealed=!1,this._evtMouseDown=()=>{this.node.contains(document.activeElement)||this._focusContent()},this.addClass("jp-MainAreaWidget"),this.addClass("jp-MainAreaWidget-ContainStrict"),this.id=I.createDomID();const t=(e.translator||V.nullTranslator).load("jupyterlab"),n=this._content=e.content;n.node.setAttribute("role","region"),n.node.setAttribute("aria-label",t.__("notebook content"));const r=this._toolbar=e.toolbar||new le;r.node.setAttribute("role","navigation"),r.node.setAttribute("aria-label",t.__("notebook actions"));const i=this._contentHeader=e.contentHeader||new l.BoxPanel({direction:"top-to-bottom",spacing:0}),s=this.layout=new l.BoxLayout({spacing:0});s.direction="top-to-bottom",l.BoxLayout.setStretch(r,0),l.BoxLayout.setStretch(i,0),l.BoxLayout.setStretch(n,1),s.addWidget(r),s.addWidget(i),s.addWidget(n),n.id||(n.id=I.createDomID()),n.node.tabIndex=0,this._updateTitle(),n.title.changed.connect(this._updateTitle,this),this.title.closable=!0,this.title.changed.connect(this._updateContentTitle,this),e.reveal?(this.node.appendChild(this._spinner.node),this._revealed=e.reveal.then((()=>{if(n.isDisposed)return void this.dispose();n.disposed.connect((()=>this.dispose()));const e=document.activeElement===this._spinner.node;this._disposeSpinner(),this._isRevealed=!0,e&&this._focusContent()})).catch((e=>{const t=new l.Widget;t.addClass("jp-MainAreaWidget-error");const i=document.createElement("pre");throw i.textContent=String(e),t.node.appendChild(i),l.BoxLayout.setStretch(t,1),this._disposeSpinner(),n.dispose(),this._content=null,r.dispose(),this._toolbar=null,s.addWidget(t),this._isRevealed=!0,t}))):(this._spinner.dispose(),this.removeClass("jp-MainAreaWidget-ContainStrict"),n.disposed.connect((()=>this.dispose())),this._isRevealed=!0,this._revealed=Promise.resolve(void 0))}[G.symbol](){return this._content?G.getPrintFunction(this._content):null}get content(){return this._content}get toolbar(){return this._toolbar}get contentHeader(){return this._contentHeader}get isRevealed(){return this._isRevealed}get revealed(){return this._revealed}onActivateRequest(e){this._isRevealed?this._focusContent():this._spinner.node.focus()}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("mousedown",this._evtMouseDown,!0)}onBeforeDetach(e){this.node.removeEventListener("mousedown",this._evtMouseDown,!0),super.onBeforeDetach(e)}onCloseRequest(e){this.dispose()}onUpdateRequest(e){this._content&&y.MessageLoop.sendMessage(this._content,e)}_disposeSpinner(){this.node.removeChild(this._spinner.node),this._spinner.dispose(),this.removeClass("jp-MainAreaWidget-ContainStrict")}_updateTitle(){if(this._changeGuard||!this.content)return;this._changeGuard=!0;const e=this.content;this.title.label=e.title.label,this.title.mnemonic=e.title.mnemonic,this.title.icon=e.title.icon,this.title.iconClass=e.title.iconClass,this.title.iconLabel=e.title.iconLabel,this.title.caption=e.title.caption,this.title.className=e.title.className,this.title.dataset=e.title.dataset,this._changeGuard=!1}_updateContentTitle(){if(this._changeGuard||!this.content)return;this._changeGuard=!0;const e=this.content;e.title.label=this.title.label,e.title.mnemonic=this.title.mnemonic,e.title.icon=this.title.icon,e.title.iconClass=this.title.iconClass,e.title.iconLabel=this.title.iconLabel,e.title.caption=this.title.caption,e.title.className=this.title.className,e.title.dataset=this.title.dataset,this._changeGuard=!1}_focusContent(){this.content&&(this.content.node.contains(document.activeElement)||this.content.node.focus(),this.content.activate())}}var ye,ve=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i!e.disabled)).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:1/0)-(null!==(r=t.rank)&&void 0!==r?r:1/0)})).map((e=>{n(e,s,t)})),s}function n(e,n,r){const{submenu:i}=e,s=ve(e,["submenu"]);n.addItem(Object.assign(Object.assign({},s),{submenu:i?t(i,r):null}))}function r(e,t,i){var o;e.disabled?t.dispose():null===(o=e.items)||void 0===o||o.forEach((e=>{var o,a;const l=null==t?void 0:t.items.find(((t,n)=>{var r,i,s;return t.type===e.type&&t.command===(null!==(r=e.command)&&void 0!==r?r:"")&&(null===(i=t.submenu)||void 0===i?void 0:i.id)===(null===(s=e.submenu)||void 0===s?void 0:s.id)}));if(l&&"separator"!==e.type)if(e.disabled)t.removeItem(l);else switch(null!==(o=e.type)&&void 0!==o?o:"command"){case"command":e.command&&(s.JSONExt.deepEqual(l.args,null!==(a=e.args)&&void 0!==a?a:{})||n(e,t,i));break;case"submenu":e.submenu&&r(e.submenu,l.submenu,i)}else n(e,t,i)}))}e.createMenus=function(e,n){return e.filter((e=>!e.disabled)).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:1/0)-(null!==(r=t.rank)&&void 0!==r?r:1/0)})).map((e=>t(e,n)))},e.addContextItem=function(e,n,r){const{submenu:i}=e,s=ve(e,["submenu"]);n.addItem(Object.assign(Object.assign({},s),{submenu:i?t(i,r):null}))},e.updateMenus=function(e,n,i){const s=[];return n.forEach((n=>{const o=e.find((e=>e.id===n.id));o?r(n,o,i):n.disabled||s.push(t(n,i))})),e.push(...s),s}}(ye||(ye={}));var we=n(15354),Ce=n.n(we);class xe{static reg(e){return new RegExp("^"+e+"$","i")}}xe.N={integer:"[+-]?[0-9]+",integer_pos:"[+]?[0-9]+",integer_zero_ff:"([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",number:"[+-]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_pos:"[+]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_zero_hundred:"[+]?(([0-9]|[1-9][0-9])([.][0-9]+)?|100)",number_zero_one:"[+]?(1([.][0]+)?|0?([.][0-9]+)?)"},xe.B={angle:`(${xe.N.number}(deg|rad|grad|turn)|0)`,frequency:`${xe.N.number}(Hz|kHz)`,ident:String.raw`-?([_a-z]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*`,len_or_perc:`(0|${xe.N.number}(px|em|rem|ex|in|cm|mm|pt|pc|%))`,length:`(${xe.N.number}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,length_pos:`(${xe.N.number_pos}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,percentage:`${xe.N.number}%`,percentage_pos:`${xe.N.number_pos}%`,percentage_zero_hundred:`${xe.N.number_zero_hundred}%`,string:String.raw`(\"([^\n\r\f\\"]|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\")|(\'([^\n\r\f\\']|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\')`,time:`${xe.N.number}(s|ms)`,url:"url\\(.*?\\)",z_index:"[+-]?[0-9]{1,7}"},xe.A={absolute_size:"xx-small|x-small|small|medium|large|x-large|xx-large",attachment:"scroll|fixed|local",bg_origin:"border-box|padding-box|content-box",border_style:"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset",box:"border-box|padding-box|content-box",display_inside:"auto|block|table|flex|grid",display_outside:"block-level|inline-level|none|table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption",ending_shape:"circle|ellipse",generic_family:"serif|sans-serif|cursive|fantasy|monospace",generic_voice:"male|female|child",relative_size:"smaller|larger",repeat_style:"repeat-x|repeat-y|((?:repeat|space|round|no-repeat)(?:\\s*(?:repeat|space|round|no-repeat))?)",side_or_corner:"(left|right)?\\s*(top|bottom)?",single_animation_direction:"normal|reverse|alternate|alternate-reverse",single_animation_fill_mode:"none|forwards|backwards|both",single_animation_play_state:"running|paused"},xe._COLOR={hex:"\\#(0x)?[0-9a-f]+",name:"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|transparent|violet|wheat|white|whitesmoke|yellow|yellowgreen",rgb:String.raw`rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)`,rgba:String.raw`rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(${xe.N.integer_zero_ff}|${xe.N.number_zero_one}|${xe.B.percentage_zero_hundred})\s*\)`},xe._C={alpha:`${xe.N.integer_zero_ff}|${xe.N.number_zero_one}|${xe.B.percentage_zero_hundred}`,alphavalue:xe.N.number_zero_one,bg_position:`((${xe.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,bg_size:`(${xe.B.length_pos}|${xe.B.percentage}|auto){1,2}|cover|contain`,border_width:`thin|medium|thick|${xe.B.length}`,bottom:`${xe.B.length}|auto`,color:`${xe._COLOR.hex}|${xe._COLOR.rgb}|${xe._COLOR.rgba}|${xe._COLOR.name}`,color_stop_length:`(${xe.B.len_or_perc}\\s*){1,2}`,linear_color_hint:`${xe.B.len_or_perc}`,family_name:`${xe.B.string}|(${xe.B.ident}\\s*)+`,image_decl:xe.B.url,left:`${xe.B.length}|auto`,loose_quotable_words:`(${xe.B.ident})+`,margin_width:`${xe.B.len_or_perc}|auto`,padding_width:`${xe.B.length_pos}|${xe.B.percentage_pos}`,page_url:xe.B.url,position:`((${xe.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,right:`${xe.B.length}|auto`,shadow:"",size:`closest-side|farthest-side|closest-corner|farthest-corner|${xe.B.length}|(${xe.B.len_or_perc})\\s+(${xe.B.len_or_perc})`,top:`${xe.B.length}|auto`},xe._C1={image_list:`image\\(\\s*(${xe.B.url})*\\s*(${xe.B.url}|${xe._C.color})\\s*\\)`,linear_color_stop:`(${xe._C.color})(\\s*${xe._C.color_stop_length})?`,shadow:`((${xe._C.color})\\s+((${xe.B.length})\\s*){2,4}(s+inset)?)|((inset\\s+)?((${xe.B.length})\\s*){2,4}\\s*(${xe._C.color})?)`},xe._C2={color_stop_list:`((${xe._C1.linear_color_stop})(\\s*(${xe._C.linear_color_hint}))?\\s*,\\s*)+(${xe._C1.linear_color_stop})`,shape:`rect\\(\\s*(${xe._C.top})\\s*,\\s*(${xe._C.right})\\s*,\\s*(${xe._C.bottom})\\s*,\\s*(${xe._C.left})\\s*\\)`},xe._C3={linear_gradient:`linear-gradient\\((((${xe.B.angle})|to\\s+(${xe.A.side_or_corner}))\\s*,\\s*)?\\s*(${xe._C2.color_stop_list})\\s*\\)`,radial_gradient:`radial-gradient\\(((((${xe.A.ending_shape})|(${xe._C.size}))\\s*)*\\s*(at\\s+${xe._C.position})?\\s*,\\s*)?\\s*(${xe._C2.color_stop_list})\\s*\\)`},xe._C4={image:`${xe.B.url}|${xe._C3.linear_gradient}|${xe._C3.radial_gradient}|${xe._C1.image_list}`,bg_image:`(${xe.B.url}|${xe._C3.linear_gradient}|${xe._C3.radial_gradient}|${xe._C1.image_list})|none`},xe.C=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},xe._C),xe._C1),xe._C2),xe._C3),xe._C4),xe.AP={border_collapse:"collapse|separate",box:"normal|none|contents",box_sizing:"content-box|padding-box|border-box",caption_side:"top|bottom",clear:"none|left|right|both",direction:"ltr|rtl",empty_cells:"show|hide",float:"left|right|none",font_stretch:"normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",font_style:"normal|italic|oblique",font_variant:"normal|small-caps",font_weight:"normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900",list_style_position:"inside|outside",list_style_type:"disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none",overflow:"visible|hidden|scroll|auto",overflow_wrap:"normal|break-word",overflow_x:"visible|hidden|scroll|auto|no-display|no-content",page_break_after:"auto|always|avoid|left|right",page_break_before:"auto|always|avoid|left|right",page_break_inside:"avoid|auto",position:"static|relative|absolute",resize:"none|both|horizontal|vertical",speak:"normal|none|spell-out",speak_header:"once|always",speak_numeral:"digits|continuous",speak_punctuation:"code|none",table_layout:"auto|fixed",text_align:"left|right|center|justify",text_decoration:"none|((underline|overline|line-through|blink)\\s*)+",text_transform:"capitalize|uppercase|lowercase|none",text_wrap:"normal|unrestricted|none|suppress",unicode_bidi:"normal|embed|bidi-override",visibility:"visible|hidden|collapse",white_space:"normal|pre|nowrap|pre-wrap|pre-line",word_break:"normal|keep-all|break-all"},xe._CP={background_attachment:`${xe.A.attachment}(,\\s*${xe.A.attachment})*`,background_color:xe.C.color,background_origin:`${xe.A.box}(,\\s*${xe.A.box})*`,background_repeat:`${xe.A.repeat_style}(,\\s*${xe.A.repeat_style})*`,border:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,border_radius:`((${xe.B.len_or_perc})\\s*){1,4}(\\/\\s*((${xe.B.len_or_perc})\\s*){1,4})?`,border_spacing:`${xe.B.length}\\s*(${xe.B.length})?`,border_top_color:xe.C.color,border_top_style:xe.A.border_style,border_width:`((${xe.C.border_width})\\s*){1,4}`,color:xe.C.color,cursor:`(${xe.B.url}(\\s*,\\s*)?)*(auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)`,display:`inline|block|list-item|run-in|inline-list-item|inline-block|table|inline-table|table-cell|table-caption|flex|inline-flex|grid|inline-grid|${xe.A.display_inside}|${xe.A.display_outside}|inherit|inline-box|inline-stack`,display_outside:xe.A.display_outside,elevation:`${xe.B.angle}|below|level|above|higher|lower`,font_family:`(${xe.C.family_name}|${xe.A.generic_family})(,\\s*(${xe.C.family_name}|${xe.A.generic_family}))*`,height:`${xe.B.length}|${xe.B.percentage}|auto`,letter_spacing:`normal|${xe.B.length}`,list_style_image:`${xe.C.image}|none`,margin_right:xe.C.margin_width,max_height:`${xe.B.length_pos}|${xe.B.percentage_pos}|none|auto`,min_height:`${xe.B.length_pos}|${xe.B.percentage_pos}|auto`,opacity:xe.C.alphavalue,outline_color:`${xe.C.color}|invert`,outline_width:xe.C.border_width,padding:`((${xe.C.padding_width})\\s*){1,4}`,padding_top:xe.C.padding_width,pitch_range:xe.N.number,right:`${xe.B.length}|${xe.B.percentage}|auto`,stress:xe.N.number,text_indent:`${xe.B.length}|${xe.B.percentage}`,text_shadow:`none|${xe.C.shadow}(,\\s*(${xe.C.shadow}))*`,volume:`${xe.N.number_pos}|${xe.B.percentage_pos}|silent|x-soft|soft|medium|loud|x-loud`,word_wrap:xe.AP.overflow_wrap,zoom:`normal|${xe.N.number_pos}|${xe.B.percentage_pos}`,backface_visibility:xe.AP.visibility,background_clip:`${xe.A.box}(,\\s*(${xe.A.box}))*`,background_position:`${xe.C.bg_position}(,\\s*(${xe.C.bg_position}))*`,border_bottom_color:xe.C.color,border_bottom_style:xe.A.border_style,border_color:`((${xe.C.color})\\s*){1,4}`,border_left_color:xe.C.color,border_right_color:xe.C.color,border_style:`((${xe.A.border_style})\\s*){1,4}`,border_top_left_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,border_top_width:xe.C.border_width,box_shadow:`none|${xe.C.shadow}(,\\s*(${xe.C.shadow}))*`,clip:`${xe.C.shape}|auto`,display_inside:xe.A.display_inside,font_size:`${xe.A.absolute_size}|${xe.A.relative_size}|${xe.B.length_pos}|${xe.B.percentage_pos}`,line_height:`normal|${xe.N.number_pos}|${xe.B.length_pos}|${xe.B.percentage_pos}`,margin_left:xe.C.margin_width,max_width:`${xe.B.length_pos}|${xe.B.percentage_pos}|none|auto`,outline_style:xe.A.border_style,padding_bottom:xe.C.padding_width,padding_right:xe.C.padding_width,perspective:`none|${xe.B.length}`,richness:xe.N.number,text_overflow:`((clip|ellipsis|${xe.B.string})\\s*){1,2}`,top:`${xe.B.length}|${xe.B.percentage}|auto`,width:`${xe.B.length_pos}|${xe.B.percentage_pos}|auto`,z_index:`auto|${xe.B.z_index}`,background:`(((${xe.C.bg_position}\\s*(\\/\\s*${xe.C.bg_size})?)|(${xe.A.repeat_style})|(${xe.A.attachment})|(${xe.A.bg_origin})|(${xe.C.bg_image})|(${xe.C.color}))\\s*)+`,background_size:`${xe.C.bg_size}(,\\s*${xe.C.bg_size})*`,border_bottom_left_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,border_bottom_width:xe.C.border_width,border_left_style:xe.A.border_style,border_right_style:xe.A.border_style,border_top:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,bottom:`${xe.B.len_or_perc}|auto`,list_style:`((${xe.AP.list_style_type}|${xe.AP.list_style_position}|${xe.C.image}|none})\\s*){1,3}`,margin_top:xe.C.margin_width,outline:`((${xe.C.color}|invert|${xe.A.border_style}|${xe.C.border_width})\\s*){1,3}`,overflow_y:xe.AP.overflow_x,pitch:`${xe.B.frequency}|x-low|low|medium|high|x-high`,vertical_align:`baseline|sub|super|top|text-top|middle|bottom|text-bottom|${xe.B.len_or_perc}`,word_spacing:`normal|${xe.B.length}`,background_image:`${xe.C.bg_image}(,\\s*${xe.C.bg_image})*`,border_bottom_right_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,border_left_width:xe.C.border_width,border_right_width:xe.C.border_width,left:`${xe.B.len_or_perc}|auto`,margin_bottom:xe.C.margin_width,pause_after:`${xe.B.time}|${xe.B.percentage}`,speech_rate:`${xe.N.number}|x-slow|slow|medium|fast|x-fast|faster|slower`,transition_duration:`${xe.B.time}(,\\s*${xe.B.time})*`,border_bottom:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,border_right:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,margin:`((${xe.C.margin_width})\\s*){1,4}`,padding_left:xe.C.padding_width,border_left:`((${xe.C.border_width}|${xe.A.border_style}|${xe.C.color})\\s*){1,3}`,quotes:`(${xe.B.string}\\s*${xe.B.string})+|none`,border_top_right_radius:`(${xe.B.length}|${xe.B.percentage})(\\s*(${xe.B.length}|${xe.B.percentage}))?`,min_width:`${xe.B.length_pos}|${xe.B.percentage_pos}|auto`},xe._CP1={font:`(((((${xe.AP.font_style}|${xe.AP.font_variant}|${xe.AP.font_weight})\\s*){1,3})?\\s*(${xe._CP.font_size})\\s*(\\/\\s*(${xe._CP.line_height}))?\\s+(${xe._CP.font_family}))|caption|icon|menu|message-box|small-caption|status-bar)`},xe.CP=Object.assign(Object.assign({},xe._CP),xe._CP1),xe.BORDER_COLLAPSE=xe.reg(xe.AP.border_collapse),xe.BOX=xe.reg(xe.AP.box),xe.BOX_SIZING=xe.reg(xe.AP.box_sizing),xe.CAPTION_SIDE=xe.reg(xe.AP.caption_side),xe.CLEAR=xe.reg(xe.AP.clear),xe.DIRECTION=xe.reg(xe.AP.direction),xe.EMPTY_CELLS=xe.reg(xe.AP.empty_cells),xe.FLOAT=xe.reg(xe.AP.float),xe.FONT_STRETCH=xe.reg(xe.AP.font_stretch),xe.FONT_STYLE=xe.reg(xe.AP.font_style),xe.FONT_VARIANT=xe.reg(xe.AP.font_variant),xe.FONT_WEIGHT=xe.reg(xe.AP.font_weight),xe.LIST_STYLE_POSITION=xe.reg(xe.AP.list_style_position),xe.LIST_STYLE_TYPE=xe.reg(xe.AP.list_style_type),xe.OVERFLOW=xe.reg(xe.AP.overflow),xe.OVERFLOW_WRAP=xe.reg(xe.AP.overflow_wrap),xe.OVERFLOW_X=xe.reg(xe.AP.overflow_x),xe.PAGE_BREAK_AFTER=xe.reg(xe.AP.page_break_after),xe.PAGE_BREAK_BEFORE=xe.reg(xe.AP.page_break_before),xe.PAGE_BREAK_INSIDE=xe.reg(xe.AP.page_break_inside),xe.POSITION=xe.reg(xe.AP.position),xe.RESIZE=xe.reg(xe.AP.resize),xe.SPEAK=xe.reg(xe.AP.speak),xe.SPEAK_HEADER=xe.reg(xe.AP.speak_header),xe.SPEAK_NUMERAL=xe.reg(xe.AP.speak_numeral),xe.SPEAK_PUNCTUATION=xe.reg(xe.AP.speak_punctuation),xe.TABLE_LAYOUT=xe.reg(xe.AP.table_layout),xe.TEXT_ALIGN=xe.reg(xe.AP.text_align),xe.TEXT_DECORATION=xe.reg(xe.AP.text_decoration),xe.TEXT_TRANSFORM=xe.reg(xe.AP.text_transform),xe.TEXT_WRAP=xe.reg(xe.AP.text_wrap),xe.UNICODE_BIDI=xe.reg(xe.AP.unicode_bidi),xe.VISIBILITY=xe.reg(xe.AP.visibility),xe.WHITE_SPACE=xe.reg(xe.AP.white_space),xe.WORD_BREAK=xe.reg(xe.AP.word_break),xe.BACKGROUND_ATTACHMENT=xe.reg(xe.CP.background_attachment),xe.BACKGROUND_COLOR=xe.reg(xe.CP.background_color),xe.BACKGROUND_ORIGIN=xe.reg(xe.CP.background_origin),xe.BACKGROUND_REPEAT=xe.reg(xe.CP.background_repeat),xe.BORDER=xe.reg(xe.CP.border),xe.BORDER_RADIUS=xe.reg(xe.CP.border_radius),xe.BORDER_SPACING=xe.reg(xe.CP.border_spacing),xe.BORDER_TOP_COLOR=xe.reg(xe.CP.border_top_color),xe.BORDER_TOP_STYLE=xe.reg(xe.CP.border_top_style),xe.BORDER_WIDTH=xe.reg(xe.CP.border_width),xe.COLOR=xe.reg(xe.CP.color),xe.CURSOR=xe.reg(xe.CP.cursor),xe.DISPLAY=xe.reg(xe.CP.display),xe.DISPLAY_OUTSIDE=xe.reg(xe.CP.display_outside),xe.ELEVATION=xe.reg(xe.CP.elevation),xe.FONT_FAMILY=xe.reg(xe.CP.font_family),xe.HEIGHT=xe.reg(xe.CP.height),xe.LETTER_SPACING=xe.reg(xe.CP.letter_spacing),xe.LIST_STYLE_IMAGE=xe.reg(xe.CP.list_style_image),xe.MARGIN_RIGHT=xe.reg(xe.CP.margin_right),xe.MAX_HEIGHT=xe.reg(xe.CP.max_height),xe.MIN_HEIGHT=xe.reg(xe.CP.min_height),xe.OPACITY=xe.reg(xe.CP.opacity),xe.OUTLINE_COLOR=xe.reg(xe.CP.outline_color),xe.OUTLINE_WIDTH=xe.reg(xe.CP.outline_width),xe.PADDING=xe.reg(xe.CP.padding),xe.PADDING_TOP=xe.reg(xe.CP.padding_top),xe.PITCH_RANGE=xe.reg(xe.CP.pitch_range),xe.RIGHT=xe.reg(xe.CP.right),xe.STRESS=xe.reg(xe.CP.stress),xe.TEXT_INDENT=xe.reg(xe.CP.text_indent),xe.TEXT_SHADOW=xe.reg(xe.CP.text_shadow),xe.VOLUME=xe.reg(xe.CP.volume),xe.WORD_WRAP=xe.reg(xe.CP.word_wrap),xe.ZOOM=xe.reg(xe.CP.zoom),xe.BACKFACE_VISIBILITY=xe.reg(xe.CP.backface_visibility),xe.BACKGROUND_CLIP=xe.reg(xe.CP.background_clip),xe.BACKGROUND_POSITION=xe.reg(xe.CP.background_position),xe.BORDER_BOTTOM_COLOR=xe.reg(xe.CP.border_bottom_color),xe.BORDER_BOTTOM_STYLE=xe.reg(xe.CP.border_bottom_style),xe.BORDER_COLOR=xe.reg(xe.CP.border_color),xe.BORDER_LEFT_COLOR=xe.reg(xe.CP.border_left_color),xe.BORDER_RIGHT_COLOR=xe.reg(xe.CP.border_right_color),xe.BORDER_STYLE=xe.reg(xe.CP.border_style),xe.BORDER_TOP_LEFT_RADIUS=xe.reg(xe.CP.border_top_left_radius),xe.BORDER_TOP_WIDTH=xe.reg(xe.CP.border_top_width),xe.BOX_SHADOW=xe.reg(xe.CP.box_shadow),xe.CLIP=xe.reg(xe.CP.clip),xe.DISPLAY_INSIDE=xe.reg(xe.CP.display_inside),xe.FONT_SIZE=xe.reg(xe.CP.font_size),xe.LINE_HEIGHT=xe.reg(xe.CP.line_height),xe.MARGIN_LEFT=xe.reg(xe.CP.margin_left),xe.MAX_WIDTH=xe.reg(xe.CP.max_width),xe.OUTLINE_STYLE=xe.reg(xe.CP.outline_style),xe.PADDING_BOTTOM=xe.reg(xe.CP.padding_bottom),xe.PADDING_RIGHT=xe.reg(xe.CP.padding_right),xe.PERSPECTIVE=xe.reg(xe.CP.perspective),xe.RICHNESS=xe.reg(xe.CP.richness),xe.TEXT_OVERFLOW=xe.reg(xe.CP.text_overflow),xe.TOP=xe.reg(xe.CP.top),xe.WIDTH=xe.reg(xe.CP.width),xe.Z_INDEX=xe.reg(xe.CP.z_index),xe.BACKGROUND=xe.reg(xe.CP.background),xe.BACKGROUND_SIZE=xe.reg(xe.CP.background_size),xe.BORDER_BOTTOM_LEFT_RADIUS=xe.reg(xe.CP.border_bottom_left_radius),xe.BORDER_BOTTOM_WIDTH=xe.reg(xe.CP.border_bottom_width),xe.BORDER_LEFT_STYLE=xe.reg(xe.CP.border_left_style),xe.BORDER_RIGHT_STYLE=xe.reg(xe.CP.border_right_style),xe.BORDER_TOP=xe.reg(xe.CP.border_top),xe.BOTTOM=xe.reg(xe.CP.bottom),xe.LIST_STYLE=xe.reg(xe.CP.list_style),xe.MARGIN_TOP=xe.reg(xe.CP.margin_top),xe.OUTLINE=xe.reg(xe.CP.outline),xe.OVERFLOW_Y=xe.reg(xe.CP.overflow_y),xe.PITCH=xe.reg(xe.CP.pitch),xe.VERTICAL_ALIGN=xe.reg(xe.CP.vertical_align),xe.WORD_SPACING=xe.reg(xe.CP.word_spacing),xe.BACKGROUND_IMAGE=xe.reg(xe.CP.background_image),xe.BORDER_BOTTOM_RIGHT_RADIUS=xe.reg(xe.CP.border_bottom_right_radius),xe.BORDER_LEFT_WIDTH=xe.reg(xe.CP.border_left_width),xe.BORDER_RIGHT_WIDTH=xe.reg(xe.CP.border_right_width),xe.LEFT=xe.reg(xe.CP.left),xe.MARGIN_BOTTOM=xe.reg(xe.CP.margin_bottom),xe.PAUSE_AFTER=xe.reg(xe.CP.pause_after),xe.SPEECH_RATE=xe.reg(xe.CP.speech_rate),xe.TRANSITION_DURATION=xe.reg(xe.CP.transition_duration),xe.BORDER_BOTTOM=xe.reg(xe.CP.border_bottom),xe.BORDER_RIGHT=xe.reg(xe.CP.border_right),xe.MARGIN=xe.reg(xe.CP.margin),xe.PADDING_LEFT=xe.reg(xe.CP.padding_left),xe.BORDER_LEFT=xe.reg(xe.CP.border_left),xe.FONT=xe.reg(xe.CP.font),xe.QUOTES=xe.reg(xe.CP.quotes),xe.BORDER_TOP_RIGHT_RADIUS=xe.reg(xe.CP.border_top_right_radius),xe.MIN_WIDTH=xe.reg(xe.CP.min_width);class Se{constructor(){this._options={allowedTags:["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","button","canvas","caption","center","cite","code","col","colgroup","colspan","command","data","datalist","dd","del","details","dfn","dir","div","dl","dt","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","img","input","ins","kbd","label","legend","li","map","mark","menu","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rowspan","s","samp","section","select","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],allowedAttributes:{"*":["class","dir","draggable","hidden","id","inert","itemprop","itemref","itemscope","lang","spellcheck","style","title","translate"],a:["accesskey","coords","href","hreflang","name","rel","shape","tabindex","target","type"],area:["accesskey","alt","coords","href","nohref","shape","tabindex"],audio:["autoplay","controls","loop","mediagroup","muted","preload","src"],bdo:["dir"],blockquote:["cite"],br:["clear"],button:["accesskey","data-commandlinker-args","data-commandlinker-command","disabled","name","tabindex","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],command:["checked","command","disabled","icon","label","radiogroup","type"],data:["value"],del:["cite","datetime"],details:["open"],dir:["compact"],div:["align"],dl:["compact"],fieldset:["disabled"],font:["color","face","size"],form:["accept","autocomplete","enctype","method","name","novalidate"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],hr:["align","noshade","size","width"],iframe:["align","frameborder","height","marginheight","marginwidth","width"],img:["align","alt","border","height","hspace","ismap","name","src","usemap","vspace","width"],input:["accept","accesskey","align","alt","autocomplete","checked","disabled","inputmode","ismap","list","max","maxlength","min","multiple","name","placeholder","readonly","required","size","src","step","tabindex","type","usemap","value"],ins:["cite","datetime"],label:["accesskey","for"],legend:["accesskey","align"],li:["type","value"],map:["name"],menu:["compact","label","type"],meter:["high","low","max","min","value"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for","name"],p:["align"],pre:["width"],progress:["max","min","value"],q:["cite"],select:["autocomplete","disabled","multiple","name","required","size","tabindex"],source:["type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["accesskey","autocomplete","cols","disabled","inputmode","name","placeholder","readonly","required","rows","tabindex","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","srclang"],ul:["compact","type"],video:["autoplay","controls","height","loop","mediagroup","muted","poster","preload","src","width"]},allowedStyles:{"*":{"backface-visibility":[xe.BACKFACE_VISIBILITY],background:[xe.BACKGROUND],"background-attachment":[xe.BACKGROUND_ATTACHMENT],"background-clip":[xe.BACKGROUND_CLIP],"background-color":[xe.BACKGROUND_COLOR],"background-image":[xe.BACKGROUND_IMAGE],"background-origin":[xe.BACKGROUND_ORIGIN],"background-position":[xe.BACKGROUND_POSITION],"background-repeat":[xe.BACKGROUND_REPEAT],"background-size":[xe.BACKGROUND_SIZE],border:[xe.BORDER],"border-bottom":[xe.BORDER_BOTTOM],"border-bottom-color":[xe.BORDER_BOTTOM_COLOR],"border-bottom-left-radius":[xe.BORDER_BOTTOM_LEFT_RADIUS],"border-bottom-right-radius":[xe.BORDER_BOTTOM_RIGHT_RADIUS],"border-bottom-style":[xe.BORDER_BOTTOM_STYLE],"border-bottom-width":[xe.BORDER_BOTTOM_WIDTH],"border-collapse":[xe.BORDER_COLLAPSE],"border-color":[xe.BORDER_COLOR],"border-left":[xe.BORDER_LEFT],"border-left-color":[xe.BORDER_LEFT_COLOR],"border-left-style":[xe.BORDER_LEFT_STYLE],"border-left-width":[xe.BORDER_LEFT_WIDTH],"border-radius":[xe.BORDER_RADIUS],"border-right":[xe.BORDER_RIGHT],"border-right-color":[xe.BORDER_RIGHT_COLOR],"border-right-style":[xe.BORDER_RIGHT_STYLE],"border-right-width":[xe.BORDER_RIGHT_WIDTH],"border-spacing":[xe.BORDER_SPACING],"border-style":[xe.BORDER_STYLE],"border-top":[xe.BORDER_TOP],"border-top-color":[xe.BORDER_TOP_COLOR],"border-top-left-radius":[xe.BORDER_TOP_LEFT_RADIUS],"border-top-right-radius":[xe.BORDER_TOP_RIGHT_RADIUS],"border-top-style":[xe.BORDER_TOP_STYLE],"border-top-width":[xe.BORDER_TOP_WIDTH],"border-width":[xe.BORDER_WIDTH],bottom:[xe.BOTTOM],box:[xe.BOX],"box-shadow":[xe.BOX_SHADOW],"box-sizing":[xe.BOX_SIZING],"caption-side":[xe.CAPTION_SIDE],clear:[xe.CLEAR],clip:[xe.CLIP],color:[xe.COLOR],cursor:[xe.CURSOR],direction:[xe.DIRECTION],display:[xe.DISPLAY],"display-inside":[xe.DISPLAY_INSIDE],"display-outside":[xe.DISPLAY_OUTSIDE],elevation:[xe.ELEVATION],"empty-cells":[xe.EMPTY_CELLS],float:[xe.FLOAT],font:[xe.FONT],"font-family":[xe.FONT_FAMILY],"font-size":[xe.FONT_SIZE],"font-stretch":[xe.FONT_STRETCH],"font-style":[xe.FONT_STYLE],"font-variant":[xe.FONT_VARIANT],"font-weight":[xe.FONT_WEIGHT],height:[xe.HEIGHT],left:[xe.LEFT],"letter-spacing":[xe.LETTER_SPACING],"line-height":[xe.LINE_HEIGHT],"list-style":[xe.LIST_STYLE],"list-style-image":[xe.LIST_STYLE_IMAGE],"list-style-position":[xe.LIST_STYLE_POSITION],"list-style-type":[xe.LIST_STYLE_TYPE],margin:[xe.MARGIN],"margin-bottom":[xe.MARGIN_BOTTOM],"margin-left":[xe.MARGIN_LEFT],"margin-right":[xe.MARGIN_RIGHT],"margin-top":[xe.MARGIN_TOP],"max-height":[xe.MAX_HEIGHT],"max-width":[xe.MAX_WIDTH],"min-height":[xe.MIN_HEIGHT],"min-width":[xe.MIN_WIDTH],opacity:[xe.OPACITY],outline:[xe.OUTLINE],"outline-color":[xe.OUTLINE_COLOR],"outline-style":[xe.OUTLINE_STYLE],"outline-width":[xe.OUTLINE_WIDTH],overflow:[xe.OVERFLOW],"overflow-wrap":[xe.OVERFLOW_WRAP],"overflow-x":[xe.OVERFLOW_X],"overflow-y":[xe.OVERFLOW_Y],padding:[xe.PADDING],"padding-bottom":[xe.PADDING_BOTTOM],"padding-left":[xe.PADDING_LEFT],"padding-right":[xe.PADDING_RIGHT],"padding-top":[xe.PADDING_TOP],"page-break-after":[xe.PAGE_BREAK_AFTER],"page-break-before":[xe.PAGE_BREAK_BEFORE],"page-break-inside":[xe.PAGE_BREAK_INSIDE],"pause-after":[xe.PAUSE_AFTER],perspective:[xe.PERSPECTIVE],pitch:[xe.PITCH],"pitch-range":[xe.PITCH_RANGE],position:[xe.POSITION],quotes:[xe.QUOTES],resize:[xe.RESIZE],richness:[xe.RICHNESS],right:[xe.RIGHT],speak:[xe.SPEAK],"speak-header":[xe.SPEAK_HEADER],"speak-numeral":[xe.SPEAK_NUMERAL],"speak-punctuation":[xe.SPEAK_PUNCTUATION],"speech-rate":[xe.SPEECH_RATE],stress:[xe.STRESS],"table-layout":[xe.TABLE_LAYOUT],"text-align":[xe.TEXT_ALIGN],"text-decoration":[xe.TEXT_DECORATION],"text-indent":[xe.TEXT_INDENT],"text-overflow":[xe.TEXT_OVERFLOW],"text-shadow":[xe.TEXT_SHADOW],"text-transform":[xe.TEXT_TRANSFORM],"text-wrap":[xe.TEXT_WRAP],top:[xe.TOP],"unicode-bidi":[xe.UNICODE_BIDI],"vertical-align":[xe.VERTICAL_ALIGN],visibility:[xe.VISIBILITY],volume:[xe.VOLUME],"white-space":[xe.WHITE_SPACE],width:[xe.WIDTH],"word-break":[xe.WORD_BREAK],"word-spacing":[xe.WORD_SPACING],"word-wrap":[xe.WORD_WRAP],"z-index":[xe.Z_INDEX],zoom:[xe.ZOOM]}},transformTags:{a:Ce().simpleTransform("a",{rel:"nofollow"}),input:Ce().simpleTransform("input",{disabled:"disabled"})},allowedSchemesByTag:{img:Ce().defaults.allowedSchemes.concat(["attachment"])},allowedSchemesAppliedToAttributes:["href","cite"]}}sanitize(e,t){return Ce()(e,Object.assign(Object.assign({},this._options),t||{}))}}const Te=new Se;function Ee(e,t){let n=1/0,r=null;const i=/\b\w/g;for(;;){let s=i.exec(e);if(!s)break;let o=_.StringExt.matchSumOfDeltas(e,t,s.index);if(!o)break;o&&o.score<=n&&(n=o.score,r=o.indices)}return r&&n!==1/0?{score:n,indices:r}:null}const ke=(e,t,n)=>r=>t?Ee(r,e.toLowerCase()):(n||(r=r.toLocaleLowerCase(),e=e.toLocaleLowerCase()),-1===r.indexOf(e)?null:{indices:[...Array(r.length).keys()].map((e=>e+1))}),Oe=e=>{var t;const[n,r]=(0,v.useState)(null!==(t=e.initialQuery)&&void 0!==t?t:"");return e.forceRefresh&&(0,v.useEffect)((()=>{e.updateFilter((e=>({})))}),[]),(0,v.useEffect)((()=>{void 0!==e.initialQuery&&e.updateFilter(ke(e.initialQuery,e.useFuzzyFilter,e.caseSensitive),e.initialQuery)}),[]),w().createElement(o.InputGroup,{type:"text",rightIcon:"ui-components:search",placeholder:e.placeholder,onChange:t=>{const n=t.target;r(n.value),e.updateFilter(ke(n.value,e.useFuzzyFilter,e.caseSensitive),n.value)},className:"jp-FilterBox",value:n})},Ae=e=>x.create(w().createElement(Oe,{updateFilter:e.updateFilter,useFuzzyFilter:e.useFuzzyFilter,placeholder:e.placeholder,forceRefresh:e.forceRefresh,caseSensitive:e.caseSensitive})),Pe=new s.Token("@jupyterlab/apputils:ISplashScreen");var De,Re=n(43231);class Ie{constructor(e){this._current=null,this._links=[],this._overrides={},this._overrideProps={},this._outstanding=null,this._pending=0,this._requests={},this._themes={},this._themeChanged=new a.Signal(this);const{host:t,key:n,splash:r,url:i}=e;this.translator=e.translator||V.nullTranslator,this._trans=this.translator.load("jupyterlab");const s=e.settings;this._base=i,this._host=t,this._splash=r||null,s.load(n).then((e=>{this._settings=e,this._initOverrideProps(),this._settings.changed.connect(this._loadSettings,this),this._loadSettings()}))}get theme(){return this._current}get themes(){return Object.keys(this._themes)}get themeChanged(){return this._themeChanged}getCSS(e){var t;return null!==(t=this._overrides[e])&&void 0!==t?t:getComputedStyle(document.documentElement).getPropertyValue(`--jp-${e}`)}loadCSS(e){const t=this._base,n=Z.URLExt.isLocal(e)?Z.URLExt.join(t,e):e,r=this._links;return new Promise(((e,t)=>{const i=document.createElement("link");i.setAttribute("rel","stylesheet"),i.setAttribute("type","text/css"),i.setAttribute("href",n),i.addEventListener("load",(()=>{e(void 0)})),i.addEventListener("error",(()=>{t(`Stylesheet failed to load: ${n}`)})),document.body.appendChild(i),r.push(i),this.loadCSSOverrides()}))}loadCSSOverrides(){var e;const t=null!==(e=this._settings.user.overrides)&&void 0!==e?e:{};Object.keys(Object.assign(Object.assign({},this._overrides),t)).forEach((e=>{const n=t[e];n&&this.validateCSS(e,n)?document.documentElement.style.setProperty(`--jp-${e}`,n):(delete t[e],document.documentElement.style.removeProperty(`--jp-${e}`))})),this._overrides=t}validateCSS(e,t){const n=this._overrideProps[e];return n?!!CSS.supports(n,t)||(console.warn(`CSS validation failed: invalid value.\nkey: '${e}', val: '${t}', prop: '${n}'`),!1):(console.warn(`CSS validation failed: could not find property corresponding to key.\nkey: '${e}', val: '${t}'`),!1)}register(e){const{name:t}=e,n=this._themes;if(n[t])throw new Error(`Theme already registered for ${t}`);return n[t]=e,new Re.DisposableDelegate((()=>{delete n[t]}))}setCSSOverride(e,t){return this._settings.set("overrides",Object.assign(Object.assign({},this._overrides),{[e]:t}))}setTheme(e){return this._settings.set("theme",e)}isLight(e){return this._themes[e].isLight}incrFontSize(e){return this._incrFontSize(e,!0)}decrFontSize(e){return this._incrFontSize(e,!1)}themeScrollbars(e){return!!this._settings.composite["theme-scrollbars"]&&!!this._themes[e].themeScrollbars}isToggledThemeScrollbars(){return!!this._settings.composite["theme-scrollbars"]}toggleThemeScrollbars(){return this._settings.set("theme-scrollbars",!this._settings.composite["theme-scrollbars"])}getDisplayName(e){var t,n;return null!==(n=null===(t=this._themes[e])||void 0===t?void 0:t.displayName)&&void 0!==n?n:e}_incrFontSize(e,t=!0){var n;const r=(null!==(n=this.getCSS(e))&&void 0!==n?n:"13px").split(/([a-zA-Z]+)/),i=(t?1:-1)*("em"===r[1]?.1:1);return this.setCSSOverride(e,`${Number(r[0])+i}${r[1]}`)}_initOverrideProps(){const e=this._settings.schema.definitions.cssOverrides.properties;Object.keys(e).forEach((t=>{this._overrideProps[t]=e[t].description}))}_loadSettings(){const e=this._outstanding,t=this._pending,n=this._requests;t&&(window.clearTimeout(t),this._pending=0);const r=this._settings,i=this._themes,s=r.composite.theme;if(e)return e.then((()=>{this._loadSettings()})).catch((()=>{this._loadSettings()})),void(this._outstanding=null);if(n[s]=n[s]?n[s]+1:1,i[s])return this._outstanding=this._loadTheme(s),void delete n[s];if(n[s]>20){const e=r.default("theme");return delete n[s],i[e]?(console.warn(`Could not load theme ${s}, using default ${e}.`),void(this._outstanding=this._loadTheme(e))):void this._onError(this._trans.__("Neither theme %1 nor default %2 loaded.",s,e))}this._pending=window.setTimeout((()=>{this._loadSettings()}),75)}_loadTheme(e){var t;const n=this._current,r=this._links,i=this._themes,s=this._splash?this._splash.show(i[e].isLight):new Re.DisposableDelegate((()=>{}));r.forEach((e=>{e.parentElement&&e.parentElement.removeChild(e)})),r.length=0;const o=null===(t=this._settings.schema.properties)||void 0===t?void 0:t.theme;o&&(o.enum=Object.keys(i).map((e=>{var t;return null!==(t=i[e].displayName)&&void 0!==t?t:e})));const a=n?i[n].unload():Promise.resolve();return Promise.all([a,i[e].load()]).then((()=>{this._current=e,this._themeChanged.emit({name:"theme",oldValue:n,newValue:e}),this._host.hide(),requestAnimationFrame((()=>{this._host.show(),De.fitAll(this._host),s.dispose()}))})).catch((e=>{this._onError(e),s.dispose()}))}_onError(e){P({title:this._trans.__("Error Loading Theme"),body:String(e),buttons:[R.okButton({label:this._trans.__("OK")})]})}}!function(e){e.fitAll=function e(t){(0,_.each)(t.children(),e),t.fit()}}(De||(De={}));const Ne=new s.Token("@jupyterlab/apputils:ISessionContextDialogs"),Le=new s.Token("@jupyterlab/apputils:IThemeManager"),Be=new s.Token("@jupyterlab/apputils:ISanitizer"),Me=new s.Token("@jupyterlab/apputils:IToolbarWidgetRegistry");var je=n(92877),qe=n(15786);const $e="jupyter.lab.toolbars";function Fe(e,t,n,r,i,o="toolbar"){const a=new je.ObservableList({itemCmp:(e,t)=>s.JSONExt.deepEqual(e,t)});return async function(e,t,n,r,i,o="toolbar"){var a;const l=i.load("jupyterlab");let c=null,u={},d=!0;try{function f(e){var i,s;u={};const a=Object.keys(t.plugins).filter((e=>e!==r)).map((e=>{var r,i;const s=null!==(i=(null!==(r=t.plugins[e].schema[$e])&&void 0!==r?r:{})[n])&&void 0!==i?i:[];return u[e]=s,s})).concat([null!==(s=(null!==(i=e[$e])&&void 0!==i?i:{})[n])&&void 0!==s?s:[]]).reduceRight(((e,t)=>qe.SettingRegistry.reconcileToolbarItems(e,t,!0)),[]);e.properties[o].default=qe.SettingRegistry.reconcileToolbarItems(a,e.properties[o].default,!0).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:50)-(null!==(r=t.rank)&&void 0!==r?r:50)}))}t.transform(r,{compose:e=>{var t,n,r,i,a;c||(c=s.JSONExt.deepCopy(e.schema),f(c));const l=null!==(r=(null!==(n=(null!==(t=c.properties)&&void 0!==t?t:{})[o])&&void 0!==n?n:{}).default)&&void 0!==r?r:[],u=e.data.user,d=e.data.composite;return u[o]=null!==(i=e.data.user[o])&&void 0!==i?i:[],d[o]=(null!==(a=qe.SettingRegistry.reconcileToolbarItems(l,u[o],!1))&&void 0!==a?a:[]).sort(((e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:50)-(null!==(r=t.rank)&&void 0!==r?r:50)})),e.data={composite:d,user:u},e},fetch:e=>(c||(c=s.JSONExt.deepCopy(e.schema),f(c)),{data:e.data,id:e.id,raw:e.raw,schema:c,version:e.version})})}catch(g){if("TransformError"!==g.name)throw g;d=!1}const h=await t.load(r);h.changed.connect((()=>{var e;const t=null!==(e=h.composite[o])&&void 0!==e?e:[];p(t)}));const p=t=>{e.clear(),e.pushAll(t.filter((e=>!e.disabled)))};p(null!==(a=h.composite[o])&&void 0!==a?a:[]),d&&t.pluginChanged.connect((async(e,i)=>{var o,a,d;if(i===r)return;const h=null!==(o=u[i])&&void 0!==o?o:[],p=null!==(d=(null!==(a=t.plugins[i].schema[$e])&&void 0!==a?a:{})[n])&&void 0!==d?d:[];s.JSONExt.deepEqual(h,p)||(u[i]?await async function(e){(await P({title:e.__("Information"),body:e.__("Toolbar customization has changed. You will need to reload JupyterLab to see the changes."),buttons:[R.cancelButton(),R.okButton({label:e.__("Reload")})]})).button.accept&&location.reload()}(l):p.length>0&&(c=null,await t.reload(r)))}))}(a,t,n,r,i,o).catch((e=>{console.error(`Failed to load toolbar items for factory ${n} from ${r}`,e)})),t=>{const r=(r,s)=>{switch(s.type){case"move":i.move(s.oldIndex,s.newIndex);break;case"add":s.newValues.forEach((r=>i.push({name:r.name,widget:e.createWidget(n,t,r)})));break;case"remove":s.oldValues.forEach((()=>i.remove(s.oldIndex)));break;case"set":s.newValues.forEach((r=>i.set(s.newIndex,{name:r.name,widget:e.createWidget(n,t,r)})))}},i=new je.ObservableList({values:(0,_.toArray)(a).map((r=>({name:r.name,widget:e.createWidget(n,t,r)})))});return a.changed.connect(r),t.disposed.connect((()=>{a.changed.disconnect(r)})),i}}function Ue(e,t){if(!e.toolbar)return void console.log(`Widget ${e.id} has no 'toolbar'.`);const n=t(e);if(Array.isArray(n))n.forEach((({name:t,widget:n})=>{e.toolbar.addItem(t,n)}));else{const t=(t,n)=>{switch(n.type){case"add":n.newValues.forEach(((t,r)=>{e.toolbar.insertItem(n.newIndex+r,t.name,t.widget)}));break;case"move":n.oldValues.forEach((e=>{e.widget.parent=null})),n.newValues.forEach(((t,r)=>{e.toolbar.insertItem(n.newIndex+r,t.name,t.widget)}));break;case"remove":n.oldValues.forEach((e=>{e.widget.parent=null}));break;case"set":n.oldValues.forEach((e=>{e.widget.parent=null})),n.newValues.forEach(((t,r)=>{const i=(0,_.findIndex)(e.toolbar.names(),(e=>t.name===e));i>=0&&((0,_.toArray)(e.toolbar.children())[i].parent=null),e.toolbar.insertItem(n.newIndex+r,t.name,t.widget)}))}};t(n,{newIndex:0,newValues:(0,_.toArray)(n),oldIndex:0,oldValues:[],type:"add"}),n.changed.connect(t),e.disposed.connect((()=>{n.changed.disconnect(t)}))}}class He{constructor(e){this._widgets=new Map,this._defaultFactory=e.defaultFactory}get defaultFactory(){return this._defaultFactory}set defaultFactory(e){this._defaultFactory=e}createWidget(e,t,n){var r;const i=null===(r=this._widgets.get(e))||void 0===r?void 0:r.get(n.name);return i?i(t):this._defaultFactory(e,t,n)}registerFactory(e,t,n){let r=this._widgets.get(e);const i=null==r?void 0:r.get(t);return r||(r=new Map,this._widgets.set(e,r)),r.set(t,n),i}}function ze(e){return(t,n,r)=>{var i;switch(null!==(i=r.type)&&void 0!==i?i:"command"){case"command":{const{command:t,args:n,label:i,icon:s}=r,a=null!=t?t:"",l=Object.assign({toolbar:!0},n),c=s?o.LabIcon.resolve({icon:s}):void 0,u=(null!=c?c:e.icon(a,l))?null!=i?i:"":i;return new fe({commands:e,id:a,args:l,icon:c,label:u})}case"spacer":return ae.createSpacerItem();default:return new l.Widget}}}const We=new s.Token("@jupyterlab/apputils:IWindowResolver");class Ge{get name(){return this._name}resolve(e){return Ve.resolve(e).then((e=>{this._name=e}))}}var Ve;!function(e){const t="@jupyterlab/statedb:StateDB",n=`${t}:beacon`,r=Math.floor(200+300*Math.random()),i=`${t}:window`;let o=null,a=null;const l=new s.PromiseDelegate,c={};let u=null,d=!1;function h(e){if(null===e)return;const{localStorage:t}=window;t.setItem(i,`${e}-${(new Date).getTime()}`)}function p(){d=!0,o=null,l.reject(`Window name candidate "${a}" already exists`)}e.resolve=function(e){if(d)return l.promise;if(a=e,a in c)return p(),l.promise;const{localStorage:t,setTimeout:i}=window;return i((()=>{if(!d){if(!a||a in c)return p();d=!0,o=null,l.resolve(u=a),h(u)}}),r),o=`${Math.random()}-${(new Date).getTime()}`,t.setItem(n,o),l.promise},window.addEventListener("storage",(e=>{const{key:t,newValue:r}=e;if(null===r)return;if(t===n&&r!==o&&null!==a)return void h(d?u:a);if(d||t!==i)return;const s=r.replace(/\-\d+$/,"");c[s]=null,a&&!(a in c)||p()}))}(Ve||(Ve={}))},75303:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function i(e,t,n){return e.concat(t).map((function(e){return r(e,n)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return e.propertyIsEnumerable(t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,n,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=r;var c=Array.isArray(n);return c===Array.isArray(e)?c?l.arrayMerge(e,n,l):function(e,t,n){var i={};return n.isMergeableObject(e)&&s(e).forEach((function(t){i[t]=r(e[t],n)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&n.isMergeableObject(t[s])?i[s]=function(e,t){if(!t.customMerge)return a;var n=t.customMerge(e);return"function"==typeof n?n:a}(s,n)(e[s],t[s],n):i[s]=r(t[s],n))})),i}(e,n,l):r(n,l)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return a(e,n,t)}),{})};var l=a;e.exports=l},52285:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map([["altglyph","altGlyph"],["altglyphdef","altGlyphDef"],["altglyphitem","altGlyphItem"],["animatecolor","animateColor"],["animatemotion","animateMotion"],["animatetransform","animateTransform"],["clippath","clipPath"],["feblend","feBlend"],["fecolormatrix","feColorMatrix"],["fecomponenttransfer","feComponentTransfer"],["fecomposite","feComposite"],["feconvolvematrix","feConvolveMatrix"],["fediffuselighting","feDiffuseLighting"],["fedisplacementmap","feDisplacementMap"],["fedistantlight","feDistantLight"],["fedropshadow","feDropShadow"],["feflood","feFlood"],["fefunca","feFuncA"],["fefuncb","feFuncB"],["fefuncg","feFuncG"],["fefuncr","feFuncR"],["fegaussianblur","feGaussianBlur"],["feimage","feImage"],["femerge","feMerge"],["femergenode","feMergeNode"],["femorphology","feMorphology"],["feoffset","feOffset"],["fepointlight","fePointLight"],["fespecularlighting","feSpecularLighting"],["fespotlight","feSpotLight"],["fetile","feTile"],["feturbulence","feTurbulence"],["foreignobject","foreignObject"],["glyphref","glyphRef"],["lineargradient","linearGradient"],["radialgradient","radialGradient"],["textpath","textPath"]]),t.attributeNames=new Map([["definitionurl","definitionURL"],["attributename","attributeName"],["attributetype","attributeType"],["basefrequency","baseFrequency"],["baseprofile","baseProfile"],["calcmode","calcMode"],["clippathunits","clipPathUnits"],["diffuseconstant","diffuseConstant"],["edgemode","edgeMode"],["filterunits","filterUnits"],["glyphref","glyphRef"],["gradienttransform","gradientTransform"],["gradientunits","gradientUnits"],["kernelmatrix","kernelMatrix"],["kernelunitlength","kernelUnitLength"],["keypoints","keyPoints"],["keysplines","keySplines"],["keytimes","keyTimes"],["lengthadjust","lengthAdjust"],["limitingconeangle","limitingConeAngle"],["markerheight","markerHeight"],["markerunits","markerUnits"],["markerwidth","markerWidth"],["maskcontentunits","maskContentUnits"],["maskunits","maskUnits"],["numoctaves","numOctaves"],["pathlength","pathLength"],["patterncontentunits","patternContentUnits"],["patterntransform","patternTransform"],["patternunits","patternUnits"],["pointsatx","pointsAtX"],["pointsaty","pointsAtY"],["pointsatz","pointsAtZ"],["preservealpha","preserveAlpha"],["preserveaspectratio","preserveAspectRatio"],["primitiveunits","primitiveUnits"],["refx","refX"],["refy","refY"],["repeatcount","repeatCount"],["repeatdur","repeatDur"],["requiredextensions","requiredExtensions"],["requiredfeatures","requiredFeatures"],["specularconstant","specularConstant"],["specularexponent","specularExponent"],["spreadmethod","spreadMethod"],["startoffset","startOffset"],["stddeviation","stdDeviation"],["stitchtiles","stitchTiles"],["surfacescale","surfaceScale"],["systemlanguage","systemLanguage"],["tablevalues","tableValues"],["targetx","targetX"],["targety","targetY"],["textlength","textLength"],["viewbox","viewBox"],["viewtarget","viewTarget"],["xchannelselector","xChannelSelector"],["ychannelselector","yChannelSelector"],["zoomandpan","zoomAndPan"]])},24500:function(e,t,n){"use strict";var r=this&&this.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n";case a.Comment:return"\x3c!--"+e.data+"--\x3e";case a.CDATA:return function(e){return""}(e);case a.Script:case a.Style:case a.Tag:return function(e,t){var n;"foreign"===t.xmlMode&&(e.name=null!==(n=c.elementNames.get(e.name))&&void 0!==n?n:e.name,e.parent&&f.has(e.parent.name)&&(t=r(r({},t),{xmlMode:!1}))),!t.xmlMode&&g.has(e.name)&&(t=r(r({},t),{xmlMode:"foreign"}));var i="<"+e.name,s=function(e,t){if(e)return Object.keys(e).map((function(n){var r,i,s=null!==(r=e[n])&&void 0!==r?r:"";return"foreign"===t.xmlMode&&(n=null!==(i=c.attributeNames.get(n))&&void 0!==i?i:n),t.emptyAttrs||t.xmlMode||""!==s?n+'="'+(!1!==t.decodeEntities?l.encodeXML(s):s.replace(/"/g,"""))+'"':n})).join(" ")}(e.attribs,t);return s&&(i+=" "+s),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&d.has(e.name))?(t.xmlMode||(i+=" "),i+="/>"):(i+=">",e.children.length>0&&(i+=h(e.children,t)),!t.xmlMode&&d.has(e.name)||(i+="")),i}(e,t);case a.Text:return function(e,t){var n=e.data||"";return!1===t.decodeEntities||!t.xmlMode&&e.parent&&u.has(e.parent.name)||(n=l.encodeXML(n)),n}(e,t)}}t.default=h;var f=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),g=new Set(["svg","math"])},14948:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},94917:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var s=n(14948),o=n(98089);i(n(98089),t);var a=/\s+/g,l={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1,xmlMode:!1},c=function(){function e(e,t,n){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(n=t,t=l),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:l,this.elementCB=null!=n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?s.ElementType.Tag:void 0,r=new o.Element(e,t,void 0,n);this.addNode(r),this.tagStack.push(r)},e.prototype.ontext=function(e){var t=this.options.normalizeWhitespace,n=this.lastNode;if(n&&n.type===s.ElementType.Text)t?n.data=(n.data+e).replace(a," "):n.data+=e,this.options.withEndIndices&&(n.endIndex=this.parser.endIndex);else{t&&(e=e.replace(a," "));var r=new o.Text(e);this.addNode(r),this.lastNode=r}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===s.ElementType.Comment)this.lastNode.data+=e;else{var t=new o.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new o.Text(""),t=new o.NodeWithChildren(s.ElementType.CDATA,[e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new o.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=c,t.default=c},98089:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(l);t.NodeWithChildren=p;var f=function(e){function t(t){return e.call(this,o.ElementType.Root,t)||this}return i(t,e),t}(p);t.Document=f;var g=function(e){function t(t,n,r,i){void 0===r&&(r=[]),void 0===i&&(i="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var s=e.call(this,i,r)||this;return s.name=t,s.attribs=n,s}return i(t,e),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,r;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(r=e["x-attribsPrefix"])||void 0===r?void 0:r[t]}}))},enumerable:!1,configurable:!0}),t}(p);function m(e){return(0,o.isTag)(e)}function b(e){return e.type===o.ElementType.CDATA}function _(e){return e.type===o.ElementType.Text}function y(e){return e.type===o.ElementType.Comment}function v(e){return e.type===o.ElementType.Directive}function w(e){return e.type===o.ElementType.Root}function C(e,t){var n;if(void 0===t&&(t=!1),_(e))n=new u(e.data);else if(y(e))n=new d(e.data);else if(m(e)){var r=t?x(e.children):[],i=new g(e.name,s({},e.attribs),r);r.forEach((function(e){return e.parent=i})),null!=e.namespace&&(i.namespace=e.namespace),e["x-attribsNamespace"]&&(i["x-attribsNamespace"]=s({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(i["x-attribsPrefix"]=s({},e["x-attribsPrefix"])),n=i}else if(b(e)){r=t?x(e.children):[];var a=new p(o.ElementType.CDATA,r);r.forEach((function(e){return e.parent=a})),n=a}else if(w(e)){r=t?x(e.children):[];var l=new f(r);r.forEach((function(e){return e.parent=l})),e["x-mode"]&&(l["x-mode"]=e["x-mode"]),n=l}else{if(!v(e))throw new Error("Not implemented yet: ".concat(e.type));var c=new h(e.name,e.data);null!=e["x-name"]&&(c["x-name"]=e["x-name"],c["x-publicId"]=e["x-publicId"],c["x-systemId"]=e["x-systemId"]),n=c}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function x(e){for(var t=e.map((function(e){return C(e,!0)})),n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFeed=void 0;var r=n(41147),i=n(95041);t.getFeed=function(e){var t=l(d,e);return t?"feed"===t.name?function(e){var t,n=e.children,r={type:"atom",items:(0,i.getElementsByTagName)("entry",n).map((function(e){var t,n=e.children,r={media:a(n)};u(r,"id","id",n),u(r,"title","title",n);var i=null===(t=l("link",n))||void 0===t?void 0:t.attribs.href;i&&(r.link=i);var s=c("summary",n)||c("content",n);s&&(r.description=s);var o=c("updated",n);return o&&(r.pubDate=new Date(o)),r}))};u(r,"id","id",n),u(r,"title","title",n);var s=null===(t=l("link",n))||void 0===t?void 0:t.attribs.href;s&&(r.link=s),u(r,"description","subtitle",n);var o=c("updated",n);return o&&(r.updated=new Date(o)),u(r,"author","email",n,!0),r}(t):function(e){var t,n,r=null!==(n=null===(t=l("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==n?n:[],s={type:e.name.substr(0,3),id:"",items:(0,i.getElementsByTagName)("item",e.children).map((function(e){var t=e.children,n={media:a(t)};u(n,"id","guid",t),u(n,"title","title",t),u(n,"link","link",t),u(n,"description","description",t);var r=c("pubDate",t);return r&&(n.pubDate=new Date(r)),n}))};u(s,"title","title",r),u(s,"link","link",r),u(s,"description","description",r);var o=c("lastBuildDate",r);return o&&(s.updated=new Date(o)),u(s,"author","managingEditor",r,!0),s}(t):null};var s=["url","type","lang"],o=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function a(e){return(0,i.getElementsByTagName)("media:content",e).map((function(e){for(var t=e.attribs,n={medium:t.medium,isDefault:!!t.isDefault},r=0,i=s;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uniqueSort=t.compareDocumentPosition=t.removeSubsets=void 0;var r=n(94917);function i(e,t){var n=[],i=[];if(e===t)return 0;for(var s=(0,r.hasChildren)(e)?e:e.parent;s;)n.unshift(s),s=s.parent;for(s=(0,r.hasChildren)(t)?t:t.parent;s;)i.unshift(s),s=s.parent;for(var o=Math.min(n.length,i.length),a=0;ac.indexOf(d)?l===t?20:4:l===e?10:2}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var n=e[t];if(t>0&&e.lastIndexOf(n,t-1)>=0)e.splice(t,1);else for(var r=n.parent;r;r=r.parent)if(e.includes(r)){e.splice(t,1);break}}return e},t.compareDocumentPosition=i,t.uniqueSort=function(e){return(e=e.filter((function(e,t,n){return!n.includes(e,t+1)}))).sort((function(e,t){var n=i(e,t);return 2&n?-1:4&n?1:0})),e}},68258:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,i(n(41147),t),i(n(69821),t),i(n(25228),t),i(n(49352),t),i(n(95041),t),i(n(58512),t),i(n(88606),t);var s=n(94917);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return s.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return s.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return s.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return s.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return s.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return s.hasChildren}})},95041:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var r=n(94917),i=n(49352),s={tag_name:function(e){return"function"==typeof e?function(t){return(0,r.isTag)(t)&&e(t.name)}:"*"===e?r.isTag:function(t){return(0,r.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,r.isText)(t)&&e(t.data)}:function(t){return(0,r.isText)(t)&&t.data===e}}};function o(e,t){return"function"==typeof t?function(n){return(0,r.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,r.isTag)(n)&&n.attribs[e]===t}}function a(e,t){return function(n){return e(n)||t(n)}}function l(e){var t=Object.keys(e).map((function(t){var n=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](n):o(t,n)}));return 0===t.length?null:t.reduce(a)}t.testElement=function(e,t){var n=l(e);return!n||n(t)},t.getElements=function(e,t,n,r){void 0===r&&(r=1/0);var s=l(e);return s?(0,i.filter)(s,t,n,r):[]},t.getElementById=function(e,t,n){return void 0===n&&(n=!0),Array.isArray(t)||(t=[t]),(0,i.findOne)(o("id",e),t,n)},t.getElementsByTagName=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),(0,i.filter)(s.tag_name(e),t,n,r)},t.getElementsByTagType=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),(0,i.filter)(s.tag_type(e),t,n,r)}},25228:(e,t)=>{"use strict";function n(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=n,t.replaceElement=function(e,t){var n=t.prev=e.prev;n&&(n.next=t);var r=t.next=e.next;r&&(r.prev=t);var i=t.parent=e.parent;if(i){var s=i.children;s[s.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(n(t),t.next=null,t.parent=e,e.children.push(t)>1){var r=e.children[e.children.length-2];r.next=t,t.prev=r}else t.prev=null},t.append=function(e,t){n(t);var r=e.parent,i=e.next;if(t.next=i,t.prev=e,e.next=t,t.parent=r,i){if(i.prev=t,r){var s=r.children;s.splice(s.lastIndexOf(i),0,t)}}else r&&r.children.push(t)},t.prependChild=function(e,t){if(n(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var r=e.children[1];r.prev=t,t.next=r}else t.next=null},t.prepend=function(e,t){n(t);var r=e.parent;if(r){var i=r.children;i.splice(i.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},49352:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var r=n(94917);function i(e,t,n,s){for(var o=[],a=0,l=t;a0){var u=i(e,c.children,n,s);if(o.push.apply(o,u),(s-=u.length)<=0)break}}return o}t.filter=function(e,t,n,r){return void 0===n&&(n=!0),void 0===r&&(r=1/0),Array.isArray(t)||(t=[t]),i(e,t,n,r)},t.find=i,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,n,i){void 0===i&&(i=!0);for(var s=null,o=0;o0&&(s=e(t,a.children)))}return s},t.existsOne=function e(t,n){return n.some((function(n){return(0,r.isTag)(n)&&(t(n)||n.children.length>0&&e(t,n.children))}))},t.findAll=function(e,t){for(var n,i,s=[],o=t.filter(r.isTag);i=o.shift();){var a=null===(n=i.children)||void 0===n?void 0:n.filter(r.isTag);a&&a.length>0&&o.unshift.apply(o,a),e(i)&&s.push(i)}return s}},41147:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var i=n(94917),s=r(n(24500)),o=n(14948);function a(e,t){return(0,s.default)(e,t)}t.getOuterHTML=a,t.getInnerHTML=function(e,t){return(0,i.hasChildren)(e)?e.children.map((function(e){return a(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,i.isCDATA)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&!(0,i.isComment)(t)?e(t.children):(0,i.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,i.hasChildren)(t)&&(t.type===o.ElementType.Tag||(0,i.isCDATA)(t))?e(t.children):(0,i.isText)(t)?t.data:""}},69821:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var r=n(94917),i=[];function s(e){var t;return null!==(t=e.children)&&void 0!==t?t:i}function o(e){return e.parent||null}t.getChildren=s,t.getParent=o,t.getSiblings=function(e){var t=o(e);if(null!=t)return s(t);for(var n=[e],r=e.prev,i=e.next;null!=r;)n.unshift(r),r=r.prev;for(;null!=i;)n.push(i),i=i.next;return n},t.getAttributeValue=function(e,t){var n;return null===(n=e.attribs)||void 0===n?void 0:n[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,r.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,r.isTag)(t);)t=t.prev;return t}},795:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeHTML=t.decodeHTMLStrict=t.decodeXML=void 0;var i=r(n(98253)),s=r(n(28536)),o=r(n(71849)),a=r(n(24603)),l=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;function c(e){var t=d(e);return function(e){return String(e).replace(l,t)}}t.decodeXML=c(o.default),t.decodeHTMLStrict=c(i.default);var u=function(e,t){return e65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)};t.default=function(e){return e>=55296&&e<=57343||e>1114111?"�":(e in i.default&&(e=i.default[e]),s(e))}},13650:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=void 0;var i=u(r(n(71849)).default),s=d(i);t.encodeXML=m(i);var o,a,l=u(r(n(98253)).default),c=d(l);function u(e){return Object.keys(e).sort().reduce((function(t,n){return t[e[n]]="&"+n+";",t}),{})}function d(e){for(var t=[],n=[],r=0,i=Object.keys(e);r1?p(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}var g=new RegExp(s.source+"|"+h.source,"g");function m(e){return function(t){return t.replace(g,(function(t){return e[t]||f(t)}))}}t.escape=function(e){return e.replace(g,f)},t.escapeUTF8=function(e){return e.replace(s,f)}},1542:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escapeUTF8=t.escape=t.encodeNonAsciiHTML=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var r=n(795),i=n(13650);t.decode=function(e,t){return(!t||t<=0?r.decodeXML:r.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||t<=0?r.decodeXML:r.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||t<=0?i.encodeXML:i.encodeHTML)(e)};var s=n(13650);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return s.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return s.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return s.encodeNonAsciiHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return s.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return s.escapeUTF8}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return s.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return s.encodeHTML}});var o=n(795);Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return o.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return o.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return o.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return o.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return o.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return o.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return o.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return o.decodeXML}})},29681:function(e,t,n){"use strict";var r,i=this&&this.__extends||(r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&s(t,e,n);return o(t,e),t},l=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.parseFeed=t.FeedHandler=void 0;var c,u,d=l(n(94917)),h=a(n(68258)),p=n(64332);!function(e){e[e.image=0]="image",e[e.audio=1]="audio",e[e.video=2]="video",e[e.document=3]="document",e[e.executable=4]="executable"}(c||(c={})),function(e){e[e.sample=0]="sample",e[e.full=1]="full",e[e.nonstop=2]="nonstop"}(u||(u={}));var f=function(e){function t(t,n){return"object"==typeof t&&(n=t=void 0),e.call(this,t,n)||this}return i(t,e),t.prototype.onend=function(){var e,t,n=b(w,this.dom);if(n){var r={};if("feed"===n.name){var i=n.children;r.type="atom",v(r,"id","id",i),v(r,"title","title",i);var s=y("href",b("link",i));s&&(r.link=s),v(r,"description","subtitle",i),(o=_("updated",i))&&(r.updated=new Date(o)),v(r,"author","email",i,!0),r.items=m("entry",i).map((function(e){var t={},n=e.children;v(t,"id","id",n),v(t,"title","title",n);var r=y("href",b("link",n));r&&(t.link=r);var i=_("summary",n)||_("content",n);i&&(t.description=i);var s=_("updated",n);return s&&(t.pubDate=new Date(s)),t.media=g(n),t}))}else{var o;i=null!==(t=null===(e=b("channel",n.children))||void 0===e?void 0:e.children)&&void 0!==t?t:[],r.type=n.name.substr(0,3),r.id="",v(r,"title","title",i),v(r,"link","link",i),v(r,"description","description",i),(o=_("lastBuildDate",i))&&(r.updated=new Date(o)),v(r,"author","managingEditor",i,!0),r.items=m("item",n.children).map((function(e){var t={},n=e.children;v(t,"id","guid",n),v(t,"title","title",n),v(t,"link","link",n),v(t,"description","description",n);var r=_("pubDate",n);return r&&(t.pubDate=new Date(r)),t.media=g(n),t}))}this.feed=r,this.handleCallback(null)}else this.handleCallback(new Error("couldn't find root of feed"))},t}(d.default);function g(e){return m("media:content",e).map((function(e){var t={medium:e.attribs.medium,isDefault:!!e.attribs.isDefault};return e.attribs.url&&(t.url=e.attribs.url),e.attribs.fileSize&&(t.fileSize=parseInt(e.attribs.fileSize,10)),e.attribs.type&&(t.type=e.attribs.type),e.attribs.expression&&(t.expression=e.attribs.expression),e.attribs.bitrate&&(t.bitrate=parseInt(e.attribs.bitrate,10)),e.attribs.framerate&&(t.framerate=parseInt(e.attribs.framerate,10)),e.attribs.samplingrate&&(t.samplingrate=parseInt(e.attribs.samplingrate,10)),e.attribs.channels&&(t.channels=parseInt(e.attribs.channels,10)),e.attribs.duration&&(t.duration=parseInt(e.attribs.duration,10)),e.attribs.height&&(t.height=parseInt(e.attribs.height,10)),e.attribs.width&&(t.width=parseInt(e.attribs.width,10)),e.attribs.lang&&(t.lang=e.attribs.lang),t}))}function m(e,t){return h.getElementsByTagName(e,t,!0)}function b(e,t){return h.getElementsByTagName(e,t,!0,1)[0]}function _(e,t,n){return void 0===n&&(n=!1),h.getText(h.getElementsByTagName(e,t,n,1)).trim()}function y(e,t){return t?t.attribs[e]:null}function v(e,t,n,r,i){void 0===i&&(i=!1);var s=_(n,r,i);s&&(e[t]=s)}function w(e){return"rss"===e||"feed"===e||"rdf:RDF"===e}t.FeedHandler=f,t.parseFeed=function(e,t){void 0===t&&(t={xmlMode:!0});var n=new f(t);return new p.Parser(n,t).end(e),n.feed}},64332:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var i=r(n(40543)),s=new Set(["input","option","optgroup","select","button","datalist","textarea"]),o=new Set(["p"]),a={tr:new Set(["tr","th","td"]),th:new Set(["th"]),td:new Set(["thead","th","td"]),body:new Set(["head","link","script"]),li:new Set(["li"]),p:o,h1:o,h2:o,h3:o,h4:o,h5:o,h6:o,select:s,input:s,output:s,button:s,datalist:s,textarea:s,option:new Set(["option"]),optgroup:new Set(["optgroup","option"]),dd:new Set(["dt","dd"]),dt:new Set(["dt","dd"]),address:o,article:o,aside:o,blockquote:o,details:o,div:o,dl:o,fieldset:o,figcaption:o,figure:o,footer:o,form:o,header:o,hr:o,main:o,nav:o,ol:o,pre:o,section:o,table:o,ul:o,rt:new Set(["rt","rp"]),rp:new Set(["rt","rp"]),tbody:new Set(["thead","tbody"]),tfoot:new Set(["thead","tbody"])},l=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),c=new Set(["math","svg"]),u=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),d=/\s|\//,h=function(){function e(e,t){var n,r,s,o,a;void 0===t&&(t={}),this.startIndex=0,this.endIndex=null,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.options=t,this.cbs=null!=e?e:{},this.lowerCaseTagNames=null!==(n=t.lowerCaseTags)&&void 0!==n?n:!t.xmlMode,this.lowerCaseAttributeNames=null!==(r=t.lowerCaseAttributeNames)&&void 0!==r?r:!t.xmlMode,this.tokenizer=new(null!==(s=t.Tokenizer)&&void 0!==s?s:i.default)(this.options,this),null===(a=(o=this.cbs).onparserinit)||void 0===a||a.call(o,this)}return e.prototype.updatePosition=function(e){null===this.endIndex?this.tokenizer.sectionStart<=e?this.startIndex=0:this.startIndex=this.tokenizer.sectionStart-e:this.startIndex=this.endIndex+1,this.endIndex=this.tokenizer.getAbsoluteIndex()},e.prototype.ontext=function(e){var t,n;this.updatePosition(1),this.endIndex--,null===(n=(t=this.cbs).ontext)||void 0===n||n.call(t,e)},e.prototype.onopentagname=function(e){var t,n;if(this.lowerCaseTagNames&&(e=e.toLowerCase()),this.tagname=e,!this.options.xmlMode&&Object.prototype.hasOwnProperty.call(a,e))for(var r=void 0;this.stack.length>0&&a[e].has(r=this.stack[this.stack.length-1]);)this.onclosetag(r);!this.options.xmlMode&&l.has(e)||(this.stack.push(e),c.has(e)?this.foreignContext.push(!0):u.has(e)&&this.foreignContext.push(!1)),null===(n=(t=this.cbs).onopentagname)||void 0===n||n.call(t,e),this.cbs.onopentag&&(this.attribs={})},e.prototype.onopentagend=function(){var e,t;this.updatePosition(1),this.attribs&&(null===(t=(e=this.cbs).onopentag)||void 0===t||t.call(e,this.tagname,this.attribs),this.attribs=null),!this.options.xmlMode&&this.cbs.onclosetag&&l.has(this.tagname)&&this.cbs.onclosetag(this.tagname),this.tagname=""},e.prototype.onclosetag=function(e){if(this.updatePosition(1),this.lowerCaseTagNames&&(e=e.toLowerCase()),(c.has(e)||u.has(e))&&this.foreignContext.pop(),!this.stack.length||!this.options.xmlMode&&l.has(e))this.options.xmlMode||"br"!==e&&"p"!==e||(this.onopentagname(e),this.closeCurrentTag());else{var t=this.stack.lastIndexOf(e);if(-1!==t)if(this.cbs.onclosetag)for(t=this.stack.length-t;t--;)this.cbs.onclosetag(this.stack.pop());else this.stack.length=t;else"p"!==e||this.options.xmlMode||(this.onopentagname(e),this.closeCurrentTag())}},e.prototype.onselfclosingtag=function(){this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?this.closeCurrentTag():this.onopentagend()},e.prototype.closeCurrentTag=function(){var e,t,n=this.tagname;this.onopentagend(),this.stack[this.stack.length-1]===n&&(null===(t=(e=this.cbs).onclosetag)||void 0===t||t.call(e,n),this.stack.pop())},e.prototype.onattribname=function(e){this.lowerCaseAttributeNames&&(e=e.toLowerCase()),this.attribname=e},e.prototype.onattribdata=function(e){this.attribvalue+=e},e.prototype.onattribend=function(e){var t,n;null===(n=(t=this.cbs).onattribute)||void 0===n||n.call(t,this.attribname,this.attribvalue,e),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribname="",this.attribvalue=""},e.prototype.getInstructionName=function(e){var t=e.search(d),n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n},e.prototype.ondeclaration=function(e){if(this.cbs.onprocessinginstruction){var t=this.getInstructionName(e);this.cbs.onprocessinginstruction("!"+t,"!"+e)}},e.prototype.onprocessinginstruction=function(e){if(this.cbs.onprocessinginstruction){var t=this.getInstructionName(e);this.cbs.onprocessinginstruction("?"+t,"?"+e)}},e.prototype.oncomment=function(e){var t,n,r,i;this.updatePosition(4),null===(n=(t=this.cbs).oncomment)||void 0===n||n.call(t,e),null===(i=(r=this.cbs).oncommentend)||void 0===i||i.call(r)},e.prototype.oncdata=function(e){var t,n,r,i,s,o;this.updatePosition(1),this.options.xmlMode||this.options.recognizeCDATA?(null===(n=(t=this.cbs).oncdatastart)||void 0===n||n.call(t),null===(i=(r=this.cbs).ontext)||void 0===i||i.call(r,e),null===(o=(s=this.cbs).oncdataend)||void 0===o||o.call(s)):this.oncomment("[CDATA["+e+"]]")},e.prototype.onerror=function(e){var t,n;null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,e)},e.prototype.onend=function(){var e,t;if(this.cbs.onclosetag)for(var n=this.stack.length;n>0;this.cbs.onclosetag(this.stack[--n]));null===(t=(e=this.cbs).onend)||void 0===t||t.call(e)},e.prototype.reset=function(){var e,t,n,r;null===(t=(e=this.cbs).onreset)||void 0===t||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack=[],null===(r=(n=this.cbs).onparserinit)||void 0===r||r.call(n,this)},e.prototype.parseComplete=function(e){this.reset(),this.end(e)},e.prototype.write=function(e){this.tokenizer.write(e)},e.prototype.end=function(e){this.tokenizer.end(e)},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){this.tokenizer.resume()},e.prototype.parseChunk=function(e){this.write(e)},e.prototype.done=function(e){this.end(e)},e}();t.Parser=h},40543:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=r(n(24603)),s=r(n(98253)),o=r(n(28536)),a=r(n(71849));function l(e){return" "===e||"\n"===e||"\t"===e||"\f"===e||"\r"===e}function c(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function u(e,t,n){var r=e.toLowerCase();return e===r?function(e,i){i===r?e._state=t:(e._state=n,e._index--)}:function(i,s){s===r||s===e?i._state=t:(i._state=n,i._index--)}}function d(e,t){var n=e.toLowerCase();return function(r,i){i===n||i===e?r._state=t:(r._state=3,r._index--)}}var h=u("C",24,16),p=u("D",25,16),f=u("A",26,16),g=u("T",27,16),m=u("A",28,16),b=d("R",35),_=d("I",36),y=d("P",37),v=d("T",38),w=u("R",40,1),C=u("I",41,1),x=u("P",42,1),S=u("T",43,1),T=d("Y",45),E=d("L",46),k=d("E",47),O=u("Y",49,1),A=u("L",50,1),P=u("E",51,1),D=d("I",54),R=d("T",55),I=d("L",56),N=d("E",57),L=u("I",58,1),B=u("T",59,1),M=u("L",60,1),j=u("E",61,1),q=u("#",63,64),$=u("X",66,65),F=function(){function e(e,t){var n;this._state=1,this.buffer="",this.sectionStart=0,this._index=0,this.bufferOffset=0,this.baseState=1,this.special=1,this.running=!0,this.ended=!1,this.cbs=t,this.xmlMode=!!(null==e?void 0:e.xmlMode),this.decodeEntities=null===(n=null==e?void 0:e.decodeEntities)||void 0===n||n}return e.prototype.reset=function(){this._state=1,this.buffer="",this.sectionStart=0,this._index=0,this.bufferOffset=0,this.baseState=1,this.special=1,this.running=!0,this.ended=!1},e.prototype.write=function(e){this.ended&&this.cbs.onerror(Error(".write() after done!")),this.buffer+=e,this.parse()},e.prototype.end=function(e){this.ended&&this.cbs.onerror(Error(".end() after done!")),e&&this.write(e),this.ended=!0,this.running&&this.finish()},e.prototype.pause=function(){this.running=!1},e.prototype.resume=function(){this.running=!0,this._indexthis.sectionStart&&this.cbs.ontext(this.getSection()),this._state=2,this.sectionStart=this._index):!this.decodeEntities||"&"!==e||1!==this.special&&4!==this.special||(this._index>this.sectionStart&&this.cbs.ontext(this.getSection()),this.baseState=1,this._state=62,this.sectionStart=this._index)},e.prototype.isTagStartChar=function(e){return c(e)||this.xmlMode&&!l(e)&&"/"!==e&&">"!==e},e.prototype.stateBeforeTagName=function(e){"/"===e?this._state=5:"<"===e?(this.cbs.ontext(this.getSection()),this.sectionStart=this._index):">"===e||1!==this.special||l(e)?this._state=1:"!"===e?(this._state=15,this.sectionStart=this._index+1):"?"===e?(this._state=17,this.sectionStart=this._index+1):this.isTagStartChar(e)?(this._state=this.xmlMode||"s"!==e&&"S"!==e?this.xmlMode||"t"!==e&&"T"!==e?3:52:32,this.sectionStart=this._index):this._state=1},e.prototype.stateInTagName=function(e){("/"===e||">"===e||l(e))&&(this.emitToken("onopentagname"),this._state=8,this._index--)},e.prototype.stateBeforeClosingTagName=function(e){l(e)||(">"===e?this._state=1:1!==this.special?4===this.special||"s"!==e&&"S"!==e?4!==this.special||"t"!==e&&"T"!==e?(this._state=1,this._index--):this._state=53:this._state=33:this.isTagStartChar(e)?(this._state=6,this.sectionStart=this._index):(this._state=20,this.sectionStart=this._index))},e.prototype.stateInClosingTagName=function(e){(">"===e||l(e))&&(this.emitToken("onclosetag"),this._state=7,this._index--)},e.prototype.stateAfterClosingTagName=function(e){">"===e&&(this._state=1,this.sectionStart=this._index+1)},e.prototype.stateBeforeAttributeName=function(e){">"===e?(this.cbs.onopentagend(),this._state=1,this.sectionStart=this._index+1):"/"===e?this._state=4:l(e)||(this._state=9,this.sectionStart=this._index)},e.prototype.stateInSelfClosingTag=function(e){">"===e?(this.cbs.onselfclosingtag(),this._state=1,this.sectionStart=this._index+1,this.special=1):l(e)||(this._state=8,this._index--)},e.prototype.stateInAttributeName=function(e){("="===e||"/"===e||">"===e||l(e))&&(this.cbs.onattribname(this.getSection()),this.sectionStart=-1,this._state=10,this._index--)},e.prototype.stateAfterAttributeName=function(e){"="===e?this._state=11:"/"===e||">"===e?(this.cbs.onattribend(void 0),this._state=8,this._index--):l(e)||(this.cbs.onattribend(void 0),this._state=9,this.sectionStart=this._index)},e.prototype.stateBeforeAttributeValue=function(e){'"'===e?(this._state=12,this.sectionStart=this._index+1):"'"===e?(this._state=13,this.sectionStart=this._index+1):l(e)||(this._state=14,this.sectionStart=this._index,this._index--)},e.prototype.handleInAttributeValue=function(e,t){e===t?(this.emitToken("onattribdata"),this.cbs.onattribend(t),this._state=8):this.decodeEntities&&"&"===e&&(this.emitToken("onattribdata"),this.baseState=this._state,this._state=62,this.sectionStart=this._index)},e.prototype.stateInAttributeValueDoubleQuotes=function(e){this.handleInAttributeValue(e,'"')},e.prototype.stateInAttributeValueSingleQuotes=function(e){this.handleInAttributeValue(e,"'")},e.prototype.stateInAttributeValueNoQuotes=function(e){l(e)||">"===e?(this.emitToken("onattribdata"),this.cbs.onattribend(null),this._state=8,this._index--):this.decodeEntities&&"&"===e&&(this.emitToken("onattribdata"),this.baseState=this._state,this._state=62,this.sectionStart=this._index)},e.prototype.stateBeforeDeclaration=function(e){this._state="["===e?23:"-"===e?18:16},e.prototype.stateInDeclaration=function(e){">"===e&&(this.cbs.ondeclaration(this.getSection()),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateInProcessingInstruction=function(e){">"===e&&(this.cbs.onprocessinginstruction(this.getSection()),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateBeforeComment=function(e){"-"===e?(this._state=19,this.sectionStart=this._index+1):this._state=16},e.prototype.stateInComment=function(e){"-"===e&&(this._state=21)},e.prototype.stateInSpecialComment=function(e){">"===e&&(this.cbs.oncomment(this.buffer.substring(this.sectionStart,this._index)),this._state=1,this.sectionStart=this._index+1)},e.prototype.stateAfterComment1=function(e){this._state="-"===e?22:19},e.prototype.stateAfterComment2=function(e){">"===e?(this.cbs.oncomment(this.buffer.substring(this.sectionStart,this._index-2)),this._state=1,this.sectionStart=this._index+1):"-"!==e&&(this._state=19)},e.prototype.stateBeforeCdata6=function(e){"["===e?(this._state=29,this.sectionStart=this._index+1):(this._state=16,this._index--)},e.prototype.stateInCdata=function(e){"]"===e&&(this._state=30)},e.prototype.stateAfterCdata1=function(e){this._state="]"===e?31:29},e.prototype.stateAfterCdata2=function(e){">"===e?(this.cbs.oncdata(this.buffer.substring(this.sectionStart,this._index-2)),this._state=1,this.sectionStart=this._index+1):"]"!==e&&(this._state=29)},e.prototype.stateBeforeSpecialS=function(e){"c"===e||"C"===e?this._state=34:"t"===e||"T"===e?this._state=44:(this._state=3,this._index--)},e.prototype.stateBeforeSpecialSEnd=function(e){2!==this.special||"c"!==e&&"C"!==e?3!==this.special||"t"!==e&&"T"!==e?this._state=1:this._state=48:this._state=39},e.prototype.stateBeforeSpecialLast=function(e,t){("/"===e||">"===e||l(e))&&(this.special=t),this._state=3,this._index--},e.prototype.stateAfterSpecialLast=function(e,t){">"===e||l(e)?(this.special=1,this._state=6,this.sectionStart=this._index-t,this._index--):this._state=1},e.prototype.parseFixedEntity=function(e){if(void 0===e&&(e=this.xmlMode?a.default:s.default),this.sectionStart+1=2;){var n=this.buffer.substr(e,t);if(Object.prototype.hasOwnProperty.call(o.default,n))return this.emitPartial(o.default[n]),void(this.sectionStart+=t+1);t--}},e.prototype.stateInNamedEntity=function(e){";"===e?(this.parseFixedEntity(),1===this.baseState&&this.sectionStart+1"9")&&!c(e)&&(this.xmlMode||this.sectionStart+1===this._index||(1!==this.baseState?"="!==e&&this.parseFixedEntity(o.default):this.parseLegacyEntity()),this._state=this.baseState,this._index--)},e.prototype.decodeNumericEntity=function(e,t,n){var r=this.sectionStart+e;if(r!==this._index){var s=this.buffer.substring(r,this._index),o=parseInt(s,t);this.emitPartial(i.default(o)),this.sectionStart=n?this._index+1:this._index}this._state=this.baseState},e.prototype.stateInNumericEntity=function(e){";"===e?this.decodeNumericEntity(2,10,!0):(e<"0"||e>"9")&&(this.xmlMode?this._state=this.baseState:this.decodeNumericEntity(2,10,!1),this._index--)},e.prototype.stateInHexEntity=function(e){";"===e?this.decodeNumericEntity(3,16,!0):(e<"a"||e>"f")&&(e<"A"||e>"F")&&(e<"0"||e>"9")&&(this.xmlMode?this._state=this.baseState:this.decodeNumericEntity(3,16,!1),this._index--)},e.prototype.cleanup=function(){this.sectionStart<0?(this.buffer="",this.bufferOffset+=this._index,this._index=0):this.running&&(1===this._state?(this.sectionStart!==this._index&&this.cbs.ontext(this.buffer.substr(this.sectionStart)),this.buffer="",this.bufferOffset+=this._index,this._index=0):this.sectionStart===this._index?(this.buffer="",this.bufferOffset+=this._index,this._index=0):(this.buffer=this.buffer.substr(this.sectionStart),this._index-=this.sectionStart,this.bufferOffset+=this.sectionStart),this.sectionStart=0)},e.prototype.parse=function(){for(;this._index=l)return m;r=n(d),i=[],","===r.slice(-1)?(r=r.replace(h,""),_()):b()}function b(){for(n(c),s="",o="in descriptor";;){if(a=e.charAt(g),"in descriptor"===o)if(t(a))s&&(i.push(s),s="",o="after descriptor");else{if(","===a)return g+=1,s&&i.push(s),void _();if("("===a)s+=a,o="in parens";else{if(""===a)return s&&i.push(s),void _();s+=a}}else if("in parens"===o)if(")"===a)s+=a,o="in descriptor";else{if(""===a)return i.push(s),void _();s+=a}else if("after descriptor"===o)if(t(a));else{if(""===a)return void _();o="in descriptor",g-=1}g+=1}}function _(){var t,n,s,o,a,l,c,u,d,h=!1,g={};for(o=0;o{var t=String,n=function(){return{isColorSupported:!1,reset:t,bold:t,dim:t,italic:t,underline:t,inverse:t,hidden:t,strikethrough:t,black:t,red:t,green:t,yellow:t,blue:t,magenta:t,cyan:t,white:t,gray:t,bgBlack:t,bgRed:t,bgGreen:t,bgYellow:t,bgBlue:t,bgMagenta:t,bgCyan:t,bgWhite:t}};e.exports=n(),e.exports.createColors=n},74120:(e,t,n)=>{"use strict";let r=n(69922);class i extends r{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}}e.exports=i,i.default=i,r.registerAtRule(i)},12018:(e,t,n)=>{"use strict";let r=n(46591);class i extends r{constructor(e){super(e),this.type="comment"}}e.exports=i,i.default=i},69922:(e,t,n)=>{"use strict";let r,i,s,o,{isClean:a,my:l}=n(6289),c=n(46022),u=n(12018),d=n(46591);function h(e){return e.map((e=>(e.nodes&&(e.nodes=h(e.nodes)),delete e.source,e)))}function p(e){if(e[a]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)p(t)}class f extends d{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t,n,r=this.getIterator();for(;this.indexes[r]{let r;try{r=e(t,n)}catch(e){throw t.addToError(e)}return!1!==r&&t.walk&&(r=t.walk(e)),r}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((n,r)=>{if("decl"===n.type&&e.test(n.prop))return t(n,r)})):this.walk(((n,r)=>{if("decl"===n.type&&n.prop===e)return t(n,r)})):(t=e,this.walk(((e,n)=>{if("decl"===e.type)return t(e,n)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((n,r)=>{if("rule"===n.type&&e.test(n.selector))return t(n,r)})):this.walk(((n,r)=>{if("rule"===n.type&&n.selector===e)return t(n,r)})):(t=e,this.walk(((e,n)=>{if("rule"===e.type)return t(e,n)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((n,r)=>{if("atrule"===n.type&&e.test(n.name))return t(n,r)})):this.walk(((n,r)=>{if("atrule"===n.type&&n.name===e)return t(n,r)})):(t=e,this.walk(((e,n)=>{if("atrule"===e.type)return t(e,n)})))}walkComments(e){return this.walk(((t,n)=>{if("comment"===t.type)return e(t,n)}))}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let n,r=this.index(e),i=0===r&&"prepend",s=this.normalize(t,this.proxyOf.nodes[r],i).reverse();r=this.index(e);for(let e of s)this.proxyOf.nodes.splice(r,0,e);for(let e in this.indexes)n=this.indexes[e],r<=n&&(this.indexes[e]=n+s.length);return this.markDirty(),this}insertAfter(e,t){let n,r=this.index(e),i=this.normalize(t,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let e of i)this.proxyOf.nodes.splice(r+1,0,e);for(let e in this.indexes)n=this.indexes[e],r=e&&(this.indexes[n]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,n){return n||(n=t,t={}),this.walkDecls((r=>{t.props&&!t.props.includes(r.prop)||t.fast&&!r.value.includes(t.fast)||(r.value=r.value.replace(e,n))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=h(r(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new c(e)]}else if(e.selector)e=[new i(e)];else if(e.name)e=[new s(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new u(e)]}return e.map((e=>(e[l]||f.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[a]&&p(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e)))}getProxyProcessor(){return{set:(e,t,n)=>(e[t]===n||(e[t]=n,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...n)=>e[t](...n.map((e=>"function"==typeof e?(t,n)=>e(t.toProxy(),n):e))):"every"===t||"some"===t?n=>e[t](((e,...t)=>n(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}}f.registerParse=e=>{r=e},f.registerRule=e=>{i=e},f.registerAtRule=e=>{s=e},f.registerRoot=e=>{o=e},e.exports=f,f.default=f,f.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,s.prototype):"rule"===e.type?Object.setPrototypeOf(e,i.prototype):"decl"===e.type?Object.setPrototypeOf(e,c.prototype):"comment"===e.type?Object.setPrototypeOf(e,u.prototype):"root"===e.type&&Object.setPrototypeOf(e,o.prototype),e[l]=!0,e.nodes&&e.nodes.forEach((e=>{f.rebuild(e)}))}},25698:(e,t,n)=>{"use strict";let r=n(42081),i=n(25219);class s extends Error{constructor(e,t,n,r,i,o){super(e),this.name="CssSyntaxError",this.reason=e,i&&(this.file=i),r&&(this.source=r),o&&(this.plugin=o),void 0!==t&&void 0!==n&&("number"==typeof t?(this.line=t,this.column=n):(this.line=t.line,this.column=t.column,this.endLine=n.line,this.endColumn=n.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=r.isColorSupported),i&&e&&(t=i(t));let n,s,o=t.split(/\r?\n/),a=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),c=String(l).length;if(e){let{bold:e,red:t,gray:i}=r.createColors(!0);n=n=>e(t(n)),s=e=>i(e)}else n=s=e=>e;return o.slice(a,l).map(((e,t)=>{let r=a+1+t,i=" "+(" "+r).slice(-c)+" | ";if(r===this.line){let t=s(i.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+s(i)+e+"\n "+t+n("^")}return" "+s(i)+e})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=s,s.default=s},46022:(e,t,n)=>{"use strict";let r=n(46591);class i extends r{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}e.exports=i,i.default=i},61834:(e,t,n)=>{"use strict";let r,i,s=n(69922);class o extends s{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new r(new i,this,e).stringify()}}o.registerLazyResult=e=>{r=e},o.registerProcessor=e=>{i=e},e.exports=o,o.default=o},28967:(e,t,n)=>{"use strict";let r=n(46022),i=n(77681),s=n(12018),o=n(74120),a=n(37609),l=n(32023),c=n(59020);function u(e,t){if(Array.isArray(e))return e.map((e=>u(e)));let{inputs:n,...d}=e;if(n){t=[];for(let e of n){let n={...e,__proto__:a.prototype};n.map&&(n.map={...n.map,__proto__:i.prototype}),t.push(n)}}if(d.nodes&&(d.nodes=e.nodes.map((e=>u(e,t)))),d.source){let{inputId:e,...n}=d.source;d.source=n,null!=e&&(d.source.input=t[e])}if("root"===d.type)return new l(d);if("decl"===d.type)return new r(d);if("rule"===d.type)return new c(d);if("comment"===d.type)return new s(d);if("atrule"===d.type)return new o(d);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},37609:(e,t,n)=>{"use strict";let{SourceMapConsumer:r,SourceMapGenerator:i}=n(61305),{fileURLToPath:s,pathToFileURL:o}=n(16659),{resolve:a,isAbsolute:l}=n(14029),{nanoid:c}=n(88773),u=n(25219),d=n(25698),h=n(77681),p=Symbol("fromOffsetCache"),f=Boolean(r&&i),g=Boolean(a&&l);class m{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!g||/^\w+:\/\//.test(t.from)||l(t.from)?this.file=t.from:this.file=a(t.from)),g&&f){let e=new h(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,n;if(this[p])n=this[p];else{let e=this.css.split("\n");n=new Array(e.length);let t=0;for(let r=0,i=e.length;r=t)r=n.length-1;else{let t,i=n.length-2;for(;r>1),e=n[t+1])){r=t;break}r=t+1}}return{line:r+1,col:e-n[r]+1}}error(e,t,n,r={}){let i,s,a;if(t&&"object"==typeof t){let e=t,r=n;if("number"==typeof t.offset){let r=this.fromOffset(e.offset);t=r.line,n=r.col}else t=e.line,n=e.column;if("number"==typeof r.offset){let e=this.fromOffset(r.offset);s=e.line,a=e.col}else s=r.line,a=r.column}else if(!n){let e=this.fromOffset(t);t=e.line,n=e.col}let l=this.origin(t,n,s,a);return i=l?new d(e,void 0===l.endLine?l.line:{line:l.line,column:l.column},void 0===l.endLine?l.column:{line:l.endLine,column:l.endColumn},l.source,l.file,r.plugin):new d(e,void 0===s?t:{line:t,column:n},void 0===s?n:{line:s,column:a},this.css,this.file,r.plugin),i.input={line:t,column:n,endLine:s,endColumn:a,source:this.css},this.file&&(o&&(i.input.url=o(this.file).toString()),i.input.file=this.file),i}origin(e,t,n,r){if(!this.map)return!1;let i,a,c=this.map.consumer(),u=c.originalPositionFor({line:e,column:t});if(!u.source)return!1;"number"==typeof n&&(i=c.originalPositionFor({line:n,column:r})),a=l(u.source)?o(u.source):new URL(u.source,this.map.consumer().sourceRoot||o(this.map.mapFile));let d={url:a.toString(),line:u.line,column:u.column,endLine:i&&i.line,endColumn:i&&i.column};if("file:"===a.protocol){if(!s)throw new Error("file: protocol is not available in this PostCSS build");d.file=s(a)}let h=c.sourceContentFor(u.source);return h&&(d.source=h),d}mapResolve(e){return/^\w+:\/\//.test(e)?e:a(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}e.exports=m,m.default=m,u&&u.registerInput&&u.registerInput(m)},55125:(e,t,n)=>{"use strict";let{isClean:r,my:i}=n(6289),s=n(3275),o=n(96073),a=n(69922),l=n(61834),c=(n(27374),n(35681)),u=n(31376),d=n(32023);const h={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},p={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},f={postcssPlugin:!0,prepare:!0,Once:!0};function g(e){return"object"==typeof e&&"function"==typeof e.then}function m(e){let t=!1,n=h[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,0,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,0,n+"Exit"]:[n,n+"Exit"]}function b(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:m(e),{node:e,events:t,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function _(e){return e[r]=!1,e.nodes&&e.nodes.forEach((e=>_(e))),e}let y={};class v{constructor(e,t,n){let r;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof v||t instanceof c)r=_(t.root),t.map&&(void 0===n.map&&(n.map={}),n.map.inline||(n.map.inline=!1),n.map.prev=t.map);else{let e=u;n.syntax&&(e=n.syntax.parse),n.parser&&(e=n.parser),e.parse&&(e=e.parse);try{r=e(t,n)}catch(e){this.processed=!0,this.error=e}r&&!r[i]&&a.rebuild(r)}else r=_(t);this.result=new c(e,r,n),this.helpers={...y,result:this.result,postcss:y},this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(g(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[r];)e[r]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=o;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new s(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(e){e[r]=!0;let t=m(e);for(let n of t)if(0===n)e.nodes&&e.each((e=>{e[r]||this.walkSync(e)}));else{let t=this.listeners[n];if(t&&this.visitSync(t,e.toProxy()))return}}visitSync(e,t){for(let[n,r]of e){let e;this.result.lastPlugin=n;try{e=r(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(g(e))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return g(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let n=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?n.postcssVersion:(e.plugin=n.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(g(e))try{await e}catch(e){let n=t[t.length-1].node;throw this.handleError(e,n)}}}if(this.listeners.OnceExit)for(let[t,n]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>n(e,this.helpers)));await Promise.all(t)}else await n(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(e,t,n)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,n])};for(let t of this.plugins)if("object"==typeof t)for(let n in t){if(!p[n]&&/^[A-Z]/.test(n))throw new Error(`Unknown event ${n} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[n])if("object"==typeof t[n])for(let r in t[n])e(t,"*"===r?n:n+"-"+r.toLowerCase(),t[n][r]);else"function"==typeof t[n]&&e(t,n,t[n])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:n,visitors:i}=t;if("root"!==n.type&&"document"!==n.type&&!n.parent)return void e.pop();if(i.length>0&&t.visitorIndex{y=e},e.exports=v,v.default=v,d.registerLazyResult(v),l.registerLazyResult(v)},5955:e=>{"use strict";let t={split(e,t,n){let r=[],i="",s=!1,o=0,a=!1,l="",c=!1;for(let n of e)c?c=!1:"\\"===n?c=!0:a?n===l&&(a=!1):'"'===n||"'"===n?(a=!0,l=n):"("===n?o+=1:")"===n?o>0&&(o-=1):0===o&&t.includes(n)&&(s=!0),s?(""!==i&&r.push(i.trim()),i="",s=!1):i+=n;return(n||""!==i)&&r.push(i.trim()),r},space:e=>t.split(e,[" ","\n","\t"]),comma:e=>t.split(e,[","],!0)};e.exports=t,t.default=t},3275:(e,t,n)=>{"use strict";let{SourceMapConsumer:r,SourceMapGenerator:i}=n(61305),{dirname:s,resolve:o,relative:a,sep:l}=n(14029),{pathToFileURL:c}=n(16659),u=n(37609),d=Boolean(r&&i),h=Boolean(s&&o&&a&&l);e.exports=class{constructor(e,t,n,r){this.stringify=e,this.mapOpts=n.map||{},this.root=t,this.opts=n,this.css=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new u(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let n=t.source.input.from;if(n&&!e[n]){e[n]=!0;let r=this.usesFileUrls?this.toFileUrl(n):this.toUrl(this.path(n));this.map.setSourceContent(r,t.source.input.css)}}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}applyPrevMaps(){for(let e of this.previous()){let t,n=this.toUrl(this.path(e.file)),i=e.root||s(e.file);!1===this.mapOpts.sourcesContent?(t=new r(e.text),t.sourcesContent&&(t.sourcesContent=t.sourcesContent.map((()=>null)))):t=e.consumer(),this.map.applySourceMap(t,n,this.toUrl(this.path(i)))}}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=i.fromSourceMap(e)}else this.map=new i({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}path(e){if(0===e.indexOf("<"))return e;if(/^\w+:\/\//.test(e))return e;if(this.mapOpts.absolute)return e;let t=this.opts.to?s(this.opts.to):".";return"string"==typeof this.mapOpts.annotation&&(t=s(o(t,this.mapOpts.annotation))),a(t,e)}toUrl(e){return"\\"===l&&(e=e.replace(/\\/g,"/")),encodeURI(e).replace(/[#?]/g,encodeURIComponent)}toFileUrl(e){if(c)return c(e).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}generateString(){this.css="",this.map=new i({file:this.outputFile()});let e,t,n=1,r=1,s="",o={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,((i,a,l)=>{if(this.css+=i,a&&"end"!==l&&(o.generated.line=n,o.generated.column=r-1,a.source&&a.source.start?(o.source=this.sourcePath(a),o.original.line=a.source.start.line,o.original.column=a.source.start.column-1,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,this.map.addMapping(o))),e=i.match(/\n/g),e?(n+=e.length,t=i.lastIndexOf("\n"),r=i.length-t):r+=i.length,a&&"start"!==l){let e=a.parent||{raws:{}};("decl"!==a.type||a!==e.last||e.raws.semicolon)&&(a.source&&a.source.end?(o.source=this.sourcePath(a),o.original.line=a.source.end.line,o.original.column=a.source.end.column-1,o.generated.line=n,o.generated.column=r-2,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,o.generated.line=n,o.generated.column=r-1,this.map.addMapping(o)))}}))}generate(){if(this.clearAnnotation(),h&&d&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}}},53579:(e,t,n)=>{"use strict";let r=n(3275),i=n(96073),s=(n(27374),n(31376));const o=n(35681);class a{constructor(e,t,n){let s;t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=n,this._map=void 0;let a=i;this.result=new o(this._processor,s,this._opts),this.result.css=t;let l=this;Object.defineProperty(this.result,"root",{get:()=>l.root});let c=new r(a,s,this._opts,t);if(c.isMap()){let[e,t]=c.generate();e&&(this.result.css=e),t&&(this.result.map=t)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=s;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}}e.exports=a,a.default=a},46591:(e,t,n)=>{"use strict";let{isClean:r,my:i}=n(6289),s=n(25698),o=n(94823),a=n(96073);function l(e,t){let n=new e.constructor;for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;if("proxyCache"===r)continue;let i=e[r],s=typeof i;"parent"===r&&"object"===s?t&&(n[r]=t):"source"===r?n[r]=i:Array.isArray(i)?n[r]=i.map((e=>l(e,n))):("object"===s&&null!==i&&(i=l(i)),n[r]=i)}return n}class c{constructor(e={}){this.raws={},this[r]=!1,this[i]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let n of e[t])"function"==typeof n.clone?this.append(n.clone()):this.append(n)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:n,end:r}=this.rangeBy(t);return this.source.input.error(e,{line:n.line,column:n.column},{line:r.line,column:r.column},t)}return new s(e)}warn(e,t,n){let r={node:this};for(let e in n)r[e]=n[e];return e.warn(t,r)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=a){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=l(this);for(let n in e)t[n]=e[n];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,n=!1;for(let r of e)r===this?n=!0:n?(this.parent.insertAfter(t,r),t=r):this.parent.insertBefore(t,r);n||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}raw(e,t){return(new o).raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let n={},r=null==t;t=t||new Map;let i=0;for(let e in this){if(!Object.prototype.hasOwnProperty.call(this,e))continue;if("parent"===e||"proxyCache"===e)continue;let r=this[e];if(Array.isArray(r))n[e]=r.map((e=>"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof r&&r.toJSON)n[e]=r.toJSON(null,t);else if("source"===e){let s=t.get(r.input);null==s&&(s=i,t.set(r.input,i),i++),n[e]={inputId:s,start:r.start,end:r.end}}else n[e]=r}return r&&(n.inputs=[...t.keys()].map((e=>e.toJSON()))),n}positionInside(e){let t=this.toString(),n=this.source.start.column,r=this.source.start.line;for(let i=0;i(e[t]===n||(e[t]=n,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[r]){this[r]=!1;let e=this;for(;e=e.parent;)e[r]=!1}}get proxyOf(){return this}}e.exports=c,c.default=c},31376:(e,t,n)=>{"use strict";let r=n(69922),i=n(27749),s=n(37609);function o(e,t){let n=new s(e,t),r=new i(n);try{r.parse()}catch(e){throw e}return r.root}e.exports=o,o.default=o,r.registerParse(o)},27749:(e,t,n)=>{"use strict";let r=n(46022),i=n(13583),s=n(12018),o=n(74120),a=n(32023),l=n(59020);const c={empty:!0,space:!0};e.exports=class{constructor(e){this.input=e,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=i(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}comment(e){let t=new s;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let n=e[1].slice(2,-2);if(/^\s*$/.test(n))t.text="",t.raws.left=n,t.raws.right="";else{let e=n.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}emptyRule(e){let t=new l;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,n=null,r=!1,i=null,s=[],o=e[1].startsWith("--"),a=[],l=e;for(;l;){if(n=l[0],a.push(l),"("===n||"["===n)i||(i=l),s.push("("===n?")":"]");else if(o&&r&&"{"===n)i||(i=l),s.push("}");else if(0===s.length){if(";"===n){if(r)return void this.decl(a,o);break}if("{"===n)return void this.rule(a);if("}"===n){this.tokenizer.back(a.pop()),t=!0;break}":"===n&&(r=!0)}else n===s[s.length-1]&&(s.pop(),0===s.length&&(i=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(i),t&&r){if(!o)for(;a.length&&(l=a[a.length-1][0],"space"===l||"comment"===l);)this.tokenizer.back(a.pop());this.decl(a,o)}else this.unknownWord(a)}rule(e){e.pop();let t=new l;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let n=new r;this.init(n,e[0][2]);let i,s=e[e.length-1];for(";"===s[0]&&(this.semicolon=!0,e.pop()),n.source.end=this.getPosition(s[3]||s[2]||function(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}(e));"word"!==e[0][0];)1===e.length&&this.unknownWord(e),n.raws.before+=e.shift()[1];for(n.source.start=this.getPosition(e[0][2]),n.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;n.prop+=e.shift()[1]}for(n.raws.between="";e.length;){if(i=e.shift(),":"===i[0]){n.raws.between+=i[1];break}"word"===i[0]&&/\w/.test(i[1])&&this.unknownWord([i]),n.raws.between+=i[1]}"_"!==n.prop[0]&&"*"!==n.prop[0]||(n.raws.before+=n.prop[0],n.prop=n.prop.slice(1));let o,a=[];for(;e.length&&(o=e[0][0],"space"===o||"comment"===o);)a.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(i=e[t],"!important"===i[1].toLowerCase()){n.important=!0;let r=this.stringFrom(e,t);r=this.spacesFromEnd(e)+r," !important"!==r&&(n.raws.important=r);break}if("important"===i[1].toLowerCase()){let r=e.slice(0),i="";for(let e=t;e>0;e--){let t=r[e][0];if(0===i.trim().indexOf("!")&&"space"!==t)break;i=r.pop()[1]+i}0===i.trim().indexOf("!")&&(n.important=!0,n.raws.important=i,e=r)}if("space"!==i[0]&&"comment"!==i[0])break}e.some((e=>"space"!==e[0]&&"comment"!==e[0]))&&(n.raws.between+=a.map((e=>e[1])).join(""),a=[]),this.raw(n,"value",a.concat(e),t),n.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t,n,r,i=new o;i.name=e[1].slice(1),""===i.name&&this.unnamedAtrule(i,e),this.init(i,e[2]);let s=!1,a=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){i.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===t){a=!0;break}if("}"===t){if(l.length>0){for(r=l.length-1,n=l[r];n&&"space"===n[0];)n=l[--r];n&&(i.source.end=this.getPosition(n[3]||n[2]))}this.end(e);break}l.push(e)}else l.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(i.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(i,"params",l),s&&(e=l[l.length-1],i.source.end=this.getPosition(e[3]||e[2]),this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),a&&(i.nodes=[],this.current=i)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}raw(e,t,n,r){let i,s,o,a,l=n.length,u="",d=!0;for(let e=0;ee+t[1]),"");e.raws[t]={value:u,raw:r}}e[t]=u}spacesAndCommentsFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)n=e.pop()[1]+n;return n}spacesAndCommentsFromStart(e){let t,n="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)n+=e.shift()[1];return n}spacesFromEnd(e){let t,n="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)n=e.pop()[1]+n;return n}stringFrom(e,t){let n="";for(let r=t;r=0&&(n=e[i],"space"===n[0]||(r+=1,2!==r));i--);throw this.input.error("Missed semicolon","word"===n[0]?n[3]+1:n[2])}}},5908:(e,t,n)=>{"use strict";let r=n(25698),i=n(46022),s=n(55125),o=n(69922),a=n(5805),l=n(96073),c=n(28967),u=n(61834),d=n(24531),h=n(12018),p=n(74120),f=n(35681),g=n(37609),m=n(31376),b=n(5955),_=n(59020),y=n(32023),v=n(46591);function w(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new a(e)}w.plugin=function(e,t){let n,r=!1;function i(...n){console&&console.warn&&!r&&(r=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),{}.LANG&&{}.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let i=t(...n);return i.postcssPlugin=e,i.postcssVersion=(new a).version,i}return Object.defineProperty(i,"postcss",{get:()=>(n||(n=i()),n)}),i.process=function(e,t,n){return w([i(n)]).process(e,t)},i},w.stringify=l,w.parse=m,w.fromJSON=c,w.list=b,w.comment=e=>new h(e),w.atRule=e=>new p(e),w.decl=e=>new i(e),w.rule=e=>new _(e),w.root=e=>new y(e),w.document=e=>new u(e),w.CssSyntaxError=r,w.Declaration=i,w.Container=o,w.Processor=a,w.Document=u,w.Comment=h,w.Warning=d,w.AtRule=p,w.Result=f,w.Input=g,w.Rule=_,w.Root=y,w.Node=v,s.registerPostcss(w),e.exports=w,w.default=w},77681:(e,t,n)=>{"use strict";let{SourceMapConsumer:r,SourceMapGenerator:i}=n(61305),{existsSync:s,readFileSync:o}=n(39550),{dirname:a,join:l}=n(14029);class c{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let n=t.map?t.map.prev:void 0,r=this.loadMap(t.from,n);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=a(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new r(this.text)),this.consumerCache}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}startWith(e,t){return!!e&&e.substr(0,t.length)===t}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let n=e.lastIndexOf(t.pop()),r=e.indexOf("*/",n);n>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(n,r)))}decodeInline(e){if(/^data:application\/json;charset=utf-?8,/.test(e)||/^data:application\/json,/.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var t;let n=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+n)}loadFile(e){if(this.root=a(e),s(e))return this.mapFile=e,o(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof r)return i.fromSourceMap(t).toString();if(t instanceof i)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let n=t(e);if(n){let e=this.loadFile(n);if(!e)throw new Error("Unable to load previous source map: "+n.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=l(a(e),t)),this.loadFile(t)}}}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}}e.exports=c,c.default=c},5805:(e,t,n)=>{"use strict";let r=n(53579),i=n(55125),s=n(61834),o=n(32023);class a{constructor(e=[]){this.version="8.4.19",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new r(this,e,t):new i(this,e,t)}normalize(e){let t=[];for(let n of e)if(!0===n.postcss?n=n():n.postcss&&(n=n.postcss),"object"==typeof n&&Array.isArray(n.plugins))t=t.concat(n.plugins);else if("object"==typeof n&&n.postcssPlugin)t.push(n);else if("function"==typeof n)t.push(n);else if("object"!=typeof n||!n.parse&&!n.stringify)throw new Error(n+" is not a PostCSS plugin");return t}}e.exports=a,a.default=a,o.registerProcessor(a),s.registerProcessor(a)},35681:(e,t,n)=>{"use strict";let r=n(24531);class i{constructor(e,t,n){this.processor=e,this.messages=[],this.root=t,this.opts=n,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let n=new r(e,t);return this.messages.push(n),n}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}}e.exports=i,i.default=i},32023:(e,t,n)=>{"use strict";let r,i,s=n(69922);class o extends s{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let n=this.index(e);return!t&&0===n&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[n].raws.before),super.removeChild(e)}normalize(e,t,n){let r=super.normalize(e);if(t)if("prepend"===n)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of r)e.raws.before=t.raws.before;return r}toResult(e={}){return new r(new i,this,e).stringify()}}o.registerLazyResult=e=>{r=e},o.registerProcessor=e=>{i=e},e.exports=o,o.default=o,s.registerRoot(o)},59020:(e,t,n)=>{"use strict";let r=n(69922),i=n(5955);class s extends r{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return i.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,n=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(n)}}e.exports=s,s.default=s,r.registerRule(s)},94823:e=>{"use strict";const t={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};class n{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),n=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+n+"*/",e)}decl(e,t){let n=this.raw(e,"between","colon"),r=e.prop+n+this.rawValue(e,"value");e.important&&(r+=e.raws.important||" !important"),t&&(r+=";"),this.builder(r,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let n="@"+e.name,r=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?n+=e.raws.afterName:r&&(n+=" "),e.nodes)this.block(e,n+r);else{let i=(e.raws.between||"")+(t?";":"");this.builder(n+r+i,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let n=this.raw(e,"semicolon");for(let r=0;r{if(i=e.raws[n],void 0!==i)return!1}))}var a;return void 0===i&&(i=t[r]),o.rawCache[r]=i,i}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((n=>{let r=n.parent;if(r&&r!==e&&r.parent&&r.parent===e&&void 0!==n.raws.before){let e=n.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawBeforeComment(e,t){let n;return e.walkComments((e=>{if(void 0!==e.raws.before)return n=e.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),void 0===n?n=this.raw(t,null,"beforeDecl"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeDecl(e,t){let n;return e.walkDecls((e=>{if(void 0!==e.raws.before)return n=e.raws.before,n.includes("\n")&&(n=n.replace(/[^\n]+$/,"")),!1})),void 0===n?n=this.raw(t,null,"beforeRule"):n&&(n=n.replace(/\S/g,"")),n}rawBeforeRule(e){let t;return e.walk((n=>{if(n.nodes&&(n.parent!==e||e.first!==n)&&void 0!==n.raws.before)return t=n.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}beforeAfter(e,t){let n;n="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let r=e.parent,i=0;for(;r&&"root"!==r.type;)i+=1,r=r.parent;if(n.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e{"use strict";let r=n(94823);function i(e,t){new r(t).stringify(e)}e.exports=i,i.default=i},6289:e=>{"use strict";e.exports.isClean=Symbol("isClean"),e.exports.my=Symbol("my")},13583:e=>{"use strict";const t="'".charCodeAt(0),n='"'.charCodeAt(0),r="\\".charCodeAt(0),i="/".charCodeAt(0),s="\n".charCodeAt(0),o=" ".charCodeAt(0),a="\f".charCodeAt(0),l="\t".charCodeAt(0),c="\r".charCodeAt(0),u="[".charCodeAt(0),d="]".charCodeAt(0),h="(".charCodeAt(0),p=")".charCodeAt(0),f="{".charCodeAt(0),g="}".charCodeAt(0),m=";".charCodeAt(0),b="*".charCodeAt(0),_=":".charCodeAt(0),y="@".charCodeAt(0),v=/[\t\n\f\r "#'()/;[\\\]{}]/g,w=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,C=/.[\n"'(/\\]/,x=/[\da-f]/i;e.exports=function(e,S={}){let T,E,k,O,A,P,D,R,I,N,L=e.css.valueOf(),B=S.ignoreErrors,M=L.length,j=0,q=[],$=[];function F(t){throw e.error("Unclosed "+t,j)}return{back:function(e){$.push(e)},nextToken:function(e){if($.length)return $.pop();if(j>=M)return;let S=!!e&&e.ignoreUnclosed;switch(T=L.charCodeAt(j),T){case s:case o:case l:case c:case a:E=j;do{E+=1,T=L.charCodeAt(E)}while(T===o||T===s||T===l||T===c||T===a);N=["space",L.slice(j,E)],j=E-1;break;case u:case d:case f:case g:case _:case m:case p:{let e=String.fromCharCode(T);N=[e,e,j];break}case h:if(R=q.length?q.pop()[1]:"",I=L.charCodeAt(j+1),"url"===R&&I!==t&&I!==n&&I!==o&&I!==s&&I!==l&&I!==a&&I!==c){E=j;do{if(P=!1,E=L.indexOf(")",E+1),-1===E){if(B||S){E=j;break}F("bracket")}for(D=E;L.charCodeAt(D-1)===r;)D-=1,P=!P}while(P);N=["brackets",L.slice(j,E+1),j,E],j=E}else E=L.indexOf(")",j+1),O=L.slice(j,E+1),-1===E||C.test(O)?N=["(","(",j]:(N=["brackets",O,j,E],j=E);break;case t:case n:k=T===t?"'":'"',E=j;do{if(P=!1,E=L.indexOf(k,E+1),-1===E){if(B||S){E=j+1;break}F("string")}for(D=E;L.charCodeAt(D-1)===r;)D-=1,P=!P}while(P);N=["string",L.slice(j,E+1),j,E],j=E;break;case y:v.lastIndex=j+1,v.test(L),E=0===v.lastIndex?L.length-1:v.lastIndex-2,N=["at-word",L.slice(j,E+1),j,E],j=E;break;case r:for(E=j,A=!0;L.charCodeAt(E+1)===r;)E+=1,A=!A;if(T=L.charCodeAt(E+1),A&&T!==i&&T!==o&&T!==s&&T!==l&&T!==c&&T!==a&&(E+=1,x.test(L.charAt(E)))){for(;x.test(L.charAt(E+1));)E+=1;L.charCodeAt(E+1)===o&&(E+=1)}N=["word",L.slice(j,E+1),j,E],j=E;break;default:T===i&&L.charCodeAt(j+1)===b?(E=L.indexOf("*/",j+2)+1,0===E&&(B||S?E=L.length:F("comment")),N=["comment",L.slice(j,E+1),j,E],j=E):(w.lastIndex=j+1,w.test(L),E=0===w.lastIndex?L.length-1:w.lastIndex-2,N=["word",L.slice(j,E+1),j,E],q.push(N),j=E)}return j++,N},endOfFile:function(){return 0===$.length&&j>=M},position:function(){return j}}}},27374:e=>{"use strict";let t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}},24531:e=>{"use strict";class t{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}e.exports=t,t.default=t},15354:(e,t,n)=>{const r=n(55675),i=n(10486),{isPlainObject:s}=n(61860),o=n(75303),a=n(68307),{parse:l}=n(5908),c=["img","audio","video","picture","svg","object","map","iframe","embed"],u=["script","style"];function d(e,t){e&&Object.keys(e).forEach((function(n){t(e[n],n)}))}function h(e,t){return{}.hasOwnProperty.call(e,t)}function p(e,t){const n=[];return d(e,(function(e){t(e)&&n.push(e)})),n}e.exports=g;const f=/^[^\0\t\n\f\r /<=>]+$/;function g(e,t,n){if(null==e)return"";let b="",_="";function y(e,t){const n=this;this.tag=e,this.attribs=t||{},this.tagPosition=b.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){A.length&&(A[A.length-1].text+=n.text)},this.updateParentNodeMediaChildren=function(){A.length&&c.includes(this.tag)&&A[A.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},g.defaults,t)).parser=Object.assign({},m,t.parser),u.forEach((function(e){!1!==t.allowedTags&&(t.allowedTags||[]).indexOf(e)>-1&&!t.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const v=t.nonTextTags||["script","style","textarea","option"];let w,C;t.allowedAttributes&&(w={},C={},d(t.allowedAttributes,(function(e,t){w[t]=[];const n=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?n.push(i(e).replace(/\\\*/g,".*")):w[t].push(e)})),n.length&&(C[t]=new RegExp("^("+n.join("|")+")$"))})));const x={},S={},T={};d(t.allowedClasses,(function(e,t){w&&(h(w,t)||(w[t]=[]),w[t].push("class")),x[t]=[],T[t]=[];const n=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?n.push(i(e).replace(/\\\*/g,".*")):e instanceof RegExp?T[t].push(e):x[t].push(e)})),n.length&&(S[t]=new RegExp("^("+n.join("|")+")$"))}));const E={};let k,O,A,P,D,R,I;d(t.transformTags,(function(e,t){let n;"function"==typeof e?n=e:"string"==typeof e&&(n=g.simpleTransform(e)),"*"===t?k=n:E[t]=n}));let N=!1;B();const L=new r.Parser({onopentag:function(e,n){if(t.enforceHtmlBoundary&&"html"===e&&B(),R)return void I++;const r=new y(e,n);A.push(r);let i=!1;const c=!!r.text;let u;if(h(E,e)&&(u=E[e](e,n),r.attribs=n=u.attribs,void 0!==u.text&&(r.innerText=u.text),e!==u.tagName&&(r.name=e=u.tagName,D[O]=u.tagName)),k&&(u=k(e,n),r.attribs=n=u.attribs,e!==u.tagName&&(r.name=e=u.tagName,D[O]=u.tagName)),(!1!==t.allowedTags&&-1===(t.allowedTags||[]).indexOf(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(const t in e)if(h(e,t))return!1;return!0}(P)||null!=t.nestingLimit&&O>=t.nestingLimit)&&(i=!0,P[O]=!0,"discard"===t.disallowedTagsMode&&-1!==v.indexOf(e)&&(R=!0,I=1),P[O]=!0),O++,i){if("discard"===t.disallowedTagsMode)return;_=b,b=""}b+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(r.innerText=""),(!w||h(w,e)||w["*"])&&d(n,(function(n,i){if(!f.test(i))return void delete r.attribs[i];let c=!1;if(!w||h(w,e)&&-1!==w[e].indexOf(i)||w["*"]&&-1!==w["*"].indexOf(i)||h(C,e)&&C[e].test(i)||C["*"]&&C["*"].test(i))c=!0;else if(w&&w[e])for(const t of w[e])if(s(t)&&t.name&&t.name===i){c=!0;let e="";if(!0===t.multiple){const r=n.split(" ");for(const n of r)-1!==t.values.indexOf(n)&&(""===e?e=n:e+=" "+n)}else t.values.indexOf(n)>=0&&(e=n);n=e}if(c){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(i)&&j(e,n))return void delete r.attribs[i];if("script"===e&&"src"===i){let e=!0;try{const r=q(n);if(t.allowedScriptHostnames||t.allowedScriptDomains){const n=(t.allowedScriptHostnames||[]).find((function(e){return e===r.url.hostname})),i=(t.allowedScriptDomains||[]).find((function(e){return r.url.hostname===e||r.url.hostname.endsWith(`.${e}`)}));e=n||i}}catch(t){e=!1}if(!e)return void delete r.attribs[i]}if("iframe"===e&&"src"===i){let e=!0;try{const r=q(n);if(r.isRelativeUrl)e=h(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const n=(t.allowedIframeHostnames||[]).find((function(e){return e===r.url.hostname})),i=(t.allowedIframeDomains||[]).find((function(e){return r.url.hostname===e||r.url.hostname.endsWith(`.${e}`)}));e=n||i}}catch(t){e=!1}if(!e)return void delete r.attribs[i]}if("srcset"===i)try{let e=a(n);if(e.forEach((function(e){j("srcset",e.url)&&(e.evil=!0)})),e=p(e,(function(e){return!e.evil})),!e.length)return void delete r.attribs[i];n=p(e,(function(e){return!e.evil})).map((function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")})).join(", "),r.attribs[i]=n}catch(e){return void delete r.attribs[i]}if("class"===i){const t=x[e],s=x["*"],a=S[e],l=T[e],c=[a,S["*"]].concat(l).filter((function(e){return e}));if(!(u=n,d=t&&s?o(t,s):t||s,g=c,n=d?(u=u.split(/\s+/)).filter((function(e){return-1!==d.indexOf(e)||g.some((function(t){return t.test(e)}))})).join(" "):u).length)return void delete r.attribs[i]}if("style"===i)try{if(n=function(e){return e.nodes[0].nodes.reduce((function(e,t){return e.push(`${t.prop}:${t.value}${t.important?" !important":""}`),e}),[]).join(";")}(function(e,t){if(!t)return e;const n=e.nodes[0];let r;return r=t[n.selector]&&t["*"]?o(t[n.selector],t["*"]):t[n.selector]||t["*"],r&&(e.nodes[0].nodes=n.nodes.reduce(function(e){return function(t,n){return h(e,n.prop)&&e[n.prop].some((function(e){return e.test(n.value)}))&&t.push(n),t}}(r),[])),e}(l(e+" {"+n+"}"),t.allowedStyles)),0===n.length)return void delete r.attribs[i]}catch(e){return void delete r.attribs[i]}b+=" "+i,n&&n.length&&(b+='="'+M(n,!0)+'"')}else delete r.attribs[i];var u,d,g})),-1!==t.selfClosing.indexOf(e)?b+=" />":(b+=">",!r.innerText||c||t.textFilter||(b+=M(r.innerText),N=!0)),i&&(b=_+M(b),_="")},ontext:function(e){if(R)return;const n=A[A.length-1];let r;if(n&&(r=n.tag,e=void 0!==n.innerText?n.innerText:e),"discard"!==t.disallowedTagsMode||"script"!==r&&"style"!==r){const n=M(e,!1);t.textFilter&&!N?b+=t.textFilter(n,r):N||(b+=n)}else b+=e;A.length&&(A[A.length-1].text+=e)},onclosetag:function(e){if(R){if(I--,I)return;R=!1}const n=A.pop();if(!n)return;if(n.tag!==e)return void A.push(n);R=!!t.enforceHtmlBoundary&&"html"===e,O--;const r=P[O];if(r){if(delete P[O],"discard"===t.disallowedTagsMode)return void n.updateParentNodeText();_=b,b=""}D[O]&&(e=D[O],delete D[O]),t.exclusiveFilter&&t.exclusiveFilter(n)?b=b.substr(0,n.tagPosition):(n.updateParentNodeMediaChildren(),n.updateParentNodeText(),-1===t.selfClosing.indexOf(e)?(b+="",r&&(b=_+M(b),_=""),N=!1):r&&(b=_,_=""))}},t.parser);return L.write(e),L.end(),b;function B(){b="",O=0,A=[],P={},D={},R=!1,I=0}function M(e,n){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,""")),e}function j(e,n){for(n=n.replace(/[\x00-\x20]+/g,"");;){const e=n.indexOf("\x3c!--");if(-1===e)break;const t=n.indexOf("--\x3e",e+4);if(-1===t)break;n=n.substring(0,e)+n.substring(t+3)}const r=n.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!r)return!!n.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const i=r[1].toLowerCase();return h(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(i):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(i)}function q(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");let t="relative://relative-site";for(let e=0;e<100;e++)t+=`/${e}`;const n=new URL(e,t);return{isRelativeUrl:n&&"relative-site"===n.hostname&&"relative:"===n.protocol,url:n}}}const m={decodeEntities:!0};g.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1},g.simpleTransform=function(e,t,n){return n=void 0===n||n,t=t||{},function(r,i){let s;if(n)for(s in t)i[s]=t[s];else i=t;return{tagName:e,attribs:i}}}},10486:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},61860:(e,t)=>{"use strict";function n(e){return"[object Object]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=function(e){var t,r;return!1!==n(e)&&(void 0===(t=e.constructor)||!1!==n(r=t.prototype)&&!1!==r.hasOwnProperty("isPrototypeOf"))}},88773:e=>{e.exports={nanoid:(e=21)=>{let t="",n=e;for(;n--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(n=t)=>{let r="",i=n;for(;i--;)r+=e[Math.random()*e.length|0];return r}}}}]); +//# sourceMappingURL=6623.ae3b3cc.js.map \ No newline at end of file diff --git a/_static/build/6623.ae3b3cc.js.LICENSE.txt b/_static/build/6623.ae3b3cc.js.LICENSE.txt new file mode 100644 index 0000000..fe4c1fe --- /dev/null +++ b/_static/build/6623.ae3b3cc.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ diff --git a/_static/build/6623.ae3b3cc.js.map b/_static/build/6623.ae3b3cc.js.map new file mode 100644 index 0000000..4893968 --- /dev/null +++ b/_static/build/6623.ae3b3cc.js.map @@ -0,0 +1 @@ +{"version":3,"file":"6623.ae3b3cc.js","mappings":"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C,QAAO,GAAQ,IAAI,GAAQ,GAAG,MAC9B,iBAAgB,GAAQ,IAAI,GAAQ,GAAG,eACvC,eAAc,GAAQ,IAAI,GAAQ,GAAG,aACrC,eAAc,GAAQ,IAAI,GAAQ,GAAG,aACrC,uBAAsB,GAAQ,IAAI,GAAQ,GAAG,qBAC7C,iBAAgB,GAAQ,IAAI,GAAQ,GAAG,eACvC,gBAAe,GAAQ,IAAI,GAAQ,GAAG,cACtC,UAAS,GAAQ,IAAI,GAAQ,GAAG,QAChC,gBAAe,GAAQ,IAAI,GAAQ,GAAG,cACtC,eAAc,GAAQ,IAAI,GAAQ,GAAG,aACrC,QAAO,GAAQ,IAAI,GAAQ,GAAG,MAC9B,UAAS,GAAQ,IAAI,GAAQ,GAAG,QAChC,2BAA0B,GAAQ,IACvC,GAAQ,GAAG,yBAEN,aAAY,GAAQ,IAAI,GAAQ,GAAG,WAMtC,MAAO,GAAb,cAcU,cAA8B,CAEpC,YAAa,CACX,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,aACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,UACA,OACA,WACA,KACA,MACA,UACA,MACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,KACA,IAGA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,MACA,OACA,OACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,MACA,WACA,IACA,UACA,IACA,OACA,UACA,SACA,QACA,SACA,OACA,SACA,SACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,OAIF,kBAAmB,CACjB,IAAK,CACH,QACA,MACA,YACA,SACA,KACA,QACA,WACA,UACA,YACA,OACA,aACA,QACA,QACA,aAGF,EAAG,CACD,YACA,SACA,OACA,WACA,OACA,MACA,QACA,WACA,SACA,QAEF,KAAM,CACJ,YACA,MACA,SACA,OACA,SACA,QACA,YAGF,MAAO,CACL,WA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","sources":["webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/decode.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/entities.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/legacy.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/maps/xml.json","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/clipboard.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/collapse.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/commandlinker.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/commandpalette.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/styling.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/vdom.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/dialog.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/widgettracker.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/domutils.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/hoverbox.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/iframe.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/inputdialog.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/printing.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/spinner.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/sessioncontext.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/kernelstatuses.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/toolbar/widget.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/mainareawidget.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/menufactory.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/sanitizer.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/search.tsx","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/splash.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/thememanager.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/tokens.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/toolbar/factory.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../../src/toolbar/registry.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../src/windowresolver.ts","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/deepmerge/dist/cjs.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/dom-serializer/lib/foreignNames.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/dom-serializer/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domelementtype/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domhandler/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domhandler/lib/node.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/feeds.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/helpers.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/legacy.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/manipulation.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/querying.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/stringify.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/traversal.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/decode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/decode_codepoint.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/encode.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/FeedHandler.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/Parser.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/Tokenizer.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/parse-srcset/src/parse-srcset.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/picocolors/picocolors.browser.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/at-rule.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/comment.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/container.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/css-syntax-error.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/declaration.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/document.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/fromJSON.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/input.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/lazy-result.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/list.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/map-generator.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/no-work-result.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/node.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/parse.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/parser.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/postcss.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/previous-map.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/processor.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/result.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/root.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/rule.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/stringifier.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/stringify.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/symbols.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/tokenize.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/warn-once.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/warning.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/node_modules/is-plain-object/dist/is-plain-object.js","webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["module.exports = {\"0\":65533,\"128\":8364,\"130\":8218,\"131\":402,\"132\":8222,\"133\":8230,\"134\":8224,\"135\":8225,\"136\":710,\"137\":8240,\"138\":352,\"139\":8249,\"140\":338,\"142\":381,\"145\":8216,\"146\":8217,\"147\":8220,\"148\":8221,\"149\":8226,\"150\":8211,\"151\":8212,\"152\":732,\"153\":8482,\"154\":353,\"155\":8250,\"156\":339,\"158\":382,\"159\":376}","module.exports = {\"Aacute\":\"Á\",\"aacute\":\"á\",\"Abreve\":\"Ă\",\"abreve\":\"ă\",\"ac\":\"∾\",\"acd\":\"∿\",\"acE\":\"∾̳\",\"Acirc\":\"Â\",\"acirc\":\"â\",\"acute\":\"´\",\"Acy\":\"А\",\"acy\":\"а\",\"AElig\":\"Æ\",\"aelig\":\"æ\",\"af\":\"⁡\",\"Afr\":\"𝔄\",\"afr\":\"𝔞\",\"Agrave\":\"À\",\"agrave\":\"à\",\"alefsym\":\"ℵ\",\"aleph\":\"ℵ\",\"Alpha\":\"Α\",\"alpha\":\"α\",\"Amacr\":\"Ā\",\"amacr\":\"ā\",\"amalg\":\"⨿\",\"amp\":\"&\",\"AMP\":\"&\",\"andand\":\"⩕\",\"And\":\"⩓\",\"and\":\"∧\",\"andd\":\"⩜\",\"andslope\":\"⩘\",\"andv\":\"⩚\",\"ang\":\"∠\",\"ange\":\"⦤\",\"angle\":\"∠\",\"angmsdaa\":\"⦨\",\"angmsdab\":\"⦩\",\"angmsdac\":\"⦪\",\"angmsdad\":\"⦫\",\"angmsdae\":\"⦬\",\"angmsdaf\":\"⦭\",\"angmsdag\":\"⦮\",\"angmsdah\":\"⦯\",\"angmsd\":\"∡\",\"angrt\":\"∟\",\"angrtvb\":\"⊾\",\"angrtvbd\":\"⦝\",\"angsph\":\"∢\",\"angst\":\"Å\",\"angzarr\":\"⍼\",\"Aogon\":\"Ą\",\"aogon\":\"ą\",\"Aopf\":\"𝔸\",\"aopf\":\"𝕒\",\"apacir\":\"⩯\",\"ap\":\"≈\",\"apE\":\"⩰\",\"ape\":\"≊\",\"apid\":\"≋\",\"apos\":\"'\",\"ApplyFunction\":\"⁡\",\"approx\":\"≈\",\"approxeq\":\"≊\",\"Aring\":\"Å\",\"aring\":\"å\",\"Ascr\":\"𝒜\",\"ascr\":\"𝒶\",\"Assign\":\"≔\",\"ast\":\"*\",\"asymp\":\"≈\",\"asympeq\":\"≍\",\"Atilde\":\"Ã\",\"atilde\":\"ã\",\"Auml\":\"Ä\",\"auml\":\"ä\",\"awconint\":\"∳\",\"awint\":\"⨑\",\"backcong\":\"≌\",\"backepsilon\":\"϶\",\"backprime\":\"‵\",\"backsim\":\"∽\",\"backsimeq\":\"⋍\",\"Backslash\":\"∖\",\"Barv\":\"⫧\",\"barvee\":\"⊽\",\"barwed\":\"⌅\",\"Barwed\":\"⌆\",\"barwedge\":\"⌅\",\"bbrk\":\"⎵\",\"bbrktbrk\":\"⎶\",\"bcong\":\"≌\",\"Bcy\":\"Б\",\"bcy\":\"б\",\"bdquo\":\"„\",\"becaus\":\"∵\",\"because\":\"∵\",\"Because\":\"∵\",\"bemptyv\":\"⦰\",\"bepsi\":\"϶\",\"bernou\":\"ℬ\",\"Bernoullis\":\"ℬ\",\"Beta\":\"Β\",\"beta\":\"β\",\"beth\":\"ℶ\",\"between\":\"≬\",\"Bfr\":\"𝔅\",\"bfr\":\"𝔟\",\"bigcap\":\"⋂\",\"bigcirc\":\"◯\",\"bigcup\":\"⋃\",\"bigodot\":\"⨀\",\"bigoplus\":\"⨁\",\"bigotimes\":\"⨂\",\"bigsqcup\":\"⨆\",\"bigstar\":\"★\",\"bigtriangledown\":\"▽\",\"bigtriangleup\":\"△\",\"biguplus\":\"⨄\",\"bigvee\":\"⋁\",\"bigwedge\":\"⋀\",\"bkarow\":\"⤍\",\"blacklozenge\":\"⧫\",\"blacksquare\":\"▪\",\"blacktriangle\":\"▴\",\"blacktriangledown\":\"▾\",\"blacktriangleleft\":\"◂\",\"blacktriangleright\":\"▸\",\"blank\":\"␣\",\"blk12\":\"▒\",\"blk14\":\"░\",\"blk34\":\"▓\",\"block\":\"█\",\"bne\":\"=⃥\",\"bnequiv\":\"≡⃥\",\"bNot\":\"⫭\",\"bnot\":\"⌐\",\"Bopf\":\"𝔹\",\"bopf\":\"𝕓\",\"bot\":\"⊥\",\"bottom\":\"⊥\",\"bowtie\":\"⋈\",\"boxbox\":\"⧉\",\"boxdl\":\"┐\",\"boxdL\":\"╕\",\"boxDl\":\"╖\",\"boxDL\":\"╗\",\"boxdr\":\"┌\",\"boxdR\":\"╒\",\"boxDr\":\"╓\",\"boxDR\":\"╔\",\"boxh\":\"─\",\"boxH\":\"═\",\"boxhd\":\"┬\",\"boxHd\":\"╤\",\"boxhD\":\"╥\",\"boxHD\":\"╦\",\"boxhu\":\"┴\",\"boxHu\":\"╧\",\"boxhU\":\"╨\",\"boxHU\":\"╩\",\"boxminus\":\"⊟\",\"boxplus\":\"⊞\",\"boxtimes\":\"⊠\",\"boxul\":\"┘\",\"boxuL\":\"╛\",\"boxUl\":\"╜\",\"boxUL\":\"╝\",\"boxur\":\"└\",\"boxuR\":\"╘\",\"boxUr\":\"╙\",\"boxUR\":\"╚\",\"boxv\":\"│\",\"boxV\":\"║\",\"boxvh\":\"┼\",\"boxvH\":\"╪\",\"boxVh\":\"╫\",\"boxVH\":\"╬\",\"boxvl\":\"┤\",\"boxvL\":\"╡\",\"boxVl\":\"╢\",\"boxVL\":\"╣\",\"boxvr\":\"├\",\"boxvR\":\"╞\",\"boxVr\":\"╟\",\"boxVR\":\"╠\",\"bprime\":\"‵\",\"breve\":\"˘\",\"Breve\":\"˘\",\"brvbar\":\"¦\",\"bscr\":\"𝒷\",\"Bscr\":\"ℬ\",\"bsemi\":\"⁏\",\"bsim\":\"∽\",\"bsime\":\"⋍\",\"bsolb\":\"⧅\",\"bsol\":\"\\\\\",\"bsolhsub\":\"⟈\",\"bull\":\"•\",\"bullet\":\"•\",\"bump\":\"≎\",\"bumpE\":\"⪮\",\"bumpe\":\"≏\",\"Bumpeq\":\"≎\",\"bumpeq\":\"≏\",\"Cacute\":\"Ć\",\"cacute\":\"ć\",\"capand\":\"⩄\",\"capbrcup\":\"⩉\",\"capcap\":\"⩋\",\"cap\":\"∩\",\"Cap\":\"⋒\",\"capcup\":\"⩇\",\"capdot\":\"⩀\",\"CapitalDifferentialD\":\"ⅅ\",\"caps\":\"∩︀\",\"caret\":\"⁁\",\"caron\":\"ˇ\",\"Cayleys\":\"ℭ\",\"ccaps\":\"⩍\",\"Ccaron\":\"Č\",\"ccaron\":\"č\",\"Ccedil\":\"Ç\",\"ccedil\":\"ç\",\"Ccirc\":\"Ĉ\",\"ccirc\":\"ĉ\",\"Cconint\":\"∰\",\"ccups\":\"⩌\",\"ccupssm\":\"⩐\",\"Cdot\":\"Ċ\",\"cdot\":\"ċ\",\"cedil\":\"¸\",\"Cedilla\":\"¸\",\"cemptyv\":\"⦲\",\"cent\":\"¢\",\"centerdot\":\"·\",\"CenterDot\":\"·\",\"cfr\":\"𝔠\",\"Cfr\":\"ℭ\",\"CHcy\":\"Ч\",\"chcy\":\"ч\",\"check\":\"✓\",\"checkmark\":\"✓\",\"Chi\":\"Χ\",\"chi\":\"χ\",\"circ\":\"ˆ\",\"circeq\":\"≗\",\"circlearrowleft\":\"↺\",\"circlearrowright\":\"↻\",\"circledast\":\"⊛\",\"circledcirc\":\"⊚\",\"circleddash\":\"⊝\",\"CircleDot\":\"⊙\",\"circledR\":\"®\",\"circledS\":\"Ⓢ\",\"CircleMinus\":\"⊖\",\"CirclePlus\":\"⊕\",\"CircleTimes\":\"⊗\",\"cir\":\"○\",\"cirE\":\"⧃\",\"cire\":\"≗\",\"cirfnint\":\"⨐\",\"cirmid\":\"⫯\",\"cirscir\":\"⧂\",\"ClockwiseContourIntegral\":\"∲\",\"CloseCurlyDoubleQuote\":\"”\",\"CloseCurlyQuote\":\"’\",\"clubs\":\"♣\",\"clubsuit\":\"♣\",\"colon\":\":\",\"Colon\":\"∷\",\"Colone\":\"⩴\",\"colone\":\"≔\",\"coloneq\":\"≔\",\"comma\":\",\",\"commat\":\"@\",\"comp\":\"∁\",\"compfn\":\"∘\",\"complement\":\"∁\",\"complexes\":\"ℂ\",\"cong\":\"≅\",\"congdot\":\"⩭\",\"Congruent\":\"≡\",\"conint\":\"∮\",\"Conint\":\"∯\",\"ContourIntegral\":\"∮\",\"copf\":\"𝕔\",\"Copf\":\"ℂ\",\"coprod\":\"∐\",\"Coproduct\":\"∐\",\"copy\":\"©\",\"COPY\":\"©\",\"copysr\":\"℗\",\"CounterClockwiseContourIntegral\":\"∳\",\"crarr\":\"↵\",\"cross\":\"✗\",\"Cross\":\"⨯\",\"Cscr\":\"𝒞\",\"cscr\":\"𝒸\",\"csub\":\"⫏\",\"csube\":\"⫑\",\"csup\":\"⫐\",\"csupe\":\"⫒\",\"ctdot\":\"⋯\",\"cudarrl\":\"⤸\",\"cudarrr\":\"⤵\",\"cuepr\":\"⋞\",\"cuesc\":\"⋟\",\"cularr\":\"↶\",\"cularrp\":\"⤽\",\"cupbrcap\":\"⩈\",\"cupcap\":\"⩆\",\"CupCap\":\"≍\",\"cup\":\"∪\",\"Cup\":\"⋓\",\"cupcup\":\"⩊\",\"cupdot\":\"⊍\",\"cupor\":\"⩅\",\"cups\":\"∪︀\",\"curarr\":\"↷\",\"curarrm\":\"⤼\",\"curlyeqprec\":\"⋞\",\"curlyeqsucc\":\"⋟\",\"curlyvee\":\"⋎\",\"curlywedge\":\"⋏\",\"curren\":\"¤\",\"curvearrowleft\":\"↶\",\"curvearrowright\":\"↷\",\"cuvee\":\"⋎\",\"cuwed\":\"⋏\",\"cwconint\":\"∲\",\"cwint\":\"∱\",\"cylcty\":\"⌭\",\"dagger\":\"†\",\"Dagger\":\"‡\",\"daleth\":\"ℸ\",\"darr\":\"↓\",\"Darr\":\"↡\",\"dArr\":\"⇓\",\"dash\":\"‐\",\"Dashv\":\"⫤\",\"dashv\":\"⊣\",\"dbkarow\":\"⤏\",\"dblac\":\"˝\",\"Dcaron\":\"Ď\",\"dcaron\":\"ď\",\"Dcy\":\"Д\",\"dcy\":\"д\",\"ddagger\":\"‡\",\"ddarr\":\"⇊\",\"DD\":\"ⅅ\",\"dd\":\"ⅆ\",\"DDotrahd\":\"⤑\",\"ddotseq\":\"⩷\",\"deg\":\"°\",\"Del\":\"∇\",\"Delta\":\"Δ\",\"delta\":\"δ\",\"demptyv\":\"⦱\",\"dfisht\":\"⥿\",\"Dfr\":\"𝔇\",\"dfr\":\"𝔡\",\"dHar\":\"⥥\",\"dharl\":\"⇃\",\"dharr\":\"⇂\",\"DiacriticalAcute\":\"´\",\"DiacriticalDot\":\"˙\",\"DiacriticalDoubleAcute\":\"˝\",\"DiacriticalGrave\":\"`\",\"DiacriticalTilde\":\"˜\",\"diam\":\"⋄\",\"diamond\":\"⋄\",\"Diamond\":\"⋄\",\"diamondsuit\":\"♦\",\"diams\":\"♦\",\"die\":\"¨\",\"DifferentialD\":\"ⅆ\",\"digamma\":\"ϝ\",\"disin\":\"⋲\",\"div\":\"÷\",\"divide\":\"÷\",\"divideontimes\":\"⋇\",\"divonx\":\"⋇\",\"DJcy\":\"Ђ\",\"djcy\":\"ђ\",\"dlcorn\":\"⌞\",\"dlcrop\":\"⌍\",\"dollar\":\"$\",\"Dopf\":\"𝔻\",\"dopf\":\"𝕕\",\"Dot\":\"¨\",\"dot\":\"˙\",\"DotDot\":\"⃜\",\"doteq\":\"≐\",\"doteqdot\":\"≑\",\"DotEqual\":\"≐\",\"dotminus\":\"∸\",\"dotplus\":\"∔\",\"dotsquare\":\"⊡\",\"doublebarwedge\":\"⌆\",\"DoubleContourIntegral\":\"∯\",\"DoubleDot\":\"¨\",\"DoubleDownArrow\":\"⇓\",\"DoubleLeftArrow\":\"⇐\",\"DoubleLeftRightArrow\":\"⇔\",\"DoubleLeftTee\":\"⫤\",\"DoubleLongLeftArrow\":\"⟸\",\"DoubleLongLeftRightArrow\":\"⟺\",\"DoubleLongRightArrow\":\"⟹\",\"DoubleRightArrow\":\"⇒\",\"DoubleRightTee\":\"⊨\",\"DoubleUpArrow\":\"⇑\",\"DoubleUpDownArrow\":\"⇕\",\"DoubleVerticalBar\":\"∥\",\"DownArrowBar\":\"⤓\",\"downarrow\":\"↓\",\"DownArrow\":\"↓\",\"Downarrow\":\"⇓\",\"DownArrowUpArrow\":\"⇵\",\"DownBreve\":\"̑\",\"downdownarrows\":\"⇊\",\"downharpoonleft\":\"⇃\",\"downharpoonright\":\"⇂\",\"DownLeftRightVector\":\"⥐\",\"DownLeftTeeVector\":\"⥞\",\"DownLeftVectorBar\":\"⥖\",\"DownLeftVector\":\"↽\",\"DownRightTeeVector\":\"⥟\",\"DownRightVectorBar\":\"⥗\",\"DownRightVector\":\"⇁\",\"DownTeeArrow\":\"↧\",\"DownTee\":\"⊤\",\"drbkarow\":\"⤐\",\"drcorn\":\"⌟\",\"drcrop\":\"⌌\",\"Dscr\":\"𝒟\",\"dscr\":\"𝒹\",\"DScy\":\"Ѕ\",\"dscy\":\"ѕ\",\"dsol\":\"⧶\",\"Dstrok\":\"Đ\",\"dstrok\":\"đ\",\"dtdot\":\"⋱\",\"dtri\":\"▿\",\"dtrif\":\"▾\",\"duarr\":\"⇵\",\"duhar\":\"⥯\",\"dwangle\":\"⦦\",\"DZcy\":\"Џ\",\"dzcy\":\"џ\",\"dzigrarr\":\"⟿\",\"Eacute\":\"É\",\"eacute\":\"é\",\"easter\":\"⩮\",\"Ecaron\":\"Ě\",\"ecaron\":\"ě\",\"Ecirc\":\"Ê\",\"ecirc\":\"ê\",\"ecir\":\"≖\",\"ecolon\":\"≕\",\"Ecy\":\"Э\",\"ecy\":\"э\",\"eDDot\":\"⩷\",\"Edot\":\"Ė\",\"edot\":\"ė\",\"eDot\":\"≑\",\"ee\":\"ⅇ\",\"efDot\":\"≒\",\"Efr\":\"𝔈\",\"efr\":\"𝔢\",\"eg\":\"⪚\",\"Egrave\":\"È\",\"egrave\":\"è\",\"egs\":\"⪖\",\"egsdot\":\"⪘\",\"el\":\"⪙\",\"Element\":\"∈\",\"elinters\":\"⏧\",\"ell\":\"ℓ\",\"els\":\"⪕\",\"elsdot\":\"⪗\",\"Emacr\":\"Ē\",\"emacr\":\"ē\",\"empty\":\"∅\",\"emptyset\":\"∅\",\"EmptySmallSquare\":\"◻\",\"emptyv\":\"∅\",\"EmptyVerySmallSquare\":\"▫\",\"emsp13\":\" \",\"emsp14\":\" \",\"emsp\":\" \",\"ENG\":\"Ŋ\",\"eng\":\"ŋ\",\"ensp\":\" \",\"Eogon\":\"Ę\",\"eogon\":\"ę\",\"Eopf\":\"𝔼\",\"eopf\":\"𝕖\",\"epar\":\"⋕\",\"eparsl\":\"⧣\",\"eplus\":\"⩱\",\"epsi\":\"ε\",\"Epsilon\":\"Ε\",\"epsilon\":\"ε\",\"epsiv\":\"ϵ\",\"eqcirc\":\"≖\",\"eqcolon\":\"≕\",\"eqsim\":\"≂\",\"eqslantgtr\":\"⪖\",\"eqslantless\":\"⪕\",\"Equal\":\"⩵\",\"equals\":\"=\",\"EqualTilde\":\"≂\",\"equest\":\"≟\",\"Equilibrium\":\"⇌\",\"equiv\":\"≡\",\"equivDD\":\"⩸\",\"eqvparsl\":\"⧥\",\"erarr\":\"⥱\",\"erDot\":\"≓\",\"escr\":\"ℯ\",\"Escr\":\"ℰ\",\"esdot\":\"≐\",\"Esim\":\"⩳\",\"esim\":\"≂\",\"Eta\":\"Η\",\"eta\":\"η\",\"ETH\":\"Ð\",\"eth\":\"ð\",\"Euml\":\"Ë\",\"euml\":\"ë\",\"euro\":\"€\",\"excl\":\"!\",\"exist\":\"∃\",\"Exists\":\"∃\",\"expectation\":\"ℰ\",\"exponentiale\":\"ⅇ\",\"ExponentialE\":\"ⅇ\",\"fallingdotseq\":\"≒\",\"Fcy\":\"Ф\",\"fcy\":\"ф\",\"female\":\"♀\",\"ffilig\":\"ffi\",\"fflig\":\"ff\",\"ffllig\":\"ffl\",\"Ffr\":\"𝔉\",\"ffr\":\"𝔣\",\"filig\":\"fi\",\"FilledSmallSquare\":\"◼\",\"FilledVerySmallSquare\":\"▪\",\"fjlig\":\"fj\",\"flat\":\"♭\",\"fllig\":\"fl\",\"fltns\":\"▱\",\"fnof\":\"ƒ\",\"Fopf\":\"𝔽\",\"fopf\":\"𝕗\",\"forall\":\"∀\",\"ForAll\":\"∀\",\"fork\":\"⋔\",\"forkv\":\"⫙\",\"Fouriertrf\":\"ℱ\",\"fpartint\":\"⨍\",\"frac12\":\"½\",\"frac13\":\"⅓\",\"frac14\":\"¼\",\"frac15\":\"⅕\",\"frac16\":\"⅙\",\"frac18\":\"⅛\",\"frac23\":\"⅔\",\"frac25\":\"⅖\",\"frac34\":\"¾\",\"frac35\":\"⅗\",\"frac38\":\"⅜\",\"frac45\":\"⅘\",\"frac56\":\"⅚\",\"frac58\":\"⅝\",\"frac78\":\"⅞\",\"frasl\":\"⁄\",\"frown\":\"⌢\",\"fscr\":\"𝒻\",\"Fscr\":\"ℱ\",\"gacute\":\"ǵ\",\"Gamma\":\"Γ\",\"gamma\":\"γ\",\"Gammad\":\"Ϝ\",\"gammad\":\"ϝ\",\"gap\":\"⪆\",\"Gbreve\":\"Ğ\",\"gbreve\":\"ğ\",\"Gcedil\":\"Ģ\",\"Gcirc\":\"Ĝ\",\"gcirc\":\"ĝ\",\"Gcy\":\"Г\",\"gcy\":\"г\",\"Gdot\":\"Ġ\",\"gdot\":\"ġ\",\"ge\":\"≥\",\"gE\":\"≧\",\"gEl\":\"⪌\",\"gel\":\"⋛\",\"geq\":\"≥\",\"geqq\":\"≧\",\"geqslant\":\"⩾\",\"gescc\":\"⪩\",\"ges\":\"⩾\",\"gesdot\":\"⪀\",\"gesdoto\":\"⪂\",\"gesdotol\":\"⪄\",\"gesl\":\"⋛︀\",\"gesles\":\"⪔\",\"Gfr\":\"𝔊\",\"gfr\":\"𝔤\",\"gg\":\"≫\",\"Gg\":\"⋙\",\"ggg\":\"⋙\",\"gimel\":\"ℷ\",\"GJcy\":\"Ѓ\",\"gjcy\":\"ѓ\",\"gla\":\"⪥\",\"gl\":\"≷\",\"glE\":\"⪒\",\"glj\":\"⪤\",\"gnap\":\"⪊\",\"gnapprox\":\"⪊\",\"gne\":\"⪈\",\"gnE\":\"≩\",\"gneq\":\"⪈\",\"gneqq\":\"≩\",\"gnsim\":\"⋧\",\"Gopf\":\"𝔾\",\"gopf\":\"𝕘\",\"grave\":\"`\",\"GreaterEqual\":\"≥\",\"GreaterEqualLess\":\"⋛\",\"GreaterFullEqual\":\"≧\",\"GreaterGreater\":\"⪢\",\"GreaterLess\":\"≷\",\"GreaterSlantEqual\":\"⩾\",\"GreaterTilde\":\"≳\",\"Gscr\":\"𝒢\",\"gscr\":\"ℊ\",\"gsim\":\"≳\",\"gsime\":\"⪎\",\"gsiml\":\"⪐\",\"gtcc\":\"⪧\",\"gtcir\":\"⩺\",\"gt\":\">\",\"GT\":\">\",\"Gt\":\"≫\",\"gtdot\":\"⋗\",\"gtlPar\":\"⦕\",\"gtquest\":\"⩼\",\"gtrapprox\":\"⪆\",\"gtrarr\":\"⥸\",\"gtrdot\":\"⋗\",\"gtreqless\":\"⋛\",\"gtreqqless\":\"⪌\",\"gtrless\":\"≷\",\"gtrsim\":\"≳\",\"gvertneqq\":\"≩︀\",\"gvnE\":\"≩︀\",\"Hacek\":\"ˇ\",\"hairsp\":\" \",\"half\":\"½\",\"hamilt\":\"ℋ\",\"HARDcy\":\"Ъ\",\"hardcy\":\"ъ\",\"harrcir\":\"⥈\",\"harr\":\"↔\",\"hArr\":\"⇔\",\"harrw\":\"↭\",\"Hat\":\"^\",\"hbar\":\"ℏ\",\"Hcirc\":\"Ĥ\",\"hcirc\":\"ĥ\",\"hearts\":\"♥\",\"heartsuit\":\"♥\",\"hellip\":\"…\",\"hercon\":\"⊹\",\"hfr\":\"𝔥\",\"Hfr\":\"ℌ\",\"HilbertSpace\":\"ℋ\",\"hksearow\":\"⤥\",\"hkswarow\":\"⤦\",\"hoarr\":\"⇿\",\"homtht\":\"∻\",\"hookleftarrow\":\"↩\",\"hookrightarrow\":\"↪\",\"hopf\":\"𝕙\",\"Hopf\":\"ℍ\",\"horbar\":\"―\",\"HorizontalLine\":\"─\",\"hscr\":\"𝒽\",\"Hscr\":\"ℋ\",\"hslash\":\"ℏ\",\"Hstrok\":\"Ħ\",\"hstrok\":\"ħ\",\"HumpDownHump\":\"≎\",\"HumpEqual\":\"≏\",\"hybull\":\"⁃\",\"hyphen\":\"‐\",\"Iacute\":\"Í\",\"iacute\":\"í\",\"ic\":\"⁣\",\"Icirc\":\"Î\",\"icirc\":\"î\",\"Icy\":\"И\",\"icy\":\"и\",\"Idot\":\"İ\",\"IEcy\":\"Е\",\"iecy\":\"е\",\"iexcl\":\"¡\",\"iff\":\"⇔\",\"ifr\":\"𝔦\",\"Ifr\":\"ℑ\",\"Igrave\":\"Ì\",\"igrave\":\"ì\",\"ii\":\"ⅈ\",\"iiiint\":\"⨌\",\"iiint\":\"∭\",\"iinfin\":\"⧜\",\"iiota\":\"℩\",\"IJlig\":\"IJ\",\"ijlig\":\"ij\",\"Imacr\":\"Ī\",\"imacr\":\"ī\",\"image\":\"ℑ\",\"ImaginaryI\":\"ⅈ\",\"imagline\":\"ℐ\",\"imagpart\":\"ℑ\",\"imath\":\"ı\",\"Im\":\"ℑ\",\"imof\":\"⊷\",\"imped\":\"Ƶ\",\"Implies\":\"⇒\",\"incare\":\"℅\",\"in\":\"∈\",\"infin\":\"∞\",\"infintie\":\"⧝\",\"inodot\":\"ı\",\"intcal\":\"⊺\",\"int\":\"∫\",\"Int\":\"∬\",\"integers\":\"ℤ\",\"Integral\":\"∫\",\"intercal\":\"⊺\",\"Intersection\":\"⋂\",\"intlarhk\":\"⨗\",\"intprod\":\"⨼\",\"InvisibleComma\":\"⁣\",\"InvisibleTimes\":\"⁢\",\"IOcy\":\"Ё\",\"iocy\":\"ё\",\"Iogon\":\"Į\",\"iogon\":\"į\",\"Iopf\":\"𝕀\",\"iopf\":\"𝕚\",\"Iota\":\"Ι\",\"iota\":\"ι\",\"iprod\":\"⨼\",\"iquest\":\"¿\",\"iscr\":\"𝒾\",\"Iscr\":\"ℐ\",\"isin\":\"∈\",\"isindot\":\"⋵\",\"isinE\":\"⋹\",\"isins\":\"⋴\",\"isinsv\":\"⋳\",\"isinv\":\"∈\",\"it\":\"⁢\",\"Itilde\":\"Ĩ\",\"itilde\":\"ĩ\",\"Iukcy\":\"І\",\"iukcy\":\"і\",\"Iuml\":\"Ï\",\"iuml\":\"ï\",\"Jcirc\":\"Ĵ\",\"jcirc\":\"ĵ\",\"Jcy\":\"Й\",\"jcy\":\"й\",\"Jfr\":\"𝔍\",\"jfr\":\"𝔧\",\"jmath\":\"ȷ\",\"Jopf\":\"𝕁\",\"jopf\":\"𝕛\",\"Jscr\":\"𝒥\",\"jscr\":\"𝒿\",\"Jsercy\":\"Ј\",\"jsercy\":\"ј\",\"Jukcy\":\"Є\",\"jukcy\":\"є\",\"Kappa\":\"Κ\",\"kappa\":\"κ\",\"kappav\":\"ϰ\",\"Kcedil\":\"Ķ\",\"kcedil\":\"ķ\",\"Kcy\":\"К\",\"kcy\":\"к\",\"Kfr\":\"𝔎\",\"kfr\":\"𝔨\",\"kgreen\":\"ĸ\",\"KHcy\":\"Х\",\"khcy\":\"х\",\"KJcy\":\"Ќ\",\"kjcy\":\"ќ\",\"Kopf\":\"𝕂\",\"kopf\":\"𝕜\",\"Kscr\":\"𝒦\",\"kscr\":\"𝓀\",\"lAarr\":\"⇚\",\"Lacute\":\"Ĺ\",\"lacute\":\"ĺ\",\"laemptyv\":\"⦴\",\"lagran\":\"ℒ\",\"Lambda\":\"Λ\",\"lambda\":\"λ\",\"lang\":\"⟨\",\"Lang\":\"⟪\",\"langd\":\"⦑\",\"langle\":\"⟨\",\"lap\":\"⪅\",\"Laplacetrf\":\"ℒ\",\"laquo\":\"«\",\"larrb\":\"⇤\",\"larrbfs\":\"⤟\",\"larr\":\"←\",\"Larr\":\"↞\",\"lArr\":\"⇐\",\"larrfs\":\"⤝\",\"larrhk\":\"↩\",\"larrlp\":\"↫\",\"larrpl\":\"⤹\",\"larrsim\":\"⥳\",\"larrtl\":\"↢\",\"latail\":\"⤙\",\"lAtail\":\"⤛\",\"lat\":\"⪫\",\"late\":\"⪭\",\"lates\":\"⪭︀\",\"lbarr\":\"⤌\",\"lBarr\":\"⤎\",\"lbbrk\":\"❲\",\"lbrace\":\"{\",\"lbrack\":\"[\",\"lbrke\":\"⦋\",\"lbrksld\":\"⦏\",\"lbrkslu\":\"⦍\",\"Lcaron\":\"Ľ\",\"lcaron\":\"ľ\",\"Lcedil\":\"Ļ\",\"lcedil\":\"ļ\",\"lceil\":\"⌈\",\"lcub\":\"{\",\"Lcy\":\"Л\",\"lcy\":\"л\",\"ldca\":\"⤶\",\"ldquo\":\"“\",\"ldquor\":\"„\",\"ldrdhar\":\"⥧\",\"ldrushar\":\"⥋\",\"ldsh\":\"↲\",\"le\":\"≤\",\"lE\":\"≦\",\"LeftAngleBracket\":\"⟨\",\"LeftArrowBar\":\"⇤\",\"leftarrow\":\"←\",\"LeftArrow\":\"←\",\"Leftarrow\":\"⇐\",\"LeftArrowRightArrow\":\"⇆\",\"leftarrowtail\":\"↢\",\"LeftCeiling\":\"⌈\",\"LeftDoubleBracket\":\"⟦\",\"LeftDownTeeVector\":\"⥡\",\"LeftDownVectorBar\":\"⥙\",\"LeftDownVector\":\"⇃\",\"LeftFloor\":\"⌊\",\"leftharpoondown\":\"↽\",\"leftharpoonup\":\"↼\",\"leftleftarrows\":\"⇇\",\"leftrightarrow\":\"↔\",\"LeftRightArrow\":\"↔\",\"Leftrightarrow\":\"⇔\",\"leftrightarrows\":\"⇆\",\"leftrightharpoons\":\"⇋\",\"leftrightsquigarrow\":\"↭\",\"LeftRightVector\":\"⥎\",\"LeftTeeArrow\":\"↤\",\"LeftTee\":\"⊣\",\"LeftTeeVector\":\"⥚\",\"leftthreetimes\":\"⋋\",\"LeftTriangleBar\":\"⧏\",\"LeftTriangle\":\"⊲\",\"LeftTriangleEqual\":\"⊴\",\"LeftUpDownVector\":\"⥑\",\"LeftUpTeeVector\":\"⥠\",\"LeftUpVectorBar\":\"⥘\",\"LeftUpVector\":\"↿\",\"LeftVectorBar\":\"⥒\",\"LeftVector\":\"↼\",\"lEg\":\"⪋\",\"leg\":\"⋚\",\"leq\":\"≤\",\"leqq\":\"≦\",\"leqslant\":\"⩽\",\"lescc\":\"⪨\",\"les\":\"⩽\",\"lesdot\":\"⩿\",\"lesdoto\":\"⪁\",\"lesdotor\":\"⪃\",\"lesg\":\"⋚︀\",\"lesges\":\"⪓\",\"lessapprox\":\"⪅\",\"lessdot\":\"⋖\",\"lesseqgtr\":\"⋚\",\"lesseqqgtr\":\"⪋\",\"LessEqualGreater\":\"⋚\",\"LessFullEqual\":\"≦\",\"LessGreater\":\"≶\",\"lessgtr\":\"≶\",\"LessLess\":\"⪡\",\"lesssim\":\"≲\",\"LessSlantEqual\":\"⩽\",\"LessTilde\":\"≲\",\"lfisht\":\"⥼\",\"lfloor\":\"⌊\",\"Lfr\":\"𝔏\",\"lfr\":\"𝔩\",\"lg\":\"≶\",\"lgE\":\"⪑\",\"lHar\":\"⥢\",\"lhard\":\"↽\",\"lharu\":\"↼\",\"lharul\":\"⥪\",\"lhblk\":\"▄\",\"LJcy\":\"Љ\",\"ljcy\":\"љ\",\"llarr\":\"⇇\",\"ll\":\"≪\",\"Ll\":\"⋘\",\"llcorner\":\"⌞\",\"Lleftarrow\":\"⇚\",\"llhard\":\"⥫\",\"lltri\":\"◺\",\"Lmidot\":\"Ŀ\",\"lmidot\":\"ŀ\",\"lmoustache\":\"⎰\",\"lmoust\":\"⎰\",\"lnap\":\"⪉\",\"lnapprox\":\"⪉\",\"lne\":\"⪇\",\"lnE\":\"≨\",\"lneq\":\"⪇\",\"lneqq\":\"≨\",\"lnsim\":\"⋦\",\"loang\":\"⟬\",\"loarr\":\"⇽\",\"lobrk\":\"⟦\",\"longleftarrow\":\"⟵\",\"LongLeftArrow\":\"⟵\",\"Longleftarrow\":\"⟸\",\"longleftrightarrow\":\"⟷\",\"LongLeftRightArrow\":\"⟷\",\"Longleftrightarrow\":\"⟺\",\"longmapsto\":\"⟼\",\"longrightarrow\":\"⟶\",\"LongRightArrow\":\"⟶\",\"Longrightarrow\":\"⟹\",\"looparrowleft\":\"↫\",\"looparrowright\":\"↬\",\"lopar\":\"⦅\",\"Lopf\":\"𝕃\",\"lopf\":\"𝕝\",\"loplus\":\"⨭\",\"lotimes\":\"⨴\",\"lowast\":\"∗\",\"lowbar\":\"_\",\"LowerLeftArrow\":\"↙\",\"LowerRightArrow\":\"↘\",\"loz\":\"◊\",\"lozenge\":\"◊\",\"lozf\":\"⧫\",\"lpar\":\"(\",\"lparlt\":\"⦓\",\"lrarr\":\"⇆\",\"lrcorner\":\"⌟\",\"lrhar\":\"⇋\",\"lrhard\":\"⥭\",\"lrm\":\"‎\",\"lrtri\":\"⊿\",\"lsaquo\":\"‹\",\"lscr\":\"𝓁\",\"Lscr\":\"ℒ\",\"lsh\":\"↰\",\"Lsh\":\"↰\",\"lsim\":\"≲\",\"lsime\":\"⪍\",\"lsimg\":\"⪏\",\"lsqb\":\"[\",\"lsquo\":\"‘\",\"lsquor\":\"‚\",\"Lstrok\":\"Ł\",\"lstrok\":\"ł\",\"ltcc\":\"⪦\",\"ltcir\":\"⩹\",\"lt\":\"<\",\"LT\":\"<\",\"Lt\":\"≪\",\"ltdot\":\"⋖\",\"lthree\":\"⋋\",\"ltimes\":\"⋉\",\"ltlarr\":\"⥶\",\"ltquest\":\"⩻\",\"ltri\":\"◃\",\"ltrie\":\"⊴\",\"ltrif\":\"◂\",\"ltrPar\":\"⦖\",\"lurdshar\":\"⥊\",\"luruhar\":\"⥦\",\"lvertneqq\":\"≨︀\",\"lvnE\":\"≨︀\",\"macr\":\"¯\",\"male\":\"♂\",\"malt\":\"✠\",\"maltese\":\"✠\",\"Map\":\"⤅\",\"map\":\"↦\",\"mapsto\":\"↦\",\"mapstodown\":\"↧\",\"mapstoleft\":\"↤\",\"mapstoup\":\"↥\",\"marker\":\"▮\",\"mcomma\":\"⨩\",\"Mcy\":\"М\",\"mcy\":\"м\",\"mdash\":\"—\",\"mDDot\":\"∺\",\"measuredangle\":\"∡\",\"MediumSpace\":\" \",\"Mellintrf\":\"ℳ\",\"Mfr\":\"𝔐\",\"mfr\":\"𝔪\",\"mho\":\"℧\",\"micro\":\"µ\",\"midast\":\"*\",\"midcir\":\"⫰\",\"mid\":\"∣\",\"middot\":\"·\",\"minusb\":\"⊟\",\"minus\":\"−\",\"minusd\":\"∸\",\"minusdu\":\"⨪\",\"MinusPlus\":\"∓\",\"mlcp\":\"⫛\",\"mldr\":\"…\",\"mnplus\":\"∓\",\"models\":\"⊧\",\"Mopf\":\"𝕄\",\"mopf\":\"𝕞\",\"mp\":\"∓\",\"mscr\":\"𝓂\",\"Mscr\":\"ℳ\",\"mstpos\":\"∾\",\"Mu\":\"Μ\",\"mu\":\"μ\",\"multimap\":\"⊸\",\"mumap\":\"⊸\",\"nabla\":\"∇\",\"Nacute\":\"Ń\",\"nacute\":\"ń\",\"nang\":\"∠⃒\",\"nap\":\"≉\",\"napE\":\"⩰̸\",\"napid\":\"≋̸\",\"napos\":\"ʼn\",\"napprox\":\"≉\",\"natural\":\"♮\",\"naturals\":\"ℕ\",\"natur\":\"♮\",\"nbsp\":\" \",\"nbump\":\"≎̸\",\"nbumpe\":\"≏̸\",\"ncap\":\"⩃\",\"Ncaron\":\"Ň\",\"ncaron\":\"ň\",\"Ncedil\":\"Ņ\",\"ncedil\":\"ņ\",\"ncong\":\"≇\",\"ncongdot\":\"⩭̸\",\"ncup\":\"⩂\",\"Ncy\":\"Н\",\"ncy\":\"н\",\"ndash\":\"–\",\"nearhk\":\"⤤\",\"nearr\":\"↗\",\"neArr\":\"⇗\",\"nearrow\":\"↗\",\"ne\":\"≠\",\"nedot\":\"≐̸\",\"NegativeMediumSpace\":\"​\",\"NegativeThickSpace\":\"​\",\"NegativeThinSpace\":\"​\",\"NegativeVeryThinSpace\":\"​\",\"nequiv\":\"≢\",\"nesear\":\"⤨\",\"nesim\":\"≂̸\",\"NestedGreaterGreater\":\"≫\",\"NestedLessLess\":\"≪\",\"NewLine\":\"\\n\",\"nexist\":\"∄\",\"nexists\":\"∄\",\"Nfr\":\"𝔑\",\"nfr\":\"𝔫\",\"ngE\":\"≧̸\",\"nge\":\"≱\",\"ngeq\":\"≱\",\"ngeqq\":\"≧̸\",\"ngeqslant\":\"⩾̸\",\"nges\":\"⩾̸\",\"nGg\":\"⋙̸\",\"ngsim\":\"≵\",\"nGt\":\"≫⃒\",\"ngt\":\"≯\",\"ngtr\":\"≯\",\"nGtv\":\"≫̸\",\"nharr\":\"↮\",\"nhArr\":\"⇎\",\"nhpar\":\"⫲\",\"ni\":\"∋\",\"nis\":\"⋼\",\"nisd\":\"⋺\",\"niv\":\"∋\",\"NJcy\":\"Њ\",\"njcy\":\"њ\",\"nlarr\":\"↚\",\"nlArr\":\"⇍\",\"nldr\":\"‥\",\"nlE\":\"≦̸\",\"nle\":\"≰\",\"nleftarrow\":\"↚\",\"nLeftarrow\":\"⇍\",\"nleftrightarrow\":\"↮\",\"nLeftrightarrow\":\"⇎\",\"nleq\":\"≰\",\"nleqq\":\"≦̸\",\"nleqslant\":\"⩽̸\",\"nles\":\"⩽̸\",\"nless\":\"≮\",\"nLl\":\"⋘̸\",\"nlsim\":\"≴\",\"nLt\":\"≪⃒\",\"nlt\":\"≮\",\"nltri\":\"⋪\",\"nltrie\":\"⋬\",\"nLtv\":\"≪̸\",\"nmid\":\"∤\",\"NoBreak\":\"⁠\",\"NonBreakingSpace\":\" \",\"nopf\":\"𝕟\",\"Nopf\":\"ℕ\",\"Not\":\"⫬\",\"not\":\"¬\",\"NotCongruent\":\"≢\",\"NotCupCap\":\"≭\",\"NotDoubleVerticalBar\":\"∦\",\"NotElement\":\"∉\",\"NotEqual\":\"≠\",\"NotEqualTilde\":\"≂̸\",\"NotExists\":\"∄\",\"NotGreater\":\"≯\",\"NotGreaterEqual\":\"≱\",\"NotGreaterFullEqual\":\"≧̸\",\"NotGreaterGreater\":\"≫̸\",\"NotGreaterLess\":\"≹\",\"NotGreaterSlantEqual\":\"⩾̸\",\"NotGreaterTilde\":\"≵\",\"NotHumpDownHump\":\"≎̸\",\"NotHumpEqual\":\"≏̸\",\"notin\":\"∉\",\"notindot\":\"⋵̸\",\"notinE\":\"⋹̸\",\"notinva\":\"∉\",\"notinvb\":\"⋷\",\"notinvc\":\"⋶\",\"NotLeftTriangleBar\":\"⧏̸\",\"NotLeftTriangle\":\"⋪\",\"NotLeftTriangleEqual\":\"⋬\",\"NotLess\":\"≮\",\"NotLessEqual\":\"≰\",\"NotLessGreater\":\"≸\",\"NotLessLess\":\"≪̸\",\"NotLessSlantEqual\":\"⩽̸\",\"NotLessTilde\":\"≴\",\"NotNestedGreaterGreater\":\"⪢̸\",\"NotNestedLessLess\":\"⪡̸\",\"notni\":\"∌\",\"notniva\":\"∌\",\"notnivb\":\"⋾\",\"notnivc\":\"⋽\",\"NotPrecedes\":\"⊀\",\"NotPrecedesEqual\":\"⪯̸\",\"NotPrecedesSlantEqual\":\"⋠\",\"NotReverseElement\":\"∌\",\"NotRightTriangleBar\":\"⧐̸\",\"NotRightTriangle\":\"⋫\",\"NotRightTriangleEqual\":\"⋭\",\"NotSquareSubset\":\"⊏̸\",\"NotSquareSubsetEqual\":\"⋢\",\"NotSquareSuperset\":\"⊐̸\",\"NotSquareSupersetEqual\":\"⋣\",\"NotSubset\":\"⊂⃒\",\"NotSubsetEqual\":\"⊈\",\"NotSucceeds\":\"⊁\",\"NotSucceedsEqual\":\"⪰̸\",\"NotSucceedsSlantEqual\":\"⋡\",\"NotSucceedsTilde\":\"≿̸\",\"NotSuperset\":\"⊃⃒\",\"NotSupersetEqual\":\"⊉\",\"NotTilde\":\"≁\",\"NotTildeEqual\":\"≄\",\"NotTildeFullEqual\":\"≇\",\"NotTildeTilde\":\"≉\",\"NotVerticalBar\":\"∤\",\"nparallel\":\"∦\",\"npar\":\"∦\",\"nparsl\":\"⫽⃥\",\"npart\":\"∂̸\",\"npolint\":\"⨔\",\"npr\":\"⊀\",\"nprcue\":\"⋠\",\"nprec\":\"⊀\",\"npreceq\":\"⪯̸\",\"npre\":\"⪯̸\",\"nrarrc\":\"⤳̸\",\"nrarr\":\"↛\",\"nrArr\":\"⇏\",\"nrarrw\":\"↝̸\",\"nrightarrow\":\"↛\",\"nRightarrow\":\"⇏\",\"nrtri\":\"⋫\",\"nrtrie\":\"⋭\",\"nsc\":\"⊁\",\"nsccue\":\"⋡\",\"nsce\":\"⪰̸\",\"Nscr\":\"𝒩\",\"nscr\":\"𝓃\",\"nshortmid\":\"∤\",\"nshortparallel\":\"∦\",\"nsim\":\"≁\",\"nsime\":\"≄\",\"nsimeq\":\"≄\",\"nsmid\":\"∤\",\"nspar\":\"∦\",\"nsqsube\":\"⋢\",\"nsqsupe\":\"⋣\",\"nsub\":\"⊄\",\"nsubE\":\"⫅̸\",\"nsube\":\"⊈\",\"nsubset\":\"⊂⃒\",\"nsubseteq\":\"⊈\",\"nsubseteqq\":\"⫅̸\",\"nsucc\":\"⊁\",\"nsucceq\":\"⪰̸\",\"nsup\":\"⊅\",\"nsupE\":\"⫆̸\",\"nsupe\":\"⊉\",\"nsupset\":\"⊃⃒\",\"nsupseteq\":\"⊉\",\"nsupseteqq\":\"⫆̸\",\"ntgl\":\"≹\",\"Ntilde\":\"Ñ\",\"ntilde\":\"ñ\",\"ntlg\":\"≸\",\"ntriangleleft\":\"⋪\",\"ntrianglelefteq\":\"⋬\",\"ntriangleright\":\"⋫\",\"ntrianglerighteq\":\"⋭\",\"Nu\":\"Ν\",\"nu\":\"ν\",\"num\":\"#\",\"numero\":\"№\",\"numsp\":\" \",\"nvap\":\"≍⃒\",\"nvdash\":\"⊬\",\"nvDash\":\"⊭\",\"nVdash\":\"⊮\",\"nVDash\":\"⊯\",\"nvge\":\"≥⃒\",\"nvgt\":\">⃒\",\"nvHarr\":\"⤄\",\"nvinfin\":\"⧞\",\"nvlArr\":\"⤂\",\"nvle\":\"≤⃒\",\"nvlt\":\"<⃒\",\"nvltrie\":\"⊴⃒\",\"nvrArr\":\"⤃\",\"nvrtrie\":\"⊵⃒\",\"nvsim\":\"∼⃒\",\"nwarhk\":\"⤣\",\"nwarr\":\"↖\",\"nwArr\":\"⇖\",\"nwarrow\":\"↖\",\"nwnear\":\"⤧\",\"Oacute\":\"Ó\",\"oacute\":\"ó\",\"oast\":\"⊛\",\"Ocirc\":\"Ô\",\"ocirc\":\"ô\",\"ocir\":\"⊚\",\"Ocy\":\"О\",\"ocy\":\"о\",\"odash\":\"⊝\",\"Odblac\":\"Ő\",\"odblac\":\"ő\",\"odiv\":\"⨸\",\"odot\":\"⊙\",\"odsold\":\"⦼\",\"OElig\":\"Œ\",\"oelig\":\"œ\",\"ofcir\":\"⦿\",\"Ofr\":\"𝔒\",\"ofr\":\"𝔬\",\"ogon\":\"˛\",\"Ograve\":\"Ò\",\"ograve\":\"ò\",\"ogt\":\"⧁\",\"ohbar\":\"⦵\",\"ohm\":\"Ω\",\"oint\":\"∮\",\"olarr\":\"↺\",\"olcir\":\"⦾\",\"olcross\":\"⦻\",\"oline\":\"‾\",\"olt\":\"⧀\",\"Omacr\":\"Ō\",\"omacr\":\"ō\",\"Omega\":\"Ω\",\"omega\":\"ω\",\"Omicron\":\"Ο\",\"omicron\":\"ο\",\"omid\":\"⦶\",\"ominus\":\"⊖\",\"Oopf\":\"𝕆\",\"oopf\":\"𝕠\",\"opar\":\"⦷\",\"OpenCurlyDoubleQuote\":\"“\",\"OpenCurlyQuote\":\"‘\",\"operp\":\"⦹\",\"oplus\":\"⊕\",\"orarr\":\"↻\",\"Or\":\"⩔\",\"or\":\"∨\",\"ord\":\"⩝\",\"order\":\"ℴ\",\"orderof\":\"ℴ\",\"ordf\":\"ª\",\"ordm\":\"º\",\"origof\":\"⊶\",\"oror\":\"⩖\",\"orslope\":\"⩗\",\"orv\":\"⩛\",\"oS\":\"Ⓢ\",\"Oscr\":\"𝒪\",\"oscr\":\"ℴ\",\"Oslash\":\"Ø\",\"oslash\":\"ø\",\"osol\":\"⊘\",\"Otilde\":\"Õ\",\"otilde\":\"õ\",\"otimesas\":\"⨶\",\"Otimes\":\"⨷\",\"otimes\":\"⊗\",\"Ouml\":\"Ö\",\"ouml\":\"ö\",\"ovbar\":\"⌽\",\"OverBar\":\"‾\",\"OverBrace\":\"⏞\",\"OverBracket\":\"⎴\",\"OverParenthesis\":\"⏜\",\"para\":\"¶\",\"parallel\":\"∥\",\"par\":\"∥\",\"parsim\":\"⫳\",\"parsl\":\"⫽\",\"part\":\"∂\",\"PartialD\":\"∂\",\"Pcy\":\"П\",\"pcy\":\"п\",\"percnt\":\"%\",\"period\":\".\",\"permil\":\"‰\",\"perp\":\"⊥\",\"pertenk\":\"‱\",\"Pfr\":\"𝔓\",\"pfr\":\"𝔭\",\"Phi\":\"Φ\",\"phi\":\"φ\",\"phiv\":\"ϕ\",\"phmmat\":\"ℳ\",\"phone\":\"☎\",\"Pi\":\"Π\",\"pi\":\"π\",\"pitchfork\":\"⋔\",\"piv\":\"ϖ\",\"planck\":\"ℏ\",\"planckh\":\"ℎ\",\"plankv\":\"ℏ\",\"plusacir\":\"⨣\",\"plusb\":\"⊞\",\"pluscir\":\"⨢\",\"plus\":\"+\",\"plusdo\":\"∔\",\"plusdu\":\"⨥\",\"pluse\":\"⩲\",\"PlusMinus\":\"±\",\"plusmn\":\"±\",\"plussim\":\"⨦\",\"plustwo\":\"⨧\",\"pm\":\"±\",\"Poincareplane\":\"ℌ\",\"pointint\":\"⨕\",\"popf\":\"𝕡\",\"Popf\":\"ℙ\",\"pound\":\"£\",\"prap\":\"⪷\",\"Pr\":\"⪻\",\"pr\":\"≺\",\"prcue\":\"≼\",\"precapprox\":\"⪷\",\"prec\":\"≺\",\"preccurlyeq\":\"≼\",\"Precedes\":\"≺\",\"PrecedesEqual\":\"⪯\",\"PrecedesSlantEqual\":\"≼\",\"PrecedesTilde\":\"≾\",\"preceq\":\"⪯\",\"precnapprox\":\"⪹\",\"precneqq\":\"⪵\",\"precnsim\":\"⋨\",\"pre\":\"⪯\",\"prE\":\"⪳\",\"precsim\":\"≾\",\"prime\":\"′\",\"Prime\":\"″\",\"primes\":\"ℙ\",\"prnap\":\"⪹\",\"prnE\":\"⪵\",\"prnsim\":\"⋨\",\"prod\":\"∏\",\"Product\":\"∏\",\"profalar\":\"⌮\",\"profline\":\"⌒\",\"profsurf\":\"⌓\",\"prop\":\"∝\",\"Proportional\":\"∝\",\"Proportion\":\"∷\",\"propto\":\"∝\",\"prsim\":\"≾\",\"prurel\":\"⊰\",\"Pscr\":\"𝒫\",\"pscr\":\"𝓅\",\"Psi\":\"Ψ\",\"psi\":\"ψ\",\"puncsp\":\" \",\"Qfr\":\"𝔔\",\"qfr\":\"𝔮\",\"qint\":\"⨌\",\"qopf\":\"𝕢\",\"Qopf\":\"ℚ\",\"qprime\":\"⁗\",\"Qscr\":\"𝒬\",\"qscr\":\"𝓆\",\"quaternions\":\"ℍ\",\"quatint\":\"⨖\",\"quest\":\"?\",\"questeq\":\"≟\",\"quot\":\"\\\"\",\"QUOT\":\"\\\"\",\"rAarr\":\"⇛\",\"race\":\"∽̱\",\"Racute\":\"Ŕ\",\"racute\":\"ŕ\",\"radic\":\"√\",\"raemptyv\":\"⦳\",\"rang\":\"⟩\",\"Rang\":\"⟫\",\"rangd\":\"⦒\",\"range\":\"⦥\",\"rangle\":\"⟩\",\"raquo\":\"»\",\"rarrap\":\"⥵\",\"rarrb\":\"⇥\",\"rarrbfs\":\"⤠\",\"rarrc\":\"⤳\",\"rarr\":\"→\",\"Rarr\":\"↠\",\"rArr\":\"⇒\",\"rarrfs\":\"⤞\",\"rarrhk\":\"↪\",\"rarrlp\":\"↬\",\"rarrpl\":\"⥅\",\"rarrsim\":\"⥴\",\"Rarrtl\":\"⤖\",\"rarrtl\":\"↣\",\"rarrw\":\"↝\",\"ratail\":\"⤚\",\"rAtail\":\"⤜\",\"ratio\":\"∶\",\"rationals\":\"ℚ\",\"rbarr\":\"⤍\",\"rBarr\":\"⤏\",\"RBarr\":\"⤐\",\"rbbrk\":\"❳\",\"rbrace\":\"}\",\"rbrack\":\"]\",\"rbrke\":\"⦌\",\"rbrksld\":\"⦎\",\"rbrkslu\":\"⦐\",\"Rcaron\":\"Ř\",\"rcaron\":\"ř\",\"Rcedil\":\"Ŗ\",\"rcedil\":\"ŗ\",\"rceil\":\"⌉\",\"rcub\":\"}\",\"Rcy\":\"Р\",\"rcy\":\"р\",\"rdca\":\"⤷\",\"rdldhar\":\"⥩\",\"rdquo\":\"”\",\"rdquor\":\"”\",\"rdsh\":\"↳\",\"real\":\"ℜ\",\"realine\":\"ℛ\",\"realpart\":\"ℜ\",\"reals\":\"ℝ\",\"Re\":\"ℜ\",\"rect\":\"▭\",\"reg\":\"®\",\"REG\":\"®\",\"ReverseElement\":\"∋\",\"ReverseEquilibrium\":\"⇋\",\"ReverseUpEquilibrium\":\"⥯\",\"rfisht\":\"⥽\",\"rfloor\":\"⌋\",\"rfr\":\"𝔯\",\"Rfr\":\"ℜ\",\"rHar\":\"⥤\",\"rhard\":\"⇁\",\"rharu\":\"⇀\",\"rharul\":\"⥬\",\"Rho\":\"Ρ\",\"rho\":\"ρ\",\"rhov\":\"ϱ\",\"RightAngleBracket\":\"⟩\",\"RightArrowBar\":\"⇥\",\"rightarrow\":\"→\",\"RightArrow\":\"→\",\"Rightarrow\":\"⇒\",\"RightArrowLeftArrow\":\"⇄\",\"rightarrowtail\":\"↣\",\"RightCeiling\":\"⌉\",\"RightDoubleBracket\":\"⟧\",\"RightDownTeeVector\":\"⥝\",\"RightDownVectorBar\":\"⥕\",\"RightDownVector\":\"⇂\",\"RightFloor\":\"⌋\",\"rightharpoondown\":\"⇁\",\"rightharpoonup\":\"⇀\",\"rightleftarrows\":\"⇄\",\"rightleftharpoons\":\"⇌\",\"rightrightarrows\":\"⇉\",\"rightsquigarrow\":\"↝\",\"RightTeeArrow\":\"↦\",\"RightTee\":\"⊢\",\"RightTeeVector\":\"⥛\",\"rightthreetimes\":\"⋌\",\"RightTriangleBar\":\"⧐\",\"RightTriangle\":\"⊳\",\"RightTriangleEqual\":\"⊵\",\"RightUpDownVector\":\"⥏\",\"RightUpTeeVector\":\"⥜\",\"RightUpVectorBar\":\"⥔\",\"RightUpVector\":\"↾\",\"RightVectorBar\":\"⥓\",\"RightVector\":\"⇀\",\"ring\":\"˚\",\"risingdotseq\":\"≓\",\"rlarr\":\"⇄\",\"rlhar\":\"⇌\",\"rlm\":\"‏\",\"rmoustache\":\"⎱\",\"rmoust\":\"⎱\",\"rnmid\":\"⫮\",\"roang\":\"⟭\",\"roarr\":\"⇾\",\"robrk\":\"⟧\",\"ropar\":\"⦆\",\"ropf\":\"𝕣\",\"Ropf\":\"ℝ\",\"roplus\":\"⨮\",\"rotimes\":\"⨵\",\"RoundImplies\":\"⥰\",\"rpar\":\")\",\"rpargt\":\"⦔\",\"rppolint\":\"⨒\",\"rrarr\":\"⇉\",\"Rrightarrow\":\"⇛\",\"rsaquo\":\"›\",\"rscr\":\"𝓇\",\"Rscr\":\"ℛ\",\"rsh\":\"↱\",\"Rsh\":\"↱\",\"rsqb\":\"]\",\"rsquo\":\"’\",\"rsquor\":\"’\",\"rthree\":\"⋌\",\"rtimes\":\"⋊\",\"rtri\":\"▹\",\"rtrie\":\"⊵\",\"rtrif\":\"▸\",\"rtriltri\":\"⧎\",\"RuleDelayed\":\"⧴\",\"ruluhar\":\"⥨\",\"rx\":\"℞\",\"Sacute\":\"Ś\",\"sacute\":\"ś\",\"sbquo\":\"‚\",\"scap\":\"⪸\",\"Scaron\":\"Š\",\"scaron\":\"š\",\"Sc\":\"⪼\",\"sc\":\"≻\",\"sccue\":\"≽\",\"sce\":\"⪰\",\"scE\":\"⪴\",\"Scedil\":\"Ş\",\"scedil\":\"ş\",\"Scirc\":\"Ŝ\",\"scirc\":\"ŝ\",\"scnap\":\"⪺\",\"scnE\":\"⪶\",\"scnsim\":\"⋩\",\"scpolint\":\"⨓\",\"scsim\":\"≿\",\"Scy\":\"С\",\"scy\":\"с\",\"sdotb\":\"⊡\",\"sdot\":\"⋅\",\"sdote\":\"⩦\",\"searhk\":\"⤥\",\"searr\":\"↘\",\"seArr\":\"⇘\",\"searrow\":\"↘\",\"sect\":\"§\",\"semi\":\";\",\"seswar\":\"⤩\",\"setminus\":\"∖\",\"setmn\":\"∖\",\"sext\":\"✶\",\"Sfr\":\"𝔖\",\"sfr\":\"𝔰\",\"sfrown\":\"⌢\",\"sharp\":\"♯\",\"SHCHcy\":\"Щ\",\"shchcy\":\"щ\",\"SHcy\":\"Ш\",\"shcy\":\"ш\",\"ShortDownArrow\":\"↓\",\"ShortLeftArrow\":\"←\",\"shortmid\":\"∣\",\"shortparallel\":\"∥\",\"ShortRightArrow\":\"→\",\"ShortUpArrow\":\"↑\",\"shy\":\"­\",\"Sigma\":\"Σ\",\"sigma\":\"σ\",\"sigmaf\":\"ς\",\"sigmav\":\"ς\",\"sim\":\"∼\",\"simdot\":\"⩪\",\"sime\":\"≃\",\"simeq\":\"≃\",\"simg\":\"⪞\",\"simgE\":\"⪠\",\"siml\":\"⪝\",\"simlE\":\"⪟\",\"simne\":\"≆\",\"simplus\":\"⨤\",\"simrarr\":\"⥲\",\"slarr\":\"←\",\"SmallCircle\":\"∘\",\"smallsetminus\":\"∖\",\"smashp\":\"⨳\",\"smeparsl\":\"⧤\",\"smid\":\"∣\",\"smile\":\"⌣\",\"smt\":\"⪪\",\"smte\":\"⪬\",\"smtes\":\"⪬︀\",\"SOFTcy\":\"Ь\",\"softcy\":\"ь\",\"solbar\":\"⌿\",\"solb\":\"⧄\",\"sol\":\"/\",\"Sopf\":\"𝕊\",\"sopf\":\"𝕤\",\"spades\":\"♠\",\"spadesuit\":\"♠\",\"spar\":\"∥\",\"sqcap\":\"⊓\",\"sqcaps\":\"⊓︀\",\"sqcup\":\"⊔\",\"sqcups\":\"⊔︀\",\"Sqrt\":\"√\",\"sqsub\":\"⊏\",\"sqsube\":\"⊑\",\"sqsubset\":\"⊏\",\"sqsubseteq\":\"⊑\",\"sqsup\":\"⊐\",\"sqsupe\":\"⊒\",\"sqsupset\":\"⊐\",\"sqsupseteq\":\"⊒\",\"square\":\"□\",\"Square\":\"□\",\"SquareIntersection\":\"⊓\",\"SquareSubset\":\"⊏\",\"SquareSubsetEqual\":\"⊑\",\"SquareSuperset\":\"⊐\",\"SquareSupersetEqual\":\"⊒\",\"SquareUnion\":\"⊔\",\"squarf\":\"▪\",\"squ\":\"□\",\"squf\":\"▪\",\"srarr\":\"→\",\"Sscr\":\"𝒮\",\"sscr\":\"𝓈\",\"ssetmn\":\"∖\",\"ssmile\":\"⌣\",\"sstarf\":\"⋆\",\"Star\":\"⋆\",\"star\":\"☆\",\"starf\":\"★\",\"straightepsilon\":\"ϵ\",\"straightphi\":\"ϕ\",\"strns\":\"¯\",\"sub\":\"⊂\",\"Sub\":\"⋐\",\"subdot\":\"⪽\",\"subE\":\"⫅\",\"sube\":\"⊆\",\"subedot\":\"⫃\",\"submult\":\"⫁\",\"subnE\":\"⫋\",\"subne\":\"⊊\",\"subplus\":\"⪿\",\"subrarr\":\"⥹\",\"subset\":\"⊂\",\"Subset\":\"⋐\",\"subseteq\":\"⊆\",\"subseteqq\":\"⫅\",\"SubsetEqual\":\"⊆\",\"subsetneq\":\"⊊\",\"subsetneqq\":\"⫋\",\"subsim\":\"⫇\",\"subsub\":\"⫕\",\"subsup\":\"⫓\",\"succapprox\":\"⪸\",\"succ\":\"≻\",\"succcurlyeq\":\"≽\",\"Succeeds\":\"≻\",\"SucceedsEqual\":\"⪰\",\"SucceedsSlantEqual\":\"≽\",\"SucceedsTilde\":\"≿\",\"succeq\":\"⪰\",\"succnapprox\":\"⪺\",\"succneqq\":\"⪶\",\"succnsim\":\"⋩\",\"succsim\":\"≿\",\"SuchThat\":\"∋\",\"sum\":\"∑\",\"Sum\":\"∑\",\"sung\":\"♪\",\"sup1\":\"¹\",\"sup2\":\"²\",\"sup3\":\"³\",\"sup\":\"⊃\",\"Sup\":\"⋑\",\"supdot\":\"⪾\",\"supdsub\":\"⫘\",\"supE\":\"⫆\",\"supe\":\"⊇\",\"supedot\":\"⫄\",\"Superset\":\"⊃\",\"SupersetEqual\":\"⊇\",\"suphsol\":\"⟉\",\"suphsub\":\"⫗\",\"suplarr\":\"⥻\",\"supmult\":\"⫂\",\"supnE\":\"⫌\",\"supne\":\"⊋\",\"supplus\":\"⫀\",\"supset\":\"⊃\",\"Supset\":\"⋑\",\"supseteq\":\"⊇\",\"supseteqq\":\"⫆\",\"supsetneq\":\"⊋\",\"supsetneqq\":\"⫌\",\"supsim\":\"⫈\",\"supsub\":\"⫔\",\"supsup\":\"⫖\",\"swarhk\":\"⤦\",\"swarr\":\"↙\",\"swArr\":\"⇙\",\"swarrow\":\"↙\",\"swnwar\":\"⤪\",\"szlig\":\"ß\",\"Tab\":\"\\t\",\"target\":\"⌖\",\"Tau\":\"Τ\",\"tau\":\"τ\",\"tbrk\":\"⎴\",\"Tcaron\":\"Ť\",\"tcaron\":\"ť\",\"Tcedil\":\"Ţ\",\"tcedil\":\"ţ\",\"Tcy\":\"Т\",\"tcy\":\"т\",\"tdot\":\"⃛\",\"telrec\":\"⌕\",\"Tfr\":\"𝔗\",\"tfr\":\"𝔱\",\"there4\":\"∴\",\"therefore\":\"∴\",\"Therefore\":\"∴\",\"Theta\":\"Θ\",\"theta\":\"θ\",\"thetasym\":\"ϑ\",\"thetav\":\"ϑ\",\"thickapprox\":\"≈\",\"thicksim\":\"∼\",\"ThickSpace\":\"  \",\"ThinSpace\":\" \",\"thinsp\":\" \",\"thkap\":\"≈\",\"thksim\":\"∼\",\"THORN\":\"Þ\",\"thorn\":\"þ\",\"tilde\":\"˜\",\"Tilde\":\"∼\",\"TildeEqual\":\"≃\",\"TildeFullEqual\":\"≅\",\"TildeTilde\":\"≈\",\"timesbar\":\"⨱\",\"timesb\":\"⊠\",\"times\":\"×\",\"timesd\":\"⨰\",\"tint\":\"∭\",\"toea\":\"⤨\",\"topbot\":\"⌶\",\"topcir\":\"⫱\",\"top\":\"⊤\",\"Topf\":\"𝕋\",\"topf\":\"𝕥\",\"topfork\":\"⫚\",\"tosa\":\"⤩\",\"tprime\":\"‴\",\"trade\":\"™\",\"TRADE\":\"™\",\"triangle\":\"▵\",\"triangledown\":\"▿\",\"triangleleft\":\"◃\",\"trianglelefteq\":\"⊴\",\"triangleq\":\"≜\",\"triangleright\":\"▹\",\"trianglerighteq\":\"⊵\",\"tridot\":\"◬\",\"trie\":\"≜\",\"triminus\":\"⨺\",\"TripleDot\":\"⃛\",\"triplus\":\"⨹\",\"trisb\":\"⧍\",\"tritime\":\"⨻\",\"trpezium\":\"⏢\",\"Tscr\":\"𝒯\",\"tscr\":\"𝓉\",\"TScy\":\"Ц\",\"tscy\":\"ц\",\"TSHcy\":\"Ћ\",\"tshcy\":\"ћ\",\"Tstrok\":\"Ŧ\",\"tstrok\":\"ŧ\",\"twixt\":\"≬\",\"twoheadleftarrow\":\"↞\",\"twoheadrightarrow\":\"↠\",\"Uacute\":\"Ú\",\"uacute\":\"ú\",\"uarr\":\"↑\",\"Uarr\":\"↟\",\"uArr\":\"⇑\",\"Uarrocir\":\"⥉\",\"Ubrcy\":\"Ў\",\"ubrcy\":\"ў\",\"Ubreve\":\"Ŭ\",\"ubreve\":\"ŭ\",\"Ucirc\":\"Û\",\"ucirc\":\"û\",\"Ucy\":\"У\",\"ucy\":\"у\",\"udarr\":\"⇅\",\"Udblac\":\"Ű\",\"udblac\":\"ű\",\"udhar\":\"⥮\",\"ufisht\":\"⥾\",\"Ufr\":\"𝔘\",\"ufr\":\"𝔲\",\"Ugrave\":\"Ù\",\"ugrave\":\"ù\",\"uHar\":\"⥣\",\"uharl\":\"↿\",\"uharr\":\"↾\",\"uhblk\":\"▀\",\"ulcorn\":\"⌜\",\"ulcorner\":\"⌜\",\"ulcrop\":\"⌏\",\"ultri\":\"◸\",\"Umacr\":\"Ū\",\"umacr\":\"ū\",\"uml\":\"¨\",\"UnderBar\":\"_\",\"UnderBrace\":\"⏟\",\"UnderBracket\":\"⎵\",\"UnderParenthesis\":\"⏝\",\"Union\":\"⋃\",\"UnionPlus\":\"⊎\",\"Uogon\":\"Ų\",\"uogon\":\"ų\",\"Uopf\":\"𝕌\",\"uopf\":\"𝕦\",\"UpArrowBar\":\"⤒\",\"uparrow\":\"↑\",\"UpArrow\":\"↑\",\"Uparrow\":\"⇑\",\"UpArrowDownArrow\":\"⇅\",\"updownarrow\":\"↕\",\"UpDownArrow\":\"↕\",\"Updownarrow\":\"⇕\",\"UpEquilibrium\":\"⥮\",\"upharpoonleft\":\"↿\",\"upharpoonright\":\"↾\",\"uplus\":\"⊎\",\"UpperLeftArrow\":\"↖\",\"UpperRightArrow\":\"↗\",\"upsi\":\"υ\",\"Upsi\":\"ϒ\",\"upsih\":\"ϒ\",\"Upsilon\":\"Υ\",\"upsilon\":\"υ\",\"UpTeeArrow\":\"↥\",\"UpTee\":\"⊥\",\"upuparrows\":\"⇈\",\"urcorn\":\"⌝\",\"urcorner\":\"⌝\",\"urcrop\":\"⌎\",\"Uring\":\"Ů\",\"uring\":\"ů\",\"urtri\":\"◹\",\"Uscr\":\"𝒰\",\"uscr\":\"𝓊\",\"utdot\":\"⋰\",\"Utilde\":\"Ũ\",\"utilde\":\"ũ\",\"utri\":\"▵\",\"utrif\":\"▴\",\"uuarr\":\"⇈\",\"Uuml\":\"Ü\",\"uuml\":\"ü\",\"uwangle\":\"⦧\",\"vangrt\":\"⦜\",\"varepsilon\":\"ϵ\",\"varkappa\":\"ϰ\",\"varnothing\":\"∅\",\"varphi\":\"ϕ\",\"varpi\":\"ϖ\",\"varpropto\":\"∝\",\"varr\":\"↕\",\"vArr\":\"⇕\",\"varrho\":\"ϱ\",\"varsigma\":\"ς\",\"varsubsetneq\":\"⊊︀\",\"varsubsetneqq\":\"⫋︀\",\"varsupsetneq\":\"⊋︀\",\"varsupsetneqq\":\"⫌︀\",\"vartheta\":\"ϑ\",\"vartriangleleft\":\"⊲\",\"vartriangleright\":\"⊳\",\"vBar\":\"⫨\",\"Vbar\":\"⫫\",\"vBarv\":\"⫩\",\"Vcy\":\"В\",\"vcy\":\"в\",\"vdash\":\"⊢\",\"vDash\":\"⊨\",\"Vdash\":\"⊩\",\"VDash\":\"⊫\",\"Vdashl\":\"⫦\",\"veebar\":\"⊻\",\"vee\":\"∨\",\"Vee\":\"⋁\",\"veeeq\":\"≚\",\"vellip\":\"⋮\",\"verbar\":\"|\",\"Verbar\":\"‖\",\"vert\":\"|\",\"Vert\":\"‖\",\"VerticalBar\":\"∣\",\"VerticalLine\":\"|\",\"VerticalSeparator\":\"❘\",\"VerticalTilde\":\"≀\",\"VeryThinSpace\":\" \",\"Vfr\":\"𝔙\",\"vfr\":\"𝔳\",\"vltri\":\"⊲\",\"vnsub\":\"⊂⃒\",\"vnsup\":\"⊃⃒\",\"Vopf\":\"𝕍\",\"vopf\":\"𝕧\",\"vprop\":\"∝\",\"vrtri\":\"⊳\",\"Vscr\":\"𝒱\",\"vscr\":\"𝓋\",\"vsubnE\":\"⫋︀\",\"vsubne\":\"⊊︀\",\"vsupnE\":\"⫌︀\",\"vsupne\":\"⊋︀\",\"Vvdash\":\"⊪\",\"vzigzag\":\"⦚\",\"Wcirc\":\"Ŵ\",\"wcirc\":\"ŵ\",\"wedbar\":\"⩟\",\"wedge\":\"∧\",\"Wedge\":\"⋀\",\"wedgeq\":\"≙\",\"weierp\":\"℘\",\"Wfr\":\"𝔚\",\"wfr\":\"𝔴\",\"Wopf\":\"𝕎\",\"wopf\":\"𝕨\",\"wp\":\"℘\",\"wr\":\"≀\",\"wreath\":\"≀\",\"Wscr\":\"𝒲\",\"wscr\":\"𝓌\",\"xcap\":\"⋂\",\"xcirc\":\"◯\",\"xcup\":\"⋃\",\"xdtri\":\"▽\",\"Xfr\":\"𝔛\",\"xfr\":\"𝔵\",\"xharr\":\"⟷\",\"xhArr\":\"⟺\",\"Xi\":\"Ξ\",\"xi\":\"ξ\",\"xlarr\":\"⟵\",\"xlArr\":\"⟸\",\"xmap\":\"⟼\",\"xnis\":\"⋻\",\"xodot\":\"⨀\",\"Xopf\":\"𝕏\",\"xopf\":\"𝕩\",\"xoplus\":\"⨁\",\"xotime\":\"⨂\",\"xrarr\":\"⟶\",\"xrArr\":\"⟹\",\"Xscr\":\"𝒳\",\"xscr\":\"𝓍\",\"xsqcup\":\"⨆\",\"xuplus\":\"⨄\",\"xutri\":\"△\",\"xvee\":\"⋁\",\"xwedge\":\"⋀\",\"Yacute\":\"Ý\",\"yacute\":\"ý\",\"YAcy\":\"Я\",\"yacy\":\"я\",\"Ycirc\":\"Ŷ\",\"ycirc\":\"ŷ\",\"Ycy\":\"Ы\",\"ycy\":\"ы\",\"yen\":\"¥\",\"Yfr\":\"𝔜\",\"yfr\":\"𝔶\",\"YIcy\":\"Ї\",\"yicy\":\"ї\",\"Yopf\":\"𝕐\",\"yopf\":\"𝕪\",\"Yscr\":\"𝒴\",\"yscr\":\"𝓎\",\"YUcy\":\"Ю\",\"yucy\":\"ю\",\"yuml\":\"ÿ\",\"Yuml\":\"Ÿ\",\"Zacute\":\"Ź\",\"zacute\":\"ź\",\"Zcaron\":\"Ž\",\"zcaron\":\"ž\",\"Zcy\":\"З\",\"zcy\":\"з\",\"Zdot\":\"Ż\",\"zdot\":\"ż\",\"zeetrf\":\"ℨ\",\"ZeroWidthSpace\":\"​\",\"Zeta\":\"Ζ\",\"zeta\":\"ζ\",\"zfr\":\"𝔷\",\"Zfr\":\"ℨ\",\"ZHcy\":\"Ж\",\"zhcy\":\"ж\",\"zigrarr\":\"⇝\",\"zopf\":\"𝕫\",\"Zopf\":\"ℤ\",\"Zscr\":\"𝒵\",\"zscr\":\"𝓏\",\"zwj\":\"‍\",\"zwnj\":\"‌\"}","module.exports = {\"Aacute\":\"Á\",\"aacute\":\"á\",\"Acirc\":\"Â\",\"acirc\":\"â\",\"acute\":\"´\",\"AElig\":\"Æ\",\"aelig\":\"æ\",\"Agrave\":\"À\",\"agrave\":\"à\",\"amp\":\"&\",\"AMP\":\"&\",\"Aring\":\"Å\",\"aring\":\"å\",\"Atilde\":\"Ã\",\"atilde\":\"ã\",\"Auml\":\"Ä\",\"auml\":\"ä\",\"brvbar\":\"¦\",\"Ccedil\":\"Ç\",\"ccedil\":\"ç\",\"cedil\":\"¸\",\"cent\":\"¢\",\"copy\":\"©\",\"COPY\":\"©\",\"curren\":\"¤\",\"deg\":\"°\",\"divide\":\"÷\",\"Eacute\":\"É\",\"eacute\":\"é\",\"Ecirc\":\"Ê\",\"ecirc\":\"ê\",\"Egrave\":\"È\",\"egrave\":\"è\",\"ETH\":\"Ð\",\"eth\":\"ð\",\"Euml\":\"Ë\",\"euml\":\"ë\",\"frac12\":\"½\",\"frac14\":\"¼\",\"frac34\":\"¾\",\"gt\":\">\",\"GT\":\">\",\"Iacute\":\"Í\",\"iacute\":\"í\",\"Icirc\":\"Î\",\"icirc\":\"î\",\"iexcl\":\"¡\",\"Igrave\":\"Ì\",\"igrave\":\"ì\",\"iquest\":\"¿\",\"Iuml\":\"Ï\",\"iuml\":\"ï\",\"laquo\":\"«\",\"lt\":\"<\",\"LT\":\"<\",\"macr\":\"¯\",\"micro\":\"µ\",\"middot\":\"·\",\"nbsp\":\" \",\"not\":\"¬\",\"Ntilde\":\"Ñ\",\"ntilde\":\"ñ\",\"Oacute\":\"Ó\",\"oacute\":\"ó\",\"Ocirc\":\"Ô\",\"ocirc\":\"ô\",\"Ograve\":\"Ò\",\"ograve\":\"ò\",\"ordf\":\"ª\",\"ordm\":\"º\",\"Oslash\":\"Ø\",\"oslash\":\"ø\",\"Otilde\":\"Õ\",\"otilde\":\"õ\",\"Ouml\":\"Ö\",\"ouml\":\"ö\",\"para\":\"¶\",\"plusmn\":\"±\",\"pound\":\"£\",\"quot\":\"\\\"\",\"QUOT\":\"\\\"\",\"raquo\":\"»\",\"reg\":\"®\",\"REG\":\"®\",\"sect\":\"§\",\"shy\":\"­\",\"sup1\":\"¹\",\"sup2\":\"²\",\"sup3\":\"³\",\"szlig\":\"ß\",\"THORN\":\"Þ\",\"thorn\":\"þ\",\"times\":\"×\",\"Uacute\":\"Ú\",\"uacute\":\"ú\",\"Ucirc\":\"Û\",\"ucirc\":\"û\",\"Ugrave\":\"Ù\",\"ugrave\":\"ù\",\"uml\":\"¨\",\"Uuml\":\"Ü\",\"uuml\":\"ü\",\"Yacute\":\"Ý\",\"yacute\":\"ý\",\"yen\":\"¥\",\"yuml\":\"ÿ\"}","module.exports = {\"amp\":\"&\",\"apos\":\"'\",\"gt\":\">\",\"lt\":\"<\",\"quot\":\"\\\"\"}",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for + * ``` + */ +const JUPYTER_CONFIG_ID = 'jupyter-config-data'; + +/* + * The JS-mangled name for `data-jupyter-lite-root` + */ +const LITE_ROOT_ATTR = 'jupyterLiteRoot'; + +/** + * The well-known filename that contains `#jupyter-config-data` and other goodies + */ +const LITE_FILES = ['jupyter-lite.json', 'jupyter-lite.ipynb']; + +/** + * And this link tag, used like so to load a bundle after configuration. + * + * ```html + * + * ``` + */ +const LITE_MAIN = 'jupyter-lite-main'; + +/** + * The current page, with trailing server junk stripped + */ +const HERE = `${window.location.origin}${window.location.pathname.replace( + /(\/|\/index.html)?$/, + '' +)}/`; + +/** + * The computed composite configuration + */ +let _JUPYTER_CONFIG; + +/** + * A handle on the config script, must exist, and will be overridden + */ +const CONFIG_SCRIPT = document.getElementById(JUPYTER_CONFIG_ID); + +/** + * The relative path to the root of this JupyterLite + */ +const RAW_LITE_ROOT = CONFIG_SCRIPT.dataset[LITE_ROOT_ATTR]; + +/** + * The fully-resolved path to the root of this JupyterLite + */ +const FULL_LITE_ROOT = new URL(RAW_LITE_ROOT, HERE).toString(); + +/** + * Paths that are joined with baseUrl to derive full URLs + */ +const UNPREFIXED_PATHS = ['licensesUrl', 'themesUrl']; + +/* a DOM parser for reading html files */ +const parser = new DOMParser(); + +/** + * Merge `jupyter-config-data` on the current page with: + * - the contents of `.jupyter-lite#/jupyter-config-data` + * - parent documents, and their `.jupyter-lite#/jupyter-config-data` + * ...up to `jupyter-lite-root`. + */ +async function jupyterConfigData() { + /** + * Return the value if already cached for some reason + */ + if (_JUPYTER_CONFIG != null) { + return _JUPYTER_CONFIG; + } + + let parent = new URL(HERE).toString(); + let promises = [getPathConfig(HERE)]; + while (parent != FULL_LITE_ROOT) { + parent = new URL('..', parent).toString(); + promises.unshift(getPathConfig(parent)); + } + + const configs = (await Promise.all(promises)).flat(); + + let finalConfig = configs.reduce(mergeOneConfig); + + // apply any final patches + finalConfig = dedupFederatedExtensions(finalConfig); + + // hoist to cache + _JUPYTER_CONFIG = finalConfig; + + return finalConfig; +} + +/** + * Merge a new configuration on top of the existing config + */ +function mergeOneConfig(memo, config) { + for (const [k, v] of Object.entries(config)) { + switch (k) { + // this list of extension names is appended + case 'disabledExtensions': + case 'federated_extensions': + memo[k] = [...(memo[k] || []), ...v]; + break; + // these `@org/pkg:plugin` are merged at the first level of values + case 'litePluginSettings': + case 'settingsOverrides': + if (!memo[k]) { + memo[k] = {}; + } + for (const [plugin, defaults] of Object.entries(v || {})) { + memo[k][plugin] = { ...(memo[k][plugin] || {}), ...defaults }; + } + break; + default: + memo[k] = v; + } + } + return memo; +} + +function dedupFederatedExtensions(config) { + const originalList = Object.keys(config || {})['federated_extensions'] || []; + const named = {}; + for (const ext of originalList) { + named[ext.name] = ext; + } + let allExtensions = [...Object.values(named)]; + allExtensions.sort((a, b) => a.name.localeCompare(b.name)); + return config; +} + +/** + * Load jupyter config data from (this) page and merge with + * `jupyter-lite.json#jupyter-config-data` + */ +async function getPathConfig(url) { + let promises = [getPageConfig(url)]; + for (const fileName of LITE_FILES) { + promises.unshift(getLiteConfig(url, fileName)); + } + return Promise.all(promises); +} + +/** + * The current normalized location + */ +function here() { + return window.location.href.replace(/(\/|\/index.html)?$/, '/'); +} + +/** + * Maybe fetch an `index.html` in this folder, which must contain the trailing slash. + */ +export async function getPageConfig(url = null) { + let script = CONFIG_SCRIPT; + + if (url != null) { + const text = await (await window.fetch(`${url}index.html`)).text(); + const doc = parser.parseFromString(text, 'text/html'); + script = doc.getElementById(JUPYTER_CONFIG_ID); + } + return fixRelativeUrls(url, JSON.parse(script.textContent)); +} + +/** + * Fetch a jupyter-lite JSON or Notebook in this folder, which must contain the trailing slash. + */ +export async function getLiteConfig(url, fileName) { + let text = '{}'; + let config = {}; + const liteUrl = `${url || HERE}${fileName}`; + try { + text = await (await window.fetch(liteUrl)).text(); + const json = JSON.parse(text); + const liteConfig = fileName.endsWith('.ipynb') + ? json['metadata']['jupyter-lite'] + : json; + config = liteConfig[JUPYTER_CONFIG_ID] || {}; + } catch (err) { + console.warn(`failed get ${JUPYTER_CONFIG_ID} from ${liteUrl}`); + } + return fixRelativeUrls(url, config); +} + +export function fixRelativeUrls(url, config) { + let urlBase = new URL(url || here()).pathname; + for (const [k, v] of Object.entries(config)) { + config[k] = fixOneRelativeUrl(k, v, url, urlBase); + } + return config; +} + +export function fixOneRelativeUrl(key, value, url, urlBase) { + if (key === 'litePluginSettings' || key === 'settingsOverrides') { + // these are plugin id-keyed objects, fix each plugin + return Object.entries(value || {}).reduce((m, [k, v]) => { + m[k] = fixRelativeUrls(url, v); + return m; + }, {}); + } else if ( + !UNPREFIXED_PATHS.includes(key) && + key.endsWith('Url') && + value.startsWith('./') + ) { + // themesUrls, etc. are joined in code with baseUrl, leave as-is: otherwise, clean + return `${urlBase}${value.slice(2)}`; + } else if (key.endsWith('Urls') && Array.isArray(value)) { + return value.map((v) => (v.startsWith('./') ? `${urlBase}${v.slice(2)}` : v)); + } + return value; +} + +/** + * Update with the as-configured favicon + */ +function addFavicon(config) { + const favicon = document.createElement('link'); + favicon.rel = 'icon'; + favicon.type = 'image/x-icon'; + favicon.href = config.faviconUrl; + document.head.appendChild(favicon); +} + +/** + * The main entry point. + */ +async function main() { + const config = await jupyterConfigData(); + if (config.baseUrl === new URL(here()).pathname) { + window.location.href = config.appUrl.replace(/\/?$/, '/index.html'); + return; + } + // rewrite the config + CONFIG_SCRIPT.textContent = JSON.stringify(config, null, 2); + addFavicon(config); + const preloader = document.getElementById(LITE_MAIN); + const bundle = document.createElement('script'); + bundle.src = preloader.href; + bundle.main = preloader.attributes.main; + document.head.appendChild(bundle); +} + +/** + * TODO: consider better pattern for invocation. + */ +await main(); diff --git a/_static/doc/workspaces/index.html b/_static/doc/workspaces/index.html new file mode 100644 index 0000000..9849b72 --- /dev/null +++ b/_static/doc/workspaces/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/install.json b/_static/extensions/@jupyter-widgets/jupyterlab-manager/install.json new file mode 100644 index 0000000..40c68e5 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/install.json @@ -0,0 +1,5 @@ +{ + "packageManager": "python", + "packageName": "jupyterlab_widgets", + "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package jupyterlab_widgets" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/package.json b/_static/extensions/@jupyter-widgets/jupyterlab-manager/package.json new file mode 100644 index 0000000..f341db6 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/package.json @@ -0,0 +1,101 @@ +{ + "name": "@jupyter-widgets/jupyterlab-manager", + "version": "5.0.8", + "description": "The JupyterLab extension providing Jupyter widgets.", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab notebook", + "jupyterlab-extension" + ], + "homepage": "https://github.com/jupyter-widgets/ipywidgets", + "bugs": { + "url": "https://github.com/jupyter-widgets/ipywidgets/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyter-widgets/ipywidgets" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/*.css" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "dist/*.js", + "schema/*.json" + ], + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc -b", + "build:prod": "jlpm build:lib && jlpm build:labextension", + "clean": "jlpm clean:lib", + "clean:all": "jlpm clean:lib && jlpm clean:labextension", + "clean:labextension": "rimraf labextension", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "eslint": "eslint . --ext .ts,.tsx --fix", + "eslint:check": "eslint . --ext .ts,.tsx", + "install:extension": "jlpm build", + "prepare": "jlpm clean && jlpm build:prod", + "watch": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyter-widgets/base": "^6.0.5", + "@jupyter-widgets/base-manager": "^1.0.6", + "@jupyter-widgets/controls": "^5.0.6", + "@jupyter-widgets/output": "^6.0.5", + "@jupyterlab/application": "^3.0.0 || ^4.0.0", + "@jupyterlab/docregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/logconsole": "^3.0.0 || ^4.0.0", + "@jupyterlab/mainmenu": "^3.0.0 || ^4.0.0", + "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0", + "@jupyterlab/notebook": "^3.0.0 || ^4.0.0", + "@jupyterlab/outputarea": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime-interfaces": "^3.0.0 || ^4.0.0", + "@jupyterlab/services": "^6.0.0 || ^7.0.0", + "@jupyterlab/settingregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/translation": "^3.0.0 || ^4.0.0", + "@lumino/algorithm": "^1.11.1 || ^2.0.0", + "@lumino/coreutils": "^1.11.1 || ^2.1", + "@lumino/disposable": "^1.10.1 || ^2.1", + "@lumino/properties": "^1.8.1 || ^2.1", + "@lumino/signaling": "^1.10.1 || ^2.1", + "@lumino/widgets": "^1.30.0 || ^2.1", + "@types/backbone": "1.4.14", + "jquery": "^3.1.1", + "semver": "^7.3.5" + }, + "devDependencies": { + "@jupyterlab/builder": "^3.0.0 || ^4.0.0", + "@jupyterlab/cells": "^3.0.0 || ^4.0.0", + "@types/jquery": "^3.5.16", + "@types/semver": "^7.3.6", + "@typescript-eslint/eslint-plugin": "^5.8.0", + "@typescript-eslint/parser": "^5.8.0", + "eslint": "^8.5.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.3.2", + "rimraf": "^3.0.2", + "source-map-loader": "^4.0.1", + "typescript": "~4.9.4" + }, + "jupyterlab": { + "extension": true, + "outputDir": "labextension", + "schemaDir": "./schema", + "_build": { + "load": "static/remoteEntry.98b8a827bfc5f86e95d2.js", + "extension": "./extension" + } + }, + "gitHead": "5e86a96c0138b837a1b0e609f02dd79de71f5bd6" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/package.json.orig b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/package.json.orig new file mode 100644 index 0000000..0a17f22 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/package.json.orig @@ -0,0 +1,97 @@ +{ + "name": "@jupyter-widgets/jupyterlab-manager", + "version": "5.0.8", + "description": "The JupyterLab extension providing Jupyter widgets.", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab notebook", + "jupyterlab-extension" + ], + "homepage": "https://github.com/jupyter-widgets/ipywidgets", + "bugs": { + "url": "https://github.com/jupyter-widgets/ipywidgets/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyter-widgets/ipywidgets" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/*.css" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "dist/*.js", + "schema/*.json" + ], + "scripts": { + "build": "jlpm build:lib && jlpm build:labextension:dev", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc -b", + "build:prod": "jlpm build:lib && jlpm build:labextension", + "clean": "jlpm clean:lib", + "clean:all": "jlpm clean:lib && jlpm clean:labextension", + "clean:labextension": "rimraf labextension", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo", + "eslint": "eslint . --ext .ts,.tsx --fix", + "eslint:check": "eslint . --ext .ts,.tsx", + "install:extension": "jlpm build", + "prepare": "jlpm clean && jlpm build:prod", + "watch": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyter-widgets/base": "^6.0.5", + "@jupyter-widgets/base-manager": "^1.0.6", + "@jupyter-widgets/controls": "^5.0.6", + "@jupyter-widgets/output": "^6.0.5", + "@jupyterlab/application": "^3.0.0 || ^4.0.0", + "@jupyterlab/docregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/logconsole": "^3.0.0 || ^4.0.0", + "@jupyterlab/mainmenu": "^3.0.0 || ^4.0.0", + "@jupyterlab/nbformat": "^3.0.0 || ^4.0.0", + "@jupyterlab/notebook": "^3.0.0 || ^4.0.0", + "@jupyterlab/outputarea": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime": "^3.0.0 || ^4.0.0", + "@jupyterlab/rendermime-interfaces": "^3.0.0 || ^4.0.0", + "@jupyterlab/services": "^6.0.0 || ^7.0.0", + "@jupyterlab/settingregistry": "^3.0.0 || ^4.0.0", + "@jupyterlab/translation": "^3.0.0 || ^4.0.0", + "@lumino/algorithm": "^1.11.1 || ^2.0.0", + "@lumino/coreutils": "^1.11.1 || ^2.1", + "@lumino/disposable": "^1.10.1 || ^2.1", + "@lumino/properties": "^1.8.1 || ^2.1", + "@lumino/signaling": "^1.10.1 || ^2.1", + "@lumino/widgets": "^1.30.0 || ^2.1", + "@types/backbone": "1.4.14", + "jquery": "^3.1.1", + "semver": "^7.3.5" + }, + "devDependencies": { + "@jupyterlab/builder": "^3.0.0 || ^4.0.0", + "@jupyterlab/cells": "^3.0.0 || ^4.0.0", + "@types/jquery": "^3.5.16", + "@types/semver": "^7.3.6", + "@typescript-eslint/eslint-plugin": "^5.8.0", + "@typescript-eslint/parser": "^5.8.0", + "eslint": "^8.5.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.3.2", + "rimraf": "^3.0.2", + "source-map-loader": "^4.0.1", + "typescript": "~4.9.4" + }, + "jupyterlab": { + "extension": true, + "outputDir": "labextension", + "schemaDir": "./schema" + }, + "gitHead": "5e86a96c0138b837a1b0e609f02dd79de71f5bd6" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/plugin.json b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/plugin.json new file mode 100644 index 0000000..1c45d80 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/schemas/@jupyter-widgets/jupyterlab-manager/plugin.json @@ -0,0 +1,14 @@ +{ + "title": "Jupyter Widgets", + "description": "Jupyter widgets settings.", + "additionalProperties": false, + "properties": { + "saveState": { + "type": "boolean", + "title": "Save Jupyter widget state in notebooks", + "description": "Automatically save Jupyter widget state when a notebook is saved.", + "default": false + } + }, + "type": "object" +} diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js new file mode 100644 index 0000000..3f44966 --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js @@ -0,0 +1,2 @@ +/*! For license information please see 113.6113d19fca7ff66ccc66.js.LICENSE.txt */ +(self.webpackChunk_jupyter_widgets_jupyterlab_manager=self.webpackChunk_jupyter_widgets_jupyterlab_manager||[]).push([[113],{5766:(e,t)=>{"use strict";t.b$=function(e){var t,r,s=function(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}(e),o=s[0],a=s[1],l=new n(function(e,t,r){return 3*(t+r)/4-r}(0,o,a)),c=0,u=a>0?o-4:o;for(r=0;r>16&255,l[c++]=t>>8&255,l[c++]=255&t;return 2===a&&(t=i[e.charCodeAt(r)]<<2|i[e.charCodeAt(r+1)]>>4,l[c++]=255&t),1===a&&(t=i[e.charCodeAt(r)]<<10|i[e.charCodeAt(r+1)]<<4|i[e.charCodeAt(r+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t),l},t.JQ=function(e){for(var t,i=e.length,n=i%3,s=[],o=16383,l=0,c=i-n;lc?c:l+o));return 1===n?(t=e[i-1],s.push(r[t>>2]+r[t<<4&63]+"==")):2===n&&(t=(e[i-2]<<8)+e[i-1],s.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),s.join("")};for(var r=[],i=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)r[o]=s[o],i[s.charCodeAt(o)]=o;function a(e,t,i){for(var n,s,o=[],a=t;a>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},9714:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((r=e,Array.isArray(r)?[]:{}),e,t):e;var r}function n(e,t,r){return e.concat(t).map((function(e){return i(e,r)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,r,l){(l=l||{}).arrayMerge=l.arrayMerge||n,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=i;var c=Array.isArray(r);return c===Array.isArray(e)?c?l.arrayMerge(e,r,l):function(e,t,r){var n={};return r.isMergeableObject(e)&&s(e).forEach((function(t){n[t]=i(e[t],r)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&r.isMergeableObject(t[s])?n[s]=function(e,t){if(!t.customMerge)return a;var r=t.customMerge(e);return"function"==typeof r?r:a}(s,r)(e[s],t[s],r):n[s]=i(t[s],r))})),n}(e,r,l):i(r,l)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return a(e,r,t)}),{})};var l=a;e.exports=l},6594:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(e){return[e.toLowerCase(),e]}))),t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(e){return[e.toLowerCase(),e]})))},606:function(e,t,r){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,r=1,i=arguments.length;r");case a.Comment:return"\x3c!--".concat(e.data,"--\x3e");case a.CDATA:return function(e){return"")}(e);case a.Script:case a.Style:case a.Tag:return function(e,t){var r;"foreign"===t.xmlMode&&(e.name=null!==(r=c.elementNames.get(e.name))&&void 0!==r?r:e.name,e.parent&&m.has(e.parent.name)&&(t=i(i({},t),{xmlMode:!1}))),!t.xmlMode&&g.has(e.name)&&(t=i(i({},t),{xmlMode:"foreign"}));var n="<".concat(e.name),s=function(e,t){var r;if(e){var i=!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)?h:t.xmlMode||"utf8"!==t.encodeEntities?l.encodeXML:l.escapeAttribute;return Object.keys(e).map((function(r){var n,s,o=null!==(n=e[r])&&void 0!==n?n:"";return"foreign"===t.xmlMode&&(r=null!==(s=c.attributeNames.get(r))&&void 0!==s?s:r),t.emptyAttrs||t.xmlMode||""!==o?"".concat(r,'="').concat(i(o),'"'):r})).join(" ")}}(e.attribs,t);return s&&(n+=" ".concat(s)),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&p.has(e.name))?(t.xmlMode||(n+=" "),n+="/>"):(n+=">",e.children.length>0&&(n+=d(e.children,t)),!t.xmlMode&&p.has(e.name)||(n+=""))),n}(e,t);case a.Text:return function(e,t){var r,i=e.data||"";return!1===(null!==(r=t.encodeEntities)&&void 0!==r?r:t.decodeEntities)||!t.xmlMode&&e.parent&&u.has(e.parent.name)||(i=t.xmlMode||"utf8"!==t.encodeEntities?(0,l.encodeXML)(i):(0,l.escapeText)(i)),i}(e,t)}}t.render=d,t.default=d;var m=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),g=new Set(["svg","math"])},4821:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(r=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===r.Tag||e.type===r.Script||e.type===r.Style},t.Root=r.Root,t.Text=r.Text,t.Directive=r.Directive,t.Comment=r.Comment,t.Script=r.Script,t.Style=r.Style,t.Tag=r.Tag,t.CDATA=r.CDATA,t.Doctype=r.Doctype},9959:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var s=r(4821),o=r(5538);n(r(5538),t);var a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,r){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(r=t,t=a),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:a,this.elementCB=null!=r?r:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var r=this.options.xmlMode?s.ElementType.Tag:void 0,i=new o.Element(e,t,void 0,r);this.addNode(i),this.tagStack.push(i)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===s.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var r=new o.Text(e);this.addNode(r),this.lastNode=r}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===s.ElementType.Comment)this.lastNode.data+=e;else{var t=new o.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new o.Text(""),t=new o.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var r=new o.ProcessingInstruction(e,t);this.addNode(r)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],r=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),r&&(e.prev=r,r.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},5538:function(e,t,r){"use strict";var i,n=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,r=1,i=arguments.length;r0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(a);t.NodeWithChildren=p;var d=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.CDATA,t}return n(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(p);t.CDATA=d;var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Root,t}return n(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(p);t.Document=f;var m=function(e){function t(t,r,i,n){void 0===i&&(i=[]),void 0===n&&(n="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var s=e.call(this,i)||this;return s.name=t,s.attribs=r,s.type=n,s}return n(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var r,i;return{name:t,value:e.attribs[t],namespace:null===(r=e["x-attribsNamespace"])||void 0===r?void 0:r[t],prefix:null===(i=e["x-attribsPrefix"])||void 0===i?void 0:i[t]}}))},enumerable:!1,configurable:!0}),t}(p);function g(e){return(0,o.isTag)(e)}function b(e){return e.type===o.ElementType.CDATA}function y(e){return e.type===o.ElementType.Text}function v(e){return e.type===o.ElementType.Comment}function w(e){return e.type===o.ElementType.Directive}function x(e){return e.type===o.ElementType.Root}function S(e,t){var r;if(void 0===t&&(t=!1),y(e))r=new c(e.data);else if(v(e))r=new u(e.data);else if(g(e)){var i=t?T(e.children):[],n=new m(e.name,s({},e.attribs),i);i.forEach((function(e){return e.parent=n})),null!=e.namespace&&(n.namespace=e.namespace),e["x-attribsNamespace"]&&(n["x-attribsNamespace"]=s({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(n["x-attribsPrefix"]=s({},e["x-attribsPrefix"])),r=n}else if(b(e)){i=t?T(e.children):[];var o=new d(i);i.forEach((function(e){return e.parent=o})),r=o}else if(x(e)){i=t?T(e.children):[];var a=new f(i);i.forEach((function(e){return e.parent=a})),e["x-mode"]&&(a["x-mode"]=e["x-mode"]),r=a}else{if(!w(e))throw new Error("Not implemented yet: ".concat(e.type));var l=new h(e.name,e.data);null!=e["x-name"]&&(l["x-name"]=e["x-name"],l["x-publicId"]=e["x-publicId"],l["x-systemId"]=e["x-systemId"]),r=l}return r.startIndex=e.startIndex,r.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(r.sourceCodeLocation=e.sourceCodeLocation),r}function T(e){for(var t=e.map((function(e){return S(e,!0)})),r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFeed=void 0;var i=r(7559),n=r(5310);t.getFeed=function(e){var t=l(h,e);return t?"feed"===t.name?function(e){var t,r=e.children,i={type:"atom",items:(0,n.getElementsByTagName)("entry",r).map((function(e){var t,r=e.children,i={media:a(r)};u(i,"id","id",r),u(i,"title","title",r);var n=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;n&&(i.link=n);var s=c("summary",r)||c("content",r);s&&(i.description=s);var o=c("updated",r);return o&&(i.pubDate=new Date(o)),i}))};u(i,"id","id",r),u(i,"title","title",r);var s=null===(t=l("link",r))||void 0===t?void 0:t.attribs.href;s&&(i.link=s),u(i,"description","subtitle",r);var o=c("updated",r);return o&&(i.updated=new Date(o)),u(i,"author","email",r,!0),i}(t):function(e){var t,r,i=null!==(r=null===(t=l("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==r?r:[],s={type:e.name.substr(0,3),id:"",items:(0,n.getElementsByTagName)("item",e.children).map((function(e){var t=e.children,r={media:a(t)};u(r,"id","guid",t),u(r,"title","title",t),u(r,"link","link",t),u(r,"description","description",t);var i=c("pubDate",t)||c("dc:date",t);return i&&(r.pubDate=new Date(i)),r}))};u(s,"title","title",i),u(s,"link","link",i),u(s,"description","description",i);var o=c("lastBuildDate",i);return o&&(s.updated=new Date(o)),u(s,"author","managingEditor",i,!0),s}(t):null};var s=["url","type","lang"],o=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function a(e){return(0,n.getElementsByTagName)("media:content",e).map((function(e){for(var t=e.attribs,r={medium:t.medium,isDefault:!!t.isDefault},i=0,n=s;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uniqueSort=t.compareDocumentPosition=t.DocumentPosition=t.removeSubsets=void 0;var i,n=r(9959);function s(e,t){var r=[],s=[];if(e===t)return 0;for(var o=(0,n.hasChildren)(e)?e:e.parent;o;)r.unshift(o),o=o.parent;for(o=(0,n.hasChildren)(t)?t:t.parent;o;)s.unshift(o),o=o.parent;for(var a=Math.min(r.length,s.length),l=0;lu.indexOf(p)?c===t?i.FOLLOWING|i.CONTAINED_BY:i.FOLLOWING:c===e?i.PRECEDING|i.CONTAINS:i.PRECEDING}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var r=e[t];if(t>0&&e.lastIndexOf(r,t-1)>=0)e.splice(t,1);else for(var i=r.parent;i;i=i.parent)if(e.includes(i)){e.splice(t,1);break}}return e},function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(i=t.DocumentPosition||(t.DocumentPosition={})),t.compareDocumentPosition=s,t.uniqueSort=function(e){return(e=e.filter((function(e,t,r){return!r.includes(e,t+1)}))).sort((function(e,t){var r=s(e,t);return r&i.PRECEDING?-1:r&i.FOLLOWING?1:0})),e}},4622:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,n(r(7559),t),n(r(6304),t),n(r(7427),t),n(r(7853),t),n(r(5310),t),n(r(2880),t),n(r(7065),t);var s=r(9959);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return s.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return s.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return s.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return s.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return s.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return s.hasChildren}})},5310:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var i=r(9959),n=r(7853),s={tag_name:function(e){return"function"==typeof e?function(t){return(0,i.isTag)(t)&&e(t.name)}:"*"===e?i.isTag:function(t){return(0,i.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,i.isText)(t)&&e(t.data)}:function(t){return(0,i.isText)(t)&&t.data===e}}};function o(e,t){return"function"==typeof t?function(r){return(0,i.isTag)(r)&&t(r.attribs[e])}:function(r){return(0,i.isTag)(r)&&r.attribs[e]===t}}function a(e,t){return function(r){return e(r)||t(r)}}function l(e){var t=Object.keys(e).map((function(t){var r=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](r):o(t,r)}));return 0===t.length?null:t.reduce(a)}t.testElement=function(e,t){var r=l(e);return!r||r(t)},t.getElements=function(e,t,r,i){void 0===i&&(i=1/0);var s=l(e);return s?(0,n.filter)(s,t,r,i):[]},t.getElementById=function(e,t,r){return void 0===r&&(r=!0),Array.isArray(t)||(t=[t]),(0,n.findOne)(o("id",e),t,r)},t.getElementsByTagName=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),(0,n.filter)(s.tag_name(e),t,r,i)},t.getElementsByTagType=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),(0,n.filter)(s.tag_type(e),t,r,i)}},7427:(e,t)=>{"use strict";function r(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,r=t.lastIndexOf(e);r>=0&&t.splice(r,1)}e.next=null,e.prev=null,e.parent=null}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=r,t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var i=t.next=e.next;i&&(i.prev=t);var n=t.parent=e.parent;if(n){var s=n.children;s[s.lastIndexOf(e)]=t,e.parent=null}},t.appendChild=function(e,t){if(r(t),t.next=null,t.parent=e,e.children.push(t)>1){var i=e.children[e.children.length-2];i.next=t,t.prev=i}else t.prev=null},t.append=function(e,t){r(t);var i=e.parent,n=e.next;if(t.next=n,t.prev=e,e.next=t,t.parent=i,n){if(n.prev=t,i){var s=i.children;s.splice(s.lastIndexOf(n),0,t)}}else i&&i.children.push(t)},t.prependChild=function(e,t){if(r(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var i=e.children[1];i.prev=t,t.next=i}else t.next=null},t.prepend=function(e,t){r(t);var i=e.parent;if(i){var n=i.children;n.splice(n.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=i,t.prev=e.prev,t.next=e,e.prev=t}},7853:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var i=r(9959);function n(e,t,r,n){for(var s=[],o=[t],a=[0];;)if(a[0]>=o[0].length){if(1===a.length)return s;o.shift(),a.shift()}else{var l=o[0][a[0]++];if(e(l)&&(s.push(l),--n<=0))return s;r&&(0,i.hasChildren)(l)&&l.children.length>0&&(a.unshift(0),o.unshift(l.children))}}t.filter=function(e,t,r,i){return void 0===r&&(r=!0),void 0===i&&(i=1/0),n(e,Array.isArray(t)?t:[t],r,i)},t.find=n,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,r,n){void 0===n&&(n=!0);for(var s=null,o=0;o0&&(s=e(t,a.children,!0)))}return s},t.existsOne=function e(t,r){return r.some((function(r){return(0,i.isTag)(r)&&(t(r)||e(t,r.children))}))},t.findAll=function(e,t){for(var r=[],n=[t],s=[0];;)if(s[0]>=n[0].length){if(1===n.length)return r;n.shift(),s.shift()}else{var o=n[0][s[0]++];(0,i.isTag)(o)&&(e(o)&&r.push(o),o.children.length>0&&(s.unshift(0),n.unshift(o.children)))}}},7559:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var n=r(9959),s=i(r(606)),o=r(4821);function a(e,t){return(0,s.default)(e,t)}t.getOuterHTML=a,t.getInnerHTML=function(e,t){return(0,n.hasChildren)(e)?e.children.map((function(e){return a(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,n.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,n.isCDATA)(t)?e(t.children):(0,n.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,n.hasChildren)(t)&&!(0,n.isComment)(t)?e(t.children):(0,n.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,n.hasChildren)(t)&&(t.type===o.ElementType.Tag||(0,n.isCDATA)(t))?e(t.children):(0,n.isText)(t)?t.data:""}},6304:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var i=r(9959);function n(e){return(0,i.hasChildren)(e)?e.children:[]}function s(e){return e.parent||null}t.getChildren=n,t.getParent=s,t.getSiblings=function(e){var t=s(e);if(null!=t)return n(t);for(var r=[e],i=e.prev,o=e.next;null!=i;)r.unshift(i),i=i.prev;for(;null!=o;)r.push(o),o=o.next;return r},t.getAttributeValue=function(e,t){var r;return null===(r=e.attribs)||void 0===r?void 0:r[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,i.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,i.isTag)(t);)t=t.prev;return t}},3094:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return n(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTMLAttribute=t.decodeHTML=t.determineBranch=t.EntityDecoder=t.DecodingMode=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var a=o(r(5537));t.htmlDecodeTree=a.default;var l=o(r(7424));t.xmlDecodeTree=l.default;var c=s(r(105));t.decodeCodePoint=c.default;var u,h,p,d,f=r(105);function m(e){return e>=u.ZERO&&e<=u.NINE}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return f.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return f.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(u||(u={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(h=t.BinTrieFlags||(t.BinTrieFlags={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(p||(p={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(d=t.DecodingMode||(t.DecodingMode={}));var g=function(){function e(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=p.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=d.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=p.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case p.EntityStart:return e.charCodeAt(t)===u.NUM?(this.state=p.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=p.NamedEntity,this.stateNamedEntity(e,t));case p.NumericStart:return this.stateNumericStart(e,t);case p.NumericDecimal:return this.stateNumericDecimal(e,t);case p.NumericHex:return this.stateNumericHex(e,t);case p.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===u.LOWER_X?(this.state=p.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=p.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,r,i){if(t!==r){var n=r-t;this.result=this.result*Math.pow(i,n)+parseInt(e.substr(t,n),i),this.consumed+=n}},e.prototype.stateNumericHex=function(e,t){for(var r,i=t;t=u.UPPER_A&&r<=u.UPPER_F||r>=u.LOWER_A&&r<=u.LOWER_F)))return this.addToNumericResult(e,i,t,16),this.emitNumericEntity(n,3);t+=1}return this.addToNumericResult(e,i,t,16),-1},e.prototype.stateNumericDecimal=function(e,t){for(var r=t;t>14;t=u.UPPER_A&&e<=u.UPPER_Z||e>=u.LOWER_A&&e<=u.LOWER_Z||m(e)}(o)))?0:this.emitNotTerminatedNamedEntity();if(0!=(n=((i=r[this.treeIndex])&h.VALUE_LENGTH)>>14)){if(s===u.SEMI)return this.emitNamedEntityData(this.treeIndex,n,this.consumed+this.excess);this.decodeMode!==d.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}var o;return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this.result,r=(this.decodeTree[t]&h.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,r){var i=this.decodeTree;return this.emitCodePoint(1===t?i[e]&~h.VALUE_LENGTH:i[e+1],r),3===t&&this.emitCodePoint(i[e+2],r),r},e.prototype.end=function(){var e;switch(this.state){case p.NamedEntity:return 0===this.result||this.decodeMode===d.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case p.NumericDecimal:return this.emitNumericEntity(0,2);case p.NumericHex:return this.emitNumericEntity(0,3);case p.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case p.EntityStart:return 0}},e}();function b(e){var t="",r=new g(e,(function(e){return t+=(0,c.fromCodePoint)(e)}));return function(e,i){for(var n=0,s=0;(s=e.indexOf("&",s))>=0;){t+=e.slice(n,s),r.startEntity(i);var o=r.write(e,s+1);if(o<0){n=s+r.end();break}n=s+o,s=0===o?n+1:n}var a=t+e.slice(n);return t="",a}}function y(e,t,r,i){var n=(t&h.BRANCH_LENGTH)>>7,s=t&h.JUMP_TABLE;if(0===n)return 0!==s&&i===s?r:-1;if(s){var o=i-s;return o<0||o>=n?-1:e[r+o]-1}for(var a=r,l=a+n-1;a<=l;){var c=a+l>>>1,u=e[c];if(ui))return e[c+n];l=c-1}}return-1}t.EntityDecoder=g,t.determineBranch=y;var v=b(a.default),w=b(l.default);t.decodeHTML=function(e,t){return void 0===t&&(t=d.Legacy),v(e,t)},t.decodeHTMLAttribute=function(e){return v(e,d.Attribute)},t.decodeHTMLStrict=function(e){return v(e,d.Strict)},t.decodeXML=function(e){return w(e,d.Strict)}},105:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var i=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function n(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=i.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(r=String.fromCodePoint)&&void 0!==r?r:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=n,t.default=function(e){return(0,t.fromCodePoint)(n(e))}},1029:function(e,t,r){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.encodeNonAsciiHTML=t.encodeHTML=void 0;var n=i(r(6437)),s=r(9970),o=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function a(e,t){for(var r,i="",o=0;null!==(r=e.exec(t));){var a=r.index;i+=t.substring(o,a);var l=t.charCodeAt(a),c=n.default.get(l);if("object"==typeof c){if(a+1{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.getCodePoint=t.xmlReplacer=void 0,t.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var r=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function i(e){for(var i,n="",s=0;null!==(i=t.xmlReplacer.exec(e));){var o=i.index,a=e.charCodeAt(o),l=r.get(a);void 0!==l?(n+=e.substring(s,o)+l,s=o+1):(n+="".concat(e.substring(s,o),"&#x").concat((0,t.getCodePoint)(e,o).toString(16),";"),s=t.xmlReplacer.lastIndex+=Number(55296==(64512&a)))}return n+e.substr(s)}function n(e,t){return function(r){for(var i,n=0,s="";i=e.exec(r);)n!==i.index&&(s+=r.substring(n,i.index)),s+=t.get(i[0].charCodeAt(0)),n=i.index+1;return s+r.substring(n)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=i,t.escape=i,t.escapeUTF8=n(/[&<>'"]/g,r),t.escapeAttribute=n(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=n(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},5537:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(e){return e.charCodeAt(0)})))},7424:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(e){return e.charCodeAt(0)})))},6437:(e,t)=>{"use strict";function r(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLAttribute=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.DecodingMode=t.EntityDecoder=t.encodeHTML5=t.encodeHTML4=t.encodeNonAsciiHTML=t.encodeHTML=t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.encode=t.decodeStrict=t.decode=t.EncodingMode=t.EntityLevel=void 0;var i,n,s=r(3094),o=r(1029),a=r(9970);function l(e,t){if(void 0===t&&(t=i.XML),("number"==typeof t?t:t.level)===i.HTML){var r="object"==typeof t?t.mode:void 0;return(0,s.decodeHTML)(e,r)}return(0,s.decodeXML)(e)}!function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"}(i=t.EntityLevel||(t.EntityLevel={})),function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"}(n=t.EncodingMode||(t.EncodingMode={})),t.decode=l,t.decodeStrict=function(e,t){var r;void 0===t&&(t=i.XML);var n="number"==typeof t?{level:t}:t;return null!==(r=n.mode)&&void 0!==r||(n.mode=s.DecodingMode.Strict),l(e,n)},t.encode=function(e,t){void 0===t&&(t=i.XML);var r="number"==typeof t?{level:t}:t;return r.mode===n.UTF8?(0,a.escapeUTF8)(e):r.mode===n.Attribute?(0,a.escapeAttribute)(e):r.mode===n.Text?(0,a.escapeText)(e):r.level===i.HTML?r.mode===n.ASCII?(0,o.encodeNonAsciiHTML)(e):(0,o.encodeHTML)(e):(0,a.encodeXML)(e)};var c=r(9970);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return c.encodeXML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return c.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return c.escapeUTF8}}),Object.defineProperty(t,"escapeAttribute",{enumerable:!0,get:function(){return c.escapeAttribute}}),Object.defineProperty(t,"escapeText",{enumerable:!0,get:function(){return c.escapeText}});var u=r(1029);Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return u.encodeNonAsciiHTML}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return u.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return u.encodeHTML}});var h=r(3094);Object.defineProperty(t,"EntityDecoder",{enumerable:!0,get:function(){return h.EntityDecoder}}),Object.defineProperty(t,"DecodingMode",{enumerable:!0,get:function(){return h.DecodingMode}}),Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return h.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return h.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return h.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTMLAttribute",{enumerable:!0,get:function(){return h.decodeHTMLAttribute}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return h.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return h.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return h.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return h.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return h.decodeXML}})},8102:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},5233:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,n)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return n(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var o=s(r(9636)),a=r(3094),l=new Set(["input","option","optgroup","select","button","datalist","textarea"]),c=new Set(["p"]),u=new Set(["thead","tbody"]),h=new Set(["dd","dt"]),p=new Set(["rt","rp"]),d=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",c],["h1",c],["h2",c],["h3",c],["h4",c],["h5",c],["h6",c],["select",l],["input",l],["output",l],["button",l],["datalist",l],["textarea",l],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",h],["dt",h],["address",c],["article",c],["aside",c],["blockquote",c],["details",c],["div",c],["dl",c],["fieldset",c],["figcaption",c],["figure",c],["footer",c],["form",c],["header",c],["hr",c],["main",c],["nav",c],["ol",c],["pre",c],["section",c],["table",c],["ul",c],["rt",p],["rp",p],["tbody",u],["tfoot",u]]),f=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),m=new Set(["math","svg"]),g=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),b=/\s|\//,y=function(){function e(e,t){var r,i,n,s,a;void 0===t&&(t={}),this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=null!=e?e:{},this.lowerCaseTagNames=null!==(r=t.lowerCaseTags)&&void 0!==r?r:!t.xmlMode,this.lowerCaseAttributeNames=null!==(i=t.lowerCaseAttributeNames)&&void 0!==i?i:!t.xmlMode,this.tokenizer=new(null!==(n=t.Tokenizer)&&void 0!==n?n:o.default)(this.options,this),null===(a=(s=this.cbs).onparserinit)||void 0===a||a.call(s,this)}return e.prototype.ontext=function(e,t){var r,i,n=this.getSlice(e,t);this.endIndex=t-1,null===(i=(r=this.cbs).ontext)||void 0===i||i.call(r,n),this.startIndex=t},e.prototype.ontextentity=function(e){var t,r,i=this.tokenizer.getSectionStart();this.endIndex=i-1,null===(r=(t=this.cbs).ontext)||void 0===r||r.call(t,(0,a.fromCodePoint)(e)),this.startIndex=i},e.prototype.isVoidElement=function(e){return!this.options.xmlMode&&f.has(e)},e.prototype.onopentagname=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);this.lowerCaseTagNames&&(r=r.toLowerCase()),this.emitOpenTag(r)},e.prototype.emitOpenTag=function(e){var t,r,i,n;this.openTagStart=this.startIndex,this.tagname=e;var s=!this.options.xmlMode&&d.get(e);if(s)for(;this.stack.length>0&&s.has(this.stack[this.stack.length-1]);){var o=this.stack.pop();null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,o,!0)}this.isVoidElement(e)||(this.stack.push(e),m.has(e)?this.foreignContext.push(!0):g.has(e)&&this.foreignContext.push(!1)),null===(n=(i=this.cbs).onopentagname)||void 0===n||n.call(i,e),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(e){var t,r;this.startIndex=this.openTagStart,this.attribs&&(null===(r=(t=this.cbs).onopentag)||void 0===r||r.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1},e.prototype.onclosetag=function(e,t){var r,i,n,s,o,a;this.endIndex=t;var l=this.getSlice(e,t);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(m.has(l)||g.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))this.options.xmlMode||"br"!==l||(null===(i=(r=this.cbs).onopentagname)||void 0===i||i.call(r,"br"),null===(s=(n=this.cbs).onopentag)||void 0===s||s.call(n,"br",{},!0),null===(a=(o=this.cbs).onclosetag)||void 0===a||a.call(o,"br",!1));else{var c=this.stack.lastIndexOf(l);if(-1!==c)if(this.cbs.onclosetag)for(var u=this.stack.length-c;u--;)this.cbs.onclosetag(this.stack.pop(),0!==u);else this.stack.length=c;else this.options.xmlMode||"p"!==l||(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1},e.prototype.onselfclosingtag=function(e){this.endIndex=e,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)},e.prototype.closeCurrentTag=function(e){var t,r,i=this.tagname;this.endOpenTag(e),this.stack[this.stack.length-1]===i&&(null===(r=(t=this.cbs).onclosetag)||void 0===r||r.call(t,i,!e),this.stack.pop())},e.prototype.onattribname=function(e,t){this.startIndex=e;var r=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r},e.prototype.onattribdata=function(e,t){this.attribvalue+=this.getSlice(e,t)},e.prototype.onattribentity=function(e){this.attribvalue+=(0,a.fromCodePoint)(e)},e.prototype.onattribend=function(e,t){var r,i;this.endIndex=t,null===(i=(r=this.cbs).onattribute)||void 0===i||i.call(r,this.attribname,this.attribvalue,e===o.QuoteType.Double?'"':e===o.QuoteType.Single?"'":e===o.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(e){var t=e.search(b),r=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r},e.prototype.ondeclaration=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(r);this.cbs.onprocessinginstruction("!".concat(i),"!".concat(r))}this.startIndex=t+1},e.prototype.onprocessinginstruction=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(r);this.cbs.onprocessinginstruction("?".concat(i),"?".concat(r))}this.startIndex=t+1},e.prototype.oncomment=function(e,t,r){var i,n,s,o;this.endIndex=t,null===(n=(i=this.cbs).oncomment)||void 0===n||n.call(i,this.getSlice(e,t-r)),null===(o=(s=this.cbs).oncommentend)||void 0===o||o.call(s),this.startIndex=t+1},e.prototype.oncdata=function(e,t,r){var i,n,s,o,a,l,c,u,h,p;this.endIndex=t;var d=this.getSlice(e,t-r);this.options.xmlMode||this.options.recognizeCDATA?(null===(n=(i=this.cbs).oncdatastart)||void 0===n||n.call(i),null===(o=(s=this.cbs).ontext)||void 0===o||o.call(s,d),null===(l=(a=this.cbs).oncdataend)||void 0===l||l.call(a)):(null===(u=(c=this.cbs).oncomment)||void 0===u||u.call(c,"[CDATA[".concat(d,"]]")),null===(p=(h=this.cbs).oncommentend)||void 0===p||p.call(h)),this.startIndex=t+1},e.prototype.onend=function(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var r=this.stack.length;r>0;this.cbs.onclosetag(this.stack[--r],!0));}null===(t=(e=this.cbs).onend)||void 0===t||t.call(e)},e.prototype.reset=function(){var e,t,r,i;null===(t=(e=this.cbs).onreset)||void 0===t||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,null===(i=(r=this.cbs).onparserinit)||void 0===i||i.call(r,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(e){this.reset(),this.end(e)},e.prototype.getSlice=function(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var r=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,t-this.bufferOffset);return r},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))},e.prototype.end=function(e){var t,r;this.ended?null===(r=(t=this.cbs).onerror)||void 0===r||r.call(t,new Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuoteType=void 0;var i,n,s,o=r(3094);function a(e){return e===i.Space||e===i.NewLine||e===i.Tab||e===i.FormFeed||e===i.CarriageReturn}function l(e){return e===i.Slash||e===i.Gt||a(e)}function c(e){return e>=i.Zero&&e<=i.Nine}!function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Number=35]="Number",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"}(i||(i={})),function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"}(n||(n={})),function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"}(s=t.QuoteType||(t.QuoteType={}));var u={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},h=function(){function e(e,t){var r=e.xmlMode,i=void 0!==r&&r,s=e.decodeEntities,a=void 0===s||s;this.cbs=t,this.state=n.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=n.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=i,this.decodeEntities=a,this.entityTrie=i?o.xmlDecodeTree:o.htmlDecodeTree}return e.prototype.reset=function(){this.state=n.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=n.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},e.prototype.write=function(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()},e.prototype.end=function(){this.running&&this.finish()},e.prototype.pause=function(){this.running=!1},e.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=n.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===i.Amp&&(this.state=n.BeforeEntity)},e.prototype.stateSpecialStartSequence=function(e){var t=this.sequenceIndex===this.currentSequence.length;if(t?l(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=n.InTagName,this.stateInTagName(e)},e.prototype.stateInSpecialTag=function(e){if(this.sequenceIndex===this.currentSequence.length){if(e===i.Gt||a(e)){var t=this.index-this.currentSequence.length;if(this.sectionStart=i.LowerA&&e<=i.LowerZ||e>=i.UpperA&&e<=i.UpperZ}(e)},e.prototype.startSpecial=function(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=n.SpecialStartSequence},e.prototype.stateBeforeTagName=function(e){if(e===i.ExclamationMark)this.state=n.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===i.Questionmark)this.state=n.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){var t=32|e;this.sectionStart=this.index,this.xmlMode||t!==u.TitleEnd[2]?this.state=this.xmlMode||t!==u.ScriptEnd[2]?n.InTagName:n.BeforeSpecialS:this.startSpecial(u.TitleEnd,3)}else e===i.Slash?this.state=n.BeforeClosingTagName:(this.state=n.Text,this.stateText(e))},e.prototype.stateInTagName=function(e){l(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateBeforeClosingTagName=function(e){a(e)||(e===i.Gt?this.state=n.Text:(this.state=this.isTagStartChar(e)?n.InClosingTagName:n.InSpecialComment,this.sectionStart=this.index))},e.prototype.stateInClosingTagName=function(e){(e===i.Gt||a(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=n.AfterClosingTagName,this.stateAfterClosingTagName(e))},e.prototype.stateAfterClosingTagName=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.state=n.Text,this.baseState=n.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeAttributeName=function(e){e===i.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=n.InSpecialTag,this.sequenceIndex=0):this.state=n.Text,this.baseState=this.state,this.sectionStart=this.index+1):e===i.Slash?this.state=n.InSelfClosingTag:a(e)||(this.state=n.InAttributeName,this.sectionStart=this.index)},e.prototype.stateInSelfClosingTag=function(e){e===i.Gt?(this.cbs.onselfclosingtag(this.index),this.state=n.Text,this.baseState=n.Text,this.sectionStart=this.index+1,this.isSpecial=!1):a(e)||(this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateInAttributeName=function(e){(e===i.Eq||l(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=n.AfterAttributeName,this.stateAfterAttributeName(e))},e.prototype.stateAfterAttributeName=function(e){e===i.Eq?this.state=n.BeforeAttributeValue:e===i.Slash||e===i.Gt?(this.cbs.onattribend(s.NoValue,this.index),this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e)):a(e)||(this.cbs.onattribend(s.NoValue,this.index),this.state=n.InAttributeName,this.sectionStart=this.index)},e.prototype.stateBeforeAttributeValue=function(e){e===i.DoubleQuote?(this.state=n.InAttributeValueDq,this.sectionStart=this.index+1):e===i.SingleQuote?(this.state=n.InAttributeValueSq,this.sectionStart=this.index+1):a(e)||(this.sectionStart=this.index,this.state=n.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))},e.prototype.handleInAttributeValue=function(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===i.DoubleQuote?s.Double:s.Single,this.index),this.state=n.BeforeAttributeName):this.decodeEntities&&e===i.Amp&&(this.baseState=this.state,this.state=n.BeforeEntity)},e.prototype.stateInAttributeValueDoubleQuotes=function(e){this.handleInAttributeValue(e,i.DoubleQuote)},e.prototype.stateInAttributeValueSingleQuotes=function(e){this.handleInAttributeValue(e,i.SingleQuote)},e.prototype.stateInAttributeValueNoQuotes=function(e){a(e)||e===i.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(s.Unquoted,this.index),this.state=n.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===i.Amp&&(this.baseState=this.state,this.state=n.BeforeEntity)},e.prototype.stateBeforeDeclaration=function(e){e===i.OpeningSquareBracket?(this.state=n.CDATASequence,this.sequenceIndex=0):this.state=e===i.Dash?n.BeforeComment:n.InDeclaration},e.prototype.stateInDeclaration=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=n.Text,this.sectionStart=this.index+1)},e.prototype.stateInProcessingInstruction=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=n.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeComment=function(e){e===i.Dash?(this.state=n.InCommentLike,this.currentSequence=u.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=n.InDeclaration},e.prototype.stateInSpecialComment=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=n.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeSpecialS=function(e){var t=32|e;t===u.ScriptEnd[3]?this.startSpecial(u.ScriptEnd,4):t===u.StyleEnd[3]?this.startSpecial(u.StyleEnd,4):(this.state=n.InTagName,this.stateInTagName(e))},e.prototype.stateBeforeEntity=function(e){this.entityExcess=1,this.entityResult=0,e===i.Number?this.state=n.BeforeNumericEntity:e===i.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=n.InNamedEntity,this.stateInNamedEntity(e))},e.prototype.stateInNamedEntity=function(e){if(this.entityExcess+=1,this.trieIndex=(0,o.determineBranch)(this.entityTrie,this.trieCurrent,this.trieIndex+1,e),this.trieIndex<0)return this.emitNamedEntity(),void this.index--;this.trieCurrent=this.entityTrie[this.trieIndex];var t=this.trieCurrent&o.BinTrieFlags.VALUE_LENGTH;if(t){var r=(t>>14)-1;if(this.allowLegacyEntity()||e===i.Semi){var n=this.index-this.entityExcess+1;n>this.sectionStart&&this.emitPartial(this.sectionStart,n),this.entityResult=this.trieIndex,this.trieIndex+=r,this.entityExcess=0,this.sectionStart=this.index+1,0===r&&this.emitNamedEntity()}else this.trieIndex+=r}},e.prototype.emitNamedEntity=function(){if(this.state=this.baseState,0!==this.entityResult)switch((this.entityTrie[this.entityResult]&o.BinTrieFlags.VALUE_LENGTH)>>14){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~o.BinTrieFlags.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}},e.prototype.stateBeforeNumericEntity=function(e){(32|e)===i.LowerX?(this.entityExcess++,this.state=n.InHexEntity):(this.state=n.InNumericEntity,this.stateInNumericEntity(e))},e.prototype.emitNumericEntity=function(e){var t=this.index-this.entityExcess-1;t+2+Number(this.state===n.InHexEntity)!==this.index&&(t>this.sectionStart&&this.emitPartial(this.sectionStart,t),this.sectionStart=this.index+Number(e),this.emitCodePoint((0,o.replaceCodePoint)(this.entityResult))),this.state=this.baseState},e.prototype.stateInNumericEntity=function(e){e===i.Semi?this.emitNumericEntity(!0):c(e)?(this.entityResult=10*this.entityResult+(e-i.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},e.prototype.stateInHexEntity=function(e){e===i.Semi?this.emitNumericEntity(!0):c(e)?(this.entityResult=16*this.entityResult+(e-i.Zero),this.entityExcess++):function(e){return e>=i.UpperA&&e<=i.UpperF||e>=i.LowerA&&e<=i.LowerF}(e)?(this.entityResult=16*this.entityResult+((32|e)-i.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},e.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===n.Text||this.baseState===n.InSpecialTag)},e.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===n.Text||this.state===n.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):this.state!==n.InAttributeValueDq&&this.state!==n.InAttributeValueSq&&this.state!==n.InAttributeValueNq||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},e.prototype.shouldContinue=function(){return this.index{"use strict";function r(e){return"[object Object]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=function(e){var t,i;return!1!==r(e)&&(void 0===(t=e.constructor)||!1!==r(i=t.prototype)&&!1!==i.hasOwnProperty("isPrototypeOf"))}},8915:function(e,t){var r,i;void 0===(i="function"==typeof(r=function(){return function(e){function t(e){return" "===e||"\t"===e||"\n"===e||"\f"===e||"\r"===e}function r(t){var r,i=t.exec(e.substring(m));if(i)return r=i[0],m+=r.length,r}for(var i,n,s,o,a,l=e.length,c=/^[ \t\n\r\u000c]+/,u=/^[, \t\n\r\u000c]+/,h=/^[^ \t\n\r\u000c]+/,p=/[,]+$/,d=/^\d+$/,f=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,m=0,g=[];;){if(r(u),m>=l)return g;i=r(h),n=[],","===i.slice(-1)?(i=i.replace(p,""),y()):b()}function b(){for(r(c),s="",o="in descriptor";;){if(a=e.charAt(m),"in descriptor"===o)if(t(a))s&&(n.push(s),s="",o="after descriptor");else{if(","===a)return m+=1,s&&n.push(s),void y();if("("===a)s+=a,o="in parens";else{if(""===a)return s&&n.push(s),void y();s+=a}}else if("in parens"===o)if(")"===a)s+=a,o="in descriptor";else{if(""===a)return n.push(s),void y();s+=a}else if("after descriptor"===o)if(t(a));else{if(""===a)return void y();o="in descriptor",m-=1}m+=1}}function y(){var t,r,s,o,a,l,c,u,h,p=!1,m={};for(o=0;o{var t=String,r=function(){return{isColorSupported:!1,reset:t,bold:t,dim:t,italic:t,underline:t,inverse:t,hidden:t,strikethrough:t,black:t,red:t,green:t,yellow:t,blue:t,magenta:t,cyan:t,white:t,gray:t,bgBlack:t,bgRed:t,bgGreen:t,bgYellow:t,bgBlue:t,bgMagenta:t,bgCyan:t,bgWhite:t}};e.exports=r(),e.exports.createColors=r},4938:(e,t,r)=>{"use strict";let i=r(4228);class n extends i{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}}e.exports=n,n.default=n,i.registerAtRule(n)},3285:(e,t,r)=>{"use strict";let i=r(9534);class n extends i{constructor(e){super(e),this.type="comment"}}e.exports=n,n.default=n},4228:(e,t,r)=>{"use strict";let i,n,s,o,{isClean:a,my:l}=r(9181),c=r(2973),u=r(3285),h=r(9534);function p(e){return e.map((e=>(e.nodes&&(e.nodes=p(e.nodes)),delete e.source,e)))}function d(e){if(e[a]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)d(t)}class f extends h{push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}each(e){if(!this.proxyOf.nodes)return;let t,r,i=this.getIterator();for(;this.indexes[i]{let i;try{i=e(t,r)}catch(e){throw t.addToError(e)}return!1!==i&&t.walk&&(i=t.walk(e)),i}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((r,i)=>{if("decl"===r.type&&e.test(r.prop))return t(r,i)})):this.walk(((r,i)=>{if("decl"===r.type&&r.prop===e)return t(r,i)})):(t=e,this.walk(((e,r)=>{if("decl"===e.type)return t(e,r)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((r,i)=>{if("rule"===r.type&&e.test(r.selector))return t(r,i)})):this.walk(((r,i)=>{if("rule"===r.type&&r.selector===e)return t(r,i)})):(t=e,this.walk(((e,r)=>{if("rule"===e.type)return t(e,r)})))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((r,i)=>{if("atrule"===r.type&&e.test(r.name))return t(r,i)})):this.walk(((r,i)=>{if("atrule"===r.type&&r.name===e)return t(r,i)})):(t=e,this.walk(((e,r)=>{if("atrule"===e.type)return t(e,r)})))}walkComments(e){return this.walk(((t,r)=>{if("comment"===t.type)return e(t,r)}))}append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}insertBefore(e,t){let r,i=this.index(e),n=0===i&&"prepend",s=this.normalize(t,this.proxyOf.nodes[i],n).reverse();i=this.index(e);for(let e of s)this.proxyOf.nodes.splice(i,0,e);for(let e in this.indexes)r=this.indexes[e],i<=r&&(this.indexes[e]=r+s.length);return this.markDirty(),this}insertAfter(e,t){let r,i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let e of n)this.proxyOf.nodes.splice(i+1,0,e);for(let e in this.indexes)r=this.indexes[e],i=e&&(this.indexes[r]=t-1);return this.markDirty(),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls((i=>{t.props&&!t.props.includes(i.prop)||t.fast&&!i.value.includes(t.fast)||(i.value=i.value.replace(e,r))})),this.markDirty(),this}every(e){return this.nodes.every(e)}some(e){return this.nodes.some(e)}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(e,t){if("string"==typeof e)e=p(i(e).nodes);else if(Array.isArray(e)){e=e.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if("root"===e.type&&"document"!==this.type){e=e.nodes.slice(0);for(let t of e)t.parent&&t.parent.removeChild(t,"ignore")}else if(e.type)e=[e];else if(e.prop){if(void 0===e.value)throw new Error("Value field is missed in node creation");"string"!=typeof e.value&&(e.value=String(e.value)),e=[new c(e)]}else if(e.selector)e=[new n(e)];else if(e.name)e=[new s(e)];else{if(!e.text)throw new Error("Unknown node type in node creation");e=[new u(e)]}return e.map((e=>(e[l]||f.rebuild(e),(e=e.proxyOf).parent&&e.parent.removeChild(e),e[a]&&d(e),void 0===e.raws.before&&t&&void 0!==t.raws.before&&(e.raws.before=t.raws.before.replace(/\S/g,"")),e.parent=this.proxyOf,e)))}getProxyProcessor(){return{set:(e,t,r)=>(e[t]===r||(e[t]=r,"name"!==t&&"params"!==t&&"selector"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...r)=>e[t](...r.map((e=>"function"==typeof e?(t,r)=>e(t.toProxy(),r):e))):"every"===t||"some"===t?r=>e[t](((e,...t)=>r(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t]}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}}f.registerParse=e=>{i=e},f.registerRule=e=>{n=e},f.registerAtRule=e=>{s=e},f.registerRoot=e=>{o=e},e.exports=f,f.default=f,f.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,s.prototype):"rule"===e.type?Object.setPrototypeOf(e,n.prototype):"decl"===e.type?Object.setPrototypeOf(e,c.prototype):"comment"===e.type?Object.setPrototypeOf(e,u.prototype):"root"===e.type&&Object.setPrototypeOf(e,o.prototype),e[l]=!0,e.nodes&&e.nodes.forEach((e=>{f.rebuild(e)}))}},9452:(e,t,r)=>{"use strict";let i=r(1794),n=r(764);class s extends Error{constructor(e,t,r,i,n,o){super(e),this.name="CssSyntaxError",this.reason=e,n&&(this.file=n),i&&(this.source=i),o&&(this.plugin=o),void 0!==t&&void 0!==r&&("number"==typeof t?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,s)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=i.isColorSupported),n&&e&&(t=n(t));let r,s,o=t.split(/\r?\n/),a=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),c=String(l).length;if(e){let{bold:e,red:t,gray:n}=i.createColors(!0);r=r=>e(t(r)),s=e=>n(e)}else r=s=e=>e;return o.slice(a,l).map(((e,t)=>{let i=a+1+t,n=" "+(" "+i).slice(-c)+" | ";if(i===this.line){let t=s(n.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return r(">")+s(n)+e+"\n "+t+r("^")}return" "+s(n)+e})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}}e.exports=s,s.default=s},2973:(e,t,r)=>{"use strict";let i=r(9534);class n extends i{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}e.exports=n,n.default=n},4096:(e,t,r)=>{"use strict";let i,n,s=r(4228);class o extends s{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new i(new n,this,e).stringify()}}o.registerLazyResult=e=>{i=e},o.registerProcessor=e=>{n=e},e.exports=o,o.default=o},1693:(e,t,r)=>{"use strict";let i=r(2973),n=r(5098),s=r(3285),o=r(4938),a=r(1271),l=r(7399),c=r(4013);function u(e,t){if(Array.isArray(e))return e.map((e=>u(e)));let{inputs:r,...h}=e;if(r){t=[];for(let e of r){let r={...e,__proto__:a.prototype};r.map&&(r.map={...r.map,__proto__:n.prototype}),t.push(r)}}if(h.nodes&&(h.nodes=e.nodes.map((e=>u(e,t)))),h.source){let{inputId:e,...r}=h.source;h.source=r,null!=e&&(h.source.input=t[e])}if("root"===h.type)return new l(h);if("decl"===h.type)return new i(h);if("rule"===h.type)return new c(h);if("comment"===h.type)return new s(h);if("atrule"===h.type)return new o(h);throw new Error("Unknown node type: "+e.type)}e.exports=u,u.default=u},1271:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(139),{fileURLToPath:s,pathToFileURL:o}=r(3653),{resolve:a,isAbsolute:l}=r(8635),{nanoid:c}=r(8864),u=r(764),h=r(9452),p=r(5098),d=Symbol("fromOffsetCache"),f=Boolean(i&&n),m=Boolean(a&&l);class g{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!m||/^\w+:\/\//.test(t.from)||l(t.from)?this.file=t.from:this.file=a(t.from)),m&&f){let e=new p(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(e){let t,r;if(this[d])r=this[d];else{let e=this.css.split("\n");r=new Array(e.length);let t=0;for(let i=0,n=e.length;i=t)i=r.length-1;else{let t,n=r.length-2;for(;i>1),e=r[t+1])){i=t;break}i=t+1}}return{line:i+1,col:e-r[i]+1}}error(e,t,r,i={}){let n,s,a;if(t&&"object"==typeof t){let e=t,i=r;if("number"==typeof e.offset){let i=this.fromOffset(e.offset);t=i.line,r=i.col}else t=e.line,r=e.column;if("number"==typeof i.offset){let e=this.fromOffset(i.offset);s=e.line,a=e.col}else s=i.line,a=i.column}else if(!r){let e=this.fromOffset(t);t=e.line,r=e.col}let l=this.origin(t,r,s,a);return n=l?new h(e,void 0===l.endLine?l.line:{line:l.line,column:l.column},void 0===l.endLine?l.column:{line:l.endLine,column:l.endColumn},l.source,l.file,i.plugin):new h(e,void 0===s?t:{line:t,column:r},void 0===s?r:{line:s,column:a},this.css,this.file,i.plugin),n.input={line:t,column:r,endLine:s,endColumn:a,source:this.css},this.file&&(o&&(n.input.url=o(this.file).toString()),n.input.file=this.file),n}origin(e,t,r,i){if(!this.map)return!1;let n,a,c=this.map.consumer(),u=c.originalPositionFor({line:e,column:t});if(!u.source)return!1;"number"==typeof r&&(n=c.originalPositionFor({line:r,column:i})),a=l(u.source)?o(u.source):new URL(u.source,this.map.consumer().sourceRoot||o(this.map.mapFile));let h={url:a.toString(),line:u.line,column:u.column,endLine:n&&n.line,endColumn:n&&n.column};if("file:"===a.protocol){if(!s)throw new Error("file: protocol is not available in this PostCSS build");h.file=s(a)}let p=c.sourceContentFor(u.source);return p&&(h.source=p),h}mapResolve(e){return/^\w+:\/\//.test(e)?e:a(this.map.consumer().sourceRoot||this.map.root||".",e)}get from(){return this.file||this.id}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}}e.exports=g,g.default=g,u&&u.registerInput&&u.registerInput(g)},7229:(e,t,r)=>{"use strict";let{isClean:i,my:n}=r(9181),s=r(3e3),o=r(7434),a=r(4228),l=r(4096),c=(r(7570),r(2575)),u=r(8501),h=r(7399);const p={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},d={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},f={postcssPlugin:!0,prepare:!0,Once:!0},m=0;function g(e){return"object"==typeof e&&"function"==typeof e.then}function b(e){let t=!1,r=p[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[r,r+"-"+t,m,r+"Exit",r+"Exit-"+t]:t?[r,r+"-"+t,r+"Exit",r+"Exit-"+t]:e.append?[r,m,r+"Exit"]:[r,r+"Exit"]}function y(e){let t;return t="document"===e.type?["Document",m,"DocumentExit"]:"root"===e.type?["Root",m,"RootExit"]:b(e),{node:e,events:t,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function v(e){return e[i]=!1,e.nodes&&e.nodes.forEach((e=>v(e))),e}let w={};class x{constructor(e,t,r){let i;if(this.stringified=!1,this.processed=!1,"object"!=typeof t||null===t||"root"!==t.type&&"document"!==t.type)if(t instanceof x||t instanceof c)i=v(t.root),t.map&&(void 0===r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let e=u;r.syntax&&(e=r.syntax.parse),r.parser&&(e=r.parser),e.parse&&(e=e.parse);try{i=e(t,r)}catch(e){this.processed=!0,this.error=e}i&&!i[n]&&a.rebuild(i)}else i=v(t);this.result=new c(e,i,r),this.helpers={...w,result:this.result,postcss:w},this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?{...e,...e.prepare(this.result)}:e))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(g(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[i];)e[i]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=o;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let r=new s(t,this.result.root,this.result.opts).generate();return this.result.css=r[0],this.result.map=r[1],this.result}walkSync(e){e[i]=!0;let t=b(e);for(let r of t)if(r===m)e.nodes&&e.each((e=>{e[i]||this.walkSync(e)}));else{let t=this.listeners[r];if(t&&this.visitSync(t,e.toProxy()))return}}visitSync(e,t){for(let[r,i]of e){let e;this.result.lastPlugin=r;try{e=i(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(g(e))throw this.getAsyncError()}}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return g(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?r.postcssVersion:(e.plugin=r.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}async runAsync(){this.plugin=0;for(let e=0;e0;){let e=this.visitTick(t);if(g(e))try{await e}catch(e){let r=t[t.length-1].node;throw this.handleError(e,r)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>r(e,this.helpers)));await Promise.all(t)}else await r(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let e=(e,t,r)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,r])};for(let t of this.plugins)if("object"==typeof t)for(let r in t){if(!d[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[r])if("object"==typeof t[r])for(let i in t[r])e(t,"*"===i?r:r+"-"+i.toLowerCase(),t[r][i]);else"function"==typeof t[r]&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void e.pop();if(n.length>0&&t.visitorIndex{w=e},e.exports=x,x.default=x,h.registerLazyResult(x),l.registerLazyResult(x)},9401:e=>{"use strict";let t={split(e,t,r){let i=[],n="",s=!1,o=0,a=!1,l="",c=!1;for(let r of e)c?c=!1:"\\"===r?c=!0:a?r===l&&(a=!1):'"'===r||"'"===r?(a=!0,l=r):"("===r?o+=1:")"===r?o>0&&(o-=1):0===o&&t.includes(r)&&(s=!0),s?(""!==n&&i.push(n.trim()),n="",s=!1):n+=r;return(r||""!==n)&&i.push(n.trim()),i},space:e=>t.split(e,[" ","\n","\t"]),comma:e=>t.split(e,[","],!0)};e.exports=t,t.default=t},3e3:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(139),{dirname:s,resolve:o,relative:a,sep:l}=r(8635),{pathToFileURL:c}=r(3653),u=r(1271),h=Boolean(i&&n),p=Boolean(s&&o&&a&&l);e.exports=class{constructor(e,t,r,i){this.stringify=e,this.mapOpts=r.map||{},this.root=t,this.opts=r,this.css=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new u(this.css,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&0===e.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let r=t.source.input.from;if(r&&!e[r]){e[r]=!0;let i=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(i,t.source.input.css)}}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(e,this.css)}}applyPrevMaps(){for(let e of this.previous()){let t,r=this.toUrl(this.path(e.file)),n=e.root||s(e.file);!1===this.mapOpts.sourcesContent?(t=new i(e.text),t.sourcesContent&&(t.sourcesContent=t.sourcesContent.map((()=>null)))):t=e.consumer(),this.map.applySourceMap(t,r,this.toUrl(this.path(n)))}}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=n.fromSourceMap(e)}else this.map=new n({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}path(e){if(0===e.indexOf("<"))return e;if(/^\w+:\/\//.test(e))return e;if(this.mapOpts.absolute)return e;let t=this.opts.to?s(this.opts.to):".";return"string"==typeof this.mapOpts.annotation&&(t=s(o(t,this.mapOpts.annotation))),a(t,e)}toUrl(e){return"\\"===l&&(e=e.replace(/\\/g,"/")),encodeURI(e).replace(/[#?]/g,encodeURIComponent)}toFileUrl(e){if(c)return c(e).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}generateString(){this.css="",this.map=new n({file:this.outputFile()});let e,t,r=1,i=1,s="",o={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,((n,a,l)=>{if(this.css+=n,a&&"end"!==l&&(o.generated.line=r,o.generated.column=i-1,a.source&&a.source.start?(o.source=this.sourcePath(a),o.original.line=a.source.start.line,o.original.column=a.source.start.column-1,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,this.map.addMapping(o))),e=n.match(/\n/g),e?(r+=e.length,t=n.lastIndexOf("\n"),i=n.length-t):i+=n.length,a&&"start"!==l){let e=a.parent||{raws:{}};("decl"===a.type||"atrule"===a.type&&!a.nodes)&&a===e.last&&!e.raws.semicolon||(a.source&&a.source.end?(o.source=this.sourcePath(a),o.original.line=a.source.end.line,o.original.column=a.source.end.column-1,o.generated.line=r,o.generated.column=i-2,this.map.addMapping(o)):(o.source=s,o.original.line=1,o.original.column=0,o.generated.line=r,o.generated.column=i-1,this.map.addMapping(o)))}}))}generate(){if(this.clearAnnotation(),p&&h&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}}},9787:(e,t,r)=>{"use strict";let i=r(3e3),n=r(7434),s=(r(7570),r(8501));const o=r(2575);class a{constructor(e,t,r){let s;t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let a=n;this.result=new o(this._processor,s,this._opts),this.result.css=t;let l=this;Object.defineProperty(this.result,"root",{get:()=>l.root});let c=new i(a,s,this._opts,t);if(c.isMap()){let[e,t]=c.generate();e&&(this.result.css=e),t&&(this.result.map=t)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let e,t=s;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(e,t){return this.async().then(e,t)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}}e.exports=a,a.default=a},9534:(e,t,r)=>{"use strict";let{isClean:i,my:n}=r(9181),s=r(9452),o=r(6573),a=r(7434);function l(e,t){let r=new e.constructor;for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i))continue;if("proxyCache"===i)continue;let n=e[i],s=typeof n;"parent"===i&&"object"===s?t&&(r[i]=t):"source"===i?r[i]=n:Array.isArray(n)?r[i]=n.map((e=>l(e,r))):("object"===s&&null!==n&&(n=l(n)),r[i]=n)}return r}class c{constructor(e={}){this.raws={},this[i]=!1,this[n]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let r of e[t])"function"==typeof r.clone?this.append(r.clone()):this.append(r)}else this[t]=e[t]}error(e,t={}){if(this.source){let{start:r,end:i}=this.rangeBy(t);return this.source.input.error(e,{line:r.line,column:r.column},{line:i.line,column:i.column},t)}return new s(e)}warn(e,t,r){let i={node:this};for(let e in r)i[e]=r[e];return e.warn(t,i)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(e=a){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}assign(e={}){for(let t in e)this[t]=e[t];return this}clone(e={}){let t=l(this);for(let r in e)t[r]=e[r];return t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}replaceWith(...e){if(this.parent){let t=this,r=!1;for(let i of e)i===this?r=!0:r?(this.parent.insertAfter(t,i),t=i):this.parent.insertBefore(t,i);r||this.remove()}return this}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}before(e){return this.parent.insertBefore(this,e),this}after(e){return this.parent.insertAfter(this,e),this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}raw(e,t){return(new o).raw(this,e,t)}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}toJSON(e,t){let r={},i=null==t;t=t||new Map;let n=0;for(let e in this){if(!Object.prototype.hasOwnProperty.call(this,e))continue;if("parent"===e||"proxyCache"===e)continue;let i=this[e];if(Array.isArray(i))r[e]=i.map((e=>"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof i&&i.toJSON)r[e]=i.toJSON(null,t);else if("source"===e){let s=t.get(i.input);null==s&&(s=n,t.set(i.input,n),n++),r[e]={inputId:s,start:i.start,end:i.end}}else r[e]=i}return i&&(r.inputs=[...t.keys()].map((e=>e.toJSON()))),r}positionInside(e){let t=this.toString(),r=this.source.start.column,i=this.source.start.line;for(let n=0;n(e[t]===r||(e[t]=r,"prop"!==t&&"value"!==t&&"name"!==t&&"params"!==t&&"important"!==t&&"text"!==t||e.markDirty()),!0),get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t]}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}markDirty(){if(this[i]){this[i]=!1;let e=this;for(;e=e.parent;)e[i]=!1}}get proxyOf(){return this}}e.exports=c,c.default=c},8501:(e,t,r)=>{"use strict";let i=r(4228),n=r(6237),s=r(1271);function o(e,t){let r=new s(e,t),i=new n(r);try{i.parse()}catch(e){throw e}return i.root}e.exports=o,o.default=o,i.registerParse(o)},6237:(e,t,r)=>{"use strict";let i=r(2973),n=r(1171),s=r(3285),o=r(4938),a=r(7399),l=r(4013);const c={empty:!0,space:!0};e.exports=class{constructor(e){this.input=e,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:e,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=n(this.input)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}comment(e){let t=new s;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]);let r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{let e=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}emptyRule(e){let t=new l;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}other(e){let t=!1,r=null,i=!1,n=null,s=[],o=e[1].startsWith("--"),a=[],l=e;for(;l;){if(r=l[0],a.push(l),"("===r||"["===r)n||(n=l),s.push("("===r?")":"]");else if(o&&i&&"{"===r)n||(n=l),s.push("}");else if(0===s.length){if(";"===r){if(i)return void this.decl(a,o);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),t=!0;break}":"===r&&(i=!0)}else r===s[s.length-1]&&(s.pop(),0===s.length&&(n=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),s.length>0&&this.unclosedBracket(n),t&&i){if(!o)for(;a.length&&(l=a[a.length-1][0],"space"===l||"comment"===l);)this.tokenizer.back(a.pop());this.decl(a,o)}else this.unknownWord(a)}rule(e){e.pop();let t=new l;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}decl(e,t){let r=new i;this.init(r,e[0][2]);let n,s=e[e.length-1];for(";"===s[0]&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(s[3]||s[2]||function(e){for(let t=e.length-1;t>=0;t--){let r=e[t],i=r[3]||r[2];if(i)return i}}(e));"word"!==e[0][0];)1===e.length&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;r.prop+=e.shift()[1]}for(r.raws.between="";e.length;){if(n=e.shift(),":"===n[0]){r.raws.between+=n[1];break}"word"===n[0]&&/\w/.test(n[1])&&this.unknownWord([n]),r.raws.between+=n[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let o,a=[];for(;e.length&&(o=e[0][0],"space"===o||"comment"===o);)a.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(n=e[t],"!important"===n[1].toLowerCase()){r.important=!0;let i=this.stringFrom(e,t);i=this.spacesFromEnd(e)+i," !important"!==i&&(r.raws.important=i);break}if("important"===n[1].toLowerCase()){let i=e.slice(0),n="";for(let e=t;e>0;e--){let t=i[e][0];if(0===n.trim().indexOf("!")&&"space"!==t)break;n=i.pop()[1]+n}0===n.trim().indexOf("!")&&(r.important=!0,r.raws.important=n,e=i)}if("space"!==n[0]&&"comment"!==n[0])break}e.some((e=>"space"!==e[0]&&"comment"!==e[0]))&&(r.raws.between+=a.map((e=>e[1])).join(""),a=[]),this.raw(r,"value",a.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}atrule(e){let t,r,i,n=new o;n.name=e[1].slice(1),""===n.name&&this.unnamedAtrule(n,e),this.init(n,e[2]);let s=!1,a=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(t=(e=this.tokenizer.nextToken())[0],"("===t||"["===t?c.push("("===t?")":"]"):"{"===t&&c.length>0?c.push("}"):t===c[c.length-1]&&c.pop(),0===c.length){if(";"===t){n.source.end=this.getPosition(e[2]),this.semicolon=!0;break}if("{"===t){a=!0;break}if("}"===t){if(l.length>0){for(i=l.length-1,r=l[i];r&&"space"===r[0];)r=l[--i];r&&(n.source.end=this.getPosition(r[3]||r[2]))}this.end(e);break}l.push(e)}else l.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(n.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(n,"params",l),s&&(e=l[l.length-1],n.source.end=this.getPosition(e[3]||e[2]),this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),a&&(n.nodes=[],this.current=n)}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{offset:e,line:t.line,column:t.col}}init(e,t){this.current.push(e),e.source={start:this.getPosition(t),input:this.input},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}raw(e,t,r,i){let n,s,o,a,l=r.length,u="",h=!0;for(let e=0;ee+t[1]),"");e.raws[t]={value:u,raw:i}}e[t]=u}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let i=t;i=0&&(r=e[n],"space"===r[0]||(i+=1,2!==i));n--);throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}}},5489:(e,t,r)=>{"use strict";var i=r(4406);let n=r(9452),s=r(2973),o=r(7229),a=r(4228),l=r(8420),c=r(7434),u=r(1693),h=r(4096),p=r(3641),d=r(3285),f=r(4938),m=r(2575),g=r(1271),b=r(8501),y=r(9401),v=r(4013),w=r(7399),x=r(9534);function S(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new l(e)}S.plugin=function(e,t){let r,n=!1;function s(...r){console&&console.warn&&!n&&(n=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),i.env.LANG&&i.env.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let s=t(...r);return s.postcssPlugin=e,s.postcssVersion=(new l).version,s}return Object.defineProperty(s,"postcss",{get:()=>(r||(r=s()),r)}),s.process=function(e,t,r){return S([s(r)]).process(e,t)},s},S.stringify=c,S.parse=b,S.fromJSON=u,S.list=y,S.comment=e=>new d(e),S.atRule=e=>new f(e),S.decl=e=>new s(e),S.rule=e=>new v(e),S.root=e=>new w(e),S.document=e=>new h(e),S.CssSyntaxError=n,S.Declaration=s,S.Container=a,S.Processor=l,S.Document=h,S.Comment=d,S.Warning=p,S.AtRule=f,S.Result=m,S.Input=g,S.Rule=v,S.Root=w,S.Node=x,o.registerPostcss(S),e.exports=S,S.default=S},5098:(e,t,r)=>{"use strict";let{SourceMapConsumer:i,SourceMapGenerator:n}=r(139),{existsSync:s,readFileSync:o}=r(5158),{dirname:a,join:l}=r(8635);class c{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let r=t.map?t.map.prev:void 0,i=this.loadMap(t.from,r);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=a(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new i(this.text)),this.consumerCache}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}startWith(e,t){return!!e&&e.substr(0,t.length)===t}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/gm);if(!t)return;let r=e.lastIndexOf(t.pop()),i=e.indexOf("*/",r);r>-1&&i>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,i)))}decodeInline(e){if(/^data:application\/json;charset=utf-?8,/.test(e)||/^data:application\/json,/.test(e))return decodeURIComponent(e.substr(RegExp.lastMatch.length));if(/^data:application\/json;charset=utf-?8;base64,/.test(e)||/^data:application\/json;base64,/.test(e))return t=e.substr(RegExp.lastMatch.length),Buffer?Buffer.from(t,"base64").toString():window.atob(t);var t;let r=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+r)}loadFile(e){if(this.root=a(e),s(e))return this.mapFile=e,o(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof i)return n.fromSourceMap(t).toString();if(t instanceof n)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let r=t(e);if(r){let e=this.loadFile(r);if(!e)throw new Error("Unable to load previous source map: "+r.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=l(a(e),t)),this.loadFile(t)}}}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}}e.exports=c,c.default=c},8420:(e,t,r)=>{"use strict";let i=r(9787),n=r(7229),s=r(4096),o=r(7399);class a{constructor(e=[]){this.version="8.4.23",this.plugins=this.normalize(e)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}process(e,t={}){return 0===this.plugins.length&&void 0===t.parser&&void 0===t.stringifier&&void 0===t.syntax?new i(this,e,t):new n(this,e,t)}normalize(e){let t=[];for(let r of e)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"==typeof r&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if("object"==typeof r&&r.postcssPlugin)t.push(r);else if("function"==typeof r)t.push(r);else if("object"!=typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin");return t}}e.exports=a,a.default=a,o.registerProcessor(a),s.registerProcessor(a)},2575:(e,t,r)=>{"use strict";let i=r(3641);class n{constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new i(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}}e.exports=n,n.default=n},7399:(e,t,r)=>{"use strict";let i,n,s=r(4228);class o extends s{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}removeChild(e,t){let r=this.index(e);return!t&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}normalize(e,t,r){let i=super.normalize(e);if(t)if("prepend"===r)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of i)e.raws.before=t.raws.before;return i}toResult(e={}){return new i(new n,this,e).stringify()}}o.registerLazyResult=e=>{i=e},o.registerProcessor=e=>{n=e},e.exports=o,o.default=o,s.registerRoot(o)},4013:(e,t,r)=>{"use strict";let i=r(4228),n=r(9401);class s extends i{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return n.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}}e.exports=s,s.default=s,i.registerRule(s)},6573:e=>{"use strict";const t={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};class r{constructor(e){this.builder=e}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}document(e){this.body(e)}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}comment(e){let t=this.raw(e,"left","commentLeft"),r=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+r+"*/",e)}decl(e,t){let r=this.raw(e,"between","colon"),i=e.prop+r+this.rawValue(e,"value");e.important&&(i+=e.raws.important||" !important"),t&&(i+=";"),this.builder(i,e)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}atrule(e,t){let r="@"+e.name,i=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?r+=e.raws.afterName:i&&(r+=" "),e.nodes)this.block(e,r+i);else{let n=(e.raws.between||"")+(t?";":"");this.builder(r+i+n,e)}}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let r=this.raw(e,"semicolon");for(let i=0;i{if(n=e.raws[r],void 0!==n)return!1}))}var a;return void 0===n&&(n=t[i]),o.rawCache[i]=n,n}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((r=>{let i=r.parent;if(i&&i!==e&&i.parent&&i.parent===e&&void 0!==r.raws.before){let e=r.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawBeforeComment(e,t){let r;return e.walkComments((e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls((e=>{if(void 0!==e.raws.before)return r=e.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),void 0===r?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeRule(e){let t;return e.walk((r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&void 0!==r.raws.before)return t=r.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}beforeAfter(e,t){let r;r="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let i=e.parent,n=0;for(;i&&"root"!==i.type;)n+=1,i=i.parent;if(r.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e{"use strict";let i=r(6573);function n(e,t){new i(t).stringify(e)}e.exports=n,n.default=n},9181:e=>{"use strict";e.exports.isClean=Symbol("isClean"),e.exports.my=Symbol("my")},1171:e=>{"use strict";const t="'".charCodeAt(0),r='"'.charCodeAt(0),i="\\".charCodeAt(0),n="/".charCodeAt(0),s="\n".charCodeAt(0),o=" ".charCodeAt(0),a="\f".charCodeAt(0),l="\t".charCodeAt(0),c="\r".charCodeAt(0),u="[".charCodeAt(0),h="]".charCodeAt(0),p="(".charCodeAt(0),d=")".charCodeAt(0),f="{".charCodeAt(0),m="}".charCodeAt(0),g=";".charCodeAt(0),b="*".charCodeAt(0),y=":".charCodeAt(0),v="@".charCodeAt(0),w=/[\t\n\f\r "#'()/;[\\\]{}]/g,x=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,S=/.[\n"'(/\\]/,T=/[\da-f]/i;e.exports=function(e,E={}){let A,C,O,k,I,N,D,P,L,q,M=e.css.valueOf(),R=E.ignoreErrors,j=M.length,B=0,_=[],U=[];function H(t){throw e.error("Unclosed "+t,B)}return{back:function(e){U.push(e)},nextToken:function(e){if(U.length)return U.pop();if(B>=j)return;let E=!!e&&e.ignoreUnclosed;switch(A=M.charCodeAt(B),A){case s:case o:case l:case c:case a:C=B;do{C+=1,A=M.charCodeAt(C)}while(A===o||A===s||A===l||A===c||A===a);q=["space",M.slice(B,C)],B=C-1;break;case u:case h:case f:case m:case y:case g:case d:{let e=String.fromCharCode(A);q=[e,e,B];break}case p:if(P=_.length?_.pop()[1]:"",L=M.charCodeAt(B+1),"url"===P&&L!==t&&L!==r&&L!==o&&L!==s&&L!==l&&L!==a&&L!==c){C=B;do{if(N=!1,C=M.indexOf(")",C+1),-1===C){if(R||E){C=B;break}H("bracket")}for(D=C;M.charCodeAt(D-1)===i;)D-=1,N=!N}while(N);q=["brackets",M.slice(B,C+1),B,C],B=C}else C=M.indexOf(")",B+1),k=M.slice(B,C+1),-1===C||S.test(k)?q=["(","(",B]:(q=["brackets",k,B,C],B=C);break;case t:case r:O=A===t?"'":'"',C=B;do{if(N=!1,C=M.indexOf(O,C+1),-1===C){if(R||E){C=B+1;break}H("string")}for(D=C;M.charCodeAt(D-1)===i;)D-=1,N=!N}while(N);q=["string",M.slice(B,C+1),B,C],B=C;break;case v:w.lastIndex=B+1,w.test(M),C=0===w.lastIndex?M.length-1:w.lastIndex-2,q=["at-word",M.slice(B,C+1),B,C],B=C;break;case i:for(C=B,I=!0;M.charCodeAt(C+1)===i;)C+=1,I=!I;if(A=M.charCodeAt(C+1),I&&A!==n&&A!==o&&A!==s&&A!==l&&A!==c&&A!==a&&(C+=1,T.test(M.charAt(C)))){for(;T.test(M.charAt(C+1));)C+=1;M.charCodeAt(C+1)===o&&(C+=1)}q=["word",M.slice(B,C+1),B,C],B=C;break;default:A===n&&M.charCodeAt(B+1)===b?(C=M.indexOf("*/",B+2)+1,0===C&&(R||E?C=M.length:H("comment")),q=["comment",M.slice(B,C+1),B,C],B=C):(x.lastIndex=B+1,x.test(M),C=0===x.lastIndex?M.length-1:x.lastIndex-2,q=["word",M.slice(B,C+1),B,C],_.push(q),B=C)}return B++,q},endOfFile:function(){return 0===U.length&&B>=j},position:function(){return B}}}},7570:e=>{"use strict";let t={};e.exports=function(e){t[e]||(t[e]=!0,"undefined"!=typeof console&&console.warn&&console.warn(e))}},3641:e=>{"use strict";class t{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}e.exports=t,t.default=t},4406:e=>{var t,r,i=e.exports={};function n(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===n||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:n}catch(e){t=n}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var a,l=[],c=!1,u=-1;function h(){c&&a&&(c=!1,a.length?l=a.concat(l):u=-1,l.length&&p())}function p(){if(!c){var e=o(h);c=!0;for(var t=l.length;t;){for(a=l,l=[];++u1)for(var r=1;r{const i=r(883),n=r(8102),{isPlainObject:s}=r(303),o=r(9714),a=r(8915),{parse:l}=r(5489),c=["img","audio","video","picture","svg","object","map","iframe","embed"],u=["script","style"];function h(e,t){e&&Object.keys(e).forEach((function(r){t(e[r],r)}))}function p(e,t){return{}.hasOwnProperty.call(e,t)}function d(e,t){const r=[];return h(e,(function(e){t(e)&&r.push(e)})),r}e.exports=m;const f=/^[^\0\t\n\f\r /<=>]+$/;function m(e,t,r){if(null==e)return"";"number"==typeof e&&(e=e.toString());let b="",y="";function v(e,t){const r=this;this.tag=e,this.attribs=t||{},this.tagPosition=b.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){N.length&&(N[N.length-1].text+=r.text)},this.updateParentNodeMediaChildren=function(){N.length&&c.includes(this.tag)&&N[N.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},m.defaults,t)).parser=Object.assign({},g,t.parser);const w=function(e){return!1===t.allowedTags||(t.allowedTags||[]).indexOf(e)>-1};u.forEach((function(e){w(e)&&!t.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const x=t.nonTextTags||["script","style","textarea","option"];let S,T;t.allowedAttributes&&(S={},T={},h(t.allowedAttributes,(function(e,t){S[t]=[];const r=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(n(e).replace(/\\\*/g,".*")):S[t].push(e)})),r.length&&(T[t]=new RegExp("^("+r.join("|")+")$"))})));const E={},A={},C={};h(t.allowedClasses,(function(e,t){S&&(p(S,t)||(S[t]=[]),S[t].push("class")),E[t]=[],C[t]=[];const r=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?r.push(n(e).replace(/\\\*/g,".*")):e instanceof RegExp?C[t].push(e):E[t].push(e)})),r.length&&(A[t]=new RegExp("^("+r.join("|")+")$"))}));const O={};let k,I,N,D,P,L,q;h(t.transformTags,(function(e,t){let r;"function"==typeof e?r=e:"string"==typeof e&&(r=m.simpleTransform(e)),"*"===t?k=r:O[t]=r}));let M=!1;j();const R=new i.Parser({onopentag:function(e,r){if(t.enforceHtmlBoundary&&"html"===e&&j(),L)return void q++;const i=new v(e,r);N.push(i);let n=!1;const c=!!i.text;let u;if(p(O,e)&&(u=O[e](e,r),i.attribs=r=u.attribs,void 0!==u.text&&(i.innerText=u.text),e!==u.tagName&&(i.name=e=u.tagName,P[I]=u.tagName)),k&&(u=k(e,r),i.attribs=r=u.attribs,e!==u.tagName&&(i.name=e=u.tagName,P[I]=u.tagName)),(!w(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(const t in e)if(p(e,t))return!1;return!0}(D)||null!=t.nestingLimit&&I>=t.nestingLimit)&&(n=!0,D[I]=!0,"discard"===t.disallowedTagsMode&&-1!==x.indexOf(e)&&(L=!0,q=1),D[I]=!0),I++,n){if("discard"===t.disallowedTagsMode)return;y=b,b=""}b+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(i.innerText=""),(!S||p(S,e)||S["*"])&&h(r,(function(r,n){if(!f.test(n))return void delete i.attribs[n];let c=!1;if(!S||p(S,e)&&-1!==S[e].indexOf(n)||S["*"]&&-1!==S["*"].indexOf(n)||p(T,e)&&T[e].test(n)||T["*"]&&T["*"].test(n))c=!0;else if(S&&S[e])for(const t of S[e])if(s(t)&&t.name&&t.name===n){c=!0;let e="";if(!0===t.multiple){const i=r.split(" ");for(const r of i)-1!==t.values.indexOf(r)&&(""===e?e=r:e+=" "+r)}else t.values.indexOf(r)>=0&&(e=r);r=e}if(c){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(n)&&_(e,r))return void delete i.attribs[n];if("script"===e&&"src"===n){let e=!0;try{const i=U(r);if(t.allowedScriptHostnames||t.allowedScriptDomains){const r=(t.allowedScriptHostnames||[]).find((function(e){return e===i.url.hostname})),n=(t.allowedScriptDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=r||n}}catch(t){e=!1}if(!e)return void delete i.attribs[n]}if("iframe"===e&&"src"===n){let e=!0;try{const i=U(r);if(i.isRelativeUrl)e=p(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const r=(t.allowedIframeHostnames||[]).find((function(e){return e===i.url.hostname})),n=(t.allowedIframeDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=r||n}}catch(t){e=!1}if(!e)return void delete i.attribs[n]}if("srcset"===n)try{let e=a(r);if(e.forEach((function(e){_("srcset",e.url)&&(e.evil=!0)})),e=d(e,(function(e){return!e.evil})),!e.length)return void delete i.attribs[n];r=d(e,(function(e){return!e.evil})).map((function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")})).join(", "),i.attribs[n]=r}catch(e){return void delete i.attribs[n]}if("class"===n){const t=E[e],s=E["*"],a=A[e],l=C[e],c=[a,A["*"]].concat(l).filter((function(e){return e}));if(!(u=r,h=t&&s?o(t,s):t||s,m=c,r=h?(u=u.split(/\s+/)).filter((function(e){return-1!==h.indexOf(e)||m.some((function(t){return t.test(e)}))})).join(" "):u).length)return void delete i.attribs[n]}if("style"===n)if(t.parseStyleAttributes)try{if(r=function(e){return e.nodes[0].nodes.reduce((function(e,t){return e.push(`${t.prop}:${t.value}${t.important?" !important":""}`),e}),[]).join(";")}(function(e,t){if(!t)return e;const r=e.nodes[0];let i;return i=t[r.selector]&&t["*"]?o(t[r.selector],t["*"]):t[r.selector]||t["*"],i&&(e.nodes[0].nodes=r.nodes.reduce(function(e){return function(t,r){return p(e,r.prop)&&e[r.prop].some((function(e){return e.test(r.value)}))&&t.push(r),t}}(i),[])),e}(l(e+" {"+r+"}"),t.allowedStyles)),0===r.length)return void delete i.attribs[n]}catch(t){return console.warn('Failed to parse "'+e+" {"+r+"}\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547"),void delete i.attribs[n]}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");b+=" "+n,r&&r.length&&(b+='="'+B(r,!0)+'"')}else delete i.attribs[n];var u,h,m})),-1!==t.selfClosing.indexOf(e)?b+=" />":(b+=">",!i.innerText||c||t.textFilter||(b+=B(i.innerText),M=!0)),n&&(b=y+B(b),y="")},ontext:function(e){if(L)return;const r=N[N.length-1];let i;if(r&&(i=r.tag,e=void 0!==r.innerText?r.innerText:e),"discard"!==t.disallowedTagsMode||"script"!==i&&"style"!==i){const r=B(e,!1);t.textFilter&&!M?b+=t.textFilter(r,i):M||(b+=r)}else b+=e;N.length&&(N[N.length-1].text+=e)},onclosetag:function(e,r){if(L){if(q--,q)return;L=!1}const i=N.pop();if(!i)return;if(i.tag!==e)return void N.push(i);L=!!t.enforceHtmlBoundary&&"html"===e,I--;const n=D[I];if(n){if(delete D[I],"discard"===t.disallowedTagsMode)return void i.updateParentNodeText();y=b,b=""}P[I]&&(e=P[I],delete P[I]),t.exclusiveFilter&&t.exclusiveFilter(i)?b=b.substr(0,i.tagPosition):(i.updateParentNodeMediaChildren(),i.updateParentNodeText(),-1!==t.selfClosing.indexOf(e)||r&&!w(e)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0?n&&(b=y,y=""):(b+="",n&&(b=y+B(b),y=""),M=!1))}},t.parser);return R.write(e),R.end(),b;function j(){b="",I=0,N=[],D={},P={},L=!1,q=0}function B(e,r){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),r&&(e=e.replace(/"/g,""")),e}function _(e,r){for(r=r.replace(/[\x00-\x20]+/g,"");;){const e=r.indexOf("\x3c!--");if(-1===e)break;const t=r.indexOf("--\x3e",e+4);if(-1===t)break;r=r.substring(0,e)+r.substring(t+3)}const i=r.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!i)return!!r.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const n=i[1].toLowerCase();return p(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(n):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(n)}function U(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");let t="relative://relative-site";for(let e=0;e<100;e++)t+=`/${e}`;const r=new URL(e,t);return{isRelativeUrl:r&&"relative-site"===r.hostname&&"relative:"===r.protocol,url:r}}}const g={decodeEntities:!0};m.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0},m.simpleTransform=function(e,t,r){return r=void 0===r||r,t=t||{},function(i,n){let s;if(r)for(s in t)n[s]=t[s];else n=t;return{tagName:e,attribs:n}}}},8864:e=>{e.exports={nanoid:(e=21)=>{let t="",r=e;for(;r--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(r=t)=>{let i="",n=r;for(;n--;)i+=e[Math.random()*e.length|0];return i}}}}]); \ No newline at end of file diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js.LICENSE.txt b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js.LICENSE.txt new file mode 100644 index 0000000..fe4c1fe --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/113.6113d19fca7ff66ccc66.js.LICENSE.txt @@ -0,0 +1,6 @@ +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/134.b4eddbb09f5fd50a4007.js b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/134.b4eddbb09f5fd50a4007.js new file mode 100644 index 0000000..060f8ed --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/134.b4eddbb09f5fd50a4007.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_jupyter_widgets_jupyterlab_manager=self.webpackChunk_jupyter_widgets_jupyterlab_manager||[]).push([[134,61],{937:(e,n,t)=>{t.d(n,{Z:()=>d});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o)()(r());a.push([e.id,"/* Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n.jupyter-widgets-disconnected::before {\n content: '\\f127'; /* chain-broken */\n display: inline-block;\n font: normal normal 900 14px/1 'Font Awesome 5 Free', 'FontAwesome';\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n color: #d9534f;\n padding: 3px;\n align-self: flex-start;\n}\n\n.jupyter-widgets-error-widget {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n border: solid 1px red;\n margin: 0 auto;\n}\n\n.jupyter-widgets-error-widget.icon-error {\n min-width: var(--jp-widgets-inline-width-short);\n}\n.jupyter-widgets-error-widget.text-error {\n min-width: calc(2 * var(--jp-widgets-inline-width));\n min-height: calc(3 * var(--jp-widgets-inline-height));\n}\n\n.jupyter-widgets-error-widget p {\n text-align: center;\n}\n\n.jupyter-widgets-error-widget.text-error pre::first-line {\n font-weight: bold;\n}\n",""]);const d=a},7117:(e,n,t)=>{t.d(n,{Z:()=>d});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o)()(r());a.push([e.id,"/* This file has code derived from Lumino CSS files, as noted below. The license for this Lumino code is:\n\nCopyright (c) 2019 Project Jupyter Contributors\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\nCopyright (c) 2014-2017, PhosphorJS Contributors\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\n/*\n * The following section is derived from https://github.com/jupyterlab/lumino/blob/23b9d075ebc5b73ab148b6ebfc20af97f85714c4/packages/widgets/style/tabbar.css \n * We've scoped the rules so that they are consistent with exactly our code.\n */\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {\n display: flex;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar[data-orientation='horizontal'], /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation='horizontal'], /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation='horizontal'] {\n flex-direction: row;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar[data-orientation='vertical'], /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation='vertical'], /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation='vertical'] {\n flex-direction: column;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content {\n margin: 0;\n padding: 0;\n display: flex;\n flex: 1 1 auto;\n list-style-type: none;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar[data-orientation='horizontal']\n > .p-TabBar-content,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar[data-orientation='horizontal']\n> .p-TabBar-content,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar[data-orientation='horizontal']\n > .lm-TabBar-content {\n flex-direction: row;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar[data-orientation='vertical']\n > .p-TabBar-content,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar[data-orientation='vertical']\n> .p-TabBar-content,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar[data-orientation='vertical']\n > .lm-TabBar-content {\n flex-direction: column;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab {\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n overflow: hidden;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon,\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon {\n flex: 0 0 auto;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel {\n flex: 1 1 auto;\n overflow: hidden;\n white-space: nowrap;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-hidden {\n display: none !important;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar.lm-mod-dragging .lm-TabBar-tab {\n position: relative;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar.p-mod-dragging[data-orientation='horizontal']\n .p-TabBar-tab,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .p-TabBar.p-mod-dragging[data-orientation='horizontal']\n .p-TabBar-tab,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar.lm-mod-dragging[data-orientation='horizontal']\n .lm-TabBar-tab {\n left: 0;\n transition: left 150ms ease;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar.p-mod-dragging[data-orientation='vertical']\n .p-TabBar-tab,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar.p-mod-dragging[data-orientation='vertical']\n.p-TabBar-tab,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar.lm-mod-dragging[data-orientation='vertical']\n .lm-TabBar-tab {\n top: 0;\n transition: top 150ms ease;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar.p-mod-dragging\n .p-TabBar-tab.p-mod-dragging,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar.p-mod-dragging\n.p-TabBar-tab.p-mod-dragging,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar.lm-mod-dragging\n .lm-TabBar-tab.lm-mod-dragging {\n transition: none;\n}\n\n/* End tabbar.css */\n",""]);const d=a},4788:(e,n,t)=>{t.d(n,{Z:()=>d});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o)()(r());a.push([e.id,'/*\n\nThe nouislider.css file is autogenerated from nouislider.less, which imports and wraps the nouislider/src/nouislider.less styles.\n\nMIT License\n\nCopyright (c) 2019 Léon Gersen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n/* The .widget-slider class is deprecated */\n.widget-slider,\n.jupyter-widget-slider {\n /* Functional styling;\n * These styles are required for noUiSlider to function.\n * You don\'t need to change these rules to apply your design.\n */\n /* Wrapper for all connect elements.\n */\n /* Offset direction\n */\n /* Give origins 0 height/width so they don\'t interfere with clicking the\n * connect elements.\n */\n /* Slider size and handle placement;\n */\n /* Styling;\n * Giving the connect element a border radius causes issues with using transform: scale\n */\n /* Handles and cursors;\n */\n /* Handle stripes;\n */\n /* Disabled state;\n */\n /* Base;\n *\n */\n /* Values;\n *\n */\n /* Markings;\n *\n */\n /* Horizontal layout;\n *\n */\n /* Vertical layout;\n *\n */\n /* Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n /* Custom CSS for nouislider */\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target,\n.widget-slider .noUi-target *,\n.jupyter-widget-slider .noUi-target * {\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n -webkit-user-select: none;\n -ms-touch-action: none;\n touch-action: none;\n -ms-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target {\n position: relative;\n}\n.widget-slider .noUi-base,\n.jupyter-widget-slider .noUi-base,\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n width: 100%;\n height: 100%;\n position: relative;\n z-index: 1;\n}\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n overflow: hidden;\n z-index: 0;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect,\n.widget-slider .noUi-origin,\n.jupyter-widget-slider .noUi-origin {\n will-change: transform;\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n -ms-transform-origin: 0 0;\n -webkit-transform-origin: 0 0;\n -webkit-transform-style: preserve-3d;\n transform-origin: 0 0;\n transform-style: flat;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect {\n height: 100%;\n width: 100%;\n}\n.widget-slider .noUi-origin,\n.jupyter-widget-slider .noUi-origin {\n height: 10%;\n width: 10%;\n}\n.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin,\n.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {\n left: 0;\n right: auto;\n}\n.widget-slider .noUi-vertical .noUi-origin,\n.jupyter-widget-slider .noUi-vertical .noUi-origin {\n width: 0;\n}\n.widget-slider .noUi-horizontal .noUi-origin,\n.jupyter-widget-slider .noUi-horizontal .noUi-origin {\n height: 0;\n}\n.widget-slider .noUi-handle,\n.jupyter-widget-slider .noUi-handle {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n position: absolute;\n}\n.widget-slider .noUi-touch-area,\n.jupyter-widget-slider .noUi-touch-area {\n height: 100%;\n width: 100%;\n}\n.widget-slider .noUi-state-tap .noUi-connect,\n.jupyter-widget-slider .noUi-state-tap .noUi-connect,\n.widget-slider .noUi-state-tap .noUi-origin,\n.jupyter-widget-slider .noUi-state-tap .noUi-origin {\n -webkit-transition: transform 0.3s;\n transition: transform 0.3s;\n}\n.widget-slider .noUi-state-drag *,\n.jupyter-widget-slider .noUi-state-drag * {\n cursor: inherit !important;\n}\n.widget-slider .noUi-horizontal,\n.jupyter-widget-slider .noUi-horizontal {\n height: 18px;\n}\n.widget-slider .noUi-horizontal .noUi-handle,\n.jupyter-widget-slider .noUi-horizontal .noUi-handle {\n width: 34px;\n height: 28px;\n right: -17px;\n top: -6px;\n}\n.widget-slider .noUi-vertical,\n.jupyter-widget-slider .noUi-vertical {\n width: 18px;\n}\n.widget-slider .noUi-vertical .noUi-handle,\n.jupyter-widget-slider .noUi-vertical .noUi-handle {\n width: 28px;\n height: 34px;\n right: -6px;\n top: -17px;\n}\n.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle,\n.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {\n left: -17px;\n right: auto;\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target {\n background: #FAFAFA;\n border-radius: 4px;\n border: 1px solid #D3D3D3;\n box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;\n}\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n border-radius: 3px;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect {\n background: #3FB8AF;\n}\n.widget-slider .noUi-draggable,\n.jupyter-widget-slider .noUi-draggable {\n cursor: ew-resize;\n}\n.widget-slider .noUi-vertical .noUi-draggable,\n.jupyter-widget-slider .noUi-vertical .noUi-draggable {\n cursor: ns-resize;\n}\n.widget-slider .noUi-handle,\n.jupyter-widget-slider .noUi-handle {\n border: 1px solid #D9D9D9;\n border-radius: 3px;\n background: #FFF;\n cursor: default;\n box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;\n}\n.widget-slider .noUi-active,\n.jupyter-widget-slider .noUi-active {\n box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB;\n}\n.widget-slider .noUi-handle:before,\n.jupyter-widget-slider .noUi-handle:before,\n.widget-slider .noUi-handle:after,\n.jupyter-widget-slider .noUi-handle:after {\n content: "";\n display: block;\n position: absolute;\n height: 14px;\n width: 1px;\n background: #E8E7E6;\n left: 14px;\n top: 6px;\n}\n.widget-slider .noUi-handle:after,\n.jupyter-widget-slider .noUi-handle:after {\n left: 17px;\n}\n.widget-slider .noUi-vertical .noUi-handle:before,\n.jupyter-widget-slider .noUi-vertical .noUi-handle:before,\n.widget-slider .noUi-vertical .noUi-handle:after,\n.jupyter-widget-slider .noUi-vertical .noUi-handle:after {\n width: 14px;\n height: 1px;\n left: 6px;\n top: 14px;\n}\n.widget-slider .noUi-vertical .noUi-handle:after,\n.jupyter-widget-slider .noUi-vertical .noUi-handle:after {\n top: 17px;\n}\n.widget-slider [disabled] .noUi-connect,\n.jupyter-widget-slider [disabled] .noUi-connect {\n background: #B8B8B8;\n}\n.widget-slider [disabled].noUi-target,\n.jupyter-widget-slider [disabled].noUi-target,\n.widget-slider [disabled].noUi-handle,\n.jupyter-widget-slider [disabled].noUi-handle,\n.widget-slider [disabled] .noUi-handle,\n.jupyter-widget-slider [disabled] .noUi-handle {\n cursor: not-allowed;\n}\n.widget-slider .noUi-pips,\n.jupyter-widget-slider .noUi-pips,\n.widget-slider .noUi-pips *,\n.jupyter-widget-slider .noUi-pips * {\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n.widget-slider .noUi-pips,\n.jupyter-widget-slider .noUi-pips {\n position: absolute;\n color: #999;\n}\n.widget-slider .noUi-value,\n.jupyter-widget-slider .noUi-value {\n position: absolute;\n white-space: nowrap;\n text-align: center;\n}\n.widget-slider .noUi-value-sub,\n.jupyter-widget-slider .noUi-value-sub {\n color: #ccc;\n font-size: 10px;\n}\n.widget-slider .noUi-marker,\n.jupyter-widget-slider .noUi-marker {\n position: absolute;\n background: #CCC;\n}\n.widget-slider .noUi-marker-sub,\n.jupyter-widget-slider .noUi-marker-sub {\n background: #AAA;\n}\n.widget-slider .noUi-marker-large,\n.jupyter-widget-slider .noUi-marker-large {\n background: #AAA;\n}\n.widget-slider .noUi-pips-horizontal,\n.jupyter-widget-slider .noUi-pips-horizontal {\n padding: 10px 0;\n height: 80px;\n top: 100%;\n left: 0;\n width: 100%;\n}\n.widget-slider .noUi-value-horizontal,\n.jupyter-widget-slider .noUi-value-horizontal {\n -webkit-transform: translate(-50%, 50%);\n transform: translate(-50%, 50%);\n}\n.noUi-rtl .widget-slider .noUi-value-horizontal,\n.noUi-rtl .jupyter-widget-slider .noUi-value-horizontal {\n -webkit-transform: translate(50%, 50%);\n transform: translate(50%, 50%);\n}\n.widget-slider .noUi-marker-horizontal.noUi-marker,\n.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker {\n margin-left: -1px;\n width: 2px;\n height: 5px;\n}\n.widget-slider .noUi-marker-horizontal.noUi-marker-sub,\n.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-sub {\n height: 10px;\n}\n.widget-slider .noUi-marker-horizontal.noUi-marker-large,\n.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-large {\n height: 15px;\n}\n.widget-slider .noUi-pips-vertical,\n.jupyter-widget-slider .noUi-pips-vertical {\n padding: 0 10px;\n height: 100%;\n top: 0;\n left: 100%;\n}\n.widget-slider .noUi-value-vertical,\n.jupyter-widget-slider .noUi-value-vertical {\n -webkit-transform: translate(0, -50%);\n transform: translate(0, -50%);\n padding-left: 25px;\n}\n.noUi-rtl .widget-slider .noUi-value-vertical,\n.noUi-rtl .jupyter-widget-slider .noUi-value-vertical {\n -webkit-transform: translate(0, 50%);\n transform: translate(0, 50%);\n}\n.widget-slider .noUi-marker-vertical.noUi-marker,\n.jupyter-widget-slider .noUi-marker-vertical.noUi-marker {\n width: 5px;\n height: 2px;\n margin-top: -1px;\n}\n.widget-slider .noUi-marker-vertical.noUi-marker-sub,\n.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-sub {\n width: 10px;\n}\n.widget-slider .noUi-marker-vertical.noUi-marker-large,\n.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-large {\n width: 15px;\n}\n.widget-slider .noUi-tooltip,\n.jupyter-widget-slider .noUi-tooltip {\n display: block;\n position: absolute;\n border: 1px solid #D9D9D9;\n border-radius: 3px;\n background: #fff;\n color: #000;\n padding: 5px;\n text-align: center;\n white-space: nowrap;\n}\n.widget-slider .noUi-horizontal .noUi-tooltip,\n.jupyter-widget-slider .noUi-horizontal .noUi-tooltip {\n -webkit-transform: translate(-50%, 0);\n transform: translate(-50%, 0);\n left: 50%;\n bottom: 120%;\n}\n.widget-slider .noUi-vertical .noUi-tooltip,\n.jupyter-widget-slider .noUi-vertical .noUi-tooltip {\n -webkit-transform: translate(0, -50%);\n transform: translate(0, -50%);\n top: 50%;\n right: 120%;\n}\n.widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip,\n.jupyter-widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip {\n -webkit-transform: translate(50%, 0);\n transform: translate(50%, 0);\n left: auto;\n bottom: 10px;\n}\n.widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip,\n.jupyter-widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip {\n -webkit-transform: translate(0, -18px);\n transform: translate(0, -18px);\n top: auto;\n right: 28px;\n}\n.widget-slider .noUi-connect,\n.jupyter-widget-slider .noUi-connect {\n background: #2196f3;\n}\n.widget-slider .noUi-horizontal,\n.jupyter-widget-slider .noUi-horizontal {\n height: var(--jp-widgets-slider-track-thickness);\n}\n.widget-slider .noUi-vertical,\n.jupyter-widget-slider .noUi-vertical {\n width: var(--jp-widgets-slider-track-thickness);\n height: 100%;\n}\n.widget-slider .noUi-horizontal .noUi-handle,\n.jupyter-widget-slider .noUi-horizontal .noUi-handle {\n width: var(--jp-widgets-slider-handle-size);\n height: var(--jp-widgets-slider-handle-size);\n border-radius: 50%;\n top: calc((var(--jp-widgets-slider-track-thickness) - var(--jp-widgets-slider-handle-size)) / 2);\n right: calc(var(--jp-widgets-slider-handle-size) / -2);\n}\n.widget-slider .noUi-vertical .noUi-handle,\n.jupyter-widget-slider .noUi-vertical .noUi-handle {\n height: var(--jp-widgets-slider-handle-size);\n width: var(--jp-widgets-slider-handle-size);\n border-radius: 50%;\n right: calc((var(--jp-widgets-slider-handle-size) - var(--jp-widgets-slider-track-thickness)) / -2);\n top: calc(var(--jp-widgets-slider-handle-size) / -2);\n}\n.widget-slider .noUi-handle:after,\n.jupyter-widget-slider .noUi-handle:after {\n content: none;\n}\n.widget-slider .noUi-handle:before,\n.jupyter-widget-slider .noUi-handle:before {\n content: none;\n}\n.widget-slider .noUi-target,\n.jupyter-widget-slider .noUi-target {\n background: #fafafa;\n border-radius: 4px;\n border: 1px;\n /* box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; */\n}\n.widget-slider .ui-slider,\n.jupyter-widget-slider .ui-slider {\n border: var(--jp-widgets-slider-border-width) solid var(--jp-layout-color3);\n background: var(--jp-layout-color3);\n box-sizing: border-box;\n position: relative;\n border-radius: 0px;\n}\n.widget-slider .noUi-handle,\n.jupyter-widget-slider .noUi-handle {\n width: var(--jp-widgets-slider-handle-size);\n border: 1px solid #d9d9d9;\n border-radius: 3px;\n background: #fff;\n cursor: default;\n box-shadow: none;\n outline: none;\n}\n.widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,\n.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,\n.widget-slider .noUi-target:not([disabled]) .noUi-handle:focus,\n.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:focus {\n background-color: var(--jp-widgets-slider-active-handle-color);\n border: var(--jp-widgets-slider-border-width) solid var(--jp-widgets-slider-active-handle-color);\n}\n.widget-slider [disabled].noUi-target,\n.jupyter-widget-slider [disabled].noUi-target {\n opacity: 0.35;\n}\n.widget-slider .noUi-connects,\n.jupyter-widget-slider .noUi-connects {\n overflow: visible;\n z-index: 0;\n background: var(--jp-layout-color3);\n}\n.widget-slider .noUi-vertical .noUi-connect,\n.jupyter-widget-slider .noUi-vertical .noUi-connect {\n width: calc(100% + 2px);\n right: -1px;\n}\n.widget-slider .noUi-horizontal .noUi-connect,\n.jupyter-widget-slider .noUi-horizontal .noUi-connect {\n height: calc(100% + 2px);\n top: -1px;\n}\n',""]);const d=a},5309:(e,n,t)=>{t.d(n,{Z:()=>w});var i=t(9601),r=t.n(i),o=t(2609),a=t.n(o),d=t(7117),s=t(4788),l=t(8991),g=t.n(l),p=new URL(t(584),t.b),c=a()(r());c.i(d.Z),c.i(s.Z);var u=g()(p);c.push([e.id,"/* Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n/*\n * We assume that the CSS variables in\n * https://github.com/jupyterlab/jupyterlab/blob/master/src/default-theme/variables.css\n * have been defined.\n */\n\n:root {\n --jp-widgets-color: var(--jp-content-font-color1);\n --jp-widgets-label-color: var(--jp-widgets-color);\n --jp-widgets-readout-color: var(--jp-widgets-color);\n --jp-widgets-font-size: var(--jp-ui-font-size1);\n --jp-widgets-margin: 2px;\n --jp-widgets-inline-height: 28px;\n --jp-widgets-inline-width: 300px;\n --jp-widgets-inline-width-short: calc(\n var(--jp-widgets-inline-width) / 2 - var(--jp-widgets-margin)\n );\n --jp-widgets-inline-width-tiny: calc(\n var(--jp-widgets-inline-width-short) / 2 - var(--jp-widgets-margin)\n );\n --jp-widgets-inline-margin: 4px; /* margin between inline elements */\n --jp-widgets-inline-label-width: 80px;\n --jp-widgets-border-width: var(--jp-border-width);\n --jp-widgets-vertical-height: 200px;\n --jp-widgets-horizontal-tab-height: 24px;\n --jp-widgets-horizontal-tab-width: 144px;\n --jp-widgets-horizontal-tab-top-border: 2px;\n --jp-widgets-progress-thickness: 20px;\n --jp-widgets-container-padding: 15px;\n --jp-widgets-input-padding: 4px;\n --jp-widgets-radio-item-height-adjustment: 8px;\n --jp-widgets-radio-item-height: calc(\n var(--jp-widgets-inline-height) -\n var(--jp-widgets-radio-item-height-adjustment)\n );\n --jp-widgets-slider-track-thickness: 4px;\n --jp-widgets-slider-border-width: var(--jp-widgets-border-width);\n --jp-widgets-slider-handle-size: 16px;\n --jp-widgets-slider-handle-border-color: var(--jp-border-color1);\n --jp-widgets-slider-handle-background-color: var(--jp-layout-color1);\n --jp-widgets-slider-active-handle-color: var(--jp-brand-color1);\n --jp-widgets-menu-item-height: 24px;\n --jp-widgets-dropdown-arrow: url("+u+");\n --jp-widgets-input-color: var(--jp-ui-font-color1);\n --jp-widgets-input-background-color: var(--jp-layout-color1);\n --jp-widgets-input-border-color: var(--jp-border-color1);\n --jp-widgets-input-focus-border-color: var(--jp-brand-color2);\n --jp-widgets-input-border-width: var(--jp-widgets-border-width);\n --jp-widgets-disabled-opacity: 0.6;\n\n /* From Material Design Lite */\n --md-shadow-key-umbra-opacity: 0.2;\n --md-shadow-key-penumbra-opacity: 0.14;\n --md-shadow-ambient-shadow-opacity: 0.12;\n}\n\n.jupyter-widgets {\n margin: var(--jp-widgets-margin);\n box-sizing: border-box;\n color: var(--jp-widgets-color);\n overflow: visible;\n}\n\n.jp-Output-result > .jupyter-widgets {\n margin-left: 0;\n margin-right: 0;\n}\n\n/* vbox and hbox */\n\n/* */\n.widget-inline-hbox, /* */\n .jupyter-widget-inline-hbox {\n /* Horizontal widgets */\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: baseline;\n}\n\n/* */\n.widget-inline-vbox, /* */\n .jupyter-widget-inline-vbox {\n /* Vertical Widgets */\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* */\n.widget-box, /* */\n.jupyter-widget-box {\n box-sizing: border-box;\n display: flex;\n margin: 0;\n overflow: auto;\n}\n\n/* */\n.widget-gridbox, /* */\n.jupyter-widget-gridbox {\n box-sizing: border-box;\n display: grid;\n margin: 0;\n overflow: auto;\n}\n\n/* */\n.widget-hbox, /* */\n.jupyter-widget-hbox {\n flex-direction: row;\n}\n\n/* */\n.widget-vbox, /* */\n.jupyter-widget-vbox {\n flex-direction: column;\n}\n\n/* General Tags Styling */\n\n.jupyter-widget-tagsinput {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n overflow: auto;\n\n cursor: text;\n}\n\n.jupyter-widget-tag {\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 0px;\n padding-bottom: 0px;\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n font-size: var(--jp-widgets-font-size);\n\n height: calc(var(--jp-widgets-inline-height) - 2px);\n border: 0px solid;\n line-height: calc(var(--jp-widgets-inline-height) - 2px);\n box-shadow: none;\n\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color2);\n border-color: var(--jp-border-color2);\n border: none;\n user-select: none;\n\n cursor: grab;\n transition: margin-left 200ms;\n margin: 1px 1px 1px 1px;\n}\n\n.jupyter-widget-tag.mod-active {\n /* MD Lite 4dp shadow */\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)),\n 0 1px 10px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity)),\n 0 2px 4px -1px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity));\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color3);\n}\n\n.jupyter-widget-colortag {\n color: var(--jp-inverse-ui-font-color1);\n}\n\n.jupyter-widget-colortag.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n}\n\n.jupyter-widget-taginput {\n color: var(--jp-ui-font-color0);\n background-color: var(--jp-layout-color0);\n\n cursor: text;\n text-align: left;\n}\n\n.jupyter-widget-taginput:focus {\n outline: none;\n}\n\n.jupyter-widget-tag-close {\n margin-left: var(--jp-widgets-inline-margin);\n padding: 2px 0px 2px 2px;\n}\n\n.jupyter-widget-tag-close:hover {\n cursor: pointer;\n}\n\n/* Tag \"Primary\" Styling */\n\n.jupyter-widget-tag.mod-primary {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-brand-color1);\n}\n\n.jupyter-widget-tag.mod-primary.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-brand-color0);\n}\n\n/* Tag \"Success\" Styling */\n\n.jupyter-widget-tag.mod-success {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-success-color1);\n}\n\n.jupyter-widget-tag.mod-success.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-success-color0);\n}\n\n/* Tag \"Info\" Styling */\n\n.jupyter-widget-tag.mod-info {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-info-color1);\n}\n\n.jupyter-widget-tag.mod-info.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-info-color0);\n}\n\n/* Tag \"Warning\" Styling */\n\n.jupyter-widget-tag.mod-warning {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-warn-color1);\n}\n\n.jupyter-widget-tag.mod-warning.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-warn-color0);\n}\n\n/* Tag \"Danger\" Styling */\n\n.jupyter-widget-tag.mod-danger {\n color: var(--jp-inverse-ui-font-color1);\n background-color: var(--jp-error-color1);\n}\n\n.jupyter-widget-tag.mod-danger.mod-active {\n color: var(--jp-inverse-ui-font-color0);\n background-color: var(--jp-error-color0);\n}\n\n/* General Button Styling */\n\n.jupyter-button {\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 0px;\n padding-bottom: 0px;\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n font-size: var(--jp-widgets-font-size);\n cursor: pointer;\n\n height: var(--jp-widgets-inline-height);\n border: 0px solid;\n line-height: var(--jp-widgets-inline-height);\n box-shadow: none;\n\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color2);\n border-color: var(--jp-border-color2);\n border: none;\n user-select: none;\n}\n\n.jupyter-button i.fa {\n margin-right: var(--jp-widgets-inline-margin);\n pointer-events: none;\n}\n\n.jupyter-button:empty:before {\n content: '\\200b'; /* zero-width space */\n}\n\n.jupyter-widgets.jupyter-button:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n.jupyter-button i.fa.center {\n margin-right: 0;\n}\n\n.jupyter-button:hover:enabled,\n.jupyter-button:focus:enabled {\n /* MD Lite 2dp shadow */\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)),\n 0 3px 1px -2px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity)),\n 0 1px 5px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity));\n}\n\n.jupyter-button:active,\n.jupyter-button.mod-active {\n /* MD Lite 4dp shadow */\n box-shadow: 0 4px 5px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)),\n 0 1px 10px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity)),\n 0 2px 4px -1px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity));\n color: var(--jp-ui-font-color1);\n background-color: var(--jp-layout-color3);\n}\n\n.jupyter-button:focus:enabled {\n outline: 1px solid var(--jp-widgets-input-focus-border-color);\n}\n\n/* Button \"Primary\" Styling */\n\n.jupyter-button.mod-primary {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-brand-color1);\n}\n\n.jupyter-button.mod-primary.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-brand-color0);\n}\n\n.jupyter-button.mod-primary:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-brand-color0);\n}\n\n/* Button \"Success\" Styling */\n\n.jupyter-button.mod-success {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-success-color1);\n}\n\n.jupyter-button.mod-success.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-success-color0);\n}\n\n.jupyter-button.mod-success:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-success-color0);\n}\n\n/* Button \"Info\" Styling */\n\n.jupyter-button.mod-info {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-info-color1);\n}\n\n.jupyter-button.mod-info.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-info-color0);\n}\n\n.jupyter-button.mod-info:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-info-color0);\n}\n\n/* Button \"Warning\" Styling */\n\n.jupyter-button.mod-warning {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-warn-color1);\n}\n\n.jupyter-button.mod-warning.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-warn-color0);\n}\n\n.jupyter-button.mod-warning:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-warn-color0);\n}\n\n/* Button \"Danger\" Styling */\n\n.jupyter-button.mod-danger {\n color: var(--jp-ui-inverse-font-color1);\n background-color: var(--jp-error-color1);\n}\n\n.jupyter-button.mod-danger.mod-active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-error-color0);\n}\n\n.jupyter-button.mod-danger:active {\n color: var(--jp-ui-inverse-font-color0);\n background-color: var(--jp-error-color0);\n}\n\n/* Widget Button, Widget Toggle Button, Widget Upload */\n\n/* */\n.widget-button, /* */\n/* */ .widget-toggle-button, /* */\n/* */ .widget-upload, /* */\n.jupyter-widget-button,\n.jupyter-widget-toggle-button,\n.jupyter-widget-upload {\n width: var(--jp-widgets-inline-width-short);\n}\n\n/* Widget Label Styling */\n\n/* Override Bootstrap label css */\n.jupyter-widgets label {\n margin-bottom: initial;\n}\n\n/* */\n.widget-label-basic, /* */\n.jupyter-widget-label-basic {\n /* Basic Label */\n color: var(--jp-widgets-label-color);\n font-size: var(--jp-widgets-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-label, /* */\n.jupyter-widget-label {\n /* Label */\n color: var(--jp-widgets-label-color);\n font-size: var(--jp-widgets-font-size);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-inline-hbox .widget-label, /* */\n.jupyter-widget-inline-hbox .jupyter-widget-label {\n /* Horizontal Widget Label */\n color: var(--jp-widgets-label-color);\n text-align: right;\n margin-right: calc(var(--jp-widgets-inline-margin) * 2);\n width: var(--jp-widgets-inline-label-width);\n flex-shrink: 0;\n}\n\n/* */\n.widget-inline-vbox .widget-label, /* */\n.jupyter-widget-inline-vbox .jupyter-widget-label {\n /* Vertical Widget Label */\n color: var(--jp-widgets-label-color);\n text-align: center;\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* Widget Readout Styling */\n\n/* */\n.widget-readout, /* */\n.jupyter-widget-readout {\n color: var(--jp-widgets-readout-color);\n font-size: var(--jp-widgets-font-size);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n overflow: hidden;\n white-space: nowrap;\n text-align: center;\n}\n\n/* */\n.widget-readout.overflow, /* */\n.jupyter-widget-readout.overflow {\n /* Overflowing Readout */\n\n /* From Material Design Lite\n shadow-key-umbra-opacity: 0.2;\n shadow-key-penumbra-opacity: 0.14;\n shadow-ambient-shadow-opacity: 0.12;\n */\n -webkit-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2),\n 0 3px 1px -2px rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n\n -moz-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2),\n 0 3px 1px -2px rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n\n box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.2), 0 3px 1px -2px rgba(0, 0, 0, 0.14),\n 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n\n/* */\n.widget-inline-hbox .widget-readout, /* */\n.jupyter-widget-inline-hbox .jupyter-widget-readout {\n /* Horizontal Readout */\n text-align: center;\n max-width: var(--jp-widgets-inline-width-short);\n min-width: var(--jp-widgets-inline-width-tiny);\n margin-left: var(--jp-widgets-inline-margin);\n}\n\n/* */\n.widget-inline-vbox .widget-readout, /* */\n.jupyter-widget-inline-vbox .jupyter-widget-readout {\n /* Vertical Readout */\n margin-top: var(--jp-widgets-inline-margin);\n /* as wide as the widget */\n width: inherit;\n}\n\n/* Widget Checkbox Styling */\n\n/* */\n.widget-checkbox, /* */\n.jupyter-widget-checkbox {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-checkbox input[type='checkbox'], /* */\n.jupyter-widget-checkbox input[type='checkbox'] {\n margin: 0px calc(var(--jp-widgets-inline-margin) * 2) 0px 0px;\n line-height: var(--jp-widgets-inline-height);\n font-size: large;\n flex-grow: 1;\n flex-shrink: 0;\n align-self: center;\n}\n\n/* Widget Valid Styling */\n\n/* */\n.widget-valid, /* */\n.jupyter-widget-valid {\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n width: var(--jp-widgets-inline-width-short);\n font-size: var(--jp-widgets-font-size);\n}\n\n/* */\n.widget-valid i, /* */\n.jupyter-widget-valid i {\n line-height: var(--jp-widgets-inline-height);\n margin-right: var(--jp-widgets-inline-margin);\n margin-left: var(--jp-widgets-inline-margin);\n}\n\n/* */\n.widget-valid.mod-valid i, /* */\n.jupyter-widget-valid.mod-valid i {\n color: green;\n}\n\n/* */\n.widget-valid.mod-invalid i, /* */\n.jupyter-widget-valid.mod-invalid i {\n color: red;\n}\n\n/* */\n.widget-valid.mod-valid .widget-valid-readout, /* */\n.jupyter-widget-valid.mod-valid .jupyter-widget-valid-readout {\n display: none;\n}\n\n/* Widget Text and TextArea Styling */\n\n/* */\n.widget-textarea, /* */\n/* */ .widget-text, /* */\n.jupyter-widget-textarea,\n.jupyter-widget-text {\n width: var(--jp-widgets-inline-width);\n}\n\n/* */\n.widget-text input[type='text'], /* */\n/* */ .widget-text input[type='number'], /* */\n/* */ .widget-text input[type='password'], /* */\n.jupyter-widget-text input[type='text'],\n.jupyter-widget-text input[type='number'],\n.jupyter-widget-text input[type='password'] {\n height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-text input[type='text']:disabled, /* */\n/* */ .widget-text input[type='number']:disabled, /* */\n/* */ .widget-text input[type='password']:disabled, /* */\n/* */ .widget-textarea textarea:disabled, /* */\n.jupyter-widget-text input[type='text']:disabled,\n.jupyter-widget-text input[type='number']:disabled,\n.jupyter-widget-text input[type='password']:disabled,\n.jupyter-widget-textarea textarea:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* */\n.widget-text input[type='text'], /* */\n/* */ .widget-text input[type='number'], /* */\n/* */ .widget-text input[type='password'], /* */\n/* */ .widget-textarea textarea, /* */\n.jupyter-widget-text input[type='text'],\n.jupyter-widget-text input[type='number'],\n.jupyter-widget-text input[type='password'],\n.jupyter-widget-textarea textarea {\n box-sizing: border-box;\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n flex-grow: 1;\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n flex-shrink: 1;\n outline: none !important;\n}\n\n/* */\n.widget-text input[type='text'], /* */\n/* */ .widget-text input[type='password'], /* */\n/* */ .widget-textarea textarea, /* */\n.jupyter-widget-text input[type='text'],\n.jupyter-widget-text input[type='password'],\n.jupyter-widget-textarea textarea {\n padding: var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n}\n\n/* */\n.widget-text input[type='number'], /* */\n.jupyter-widget-text input[type='number'] {\n padding: var(--jp-widgets-input-padding) 0 var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n}\n\n/* */\n.widget-textarea textarea, /* */\n.jupyter-widget-textarea textarea {\n height: inherit;\n width: inherit;\n}\n\n/* */\n.widget-text input:focus, /* */\n/* */ .widget-textarea textarea:focus, /* */\n.jupyter-widget-text input:focus,\n.jupyter-widget-textarea textarea:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* Horizontal Slider */\n/* */\n.widget-hslider, /* */\n.jupyter-widget-hslider {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n\n /* Override the align-items baseline. This way, the description and readout\n still seem to align their baseline properly, and we don't have to have\n align-self: stretch in the .slider-container. */\n align-items: center;\n}\n\n/* */\n.widgets-slider .slider-container, /* */\n.jupyter-widgets-slider .slider-container {\n overflow: visible;\n}\n\n/* */\n.widget-hslider .slider-container, /* */\n.jupyter-widget-hslider .slider-container {\n margin-left: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n margin-right: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n flex: 1 1 var(--jp-widgets-inline-width-short);\n}\n\n/* Vertical Slider */\n\n/* */\n.widget-vbox .widget-label, /* */\n.jupyter-widget-vbox .jupyter-widget-label {\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-vslider, /* */\n.jupyter-widget-vslider {\n /* Vertical Slider */\n height: var(--jp-widgets-vertical-height);\n width: var(--jp-widgets-inline-width-tiny);\n}\n\n/* */\n.widget-vslider .slider-container, /* */\n.jupyter-widget-vslider .slider-container {\n flex: 1 1 var(--jp-widgets-inline-width-short);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n margin-top: calc(\n var(--jp-widgets-slider-handle-size) / 2 - 2 *\n var(--jp-widgets-slider-border-width)\n );\n display: flex;\n flex-direction: column;\n}\n\n/* Widget Progress Styling */\n\n.progress-bar {\n -webkit-transition: none;\n -moz-transition: none;\n -ms-transition: none;\n -o-transition: none;\n transition: none;\n}\n\n.progress-bar {\n height: var(--jp-widgets-inline-height);\n}\n\n.progress-bar {\n background-color: var(--jp-brand-color1);\n}\n\n.progress-bar-success {\n background-color: var(--jp-success-color1);\n}\n\n.progress-bar-info {\n background-color: var(--jp-info-color1);\n}\n\n.progress-bar-warning {\n background-color: var(--jp-warn-color1);\n}\n\n.progress-bar-danger {\n background-color: var(--jp-error-color1);\n}\n\n.progress {\n background-color: var(--jp-layout-color2);\n border: none;\n box-shadow: none;\n}\n\n/* Horisontal Progress */\n\n/* */\n.widget-hprogress, /* */\n.jupyter-widget-hprogress {\n /* Progress Bar */\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n width: var(--jp-widgets-inline-width);\n align-items: center;\n}\n\n/* */\n.widget-hprogress .progress, /* */\n.jupyter-widget-hprogress .progress {\n flex-grow: 1;\n margin-top: var(--jp-widgets-input-padding);\n margin-bottom: var(--jp-widgets-input-padding);\n align-self: stretch;\n /* Override bootstrap style */\n height: initial;\n}\n\n/* Vertical Progress */\n\n/* */\n.widget-vprogress, /* */\n.jupyter-widget-vprogress {\n height: var(--jp-widgets-vertical-height);\n width: var(--jp-widgets-inline-width-tiny);\n}\n\n/* */\n.widget-vprogress .progress, /* */\n.jupyter-widget-vprogress .progress {\n flex-grow: 1;\n width: var(--jp-widgets-progress-thickness);\n margin-left: auto;\n margin-right: auto;\n margin-bottom: 0;\n}\n\n/* Select Widget Styling */\n\n/* */\n.widget-dropdown, /* */\n.jupyter-widget-dropdown {\n height: var(--jp-widgets-inline-height);\n width: var(--jp-widgets-inline-width);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-dropdown > select, /* */\n.jupyter-widget-dropdown > select {\n padding-right: 20px;\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n border-radius: 0;\n height: inherit;\n flex: 1 1 var(--jp-widgets-inline-width-short);\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n box-sizing: border-box;\n outline: none !important;\n box-shadow: none;\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n vertical-align: top;\n padding-left: calc(var(--jp-widgets-input-padding) * 2);\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n background-repeat: no-repeat;\n background-size: 20px;\n background-position: right center;\n background-image: var(--jp-widgets-dropdown-arrow);\n}\n/* */\n.widget-dropdown > select:focus, /* */\n.jupyter-widget-dropdown > select:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* */\n.widget-dropdown > select:disabled, /* */\n.jupyter-widget-dropdown > select:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* To disable the dotted border in Firefox around select controls.\n See http://stackoverflow.com/a/18853002 */\n/* */\n.widget-dropdown > select:-moz-focusring, /* */\n.jupyter-widget-dropdown > select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #000;\n}\n\n/* Select and SelectMultiple */\n\n/* */\n.widget-select, /* */\n.jupyter-widget-select {\n width: var(--jp-widgets-inline-width);\n line-height: var(--jp-widgets-inline-height);\n\n /* Because Firefox defines the baseline of a select as the bottom of the\n control, we align the entire control to the top and add padding to the\n select to get an approximate first line baseline alignment. */\n align-items: flex-start;\n}\n\n/* */\n.widget-select > select, /* */\n.jupyter-widget-select > select {\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n flex: 1 1 var(--jp-widgets-inline-width-short);\n outline: none !important;\n overflow: auto;\n height: inherit;\n\n /* Because Firefox defines the baseline of a select as the bottom of the\n control, we align the entire control to the top and add padding to the\n select to get an approximate first line baseline alignment. */\n padding-top: 5px;\n}\n\n/* */\n.widget-select > select:focus, /* */\n.jupyter-widget-select > select:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n.wiget-select > select > option,\n.jupyter-wiget-select > select > option {\n padding-left: var(--jp-widgets-input-padding);\n line-height: var(--jp-widgets-inline-height);\n /* line-height doesn't work on some browsers for select options */\n padding-top: calc(\n var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2\n );\n padding-bottom: calc(\n var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2\n );\n}\n\n/* Toggle Buttons Styling */\n\n/* */\n.widget-toggle-buttons, /* */\n.jupyter-widget-toggle-buttons {\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-toggle-buttons .widget-toggle-button, /* */\n.jupyter-widget-toggle-buttons .jupyter-widget-toggle-button {\n margin-left: var(--jp-widgets-margin);\n margin-right: var(--jp-widgets-margin);\n}\n\n/* */\n.widget-toggle-buttons .jupyter-button:disabled, /* */\n.jupyter-widget-toggle-buttons .jupyter-button:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Radio Buttons Styling */\n\n/* */\n.widget-radio, /* */\n.jupyter-widget-radio {\n width: var(--jp-widgets-inline-width);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-radio-box, /* */\n.jupyter-widget-radio-box {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n box-sizing: border-box;\n flex-grow: 1;\n margin-bottom: var(--jp-widgets-radio-item-height-adjustment);\n}\n\n/* */\n.widget-radio-box label, /* */\n.jupyter-widget-radio-box label {\n height: var(--jp-widgets-radio-item-height);\n line-height: var(--jp-widgets-radio-item-height);\n font-size: var(--jp-widgets-font-size);\n}\n\n/* */\n.widget-radio-box input, /* */\n.jupyter-widget-radio-box input {\n height: var(--jp-widgets-radio-item-height);\n line-height: var(--jp-widgets-radio-item-height);\n margin: 0 calc(var(--jp-widgets-input-padding) * 2) 0 1px;\n float: left;\n}\n\n/* Color Picker Styling */\n\n/* */\n.widget-colorpicker, /* */\n.jupyter-widget-colorpicker {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-colorpicker > .widget-colorpicker-input, /* */\n.jupyter-widget-colorpicker > .jupyter-widget-colorpicker-input {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: var(--jp-widgets-inline-width-tiny);\n}\n\n/* */\n.widget-colorpicker input[type='color'], /* */\n.jupyter-widget-colorpicker input[type='color'] {\n width: var(--jp-widgets-inline-height);\n height: var(--jp-widgets-inline-height);\n padding: 0 2px; /* make the color square actually square on Chrome on OS X */\n background: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n border-left: none;\n flex-grow: 0;\n flex-shrink: 0;\n box-sizing: border-box;\n align-self: stretch;\n outline: none !important;\n}\n\n/* */\n.widget-colorpicker.concise input[type='color'], /* */\n.jupyter-widget-colorpicker.concise input[type='color'] {\n border-left: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n}\n\n/* */\n.widget-colorpicker input[type='color']:focus, /* */\n/* */ .widget-colorpicker input[type='text']:focus, /* */\n.jupyter-widget-colorpicker input[type='color']:focus,\n.jupyter-widget-colorpicker input[type='text']:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* */\n.widget-colorpicker input[type='text'], /* */\n.jupyter-widget-colorpicker input[type='text'] {\n flex-grow: 1;\n outline: none !important;\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n background: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n font-size: var(--jp-widgets-font-size);\n padding: var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n flex-shrink: 1;\n box-sizing: border-box;\n}\n\n/* */\n.widget-colorpicker input[type='text']:disabled, /* */\n.jupyter-widget-colorpicker input[type='text']:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Date Picker Styling */\n\n/* */\n.widget-datepicker, /* */\n.jupyter-widget-datepicker {\n width: var(--jp-widgets-inline-width);\n height: var(--jp-widgets-inline-height);\n line-height: var(--jp-widgets-inline-height);\n}\n\n/* */\n.widget-datepicker input[type='date'], /* */\n.jupyter-widget-datepicker input[type='date'] {\n flex-grow: 1;\n flex-shrink: 1;\n min-width: 0; /* This makes it possible for the flexbox to shrink this input */\n outline: none !important;\n height: var(--jp-widgets-inline-height);\n border: var(--jp-widgets-input-border-width) solid\n var(--jp-widgets-input-border-color);\n background-color: var(--jp-widgets-input-background-color);\n color: var(--jp-widgets-input-color);\n font-size: var(--jp-widgets-font-size);\n padding: var(--jp-widgets-input-padding)\n calc(var(--jp-widgets-input-padding) * 2);\n box-sizing: border-box;\n}\n\n/* */\n.widget-datepicker input[type='date']:focus, /* */\n.jupyter-widget-datepicker input[type='date']:focus {\n border-color: var(--jp-widgets-input-focus-border-color);\n}\n\n/* */\n.widget-datepicker input[type='date']:invalid, /* */\n.jupyter-widget-datepicker input[type='date']:invalid {\n border-color: var(--jp-warn-color1);\n}\n\n/* */\n.widget-datepicker input[type='date']:disabled, /* */\n.jupyter-widget-datepicker input[type='date']:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Play Widget */\n\n/* */\n.widget-play, /* */\n.jupyter-widget-play {\n width: var(--jp-widgets-inline-width-short);\n display: flex;\n align-items: stretch;\n}\n\n/* */\n.widget-play .jupyter-button, /* */\n.jupyter-widget-play .jupyter-button {\n flex-grow: 1;\n height: auto;\n}\n\n/* */\n.widget-play .jupyter-button:disabled, /* */\n.jupyter-widget-play .jupyter-button:disabled {\n opacity: var(--jp-widgets-disabled-opacity);\n}\n\n/* Tab Widget */\n\n/* */\n.jupyter-widgets.widget-tab, /* */\n.jupyter-widgets.jupyter-widget-tab {\n display: flex;\n flex-direction: column;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {\n /* Necessary so that a tab can be shifted down to overlay the border of the box below. */\n overflow-x: visible;\n overflow-y: visible;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content {\n /* Make sure that the tab grows from bottom up */\n align-items: flex-end;\n min-width: 0;\n min-height: 0;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .widget-tab-contents, /* */\n.jupyter-widgets.jupyter-widget-tab > .widget-tab-contents {\n width: 100%;\n box-sizing: border-box;\n margin: 0;\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n padding: var(--jp-widgets-container-padding);\n flex-grow: 1;\n overflow: auto;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {\n font: var(--jp-widgets-font-size) Helvetica, Arial, sans-serif;\n min-height: calc(\n var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width)\n );\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab {\n flex: 0 1 var(--jp-widgets-horizontal-tab-width);\n min-width: 35px;\n min-height: calc(\n var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width)\n );\n line-height: var(--jp-widgets-horizontal-tab-height);\n margin-left: calc(-1 * var(--jp-border-width));\n padding: 0px 10px;\n background: var(--jp-layout-color2);\n color: var(--jp-ui-font-color2);\n border: var(--jp-border-width) solid var(--jp-border-color1);\n border-bottom: none;\n position: relative;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current {\n color: var(--jp-ui-font-color0);\n /* We want the background to match the tab content background */\n background: var(--jp-layout-color1);\n min-height: calc(\n var(--jp-widgets-horizontal-tab-height) + 2 * var(--jp-border-width)\n );\n transform: translateY(var(--jp-border-width));\n overflow: visible;\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current:before {\n position: absolute;\n top: calc(-1 * var(--jp-border-width));\n left: calc(-1 * var(--jp-border-width));\n content: '';\n height: var(--jp-widgets-horizontal-tab-top-border);\n width: calc(100% + 2 * var(--jp-border-width));\n background: var(--jp-brand-color1);\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab:first-child, /* */\n/* */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab:first-child, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab:first-child {\n margin-left: 0;\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar\n .p-TabBar-tab:hover:not(.p-mod-current),\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .p-TabBar\n .p-TabBar-tab:hover:not(.p-mod-current),\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar\n .lm-TabBar-tab:hover:not(.lm-mod-current) {\n background: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar\n .p-mod-closable\n > .p-TabBar-tabCloseIcon,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-tab\n> .p-TabBar\n.p-mod-closable\n> .p-TabBar-tabCloseIcon,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar\n .lm-mod-closable\n > .lm-TabBar-tabCloseIcon {\n margin-left: 4px;\n}\n\n/* This font-awesome strategy may not work across FA4 and FA5, but we don't\nactually support closable tabs, so it really doesn't matter */\n/* */\n.jupyter-widgets.widget-tab\n > .p-TabBar\n .p-mod-closable\n > .p-TabBar-tabCloseIcon:before,\n/* */\n/* */\n.jupyter-widgets.jupyter-widget-widget-tab\n> .p-TabBar\n.p-mod-closable\n> .p-TabBar-tabCloseIcon:before,\n/* */\n.jupyter-widgets.jupyter-widget-tab\n > .lm-TabBar\n .lm-mod-closable\n > .lm-TabBar-tabCloseIcon:before {\n font-family: FontAwesome;\n content: '\\f00d'; /* close */\n}\n\n/* */\n.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n/* */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, /* */\n/* */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* */\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon,\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel,\n.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon {\n line-height: var(--jp-widgets-horizontal-tab-height);\n}\n\n/* Accordion Widget */\n\n.jupyter-widget-Collapse {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n.jupyter-widget-Collapse-header {\n padding: var(--jp-widgets-input-padding);\n cursor: pointer;\n color: var(--jp-ui-font-color2);\n background-color: var(--jp-layout-color2);\n border: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n padding: calc(var(--jp-widgets-container-padding) * 2 / 3)\n var(--jp-widgets-container-padding);\n font-weight: bold;\n}\n\n.jupyter-widget-Collapse-header:hover {\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n}\n\n.jupyter-widget-Collapse-open > .jupyter-widget-Collapse-header {\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color0);\n cursor: default;\n border-bottom: none;\n}\n\n.jupyter-widget-Collapse-contents {\n padding: var(--jp-widgets-container-padding);\n background-color: var(--jp-layout-color1);\n color: var(--jp-ui-font-color1);\n border-left: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n border-right: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n border-bottom: var(--jp-widgets-border-width) solid var(--jp-border-color1);\n overflow: auto;\n}\n\n.jupyter-widget-Accordion {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n.jupyter-widget-Accordion .jupyter-widget-Collapse {\n margin-bottom: 0;\n}\n\n.jupyter-widget-Accordion .jupyter-widget-Collapse + .jupyter-widget-Collapse {\n margin-top: 4px;\n}\n\n/* HTML widget */\n\n/* */\n.widget-html, /* */\n/* */ .widget-htmlmath, /* */\n.jupyter-widget-html,\n.jupyter-widget-htmlmath {\n font-size: var(--jp-widgets-font-size);\n}\n\n/* */\n.widget-html > .widget-html-content, /* */\n/* */.widget-htmlmath > .widget-html-content, /* */\n.jupyter-widget-html > .jupyter-widget-html-content,\n.jupyter-widget-htmlmath > .jupyter-widget-html-content {\n /* Fill out the area in the HTML widget */\n align-self: stretch;\n flex-grow: 1;\n flex-shrink: 1;\n /* Makes sure the baseline is still aligned with other elements */\n line-height: var(--jp-widgets-inline-height);\n /* Make it possible to have absolutely-positioned elements in the html */\n position: relative;\n}\n\n/* Image widget */\n\n/* */\n.widget-image, /* */\n.jupyter-widget-image {\n max-width: 100%;\n height: auto;\n}\n",""]);const w=c},2609:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",i=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),i&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),i&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,i,r,o){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(i)for(var d=0;d0?" ".concat(g[5]):""," {").concat(g[1],"}")),g[5]=o),t&&(g[2]?(g[1]="@media ".concat(g[2]," {").concat(g[1],"}"),g[2]=t):g[2]=t),r&&(g[4]?(g[1]="@supports (".concat(g[4],") {").concat(g[1],"}"),g[4]=r):g[4]="".concat(r)),n.push(g))}},n}},8991:e=>{e.exports=function(e,n){return n||(n={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),n.hash&&(e+=n.hash),/["'() \t\n]|(%20)/.test(e)||n.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},9601:e=>{e.exports=function(e){return e[1]}},6062:e=>{var n=[];function t(e){for(var t=-1,i=0;i{var n={};e.exports=function(e,t){var i=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(t)}},1173:e=>{e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},7892:(e,n,t)=>{e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},4036:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var i="";t.supports&&(i+="@supports (".concat(t.supports,") {")),t.media&&(i+="@media ".concat(t.media," {"));var r=void 0!==t.layer;r&&(i+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),i+=t.css,r&&(i+="}"),t.media&&(i+="}"),t.supports&&(i+="}");var o=t.sourceMap;o&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),n.styleTagTransform(i,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},2464:e=>{e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},61:(e,n,t)=>{t.d(n,{N:()=>i});const i="2.0.0"},134:(e,n,t)=>{t.r(n),t.d(n,{KernelWidgetManager:()=>T,LabWidgetManager:()=>v,WidgetManager:()=>f,WidgetRenderer:()=>w,default:()=>ge,output:()=>i,registerWidgetManager:()=>te});var i={};t.r(i),t.d(i,{OUTPUT_WIDGET_VERSION:()=>P,OutputModel:()=>U,OutputView:()=>k});var r=t(56),o=t(1919),a=t(4826),d=t(4470),s=t(9350),l=t(6697),g=t(7717),p=t(3004),c=t(7930),u=t(8778);class w extends u.Panel{constructor(e,n){super(),this._manager=new c.PromiseDelegate,this._rerenderMimeModel=null,this.mimeType=e.mimeType,n&&(this.manager=n)}set manager(e){e.restored.connect(this._rerender,this),this._manager.resolve(e)}async renderModel(e){const n=e.data[this.mimeType];this.node.textContent="Loading widget...";const t=await this._manager.promise;if(""===n.model_id)return this.hide(),Promise.resolve();let i,r;try{i=await t.get_model(n.model_id)}catch(n){return t.restoredStatus?(this.node.textContent="Error displaying widget: model not found",this.addClass("jupyter-widgets"),void console.error(n)):void(this._rerenderMimeModel=e)}this._rerenderMimeModel=null;try{r=(await t.create_view(i)).luminoWidget}catch(e){return this.node.textContent="Error displaying widget",this.addClass("jupyter-widgets"),void console.error(e)}this.node.textContent="",this.addWidget(r),r.disposed.connect((()=>{this.hide(),n.model_id=""}))}dispose(){this.isDisposed||(this._manager=null,super.dispose())}_rerender(){this._rerenderMimeModel&&(this.node.textContent="",this.removeClass("jupyter-widgets"),this.renderModel(this._rerenderMimeModel))}}var h=t(9890),E=t(7482),b=t(4901),j=t(9e3);class y{constructor(){this._cache=Object.create(null)}set(e,n,t){if(e in this._cache||(this._cache[e]=Object.create(null)),n in this._cache[e])throw`Version ${n} of key ${e} already registered.`;this._cache[e][n]=t}get(e,n){if(e in this._cache){const t=this._cache[e],i=(0,j.maxSatisfying)(Object.keys(t),n);if(null!==i)return t[i]}}getAllVersions(e){if(e in this._cache)return this._cache[e]}}const m="application/vnd.jupyter.widget-view+json",D="application/vnd.jupyter.widget-state+json";class v extends E.ManagerBase{constructor(e){super(),this._handleCommOpen=async(e,n)=>{const t=new h.shims.services.Comm(e);await this.handle_comm_open(t,n)},this._restored=new b.Signal(this),this._restoredStatus=!1,this._kernelRestoreInProgress=!1,this._isDisposed=!1,this._registry=new y,this._modelsSync=new Map,this._onUnhandledIOPubMessage=new b.Signal(this),this._rendermime=e}callbacks(e){return{iopub:{output:e=>{this._onUnhandledIOPubMessage.emit(e)}}}}_handleKernelChanged({oldValue:e,newValue:n}){e&&e.removeCommTarget(this.comm_target_name,this._handleCommOpen),n&&n.registerCommTarget(this.comm_target_name,this._handleCommOpen)}disconnect(){super.disconnect(),this._restoredStatus=!1}async _loadFromKernel(){var e;if(!this.kernel)throw new Error("Kernel not set");if(!1!==(null===(e=this.kernel)||void 0===e?void 0:e.handleComms))return super._loadFromKernel()}async _create_comm(e,n,t,i,r){const o=this.kernel;if(!o)throw new Error("No current kernel");const a=o.createComm(e,n);return(t||i)&&a.open(t,i,r),new h.shims.services.Comm(a)}async _get_comm_info(){const e=this.kernel;if(!e)throw new Error("No current kernel");const n=await e.requestCommInfo({target_name:this.comm_target_name});return"ok"===n.content.status?n.content.comms:{}}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._commRegistration&&this._commRegistration.dispose())}async resolveUrl(e){return e}async loadClass(e,n,t){"@jupyter-widgets/base"!==n&&"@jupyter-widgets/controls"!==n||!(0,j.valid)(t)||(t=`^${t}`);const i=this._registry.getAllVersions(n);if(!i)throw new Error(`No version of module ${n} is registered`);const r=this._registry.get(n,t);if(!r){const e=Object.keys(i);throw new Error(`Module ${n}, version ${t} is not registered, however, ${e.join(",")} ${e.length>1?"are":"is"}`)}let o;o="function"==typeof r?await r():await r;const a=o[e];if(!a)throw new Error(`Class ${e} not found in module ${n}`);return a}get rendermime(){return this._rendermime}get restored(){return this._restored}get restoredStatus(){return this._restoredStatus}get onUnhandledIOPubMessage(){return this._onUnhandledIOPubMessage}register(e){this._registry.set(e.name,e.version,e.exports)}register_model(e,n){super.register_model(e,n),n.then((n=>{this._modelsSync.set(e,n),n.once("comm:close",(()=>{this._modelsSync.delete(e)}))}))}async clear_state(){await super.clear_state(),this._modelsSync=new Map}get_state_sync(e={}){const n=[];for(const e of this._modelsSync.values())e.comm_live&&n.push(e);return(0,E.serialize_state)(n,e)}}class T extends v{constructor(e,n){super(n),this._kernel=e,e.statusChanged.connect(((e,n)=>{this._handleKernelStatusChange(n)})),e.connectionStatusChanged.connect(((e,n)=>{this._handleKernelConnectionStatusChange(n)})),this._handleKernelChanged({name:"kernel",oldValue:null,newValue:e}),this.restoreWidgets()}_handleKernelConnectionStatusChange(e){"connected"===e&&(this._kernelRestoreInProgress||this.restoreWidgets())}_handleKernelStatusChange(e){"restarting"===e&&this.disconnect()}async restoreWidgets(){try{this._kernelRestoreInProgress=!0,await this._loadFromKernel(),this._restoredStatus=!0,this._restored.emit()}catch(e){}this._kernelRestoreInProgress=!1}dispose(){this.isDisposed||(this._kernel=null,super.dispose())}get kernel(){return this._kernel}}class f extends v{constructor(e,n,t){var i,r;super(n),this._context=e,e.sessionContext.kernelChanged.connect(((e,n)=>{this._handleKernelChanged(n)})),e.sessionContext.statusChanged.connect(((e,n)=>{this._handleKernelStatusChange(n)})),e.sessionContext.connectionStatusChanged.connect(((e,n)=>{this._handleKernelConnectionStatusChange(n)})),(null===(i=e.sessionContext.session)||void 0===i?void 0:i.kernel)&&this._handleKernelChanged({name:"kernel",oldValue:null,newValue:null===(r=e.sessionContext.session)||void 0===r?void 0:r.kernel}),this.restoreWidgets(this._context.model),this._settings=t,e.saveState.connect(((e,n)=>{"started"===n&&t.saveState&&this._saveState()}))}_saveState(){const e=this.get_state_sync({drop_defaults:!0});this._context.model.setMetadata?this._context.model.setMetadata("widgets",{"application/vnd.jupyter.widget-state+json":e}):this._context.model.metadata.set("widgets",{"application/vnd.jupyter.widget-state+json":e})}_handleKernelConnectionStatusChange(e){"connected"===e&&(this._kernelRestoreInProgress||this.restoreWidgets(this._context.model,{loadKernel:!0,loadNotebook:!1}))}_handleKernelStatusChange(e){"restarting"===e&&this.disconnect()}async restoreWidgets(e,{loadKernel:n,loadNotebook:t}={loadKernel:!0,loadNotebook:!0}){try{if(n)try{this._kernelRestoreInProgress=!0,await this._loadFromKernel()}finally{this._kernelRestoreInProgress=!1}t&&await this._loadFromNotebook(e),this._restoredStatus=!0,this._restored.emit()}catch(e){}}async _loadFromNotebook(e){const n=e.getMetadata?e.getMetadata("widgets"):e.metadata.get("widgets");if(n&&n[D]){let e=n[D];e=this.filterExistingModelState(e),await this.set_state(e)}}dispose(){this.isDisposed||(this._context=null,super.dispose())}async resolveUrl(e){const n=await this.context.urlResolver.resolveUrl(e);return this.context.urlResolver.getDownloadUrl(n)}get context(){return this._context}get kernel(){var e,n,t;return null!==(t=null===(n=null===(e=this._context.sessionContext)||void 0===e?void 0:e.session)||void 0===n?void 0:n.kernel)&&void 0!==t?t:null}register_model(e,n){super.register_model(e,n),this.setDirty()}async clear_state(){await super.clear_state(),this.setDirty()}setDirty(){this._settings.saveState&&(this._context.model.dirty=!0)}}var x=t(8409),C=t(3363),R=t(2994),A=t.n(R);const P=x.OUTPUT_WIDGET_VERSION;class U extends x.OutputModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{msg_id:"",outputs:[]})}initialize(e,n){super.initialize(e,n),this._outputs=new C.OutputAreaModel({trusted:!0}),this._msgHook=e=>(this.add(e),!1),this.widget_manager instanceof f&&this.widget_manager.context.sessionContext.kernelChanged.connect(((e,n)=>{this._handleKernelChanged(n)})),this.listenTo(this,"change:msg_id",this.reset_msg_id),this.listenTo(this,"change:outputs",this.setOutputs),this.setOutputs()}_handleKernelChanged({oldValue:e}){const n=this.get("msg_id");n&&e&&(e.removeMessageHook(n,this._msgHook),this.set("msg_id",null))}reset_msg_id(){const e=this.widget_manager.kernel,n=this.get("msg_id"),t=this.previous("msg_id");t&&e&&e.removeMessageHook(t,this._msgHook),n&&e&&e.registerMessageHook(n,this._msgHook)}add(e){const n=e.header.msg_type;switch(n){case"execute_result":case"display_data":case"stream":case"error":{const t=e.content;t.output_type=n,this._outputs.add(t);break}case"clear_output":this.clear_output(e.content.wait)}this.set("outputs",this._outputs.toJSON(),{newMessage:!0}),this.save_changes()}clear_output(e=!1){this._outputs.clear(e)}get outputs(){return this._outputs}setOutputs(e,n,t){t&&t.newMessage||(this.clear_output(),this._outputs.fromJSON(JSON.parse(JSON.stringify(this.get("outputs")))))}}class k extends x.OutputView{_createElement(e){return this.luminoWidget=new h.JupyterLuminoPanelWidget({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=A()(this.luminoWidget.node)}render(){super.render(),this._outputView=new C.OutputArea({rendermime:this.model.widget_manager.rendermime,contentFactory:C.OutputArea.defaultContentFactory,model:this.model.outputs}),this.luminoWidget.insertWidget(0,this._outputView),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-output"),this.update()}remove(){return this._outputView.dispose(),super.remove()}}var I=t(61),S=t(6062),B=t.n(S),O=t(4036),_=t.n(O),z=t(6793),N=t.n(z),M=t(7892),L=t.n(M),W=t(1173),H=t.n(W),F=t(2464),V=t.n(F),G=t(937),Y={};Y.styleTagTransform=V(),Y.setAttributes=L(),Y.insert=N().bind(null,"head"),Y.domAPI=_(),Y.insertStyleElement=H(),B()(G.Z,Y),G.Z&&G.Z.locals&&G.Z.locals;var Z=t(5309),K={};K.styleTagTransform=V(),K.setAttributes=L(),K.insert=N().bind(null,"head"),K.domAPI=_(),K.insertStyleElement=H(),B()(Z.Z,K),Z.Z&&Z.Z.locals&&Z.Z.locals;var J=t(4238),$=t(926);const X=[],q={saveState:!1};function*Q(e){for(const n of e.widgets)if("code"===n.model.type)for(const e of n.outputArea.widgets)for(const n of Array.from(e.children()))n instanceof w&&(yield n)}function*ee(e,n){const t=(0,l.filter)(e.shell.widgets(),(e=>e.id.startsWith("LinkedOutputView-")&&e.path===n));for(const e of Array.from(t))for(const n of Array.from(e.children()))for(const e of Array.from(n.children()))e instanceof w&&(yield e)}function*ne(...e){for(const n of e)yield*n}function te(e,n,t){let i=le.widgetManagerProperty.get(e);i||(i=new f(e,n,q),X.forEach((e=>i.register(e))),le.widgetManagerProperty.set(e,i));for(const e of t)e.manager=i;return n.removeMimeType(m),n.addFactory({safe:!1,mimeTypes:[m],createRenderer:e=>new w(e,i)},-10),new g.DisposableDelegate((()=>{n&&n.removeMimeType(m),i.dispose()}))}const ie={id:"@jupyter-widgets/jupyterlab-manager:plugin",requires:[d.IRenderMimeRegistry],optional:[o.INotebookTracker,r.ISettingRegistry,a.IMainMenu,s.ILoggerRegistry,$.ITranslator],provides:h.IJupyterWidgetRegistry,activate:function(e,n,t,i,r,o,a){const{commands:d}=e,s=(null!=a?a:$.nullTranslator).load("jupyterlab_widgets"),l=e=>{if(!o)return;const n=le.widgetManagerProperty.get(e.context);n&&n.onUnhandledIOPubMessage.connect(((n,t)=>{const i=o.getLogger(e.context.path);let r="warning";(J.KernelMessage.isErrorMsg(t)||J.KernelMessage.isStreamMsg(t)&&"stderr"===t.content.name)&&(r="error");const a=Object.assign(Object.assign({},t.content),{output_type:t.header.msg_type});i.rendermime=e.content.rendermime,i.log({type:"output",data:a,level:r})}))};return null!==i&&i.load(ie.id).then((e=>{e.changed.connect(re),re(e)})).catch((e=>{console.error(e.message)})),n.addFactory({safe:!1,mimeTypes:[m],createRenderer:e=>new w(e)},-10),null!==t&&(t.forEach((n=>{te(n.context,n.content.rendermime,ne(Q(n.content),ee(e,n.context.path))),l(n)})),t.widgetAdded.connect(((n,t)=>{te(t.context,t.content.rendermime,ne(Q(t.content),ee(e,t.context.path))),l(t)}))),null!==i&&d.addCommand("@jupyter-widgets/jupyterlab-manager:saveWidgetState",{label:s.__("Save Widget State Automatically"),execute:e=>i.set(ie.id,"saveState",!q.saveState).catch((e=>{console.error(`Failed to set ${ie.id}: ${e.message}`)})),isToggled:()=>q.saveState}),r&&r.settingsMenu.addGroup([{command:"@jupyter-widgets/jupyterlab-manager:saveWidgetState"}]),{registerWidget(e){X.push(e)}}},autoStart:!0};function re(e){q.saveState=e.get("saveState").composite}const oe={id:`@jupyter-widgets/jupyterlab-manager:base-${h.JUPYTER_WIDGETS_VERSION}`,requires:[h.IJupyterWidgetRegistry],autoStart:!0,activate:(e,n)=>{n.registerWidget({name:"@jupyter-widgets/base",version:h.JUPYTER_WIDGETS_VERSION,exports:{WidgetModel:h.WidgetModel,WidgetView:h.WidgetView,DOMWidgetView:h.DOMWidgetView,DOMWidgetModel:h.DOMWidgetModel,LayoutModel:h.LayoutModel,LayoutView:h.LayoutView,StyleModel:h.StyleModel,StyleView:h.StyleView,ErrorWidgetView:h.ErrorWidgetView}})}},ae={id:`@jupyter-widgets/jupyterlab-manager:controls-${I.N}`,requires:[h.IJupyterWidgetRegistry],autoStart:!0,activate:(e,n)=>{n.registerWidget({name:"@jupyter-widgets/controls",version:I.N,exports:()=>new Promise(((e,n)=>{t.e(863).then((n=>{e(t(6530))}).bind(null,t)).catch((e=>{n(e)}))}))})}},de={id:`@jupyter-widgets/jupyterlab-manager:output-${P}`,requires:[h.IJupyterWidgetRegistry],autoStart:!0,activate:(e,n)=>{n.registerWidget({name:"@jupyter-widgets/output",version:P,exports:{OutputModel:U,OutputView:k}})}},se=[ie,oe,ae,de];var le;!function(e){e.widgetManagerProperty=new p.AttachedProperty({name:"widgetManager",create:e=>{}})}(le||(le={}));const ge=se},584:e=>{e.exports="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDpub25lO30KPC9zdHlsZT4KPHBhdGggZD0iTTUuMiw1LjlMOSw5LjdsMy44LTMuOGwxLjIsMS4ybC00LjksNWwtNC45LTVMNS4yLDUuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTAtMC42aDE4djE4SDBWLTAuNnoiLz4KPC9zdmc+Cg"}}]); \ No newline at end of file diff --git a/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js new file mode 100644 index 0000000..1b9b7da --- /dev/null +++ b/_static/extensions/@jupyter-widgets/jupyterlab-manager/static/291.cff5ef71b29e18850479.js @@ -0,0 +1,2 @@ +/*! For license information please see 291.cff5ef71b29e18850479.js.LICENSE.txt */ +(self.webpackChunk_jupyter_widgets_jupyterlab_manager=self.webpackChunk_jupyter_widgets_jupyterlab_manager||[]).push([[291],{8291:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(r,i){"use strict";var o=[],a=Object.getPrototypeOf,s=o.slice,u=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},l=o.push,c=o.indexOf,f={},p=f.toString,d=f.hasOwnProperty,h=d.toString,g=h.call(Object),v={},y=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},m=function(e){return null!=e&&e===e.window},x=r.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var r,i,o=(n=n||x).createElement("script");if(o.text=e,t)for(r in b)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[p.call(e)]||"object":typeof e}var C="3.7.0",k=/HTML$/i,S=function(e,t){return new S.fn.init(e,t)};function E(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!y(e)&&!m(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function j(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}S.fn=S.prototype={jquery:C,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(e){return this.pushStack(S.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(S.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+q+")"+q+"*"),$=new RegExp(q+"|>"),_=new RegExp(M),B=new RegExp("^"+H+"$"),X={ID:new RegExp("^#("+H+")"),CLASS:new RegExp("^\\.("+H+")"),TAG:new RegExp("^("+H+"|[*])"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+q+"*(even|odd|(([+-]|)(\\d*)n|)"+q+"*(?:([+-]|)"+q+"*(\\d+)|))"+q+"*\\)|)","i"),bool:new RegExp("^(?:"+E+")$","i"),needsContext:new RegExp("^"+q+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+q+"*((?:-\\d)?\\d*)"+q+"*\\)|)(?=[^-]|$)","i")},U=/^(?:input|select|textarea|button)$/i,z=/^h\d$/i,V=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/[+~]/,Y=new RegExp("\\\\[\\da-fA-F]{1,6}"+q+"?|\\\\([^\\r\\n\\f])","g"),Q=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},J=function(){ue()},K=pe((function(e){return!0===e.disabled&&j(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{g.apply(o=s.call(P.childNodes),P.childNodes),o[P.childNodes.length].nodeType}catch(e){g={apply:function(e,t){R.apply(e,s.call(t))},call:function(e){R.apply(e,s.call(arguments,1))}}}function Z(e,t,n,r){var i,o,a,s,l,c,d,h=t&&t.ownerDocument,m=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==m&&9!==m&&11!==m)return n;if(!r&&(ue(t),t=t||u,f)){if(11!==m&&(l=V.exec(e)))if(i=l[1]){if(9===m){if(!(a=t.getElementById(i)))return n;if(a.id===i)return g.call(n,a),n}else if(h&&(a=h.getElementById(i))&&Z.contains(t,a)&&a.id===i)return g.call(n,a),n}else{if(l[2])return g.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&t.getElementsByClassName)return g.apply(n,t.getElementsByClassName(i)),n}if(!(C[e+" "]||p&&p.test(e))){if(d=e,h=t,1===m&&($.test(e)||F.test(e))){for((h=G.test(e)&&se(t.parentNode)||t)==t&&v.scope||((s=t.getAttribute("id"))?s=S.escapeSelector(s):t.setAttribute("id",s=y)),o=(c=ce(e)).length;o--;)c[o]=(s?"#"+s:":scope")+" "+fe(c[o]);d=c.join(",")}try{return g.apply(n,h.querySelectorAll(d)),n}catch(t){C(e,!0)}finally{s===y&&t.removeAttribute("id")}}}return me(e.replace(L,"$1"),t,n,r)}function ee(){var e=[];return function n(r,i){return e.push(r+" ")>t.cacheLength&&delete n[e.shift()],n[r+" "]=i}}function te(e){return e[y]=!0,e}function ne(e){var t=u.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function re(e){return function(t){return j(t,"input")&&t.type===e}}function ie(e){return function(t){return(j(t,"input")||j(t,"button"))&&t.type===e}}function oe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&K(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ae(e){return te((function(t){return t=+t,te((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function se(e){return e&&void 0!==e.getElementsByTagName&&e}function ue(e){var n,r=e?e.ownerDocument||e:P;return r!=u&&9===r.nodeType&&r.documentElement?(l=(u=r).documentElement,f=!S.isXMLDoc(u),h=l.matches||l.webkitMatchesSelector||l.msMatchesSelector,P!=u&&(n=u.defaultView)&&n.top!==n&&n.addEventListener("unload",J),v.getById=ne((function(e){return l.appendChild(e).id=S.expando,!u.getElementsByName||!u.getElementsByName(S.expando).length})),v.disconnectedMatch=ne((function(e){return h.call(e,"*")})),v.scope=ne((function(){return u.querySelectorAll(":scope")})),v.cssHas=ne((function(){try{return u.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),v.getById?(t.filter.ID=function(e){var t=e.replace(Y,Q);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(Y,Q);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&f)return t.getElementsByClassName(e)},p=[],ne((function(e){var t;l.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||p.push("\\["+q+"*(?:value|"+E+")"),e.querySelectorAll("[id~="+y+"-]").length||p.push("~="),e.querySelectorAll("a#"+y+"+*").length||p.push(".#.+[+~]"),e.querySelectorAll(":checked").length||p.push(":checked"),(t=u.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),l.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(t=u.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||p.push("\\["+q+"*name"+q+"*="+q+"*(?:''|\"\")")})),v.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),k=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!v.sortDetached&&t.compareDocumentPosition(e)===n?e===u||e.ownerDocument==P&&Z.contains(P,e)?-1:t===u||t.ownerDocument==P&&Z.contains(P,t)?1:i?c.call(i,e)-c.call(i,t):0:4&n?-1:1)},u):u}for(e in Z.matches=function(e,t){return Z(e,null,null,t)},Z.matchesSelector=function(e,t){if(ue(e),f&&!C[t+" "]&&(!p||!p.test(t)))try{var n=h.call(e,t);if(n||v.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){C(t,!0)}return Z(t,u,null,[e]).length>0},Z.contains=function(e,t){return(e.ownerDocument||e)!=u&&ue(e),S.contains(e,t)},Z.attr=function(e,n){(e.ownerDocument||e)!=u&&ue(e);var r=t.attrHandle[n.toLowerCase()],i=r&&d.call(t.attrHandle,n.toLowerCase())?r(e,n,!f):void 0;return void 0!==i?i:e.getAttribute(n)},Z.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},S.uniqueSort=function(e){var t,n=[],r=0,o=0;if(a=!v.sortStable,i=!v.sortStable&&s.call(e,0),D.call(e,k),a){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)N.call(e,n[r],1)}return i=null,e},S.fn.uniqueSort=function(){return this.pushStack(S.uniqueSort(s.apply(this)))},t=S.expr={cacheLength:50,createPseudo:te,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Y,Q),e[3]=(e[3]||e[4]||e[5]||"").replace(Y,Q),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Z.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Z.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return X.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&_.test(n)&&(t=ce(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Y,Q).toLowerCase();return"*"===e?function(){return!0}:function(e){return j(e,t)}},CLASS:function(e){var t=b[e+" "];return t||(t=new RegExp("(^|"+q+")"+e+"("+q+"|$)"))&&b(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=Z.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(I," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),x=!u&&!s,b=!1;if(g){if(o){for(;h;){for(f=t;f=f[h];)if(s?j(f,v):1===f.nodeType)return!1;d=h="only"===e&&!d&&"nextSibling"}return!0}if(d=[a?g.firstChild:g.lastChild],a&&x){for(b=(p=(l=(c=g[y]||(g[y]={}))[e]||[])[0]===m&&l[1])&&l[2],f=p&&g.childNodes[p];f=++p&&f&&f[h]||(b=p=0)||d.pop();)if(1===f.nodeType&&++b&&f===t){c[e]=[m,p,b];break}}else if(x&&(b=p=(l=(c=t[y]||(t[y]={}))[e]||[])[0]===m&&l[1]),!1===b)for(;(f=++p&&f&&f[h]||(b=p=0)||d.pop())&&(!(s?j(f,v):1===f.nodeType)||!++b||(x&&((c=f[y]||(f[y]={}))[e]=[m,b]),f!==t)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,n){var r,i=t.pseudos[e]||t.setFilters[e.toLowerCase()]||Z.error("unsupported pseudo: "+e);return i[y]?i(n):i.length>1?(r=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var r,o=i(e,n),a=o.length;a--;)e[r=c.call(e,o[a])]=!(t[r]=o[a])})):function(e){return i(e,0,r)}):i}},pseudos:{not:te((function(e){var t=[],n=[],r=ye(e.replace(L,"$1"));return r[y]?te((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return Z(e,t).length>0}})),contains:te((function(e){return e=e.replace(Y,Q),function(t){return(t.textContent||S.text(t)).indexOf(e)>-1}})),lang:te((function(e){return B.test(e||"")||Z.error("unsupported lang: "+e),e=e.replace(Y,Q).toLowerCase(),function(t){var n;do{if(n=f?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=r.location&&r.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===l},focus:function(e){return e===function(){try{return u.activeElement}catch(e){}}()&&u.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:oe(!1),disabled:oe(!0),checked:function(e){return j(e,"input")&&!!e.checked||j(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return z.test(e.nodeName)},input:function(e){return U.test(e.nodeName)},button:function(e){return j(e,"input")&&"button"===e.type||j(e,"button")},text:function(e){var t;return j(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ae((function(){return[0]})),last:ae((function(e,t){return[t-1]})),eq:ae((function(e,t,n){return[n<0?n+t:n]})),even:ae((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ae((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function he(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s-1&&(o[l]=!(a[l]=p))}}else d=he(d===a?d.splice(y,d.length):d),i?i(null,a,d,u):g.apply(a,d)}))}function ve(e){for(var r,i,o,a=e.length,s=t.relative[e[0].type],u=s||t.relative[" "],l=s?1:0,f=pe((function(e){return e===r}),u,!0),p=pe((function(e){return c.call(r,e)>-1}),u,!0),d=[function(e,t,i){var o=!s&&(i||t!=n)||((r=t).nodeType?f(e,t,i):p(e,t,i));return r=null,o}];l1&&de(d),l>1&&fe(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(L,"$1"),i,l0,o=e.length>0,a=function(a,s,l,c,p){var d,h,v,y=0,x="0",b=a&&[],w=[],T=n,C=a||o&&t.find.TAG("*",p),k=m+=null==T?1:Math.random()||.1,E=C.length;for(p&&(n=s==u||s||p);x!==E&&null!=(d=C[x]);x++){if(o&&d){for(h=0,s||d.ownerDocument==u||(ue(d),l=!f);v=e[h++];)if(v(d,s||u,l)){g.call(c,d);break}p&&(m=k)}i&&((d=!v&&d)&&y--,a&&b.push(d))}if(y+=x,i&&x!==y){for(h=0;v=r[h++];)v(b,w,s,l);if(a){if(y>0)for(;x--;)b[x]||w[x]||(w[x]=A.call(c));w=he(w)}g.apply(c,w),p&&!a&&w.length>0&&y+r.length>1&&S.uniqueSort(c)}return p&&(m=k,n=T),b};return i?te(a):a}(a,o)),s.selector=e}return s}function me(e,n,r,i){var o,a,s,u,l,c="function"==typeof e&&e,p=!i&&ce(e=c.selector||e);if(r=r||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(s=a[0]).type&&9===n.nodeType&&f&&t.relative[a[1].type]){if(!(n=(t.find.ID(s.matches[0].replace(Y,Q),n)||[])[0]))return r;c&&(n=n.parentNode),e=e.slice(a.shift().value.length)}for(o=X.needsContext.test(e)?0:a.length;o--&&(s=a[o],!t.relative[u=s.type]);)if((l=t.find[u])&&(i=l(s.matches[0].replace(Y,Q),G.test(a[0].type)&&se(n.parentNode)||n))){if(a.splice(o,1),!(e=i.length&&fe(a)))return g.apply(r,i),r;break}}return(c||ye(e,p))(i,n,!f,r,!n||G.test(e)&&se(n.parentNode)||n),r}le.prototype=t.filters=t.pseudos,t.setFilters=new le,v.sortStable=y.split("").sort(k).join("")===y,ue(),v.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(u.createElement("fieldset"))})),S.find=Z,S.expr[":"]=S.expr.pseudos,S.unique=S.uniqueSort,Z.compile=ye,Z.select=me,Z.setDocument=ue,Z.escape=S.escapeSelector,Z.getText=S.text,Z.isXML=S.isXMLDoc,Z.selectors=S.expr,Z.support=S.support,Z.uniqueSort=S.uniqueSort}();var M=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},I=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},W=S.expr.match.needsContext,F=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function $(e,t,n){return y(t)?S.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?S.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?S.grep(e,(function(e){return c.call(t,e)>-1!==n})):S.filter(t,e,n)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,(function(e){return 1===e.nodeType})))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter((function(){for(t=0;t1?S.uniqueSort(n):n},filter:function(e){return this.pushStack($(this,e||[],!1))},not:function(e){return this.pushStack($(this,e||[],!0))},is:function(e){return!!$(this,"string"==typeof e&&W.test(e)?S(e):e||[],!1).length}});var _,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||_,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:B.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:x,!0)),F.test(r[1])&&S.isPlainObject(t))for(r in t)y(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=x.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):y(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,_=S(x);var X=/^(?:parents|prev(?:Until|All))/,U={children:!0,contents:!0,next:!0,prev:!0};function z(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?c.call(S(e),this[0]):c.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return M(e,"parentNode")},parentsUntil:function(e,t,n){return M(e,"parentNode",n)},next:function(e){return z(e,"nextSibling")},prev:function(e){return z(e,"previousSibling")},nextAll:function(e){return M(e,"nextSibling")},prevAll:function(e){return M(e,"previousSibling")},nextUntil:function(e,t,n){return M(e,"nextSibling",n)},prevUntil:function(e,t,n){return M(e,"previousSibling",n)},siblings:function(e){return I((e.parentNode||{}).firstChild,e)},children:function(e){return I(e.firstChild)},contents:function(e){return null!=e.contentDocument&&a(e.contentDocument)?e.contentDocument:(j(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},(function(e,t){S.fn[e]=function(n,r){var i=S.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=S.filter(r,i)),this.length>1&&(U[e]||S.uniqueSort(i),X.test(e)&&i.reverse()),this.pushStack(i)}}));var V=/[^\x20\t\r\n\f]+/g;function G(e){return e}function Y(e){throw e}function Q(e,t,n,r){var i;try{e&&y(i=e.promise)?i.call(e).done(t).fail(n):e&&y(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return S.each(e.match(V)||[],(function(e,n){t[n]=!0})),t}(e):S.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?S.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},S.extend({Deferred:function(e){var t=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],n="pending",i={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return S.Deferred((function(n){S.each(t,(function(t,r){var i=y(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&y(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,i){var o=0;function a(e,t,n,i){return function(){var s=this,u=arguments,l=function(){var r,l;if(!(e=o&&(n!==Y&&(s=void 0,u=[r]),t.rejectWith(s,u))}};e?c():(S.Deferred.getErrorHook?c.error=S.Deferred.getErrorHook():S.Deferred.getStackHook&&(c.error=S.Deferred.getStackHook()),r.setTimeout(c))}}return S.Deferred((function(r){t[0][3].add(a(0,r,y(i)?i:G,r.notifyWith)),t[1][3].add(a(0,r,y(e)?e:G)),t[2][3].add(a(0,r,y(n)?n:Y))})).promise()},promise:function(e){return null!=e?S.extend(e,i):i}},o={};return S.each(t,(function(e,r){var a=r[2],s=r[5];i[r[1]]=a.add,s&&a.add((function(){n=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),a.add(r[3].fire),o[r[0]]=function(){return o[r[0]+"With"](this===o?void 0:this,arguments),this},o[r[0]+"With"]=a.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=s.call(arguments),o=S.Deferred(),a=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?s.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(Q(e,o.done(a(n)).resolve,o.reject,!t),"pending"===o.state()||y(i[n]&&i[n].then)))return o.then();for(;n--;)Q(i[n],a(n),o.reject);return o.promise()}});var J=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){r.console&&r.console.warn&&e&&J.test(e.name)&&r.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){r.setTimeout((function(){throw e}))};var K=S.Deferred();function Z(){x.removeEventListener("DOMContentLoaded",Z),r.removeEventListener("load",Z),S.ready()}S.fn.ready=function(e){return K.then(e).catch((function(e){S.readyException(e)})),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0,!0!==e&&--S.readyWait>0||K.resolveWith(x,[S]))}}),S.ready.then=K.then,"complete"===x.readyState||"loading"!==x.readyState&&!x.documentElement.doScroll?r.setTimeout(S.ready):(x.addEventListener("DOMContentLoaded",Z),r.addEventListener("load",Z));var ee=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===T(n))for(s in i=!0,n)ee(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,y(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){ue.remove(this,e)}))}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=se.get(e,t),n&&(!r||Array.isArray(n)?r=se.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){S.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return se.get(e,n)||se.access(e,n,{empty:S.Callbacks("once memory").add((function(){se.remove(e,[t+"queue",n])}))})}}),S.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,je=/^$|^module$|\/(?:java|ecma)script/i;Ce=x.createDocumentFragment().appendChild(x.createElement("div")),(ke=x.createElement("input")).setAttribute("type","radio"),ke.setAttribute("checked","checked"),ke.setAttribute("name","t"),Ce.appendChild(ke),v.checkClone=Ce.cloneNode(!0).cloneNode(!0).lastChild.checked,Ce.innerHTML="",v.noCloneChecked=!!Ce.cloneNode(!0).lastChild.defaultValue,Ce.innerHTML="",v.option=!!Ce.lastChild;var Ae={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function De(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&j(e,t)?S.merge([e],n):n}function Ne(e,t){for(var n=0,r=e.length;n",""]);var qe=/<|&#?\w+;/;function Le(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d-1)i&&i.push(o);else if(l=ve(o),a=De(f.appendChild(o),"script"),l&&Ne(a),n)for(c=0;o=a[c++];)je.test(o.type||"")&&n.push(o);return f}var He=/^([^.]*)(?:\.(.+)|)/;function Oe(){return!0}function Pe(){return!1}function Re(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Re(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Pe;else if(!i)return e;return 1===o&&(a=i,i=function(e){return S().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=S.guid++)),e.each((function(){S.event.add(this,t,i,r,n)}))}function Me(e,t,n){n?(se.set(e,t,!1),S.event.add(e,t,{namespace:!1,handler:function(e){var n,r=se.get(this,t);if(1&e.isTrigger&&this[t]){if(r)(S.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),se.set(this,t,r),this[t](),n=se.get(this,t),se.set(this,t,!1),r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(se.set(this,t,S.event.trigger(r[0],r.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Oe)}})):void 0===se.get(e,t)&&S.event.add(e,t,Oe)}S.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=se.get(e);if(oe(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(ge,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(t){return void 0!==S&&S.event.triggered!==t.type?S.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(V)||[""]).length;l--;)d=g=(s=He.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=se.hasData(e)&&se.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(V)||[""]).length;l--;)if(d=g=(s=He.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){for(f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&se.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(se.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\s*$/g;function $e(e,t){return j(e,"table")&&j(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function _e(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Be(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Xe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(se.hasData(e)&&(s=se.get(e).events))for(i in se.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof h&&!v.checkClone&&We.test(h))return e.each((function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),ze(o,t,n,r)}));if(p&&(o=(i=Le(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=S.map(De(i,"script"),_e)).length;f0&&Ne(a,!u&&De(e,"script")),s},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(oe(n)){if(t=n[se.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[se.expando]=void 0}n[ue.expando]&&(n[ue.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Ve(this,e,!0)},remove:function(e){return Ve(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?S.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return ze(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||$e(this,e).appendChild(e)}))},prepend:function(){return ze(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=$e(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return ze(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(De(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return S.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ie.test(e)&&!Ae[(Ee.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u+l}function ct(e,t,n){var r=Qe(e),i=(!v.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Ze(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Ge.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&j(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+lt(e,t,n||(i?"border":"content"),o,r,a)+"px"}function ft(e,t,n,r,i){return new ft.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ze(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ie(t),u=Ye.test(t),l=e.style;if(u||(t=it(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=de.exec(n))&&i[1]&&(n=xe(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=ie(t);return Ye.test(t)||(t=it(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ze(e,t,r)),"normal"===i&&t in st&&(i=st[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],(function(e,t){S.cssHooks[t]={get:function(e,n,r){if(n)return!ot.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ct(e,t,r):Je(e,at,(function(){return ct(e,t,r)}))},set:function(e,n,r){var i,o=Qe(e),a=!v.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===S.css(e,"boxSizing",!1,o),u=r?lt(e,t,r,s,o):0;return s&&a&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-lt(e,t,"border",!1,o)-.5)),u&&(i=de.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=S.css(e,t)),ut(0,n,u)}}})),S.cssHooks.marginLeft=et(v.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ze(e,"marginLeft"))||e.getBoundingClientRect().left-Je(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),S.each({margin:"",padding:"",border:"Width"},(function(e,t){S.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+he[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(S.cssHooks[e+t].set=ut)})),S.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Qe(e),i=t.length;a1)}}),S.Tween=ft,ft.prototype={constructor:ft,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=ft.propHooks[this.prop];return e&&e.get?e.get(this):ft.propHooks._default.get(this)},run:function(e){var t,n=ft.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ft.propHooks._default.set(this),this}},ft.prototype.init.prototype=ft.prototype,ft.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[it(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}},ft.propHooks.scrollTop=ft.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=ft.prototype.init,S.fx.step={};var pt,dt,ht=/^(?:toggle|show|hide)$/,gt=/queueHooks$/;function vt(){dt&&(!1===x.hidden&&r.requestAnimationFrame?r.requestAnimationFrame(vt):r.setTimeout(vt,S.fx.interval),S.fx.tick())}function yt(){return r.setTimeout((function(){pt=void 0})),pt=Date.now()}function mt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=he[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function xt(e,t,n){for(var r,i=(bt.tweeners[t]||[]).concat(bt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){S.removeAttr(this,e)}))}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&j(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(V);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=Tt[t]||S.find.attr;Tt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=Tt[a],Tt[a]=i,i=null!=n(e,t,r)?a:null,Tt[a]=o),i}}));var Ct=/^(?:input|select|textarea|button)$/i,kt=/^(?:a|area)$/i;function St(e){return(e.match(V)||[]).join(" ")}function Et(e){return e.getAttribute&&e.getAttribute("class")||""}function jt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(V)||[]}S.fn.extend({prop:function(e,t){return ee(this,S.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[S.propFix[e]||e]}))}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):Ct.test(e.nodeName)||kt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),v.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){S.propFix[this.toLowerCase()]=this})),S.fn.extend({addClass:function(e){var t,n,r,i,o,a;return y(e)?this.each((function(t){S(this).addClass(e.call(this,t,Et(this)))})):(t=jt(e)).length?this.each((function(){if(r=Et(this),n=1===this.nodeType&&" "+St(r)+" "){for(o=0;o-1;)n=n.replace(" "+i+" "," ");a=St(n),r!==a&&this.setAttribute("class",a)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,r,i,o,a=typeof e,s="string"===a||Array.isArray(e);return y(e)?this.each((function(n){S(this).toggleClass(e.call(this,n,Et(this),t),t)})):"boolean"==typeof t&&s?t?this.addClass(e):this.removeClass(e):(n=jt(e),this.each((function(){if(s)for(o=S(this),i=0;i-1)return!0;return!1}});var At=/\r/g;S.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=y(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,S(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=S.map(i,(function(e){return null==e?"":e+""}))),(t=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=S.valHooks[i.type]||S.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(At,""):null==n?"":n:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:St(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],(function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=S.inArray(S(e).val(),t)>-1}},v.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Dt=r.location,Nt={guid:Date.now()},qt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new r.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Lt=/^(?:focusinfocus|focusoutblur)$/,Ht=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,i){var o,a,s,u,l,c,f,p,h=[n||x],g=d.call(e,"type")?e.type:e,v=d.call(e,"namespace")?e.namespace.split("."):[];if(a=p=s=n=n||x,3!==n.nodeType&&8!==n.nodeType&&!Lt.test(g+S.event.triggered)&&(g.indexOf(".")>-1&&(v=g.split("."),g=v.shift(),v.sort()),l=g.indexOf(":")<0&&"on"+g,(e=e[S.expando]?e:new S.Event(g,"object"==typeof e&&e)).isTrigger=i?2:3,e.namespace=v.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),f=S.event.special[g]||{},i||!f.trigger||!1!==f.trigger.apply(n,t))){if(!i&&!f.noBubble&&!m(n)){for(u=f.delegateType||g,Lt.test(u+g)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(n.ownerDocument||x)&&h.push(s.defaultView||s.parentWindow||r)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)p=a,e.type=o>1?u:f.bindType||g,(c=(se.get(a,"events")||Object.create(null))[e.type]&&se.get(a,"handle"))&&c.apply(a,t),(c=l&&a[l])&&c.apply&&oe(a)&&(e.result=c.apply(a,t),!1===e.result&&e.preventDefault());return e.type=g,i||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(h.pop(),t)||!oe(n)||l&&y(n[g])&&!m(n)&&((s=n[l])&&(n[l]=null),S.event.triggered=g,e.isPropagationStopped()&&p.addEventListener(g,Ht),n[g](),e.isPropagationStopped()&&p.removeEventListener(g,Ht),S.event.triggered=void 0,s&&(n[l]=s)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each((function(){S.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}});var Ot=/\[\]$/,Pt=/\r?\n/g,Rt=/^(?:submit|button|image|reset|file)$/i,Mt=/^(?:input|select|textarea|keygen)/i;function It(e,t,n,r){var i;if(Array.isArray(t))S.each(t,(function(t,i){n||Ot.test(e)?r(e,i):It(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==T(t))r(e,t);else for(i in t)It(e+"["+i+"]",t[i],n,r)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=y(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,(function(){i(this.name,this.value)}));else for(n in e)It(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Mt.test(this.nodeName)&&!Rt.test(e)&&(this.checked||!Se.test(e))})).map((function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,(function(e){return{name:t.name,value:e.replace(Pt,"\r\n")}})):{name:t.name,value:n.replace(Pt,"\r\n")}})).get()}});var Wt=/%20/g,Ft=/#.*$/,$t=/([?&])_=[^&]*/,_t=/^(.*?):[ \t]*([^\r\n]*)$/gm,Bt=/^(?:GET|HEAD)$/,Xt=/^\/\//,Ut={},zt={},Vt="*/".concat("*"),Gt=x.createElement("a");function Yt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(V)||[];if(y(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Qt(e,t,n,r){var i={},o=e===zt;function a(s){var u;return i[s]=!0,S.each(e[s]||[],(function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)})),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Jt(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Gt.href=Dt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Dt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Vt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Jt(Jt(e,S.ajaxSettings),t):Jt(S.ajaxSettings,e)},ajaxPrefilter:Yt(Ut),ajaxTransport:Yt(zt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,i,o,a,s,u,l,c,f,p,d=S.ajaxSetup({},t),h=d.context||d,g=d.context&&(h.nodeType||h.jquery)?S(h):S.event,v=S.Deferred(),y=S.Callbacks("once memory"),m=d.statusCode||{},b={},w={},T="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=_t.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(e,t){return null==l&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)C.always(e[C.status]);else for(t in e)m[t]=[m[t],e[t]];return this},abort:function(e){var t=e||T;return n&&n.abort(t),k(0,t),this}};if(v.promise(C),d.url=((e||d.url||Dt.href)+"").replace(Xt,Dt.protocol+"//"),d.type=t.method||t.type||d.method||d.type,d.dataTypes=(d.dataType||"*").toLowerCase().match(V)||[""],null==d.crossDomain){u=x.createElement("a");try{u.href=d.url,u.href=u.href,d.crossDomain=Gt.protocol+"//"+Gt.host!=u.protocol+"//"+u.host}catch(e){d.crossDomain=!0}}if(d.data&&d.processData&&"string"!=typeof d.data&&(d.data=S.param(d.data,d.traditional)),Qt(Ut,d,t,C),l)return C;for(f in(c=S.event&&d.global)&&0==S.active++&&S.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Bt.test(d.type),i=d.url.replace(Ft,""),d.hasContent?d.data&&d.processData&&0===(d.contentType||"").indexOf("application/x-www-form-urlencoded")&&(d.data=d.data.replace(Wt,"+")):(p=d.url.slice(i.length),d.data&&(d.processData||"string"==typeof d.data)&&(i+=(qt.test(i)?"&":"?")+d.data,delete d.data),!1===d.cache&&(i=i.replace($t,"$1"),p=(qt.test(i)?"&":"?")+"_="+Nt.guid+++p),d.url=i+p),d.ifModified&&(S.lastModified[i]&&C.setRequestHeader("If-Modified-Since",S.lastModified[i]),S.etag[i]&&C.setRequestHeader("If-None-Match",S.etag[i])),(d.data&&d.hasContent&&!1!==d.contentType||t.contentType)&&C.setRequestHeader("Content-Type",d.contentType),C.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Vt+"; q=0.01":""):d.accepts["*"]),d.headers)C.setRequestHeader(f,d.headers[f]);if(d.beforeSend&&(!1===d.beforeSend.call(h,C,d)||l))return C.abort();if(T="abort",y.add(d.complete),C.done(d.success),C.fail(d.error),n=Qt(zt,d,t,C)){if(C.readyState=1,c&&g.trigger("ajaxSend",[C,d]),l)return C;d.async&&d.timeout>0&&(s=r.setTimeout((function(){C.abort("timeout")}),d.timeout));try{l=!1,n.send(b,k)}catch(e){if(l)throw e;k(-1,e)}}else k(-1,"No Transport");function k(e,t,a,u){var f,p,x,b,w,T=t;l||(l=!0,s&&r.clearTimeout(s),n=void 0,o=u||"",C.readyState=e>0?4:0,f=e>=200&&e<300||304===e,a&&(b=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(d,C,a)),!f&&S.inArray("script",d.dataTypes)>-1&&S.inArray("json",d.dataTypes)<0&&(d.converters["text script"]=function(){}),b=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(d,b,C,f),f?(d.ifModified&&((w=C.getResponseHeader("Last-Modified"))&&(S.lastModified[i]=w),(w=C.getResponseHeader("etag"))&&(S.etag[i]=w)),204===e||"HEAD"===d.type?T="nocontent":304===e?T="notmodified":(T=b.state,p=b.data,f=!(x=b.error))):(x=T,!e&&T||(T="error",e<0&&(e=0))),C.status=e,C.statusText=(t||T)+"",f?v.resolveWith(h,[p,T,C]):v.rejectWith(h,[C,T,x]),C.statusCode(m),m=void 0,c&&g.trigger(f?"ajaxSuccess":"ajaxError",[C,d,f?p:x]),y.fireWith(h,[C,T]),c&&(g.trigger("ajaxComplete",[C,d]),--S.active||S.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],(function(e,t){S[t]=function(e,n,r,i){return y(n)&&(i=i||r,r=n,n=void 0),S.ajax(S.extend({url:e,type:t,dataType:i,data:n,success:r},S.isPlainObject(e)&&e))}})),S.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(y(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return y(e)?this.each((function(t){S(this).wrapInner(e.call(this,t))})):this.each((function(){var t=S(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=y(e);return this.each((function(n){S(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){S(this).replaceWith(this.childNodes)})),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new r.XMLHttpRequest}catch(e){}};var Kt={0:200,1223:204},Zt=S.ajaxSettings.xhr();v.cors=!!Zt&&"withCredentials"in Zt,v.ajax=Zt=!!Zt,S.ajaxTransport((function(e){var t,n;if(v.cors||Zt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=n=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Kt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),n=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=n:s.onreadystatechange=function(){4===s.readyState&&r.setTimeout((function(){t&&n()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),S.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),S.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=S(" + + + + + diff --git a/_static/jupyter-lite.ipynb b/_static/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/jupyter-lite.json b/_static/jupyter-lite.json new file mode 100644 index 0000000..ce3239b --- /dev/null +++ b/_static/jupyter-lite.json @@ -0,0 +1,342 @@ +{ + "jupyter-config-data": { + "appName": "JupyterLite", + "appUrl": "./lab", + "appVersion": "0.1.2", + "baseUrl": "./", + "defaultKernelName": "python", + "faviconUrl": "./lab/favicon.ico", + "federated_extensions": [ + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.98b8a827bfc5f86e95d2.js", + "name": "@jupyter-widgets/jupyterlab-manager" + }, + { + "extension": "./extension", + "liteExtension": true, + "load": "static/remoteEntry.e75039073a726197e847.js", + "name": "@jupyterlite/javascript-kernel-extension" + }, + { + "extension": "./extension", + "liteExtension": true, + "load": "static/remoteEntry.1c8491cf58b5de6123d1.js", + "name": "@jupyterlite/pyodide-kernel-extension" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.ade722230aea9b7793b2.js", + "name": "bqplot" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.61e8508824209171af0b.js", + "name": "ipydatagrid" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.1c9b77c557d03a2498f4.js", + "name": "ipylab", + "style": "./style" + }, + { + "extension": "./extension", + "liteExtension": false, + "load": "static/remoteEntry.aa1060b2d1221f8e5688.js", + "name": "jupyterlab_pygments", + "style": "./style" + } + ], + "fileTypes": { + "css": { + "extensions": [ + ".css" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/css" + ], + "name": "css" + }, + "csv": { + "extensions": [ + ".csv" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/csv" + ], + "name": "csv" + }, + "fasta": { + "extensions": [ + ".fasta" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/plain" + ], + "name": "fasta" + }, + "geojson": { + "extensions": [ + ".geojson" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/geo+json" + ], + "name": "geojson" + }, + "gzip": { + "extensions": [ + ".tgz", + ".gz", + ".gzip" + ], + "fileFormat": "base64", + "mimeTypes": [ + "application/gzip" + ], + "name": "gzip" + }, + "html": { + "extensions": [ + ".html" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/html" + ], + "name": "html" + }, + "ical": { + "extensions": [ + ".ical", + ".ics", + ".ifb", + ".icalendar" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/calendar" + ], + "name": "ical" + }, + "ico": { + "extensions": [ + ".ico" + ], + "fileFormat": "base64", + "mimeTypes": [ + "image/x-icon" + ], + "name": "ico" + }, + "ipynb": { + "extensions": [ + ".ipynb" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/x-ipynb+json" + ], + "name": "ipynb" + }, + "jpeg": { + "extensions": [ + ".jpeg", + ".jpg" + ], + "fileFormat": "base64", + "mimeTypes": [ + "image/jpeg" + ], + "name": "jpeg" + }, + "js": { + "extensions": [ + ".js", + ".mjs" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/javascript" + ], + "name": "js" + }, + "jsmap": { + "extensions": [ + ".map" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/json" + ], + "name": "jsmap" + }, + "json": { + "extensions": [ + ".json" + ], + "fileFormat": "json", + "mimeTypes": [ + "application/json" + ], + "name": "json" + }, + "manifest": { + "extensions": [ + ".manifest" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/cache-manifest" + ], + "name": "manifest" + }, + "md": { + "extensions": [ + ".md", + ".markdown" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/markdown" + ], + "name": "md" + }, + "pdf": { + "extensions": [ + ".pdf" + ], + "fileFormat": "base64", + "mimeTypes": [ + "application/pdf" + ], + "name": "pdf" + }, + "plain": { + "extensions": [ + ".txt" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/plain" + ], + "name": "plain" + }, + "png": { + "extensions": [ + ".png" + ], + "fileFormat": "base64", + "mimeTypes": [ + "image/png" + ], + "name": "png" + }, + "py": { + "extensions": [ + ".py" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/x-python", + "application/x-python-code" + ], + "name": "py" + }, + "svg": { + "extensions": [ + ".svg" + ], + "fileFormat": "text", + "mimeTypes": [ + "image/svg+xml" + ], + "name": "svg" + }, + "toml": { + "extensions": [ + ".toml" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/toml" + ], + "name": "toml" + }, + "vue": { + "extensions": [ + ".vue" + ], + "fileFormat": "text", + "mimeTypes": [ + "text/plain" + ], + "name": "vue" + }, + "wasm": { + "extensions": [ + ".wasm" + ], + "fileFormat": "base64", + "mimeTypes": [ + "application/wasm" + ], + "name": "wasm" + }, + "wheel": { + "extensions": [ + ".whl" + ], + "fileFormat": "base64", + "mimeTypes": [ + "octet/stream", + "application/x-wheel+zip" + ], + "name": "wheel" + }, + "xml": { + "extensions": [ + ".xml" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/xml" + ], + "name": "xml" + }, + "yaml": { + "extensions": [ + ".yaml", + ".yml" + ], + "fileFormat": "text", + "mimeTypes": [ + "application/x-yaml" + ], + "name": "yaml" + } + }, + "fullLabextensionsUrl": "./extensions", + "fullMathjaxUrl": "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js", + "fullStaticUrl": "./build", + "licensesUrl": "./lab/api/licenses", + "litePluginSettings": { + "@jupyterlite/pyodide-kernel-extension:kernel": { + "pipliteUrls": [ + "./extensions/@jupyterlite/pyodide-kernel-extension/static/pypi/all.json?sha256=5e9ce9e49c39bfa29aa60dbee0e272614a3111b97116f8902630cf36bdc58634" + ] + } + }, + "mathjaxConfig": "TeX-AMS_CHTML-full,Safe" + }, + "jupyter-lite-schema-version": 0 +} \ No newline at end of file diff --git a/_static/jupyterlite.schema.v0.json b/_static/jupyterlite.schema.v0.json new file mode 100644 index 0000000..288793c --- /dev/null +++ b/_static/jupyterlite.schema.v0.json @@ -0,0 +1,331 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://jupyterlite.readthedocs.org/en/latest/reference/schema-v0.html#", + "title": "JupyterLite Schema v0", + "description": "a schema for user-serviceable customizaton of a JupyterLite", + "$ref": "#/definitions/top", + "definitions": { + "top": { + "title": "JupyterLite Configuration", + "description": "a user-serviceable file for customizing a JupyterLite site", + "properties": { + "jupyter-lite-schema-version": { + "type": "integer", + "description": "version of the schema to which the instance conforms", + "enum": [0] + }, + "jupyter-config-data": { + "$ref": "#/definitions/jupyter-config-data" + } + } + }, + "jupyterlab-settings-overrides": { + "title": "JupyterLab Settings Overrides", + "description": "A map of config objects keyed by `@org/pkg:plugin` which override the default settings. See https://jupyterlab.readthedocs.io/en/stable/user/directories.html#overridesjson", + "type": "object", + "patternProperties": { + "^(@[a-z0-9-~][a-z0-9-._~]*/)?[a-z0-9-~][a-z0-9-._~]*:(.*)$": { + "description": "A valid configuration which must conform to the plugin's defined schema", + "type": "object" + } + } + }, + "jupyter-config-data": { + "title": "Jupyter Config Data", + "description": "contents of a jupyter-config-data ` + + + diff --git a/_static/lab/jupyter-lite.ipynb b/_static/lab/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/lab/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/lab/jupyter-lite.json b/_static/lab/jupyter-lite.json new file mode 100644 index 0000000..222730a --- /dev/null +++ b/_static/lab/jupyter-lite.json @@ -0,0 +1,7 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "settingsUrl": "../build/schemas", + "themesUrl": "./build/themes" + } +} diff --git a/_static/lab/package.json b/_static/lab/package.json new file mode 100644 index 0000000..87c5deb --- /dev/null +++ b/_static/lab/package.json @@ -0,0 +1,265 @@ +{ + "name": "@jupyterlite/app-lab", + "version": "0.1.2", + "private": true, + "resolutions": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags-extension": "~3.5.3", + "@jupyterlab/codeeditor": "~3.5.3", + "@jupyterlab/codemirror": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/csvviewer-extension": "~3.5.3", + "@jupyterlab/docmanager": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/docprovider": "~3.5.3", + "@jupyterlab/documentsearch": "~3.5.3", + "@jupyterlab/documentsearch-extension": "~3.5.3", + "@jupyterlab/filebrowser": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/help-extension": "~3.5.3", + "@jupyterlab/htmlviewer-extension": "~3.5.3", + "@jupyterlab/imageviewer": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher": "~3.5.3", + "@jupyterlab/launcher-extension": "~3.5.3", + "@jupyterlab/logconsole": "~3.5.3", + "@jupyterlab/logconsole-extension": "~3.5.3", + "@jupyterlab/mainmenu": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/markdownviewer": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/outputarea": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/rendermime-interfaces": "~3.5.3", + "@jupyterlab/running-extension": "~3.5.3", + "@jupyterlab/services": "~6.5.3", + "@jupyterlab/settingeditor": "~3.5.3", + "@jupyterlab/settingeditor-extension": "~3.5.3", + "@jupyterlab/settingregistry": "~3.5.3", + "@jupyterlab/shared-models": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statedb": "~3.5.3", + "@jupyterlab/statusbar": "~3.5.3", + "@jupyterlab/statusbar-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/toc-extension": "~5.5.3", + "@jupyterlab/tooltip": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components": "~3.5.3", + "@jupyterlab/ui-components-extension": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application-extension": "~0.1.2", + "@jupyterlite/contents": "~0.1.2", + "@jupyterlite/iframe-extension": "~0.1.2", + "@jupyterlite/kernel": "~0.1.2", + "@jupyterlite/licenses": "~0.1.2", + "@jupyterlite/localforage": "~0.1.2", + "@jupyterlite/server": "~0.1.2", + "@jupyterlite/server-extension": "~0.1.2", + "@jupyterlite/types": "~0.1.2", + "@jupyterlite/ui-components": "~0.1.2", + "@lumino/algorithm": "~1.9.2", + "@lumino/application": "~1.31.3", + "@lumino/commands": "~1.21.1", + "@lumino/coreutils": "~1.12.1", + "@lumino/disposable": "~1.10.4", + "@lumino/domutils": "~1.8.2", + "@lumino/dragdrop": "~1.14.4", + "@lumino/messaging": "~1.10.3", + "@lumino/properties": "~1.8.2", + "@lumino/signaling": "~1.11.1", + "@lumino/virtualdom": "~1.14.3", + "@lumino/widgets": "~1.37.1", + "es6-promise": "^4.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "yjs": "^13.5.43" + }, + "dependencies": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags-extension": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/csvviewer-extension": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/documentsearch-extension": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/help-extension": "~3.5.3", + "@jupyterlab/htmlviewer-extension": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher-extension": "~3.5.3", + "@jupyterlab/logconsole-extension": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/running-extension": "~3.5.3", + "@jupyterlab/settingeditor-extension": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statusbar-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/toc-extension": "~5.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components-extension": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application-extension": "^0.1.2", + "@jupyterlite/iframe-extension": "^0.1.2", + "@jupyterlite/licenses": "^0.1.2", + "@jupyterlite/localforage": "^0.1.2", + "@jupyterlite/server": "^0.1.2", + "@jupyterlite/server-extension": "^0.1.2", + "@jupyterlite/types": "^0.1.2", + "@jupyterlite/ui-components": "^0.1.2", + "es6-promise": "~4.2.8", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "yjs": "^13.5.6" + }, + "jupyterlab": { + "extensions": [ + "@jupyterlab/application-extension", + "@jupyterlab/apputils-extension", + "@jupyterlab/celltags-extension", + "@jupyterlab/cell-toolbar-extension", + "@jupyterlab/codemirror-extension", + "@jupyterlab/completer-extension", + "@jupyterlab/console-extension", + "@jupyterlab/csvviewer-extension", + "@jupyterlab/docmanager-extension", + "@jupyterlab/documentsearch-extension", + "@jupyterlab/filebrowser-extension", + "@jupyterlab/fileeditor-extension", + "@jupyterlab/help-extension", + "@jupyterlab/htmlviewer-extension", + "@jupyterlab/imageviewer-extension", + "@jupyterlab/inspector-extension", + "@jupyterlab/json-extension", + "@jupyterlab/javascript-extension", + "@jupyterlab/launcher-extension", + "@jupyterlab/logconsole-extension", + "@jupyterlab/mainmenu-extension", + "@jupyterlab/markdownviewer-extension", + "@jupyterlab/mathjax2-extension", + "@jupyterlab/notebook-extension", + "@jupyterlab/pdf-extension", + "@jupyterlab/rendermime-extension", + "@jupyterlab/running-extension", + "@jupyterlab/settingeditor-extension", + "@jupyterlab/shortcuts-extension", + "@jupyterlab/statusbar-extension", + "@jupyterlab/theme-dark-extension", + "@jupyterlab/theme-light-extension", + "@jupyterlab/toc-extension", + "@jupyterlab/tooltip-extension", + "@jupyterlab/translation-extension", + "@jupyterlab/ui-components-extension", + "@jupyterlab/vega5-extension", + "@jupyterlite/application-extension", + "@jupyterlite/iframe-extension", + "@jupyterlite/server-extension" + ], + "singletonPackages": [ + "@jupyterlab/application", + "@jupyterlab/apputils", + "@jupyterlab/cell-toolbar", + "@jupyterlab/codeeditor", + "@jupyterlab/codemirror", + "@jupyterlab/completer", + "@jupyterlab/console", + "@jupyterlab/coreutils", + "@jupyterlab/docmanager", + "@jupyterlab/docprovider", + "@jupyterlab/documentsearch", + "@jupyterlab/filebrowser", + "@jupyterlab/fileeditor", + "@jupyterlab/imageviewer", + "@jupyterlab/inspector", + "@jupyterlab/launcher", + "@jupyterlab/logconsole", + "@jupyterlab/mainmenu", + "@jupyterlab/markdownviewer", + "@jupyterlab/notebook", + "@jupyterlab/outputarea", + "@jupyterlab/rendermime", + "@jupyterlab/rendermime-interfaces", + "@jupyterlab/services", + "@jupyterlab/settingeditor", + "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", + "@jupyterlab/statedb", + "@jupyterlab/statusbar", + "@jupyterlab/tooltip", + "@jupyterlab/translation", + "@jupyterlab/ui-components", + "@jupyterlite/contents", + "@jupyterlite/kernel", + "@jupyterlite/licenses", + "@jupyterlite/localforage", + "@jupyterlite/types", + "@lumino/algorithm", + "@lumino/application", + "@lumino/commands", + "@lumino/coreutils", + "@lumino/disposable", + "@lumino/domutils", + "@lumino/dragdrop", + "@lumino/messaging", + "@lumino/properties", + "@lumino/signaling", + "@lumino/virtualdom", + "@lumino/widgets", + "react", + "react-dom", + "yjs" + ], + "mimeExtensions": { + "@jupyterlab/javascript-extension": "", + "@jupyterlab/json-extension": "", + "@jupyterlab/vega5-extension": "" + }, + "linkedPackages": {} + }, + "jupyterlite": { + "pages": [ + "index" + ] + } +} diff --git a/_static/lab/tree/index.html b/_static/lab/tree/index.html new file mode 100644 index 0000000..961e460 --- /dev/null +++ b/_static/lab/tree/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/_static/lab/workspaces/index.html b/_static/lab/workspaces/index.html new file mode 100644 index 0000000..1358c21 --- /dev/null +++ b/_static/lab/workspaces/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/_static/manifest.webmanifest b/_static/manifest.webmanifest new file mode 100644 index 0000000..3077e6f --- /dev/null +++ b/_static/manifest.webmanifest @@ -0,0 +1,32 @@ +{ + "short_name": "JupyterLite", + "name": "JupyterLite", + "description": "WASM powered JupyterLite app", + "icons": [ + { + "src": "./icon-120x120.png", + "type": "image/png", + "sizes": "120x120" + }, { + "src": "./icon-512x512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": "./", + "background_color": "#fff", + "display": "standalone", + "scope": "./", + "shortcuts" : [ + { + "name": "JupyterLite", + "url": "/lab", + "description": "The main JupyterLite application" + }, + { + "name": "Replite", + "url": "/repl?toolbar=1", + "description": "A single-cell interface for JupyterLite" + } + ] +} diff --git a/_static/package.json b/_static/package.json new file mode 100644 index 0000000..c81228a --- /dev/null +++ b/_static/package.json @@ -0,0 +1,50 @@ +{ + "name": "@jupyterlite/app", + "version": "0.1.2", + "private": true, + "homepage": "https://github.com/jupyterlite/jupyterlite", + "bugs": { + "url": "https://github.com/jupyterlite/jupyterlite/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyterlite/jupyterlite" + }, + "license": "BSD-3-Clause", + "author": "JupyterLite Contributors", + "scripts": { + "build": "webpack", + "build:prod": "yarn clean && yarn build --mode=production", + "clean": "rimraf build **/build", + "watch": "webpack --config webpack.config.watch.js" + }, + "devDependencies": { + "@jupyterlab/builder": "~3.5.3", + "css-loader": "^6.6.0", + "file-loader": "^6.2.0", + "fs-extra": "^9.0.1", + "glob": "^7.2.0", + "handlebars": "^4.5.3", + "html-webpack-plugin": "^5.5.0", + "ignore-loader": "^0.1.2", + "json-loader": "^0.5.7", + "mini-css-extract-plugin": "^2.5.3", + "raw-loader": "^4.0.2", + "rimraf": "^3.0.2", + "source-map-loader": "^4.0.1", + "style-loader": "^3.3.1", + "svg-url-loader": "^7.1.1", + "url-loader": "^4.1.1", + "webpack": "^5.68.0", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-cli": "^4.9.2", + "webpack-merge": "^5.8.0" + }, + "jupyterlite": { + "apps": [ + "lab", + "repl", + "retro" + ] + } +} diff --git a/_static/repl/index.html b/_static/repl/index.html new file mode 100644 index 0000000..fd76c40 --- /dev/null +++ b/_static/repl/index.html @@ -0,0 +1,36 @@ + + + + JupyterLite + + + + + + + + + diff --git a/_static/repl/jupyter-lite.ipynb b/_static/repl/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/repl/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/repl/jupyter-lite.json b/_static/repl/jupyter-lite.json new file mode 100644 index 0000000..222730a --- /dev/null +++ b/_static/repl/jupyter-lite.json @@ -0,0 +1,7 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "settingsUrl": "../build/schemas", + "themesUrl": "./build/themes" + } +} diff --git a/_static/repl/package.json b/_static/repl/package.json new file mode 100644 index 0000000..a20c215 --- /dev/null +++ b/_static/repl/package.json @@ -0,0 +1,207 @@ +{ + "name": "@jupyterlite/app-repl", + "version": "0.1.2", + "private": true, + "resolutions": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/codeeditor": "~3.5.3", + "@jupyterlab/codemirror": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/docmanager": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/docprovider": "~3.5.3", + "@jupyterlab/documentsearch": "~3.5.3", + "@jupyterlab/filebrowser": "~3.5.3", + "@jupyterlab/fileeditor": "~3.5.3", + "@jupyterlab/imageviewer": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher": "~3.5.3", + "@jupyterlab/logconsole": "~3.5.3", + "@jupyterlab/mainmenu": "~3.5.3", + "@jupyterlab/markdownviewer": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook": "~3.5.3", + "@jupyterlab/outputarea": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/rendermime-interfaces": "~3.5.3", + "@jupyterlab/services": "~6.5.3", + "@jupyterlab/settingregistry": "~3.5.3", + "@jupyterlab/shared-models": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statedb": "~3.5.3", + "@jupyterlab/statusbar": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application": "~0.1.2", + "@jupyterlite/application-extension": "~0.1.2", + "@jupyterlite/contents": "~0.1.2", + "@jupyterlite/iframe-extension": "~0.1.2", + "@jupyterlite/kernel": "~0.1.2", + "@jupyterlite/server": "~0.1.2", + "@jupyterlite/server-extension": "~0.1.2", + "@jupyterlite/ui-components": "~0.1.2", + "@lumino/algorithm": "~1.9.2", + "@lumino/application": "~1.31.3", + "@lumino/commands": "~1.21.1", + "@lumino/coreutils": "~1.12.1", + "@lumino/disposable": "~1.10.4", + "@lumino/domutils": "~1.8.2", + "@lumino/dragdrop": "~1.14.4", + "@lumino/messaging": "~1.10.3", + "@lumino/properties": "~1.8.2", + "@lumino/signaling": "~1.11.1", + "@lumino/virtualdom": "~1.14.3", + "@lumino/widgets": "~1.37.1", + "@retrolab/application-extension": "~0.3.21", + "es6-promise": "^4.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "yjs": "^13.5.43" + }, + "dependencies": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/imageviewer-extension": "~3.5.3", + "@jupyterlab/inspector-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/markdownviewer-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/pdf-extension": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/vega5-extension": "~3.5.3", + "@jupyterlite/application": "^0.1.2", + "@jupyterlite/application-extension": "^0.1.2", + "@jupyterlite/iframe-extension": "^0.1.2", + "@jupyterlite/server": "^0.1.2", + "@jupyterlite/server-extension": "^0.1.2", + "@jupyterlite/ui-components": "^0.1.2", + "@retrolab/application-extension": "^0.3.21", + "es6-promise": "~4.2.8", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "yjs": "^13.5.6" + }, + "jupyterlab": { + "extensions": [ + "@jupyterlab/application-extension", + "@jupyterlab/apputils-extension", + "@jupyterlab/codemirror-extension", + "@jupyterlab/completer-extension", + "@jupyterlab/console-extension", + "@jupyterlab/docmanager-extension", + "@jupyterlab/imageviewer-extension", + "@jupyterlab/inspector-extension", + "@jupyterlab/json-extension", + "@jupyterlab/javascript-extension", + "@jupyterlab/markdownviewer-extension", + "@jupyterlab/mathjax2-extension", + "@jupyterlab/pdf-extension", + "@jupyterlab/rendermime-extension", + "@jupyterlab/shortcuts-extension", + "@jupyterlab/theme-dark-extension", + "@jupyterlab/theme-light-extension", + "@jupyterlab/tooltip-extension", + "@jupyterlab/translation-extension", + "@jupyterlab/vega5-extension", + "@jupyterlite/application-extension", + "@jupyterlite/repl-extension", + "@jupyterlite/iframe-extension", + "@jupyterlite/server-extension", + "@retrolab/application-extension" + ], + "singletonPackages": [ + "@jupyterlab/application", + "@jupyterlab/apputils", + "@jupyterlab/codeeditor", + "@jupyterlab/codemirror", + "@jupyterlab/completer", + "@jupyterlab/console", + "@jupyterlab/coreutils", + "@jupyterlab/docmanager", + "@jupyterlab/docprovider", + "@jupyterlab/documentsearch", + "@jupyterlab/filebrowser", + "@jupyterlab/fileeditor", + "@jupyterlab/imageviewer", + "@jupyterlab/inspector", + "@jupyterlab/launcher", + "@jupyterlab/logconsole", + "@jupyterlab/mainmenu", + "@jupyterlab/markdownviewer", + "@jupyterlab/notebook", + "@jupyterlab/outputarea", + "@jupyterlab/rendermime", + "@jupyterlab/rendermime-interfaces", + "@jupyterlab/services", + "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", + "@jupyterlab/statedb", + "@jupyterlab/statusbar", + "@jupyterlab/tooltip", + "@jupyterlab/translation", + "@jupyterlab/ui-components", + "@jupyterlite/contents", + "@jupyterlite/kernel", + "@lumino/algorithm", + "@lumino/application", + "@lumino/commands", + "@lumino/coreutils", + "@lumino/disposable", + "@lumino/domutils", + "@lumino/dragdrop", + "@lumino/messaging", + "@lumino/properties", + "@lumino/signaling", + "@lumino/virtualdom", + "@lumino/widgets", + "react", + "react-dom", + "yjs" + ], + "mimeExtensions": { + "@jupyterlab/javascript-extension": "", + "@jupyterlab/json-extension": "", + "@jupyterlab/vega5-extension": "" + }, + "linkedPackages": {} + }, + "jupyterlite": { + "pages": [ + "index" + ] + } +} diff --git a/_static/retro/consoles/favicon.ico b/_static/retro/consoles/favicon.ico new file mode 100644 index 0000000..97fcfd5 Binary files /dev/null and b/_static/retro/consoles/favicon.ico differ diff --git a/_static/retro/consoles/index.html b/_static/retro/consoles/index.html new file mode 100644 index 0000000..721c768 --- /dev/null +++ b/_static/retro/consoles/index.html @@ -0,0 +1,35 @@ + + + + JupyterLite Retro - Console + + + + + + + diff --git a/_static/retro/consoles/jupyter-lite.ipynb b/_static/retro/consoles/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/consoles/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/consoles/jupyter-lite.json b/_static/retro/consoles/jupyter-lite.json new file mode 100644 index 0000000..c9b76eb --- /dev/null +++ b/_static/retro/consoles/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "consoles", + "faviconUrl": "./favicon.ico", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/retro/edit/favicon.ico b/_static/retro/edit/favicon.ico new file mode 100644 index 0000000..8167018 Binary files /dev/null and b/_static/retro/edit/favicon.ico differ diff --git a/_static/retro/edit/index.html b/_static/retro/edit/index.html new file mode 100644 index 0000000..a3bfbb4 --- /dev/null +++ b/_static/retro/edit/index.html @@ -0,0 +1,35 @@ + + + + JupyterLite Retro - Edit + + + + + + + diff --git a/_static/retro/edit/jupyter-lite.ipynb b/_static/retro/edit/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/edit/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/edit/jupyter-lite.json b/_static/retro/edit/jupyter-lite.json new file mode 100644 index 0000000..b8a2258 --- /dev/null +++ b/_static/retro/edit/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "edit", + "faviconUrl": "./favicon.ico", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/retro/favicon.ico b/_static/retro/favicon.ico new file mode 100644 index 0000000..2d1bcff Binary files /dev/null and b/_static/retro/favicon.ico differ diff --git a/_static/retro/index.html b/_static/retro/index.html new file mode 100644 index 0000000..da5a93c --- /dev/null +++ b/_static/retro/index.html @@ -0,0 +1,20 @@ + + + + + + + diff --git a/_static/retro/jupyter-lite.ipynb b/_static/retro/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/jupyter-lite.json b/_static/retro/jupyter-lite.json new file mode 100644 index 0000000..59bf929 --- /dev/null +++ b/_static/retro/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "fullStaticUrl": "../build", + "settingsUrl": "../../build/schemas", + "themesUrl": "./build/themes" + } +} diff --git a/_static/retro/notebooks/favicon.ico b/_static/retro/notebooks/favicon.ico new file mode 100644 index 0000000..4537e2d Binary files /dev/null and b/_static/retro/notebooks/favicon.ico differ diff --git a/_static/retro/notebooks/index.html b/_static/retro/notebooks/index.html new file mode 100644 index 0000000..4270ad1 --- /dev/null +++ b/_static/retro/notebooks/index.html @@ -0,0 +1,36 @@ + + + + JupyterLite Retro - Notebook + + + + + + + + diff --git a/_static/retro/notebooks/jupyter-lite.ipynb b/_static/retro/notebooks/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/notebooks/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/notebooks/jupyter-lite.json b/_static/retro/notebooks/jupyter-lite.json new file mode 100644 index 0000000..7248800 --- /dev/null +++ b/_static/retro/notebooks/jupyter-lite.json @@ -0,0 +1,8 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "notebooks", + "faviconUrl": "./favicon.ico", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/retro/package.json b/_static/retro/package.json new file mode 100644 index 0000000..c50d4b0 --- /dev/null +++ b/_static/retro/package.json @@ -0,0 +1,232 @@ +{ + "name": "@jupyterlite/app-retro", + "version": "0.1.2", + "private": true, + "resolutions": { + "@jupyterlab/application": "~3.5.3", + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags": "~3.5.3", + "@jupyterlab/codeeditor": "~3.5.3", + "@jupyterlab/codemirror": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/docmanager": "~3.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/docprovider": "~3.5.3", + "@jupyterlab/documentsearch": "~3.5.3", + "@jupyterlab/filebrowser": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/imageviewer": "~3.5.3", + "@jupyterlab/inspector": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/launcher": "~3.5.3", + "@jupyterlab/logconsole": "~3.5.3", + "@jupyterlab/mainmenu": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/markdownviewer": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/outputarea": "~3.5.3", + "@jupyterlab/rendermime": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/rendermime-interfaces": "~3.5.3", + "@jupyterlab/services": "~6.5.3", + "@jupyterlab/settingeditor": "~3.5.3", + "@jupyterlab/settingregistry": "~3.5.3", + "@jupyterlab/shared-models": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/statedb": "~3.5.3", + "@jupyterlab/statusbar": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlab/ui-components": "~3.5.3", + "@jupyterlite/application-extension": "~0.1.2", + "@jupyterlite/contents": "~0.1.2", + "@jupyterlite/iframe-extension": "~0.1.2", + "@jupyterlite/kernel": "~0.1.2", + "@jupyterlite/localforage": "~0.1.2", + "@jupyterlite/retro-application-extension": "~0.1.2", + "@jupyterlite/server": "~0.1.2", + "@jupyterlite/server-extension": "~0.1.2", + "@jupyterlite/types": "~0.1.2", + "@lumino/algorithm": "~1.9.2", + "@lumino/application": "~1.31.3", + "@lumino/commands": "~1.21.1", + "@lumino/coreutils": "~1.12.1", + "@lumino/disposable": "~1.10.4", + "@lumino/domutils": "~1.8.2", + "@lumino/dragdrop": "~1.14.4", + "@lumino/messaging": "~1.10.3", + "@lumino/properties": "~1.8.2", + "@lumino/signaling": "~1.11.1", + "@lumino/virtualdom": "~1.14.3", + "@lumino/widgets": "~1.37.1", + "@retrolab/application": "~0.3.21", + "@retrolab/application-extension": "~0.3.21", + "@retrolab/docmanager-extension": "~0.3.21", + "@retrolab/help-extension": "~0.3.21", + "@retrolab/notebook-extension": "~0.3.21", + "@retrolab/tree-extension": "~0.3.21", + "@retrolab/ui-components": "~0.3.21", + "es6-promise": "^4.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "yjs": "^13.5.43" + }, + "dependencies": { + "@jupyterlab/application-extension": "~3.5.3", + "@jupyterlab/apputils-extension": "~3.5.3", + "@jupyterlab/attachments": "~3.5.3", + "@jupyterlab/cell-toolbar-extension": "~3.5.3", + "@jupyterlab/celltags": "~3.5.3", + "@jupyterlab/codemirror-extension": "~3.5.3", + "@jupyterlab/completer-extension": "~3.5.3", + "@jupyterlab/console-extension": "~3.5.3", + "@jupyterlab/coreutils": "~5.5.3", + "@jupyterlab/docmanager-extension": "~3.5.3", + "@jupyterlab/filebrowser-extension": "~3.5.3", + "@jupyterlab/fileeditor-extension": "~3.5.3", + "@jupyterlab/javascript-extension": "~3.5.3", + "@jupyterlab/json-extension": "~3.5.3", + "@jupyterlab/mainmenu-extension": "~3.5.3", + "@jupyterlab/mathjax2-extension": "~3.5.3", + "@jupyterlab/notebook-extension": "~3.5.3", + "@jupyterlab/rendermime-extension": "~3.5.3", + "@jupyterlab/shortcuts-extension": "~3.5.3", + "@jupyterlab/theme-dark-extension": "~3.5.3", + "@jupyterlab/theme-light-extension": "~3.5.3", + "@jupyterlab/tooltip-extension": "~3.5.3", + "@jupyterlab/translation-extension": "~3.5.3", + "@jupyterlite/application-extension": "^0.1.2", + "@jupyterlite/iframe-extension": "^0.1.2", + "@jupyterlite/localforage": "^0.1.2", + "@jupyterlite/retro-application-extension": "^0.1.2", + "@jupyterlite/server": "^0.1.2", + "@jupyterlite/server-extension": "^0.1.2", + "@jupyterlite/types": "^0.1.2", + "@retrolab/application": "^0.3.21", + "@retrolab/application-extension": "^0.3.21", + "@retrolab/docmanager-extension": "^0.3.21", + "@retrolab/help-extension": "^0.3.21", + "@retrolab/notebook-extension": "^0.3.21", + "@retrolab/tree-extension": "^0.3.21", + "@retrolab/ui-components": "^0.3.21", + "es6-promise": "~4.2.8", + "react": "^17.0.1", + "react-dom": "^17.0.1" + }, + "jupyterlab": { + "extensions": [ + "@retrolab/application-extension", + "@retrolab/docmanager-extension", + "@retrolab/help-extension", + "@retrolab/notebook-extension", + "@retrolab/tree-extension", + "@jupyterlab/application-extension", + "@jupyterlab/apputils-extension", + "@jupyterlab/cell-toolbar-extension", + "@jupyterlab/codemirror-extension", + "@jupyterlab/completer-extension", + "@jupyterlab/console-extension", + "@jupyterlab/docmanager-extension", + "@jupyterlab/filebrowser-extension", + "@jupyterlab/fileeditor-extension", + "@jupyterlab/javascript-extension", + "@jupyterlab/json-extension", + "@jupyterlab/mainmenu-extension", + "@jupyterlab/mathjax2-extension", + "@jupyterlab/notebook-extension", + "@jupyterlab/rendermime-extension", + "@jupyterlab/shortcuts-extension", + "@jupyterlab/theme-dark-extension", + "@jupyterlab/theme-light-extension", + "@jupyterlab/tooltip-extension", + "@jupyterlab/translation-extension", + "@jupyterlab/vega5-extension", + "@jupyterlite/application-extension", + "@jupyterlite/iframe-extension", + "@jupyterlite/retro-application-extension", + "@jupyterlite/server-extension" + ], + "singletonPackages": [ + "@jupyterlab/application", + "@jupyterlab/apputils", + "@jupyterlab/cell-toolbar", + "@jupyterlab/codeeditor", + "@jupyterlab/codemirror", + "@jupyterlab/completer", + "@jupyterlab/console", + "@jupyterlab/coreutils", + "@jupyterlab/docmanager", + "@jupyterlab/docprovider", + "@jupyterlab/documentsearch", + "@jupyterlab/filebrowser", + "@jupyterlab/fileeditor", + "@jupyterlab/imageviewer", + "@jupyterlab/inspector", + "@jupyterlab/launcher", + "@jupyterlab/logconsole", + "@jupyterlab/mainmenu", + "@jupyterlab/markdownviewer", + "@jupyterlab/notebook", + "@jupyterlab/outputarea", + "@jupyterlab/rendermime", + "@jupyterlab/rendermime-interfaces", + "@jupyterlab/services", + "@jupyterlab/settingeditor", + "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", + "@jupyterlab/statedb", + "@jupyterlab/statusbar", + "@jupyterlab/tooltip", + "@jupyterlab/translation", + "@jupyterlab/ui-components", + "@jupyterlite/contents", + "@jupyterlite/kernel", + "@jupyterlite/localforage", + "@jupyterlite/types", + "@lumino/algorithm", + "@lumino/application", + "@lumino/commands", + "@lumino/coreutils", + "@lumino/disposable", + "@lumino/domutils", + "@lumino/dragdrop", + "@lumino/messaging", + "@lumino/properties", + "@lumino/signaling", + "@lumino/virtualdom", + "@lumino/widgets", + "react", + "react-dom", + "yjs" + ], + "mimeExtensions": {}, + "linkedPackages": {} + }, + "jupyterlite": { + "pages": [ + "consoles/index", + "edit/index", + "notebooks/index", + "tree/index" + ] + } +} diff --git a/_static/retro/tree/index.html b/_static/retro/tree/index.html new file mode 100644 index 0000000..954234b --- /dev/null +++ b/_static/retro/tree/index.html @@ -0,0 +1,35 @@ + + + + JupyterLite Retro - Tree + + + + + + + diff --git a/_static/retro/tree/jupyter-lite.ipynb b/_static/retro/tree/jupyter-lite.ipynb new file mode 100644 index 0000000..c4a4922 --- /dev/null +++ b/_static/retro/tree/jupyter-lite.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "dea14a34-4803-44da-ae14-88b2c87a6f12", + "metadata": {}, + "source": [ + "# jupyter-lite.ipynb\n", + "\n", + "This notebook is the preferred source of site-specific runtime [configuration](https://jupyterlite.readthedocs.io/en/latest/configuring.html) for a JupyterLite app, and will override any configuration in [`jupyter-lite.json`](./jupyter-lite.json)." + ] + }, + { + "cell_type": "markdown", + "id": "6d19715a-0a8c-4600-9ff1-e82ba667e2d3", + "metadata": {}, + "source": [ + "## Editing Configuration\n", + "\n", + "The configuration is stored in this Notebook's metadata under the `jupyter-lite` key. To edit the configuration in JupyterLab.\n", + "\n", + "- open the _Property Inspector_ sidebar\n", + "- expand the _Advanced Tools_ section\n", + "- edit the `jupyter-lite` metadata sub-key\n", + "- press the \"check\" icon\n", + "- save the notebook" + ] + } + ], + "metadata": { + "jupyter-lite": { + "jupyter-config-data": {}, + "jupyter-lite-schema-version": 0 + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_static/retro/tree/jupyter-lite.json b/_static/retro/tree/jupyter-lite.json new file mode 100644 index 0000000..b7f616e --- /dev/null +++ b/_static/retro/tree/jupyter-lite.json @@ -0,0 +1,7 @@ +{ + "jupyter-lite-schema-version": 0, + "jupyter-config-data": { + "retroPage": "tree", + "fullStaticUrl": "../../build" + } +} diff --git a/_static/service-worker-f7de73d.js b/_static/service-worker-f7de73d.js new file mode 100644 index 0000000..b536db8 --- /dev/null +++ b/_static/service-worker-f7de73d.js @@ -0,0 +1 @@ +"use strict";const CACHE="precache",broadcast=new BroadcastChannel("/api/drive.v1");function onInstall(t){self.skipWaiting(),t.waitUntil(cacheAll())}function onActivate(t){t.waitUntil(self.clients.claim())}async function onFetch(t){const{request:a}=t,n=new URL(t.request.url);let e=null;shouldBroadcast(n)?e=broadcastOne(a):shouldDrop(a,n)||(e=maybeFromCache(t)),e&&t.respondWith(e)}async function maybeFromCache(t){const{request:a}=t;let n=await fromCache(a);return n?t.waitUntil(refetch(a)):(n=await fetch(a),t.waitUntil(updateCache(a,n.clone()))),n}async function fromCache(t){const a=await openCache(),n=await a.match(t);return n&&404!==n.status?n:null}async function refetch(t){const a=await fetch(t);return await updateCache(t,a),a}function shouldBroadcast(t){return t.origin===location.origin&&t.pathname.includes("/api/drive")}function shouldDrop(t,a){return"GET"!==t.method||null===a.origin.match(/^http/)||a.pathname.includes("/api/")}async function broadcastOne(t){const a=new Promise((t=>{broadcast.onmessage=a=>{t(new Response(JSON.stringify(a.data)))}})),n=await t.json();return n.receiver="broadcast.ts",broadcast.postMessage(n),await a}async function openCache(){return await caches.open(CACHE)}async function updateCache(t,a){return(await openCache()).put(t,a)}async function cacheAll(){const t=await openCache();return await t.addAll([])}self.addEventListener("install",onInstall),self.addEventListener("activate",onActivate),self.addEventListener("fetch",onFetch); \ No newline at end of file diff --git a/_static/tree/index.html b/_static/tree/index.html new file mode 100644 index 0000000..3a954bb --- /dev/null +++ b/_static/tree/index.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/api.html b/api.html index ef74ff2..5e0ad55 100644 --- a/api.html +++ b/api.html @@ -164,6 +164,13 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Changelog +
  • Roadmap
  • diff --git a/index.xhtml b/index.xhtml index 4e1844f..e096f2e 100644 --- a/index.xhtml +++ b/index.xhtml @@ -131,6 +131,10 @@
  • Use doit
  • +
  • Changelog +
  • Roadmap
  • diff --git a/lite/jupyter_lite_config.json b/lite/jupyter_lite_config.json index dafcd82..1d17517 100644 --- a/lite/jupyter_lite_config.json +++ b/lite/jupyter_lite_config.json @@ -1,5 +1,6 @@ { "LiteBuildConfig": { - "output_dir": "../build/lite" + "output_dir": "../build/lite", + "contents": ["../README.md", "../ROADMAP.md", "../CONTRIBUTING.md", "../CHANGELOG.md", "../LICENSE"] } } diff --git a/nav.xhtml b/nav.xhtml index 2b30ed8..6c8b055 100644 --- a/nav.xhtml +++ b/nav.xhtml @@ -69,6 +69,14 @@ +
  • + Changelog +
      +
    1. + 0.1.0 +
    2. +
    +
  • Roadmap
  • diff --git a/objects.inv b/objects.inv index 8dd50d2..0e7532c 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/py-modindex.html b/py-modindex.html index 7953aac..73e9ef1 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -164,6 +164,13 @@ + + + + + + + + + + + + + + + + + +