{"version":3,"file":"index.cjs","sources":["../src/lib/camelCase.ts","../src/lib/html.ts","../src/lib/loadJs.ts","../src/config.ts","../src/markdown.ts","../../../node_modules/d3-require/src/index.mjs","../src/extensions/code.ts","../src/components/editor.ts","../src/lib/style.ts","../src/extensions/math.ts","../src/extensions/mermaid.ts","../src/lib/attachScript.ts","../src/extensions/script.ts","../src/lib/addStyle.ts","../src/lib/loadJsModule.ts","../src/lib/utils.ts","../src/notebook.ts","../src/components/clipboard.ts","../src/components/github.ts","../src/components/module.ts","../src/components/rawcode.ts","../src/components/tv-forex-cross.ts","../src/components/tv-mini-chart.ts","../src/components/index.ts","../src/create.ts"],"sourcesContent":["const camelCase = (str: string) => {\n  const a = str\n    .toLowerCase()\n    .replace(/[-_\\s.]+(.)?/g, (_, c) => (c ? c.toUpperCase() : \"\"));\n  return a.substring(0, 1).toLowerCase() + a.substring(1);\n};\n\nexport default camelCase;\n","import camelCase from \"./camelCase\";\n\nclass Html {\n  dom: HTMLElement;\n\n  constructor(dom: HTMLElement) {\n    this.dom = dom;\n  }\n\n  static fromString(html: string, ownerDocument?: any): Html | null {\n    const doc = ownerDocument || document;\n    const el = doc.createElement(\"div\");\n    try {\n      el.innerHTML = html;\n    } catch (e) {\n      return null;\n    }\n    const children = el.children;\n    const dom = children[0];\n    return dom ? new Html(dom) : null;\n  }\n\n  get tagName(): string {\n    return this.dom.tagName;\n  }\n\n  getAttrs(): Record<string, any> {\n    const dom = this.dom;\n    return dom\n      ? dom\n          .getAttributeNames()\n          .reduce((o: Record<string, any>, name: string) => {\n            o[camelCase(name)] = dom.getAttribute(name);\n            return o;\n          }, {})\n      : {};\n  }\n}\n\nexport default Html;\n","const loadScript = (options: Record<string, any>, parent?: HTMLElement) => {\n  return new Promise((resolve, reject) => {\n    const { content, ...attrs } = options;\n    const script = document.createElement(\"script\");\n    const attributes = attrs || {};\n    Object.keys(attributes).forEach((key) => {\n      script.setAttribute(key, attributes[key]);\n    });\n    if (content) script.innerHTML = JSON.stringify(content);\n    script.onerror = reject;\n    script.onload = resolve;\n    (parent || document.head).appendChild(script);\n  });\n};\n\nexport default loadScript;\n","const config: Record<string, any> = {\n  MARKED: \"marked@v4.2.12\",\n  MERMAID: \"https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs\",\n  PURIFY: \"dompurify@2.0.12/dist/purify.min.js\",\n  HL_ROOT: \"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0\",\n  HL_CSS: \"https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles\",\n  KATEX: \"https://cdn.jsdelivr.net/npm/katex@0.16.0\",\n  CODEMIRROR: \"https://esm.sh/codemirror@6.0.1\",\n  OKTOKIT: \"https://esm.sh/octokit@2.0.19\",\n  defaultHighlightStyle: {\n    light: \"github\",\n    dark: \"base16/classic-dark\",\n  },\n};\n\nexport default config;\n","import config from \"./config\";\nimport Notebook from \"./notebook\";\n\nexport const defaultMarkdownExtensions: any[] = [];\n\nclass Markdown {\n  notebook: Notebook;\n  extensions: any[];\n  theme = \"\";\n  _marked: any;\n\n  constructor(notebook: Notebook) {\n    this.notebook = notebook;\n    this.extensions = defaultMarkdownExtensions.slice();\n    this._marked = null;\n  }\n\n  get cache(): any {\n    return this.notebook.cache;\n  }\n\n  get require(): any {\n    return this.notebook.require;\n  }\n\n  async getMarked() {\n    if (!this._marked) {\n      this._marked = await this.require(config.MARKED);\n      const renderer = multi(\n        this.extensions.filter((e) => e.renderer).map((e) => e.renderer)\n      );\n      const tokenizer = multi(\n        this.extensions.filter((e) => e.tokenizer).map((e) => e.tokenizer)\n      );\n      this._marked.setOptions({\n        async: true,\n        langPrefix: 'hljs language-',\n        gfm: true,\n      });\n      this._marked.use({ tokenizer, renderer });\n    }\n    return this._marked;\n  }\n\n  async render(text: string, element: any, options?: any): Promise<any> {\n    const opts = options || {};\n    const markdown = await this.getMarked();\n    const root = element || document.createElement(\"div\");\n    const el = markdown.parse(text, { langPrefix: \"\" }).trim();\n    root.innerHTML = el;\n    await Promise.all(\n      this.extensions.map((e) => (e.after ? e.after(this.notebook, root, opts) : null))\n    );\n  }\n\n}\n\nconst multi = (handlers: any[]) => {\n  const ext: Record<string, any> = {};\n  handlers.forEach((handler) => {\n    Object.keys(handler).forEach((key: string) => {\n      if (!(key in ext)) ext[key] = [handler[key]];\n      else ext[key].push(handler[key]);\n    });\n  });\n  Object.keys(ext).forEach((key) => {\n    ext[key] = multiExec(ext[key]);\n  });\n  return ext;\n};\n\nconst multiExec = (handlers: any[]) => {\n  return (...args: any[]) => {\n    let result;\n    for (let i = 0; i < handlers.length; ++i) {\n      result = handlers[i](...args);\n      if (result !== false) return result;\n    }\n    return false;\n  };\n};\n\nexport default Markdown;\n","const metas = new Map;\nconst queue = [];\nconst map = queue.map;\nconst some = queue.some;\nconst hasOwnProperty = queue.hasOwnProperty;\nconst identifierRe = /^((?:@[^/@]+\\/)?[^/@]+)(?:@([^/]+))?(?:\\/(.*))?$/;\nconst versionRe = /^\\d+\\.\\d+\\.\\d+(-[\\w-.+]+)?$/;\nconst extensionRe = /(?:\\.[^/]*|\\/)$/;\n\nexport class RequireError extends Error {\n  constructor(message) {\n    super(message);\n  }\n}\n\nRequireError.prototype.name = RequireError.name;\n\nfunction parseIdentifier(identifier) {\n  const match = identifierRe.exec(identifier);\n  return match && {\n    name: match[1],\n    version: match[2],\n    path: match[3]\n  };\n}\n\nexport function resolveFrom(origin = \"https://cdn.jsdelivr.net/npm/\", mains = [\"unpkg\", \"jsdelivr\", \"browser\", \"main\"]) {\n  if (!/\\/$/.test(origin)) throw new Error(\"origin lacks trailing slash\");\n\n  function main(meta) {\n    for (const key of mains) {\n      let value = meta[key];\n      if (typeof value === \"string\") {\n        if (value.startsWith(\"./\")) value = value.slice(2);\n        return extensionRe.test(value) ? value : `${value}.js`;\n      }\n    }\n  }\n\n  function resolveMeta(target) {\n    const url = `${origin}${target.name}${target.version ? `@${target.version}` : \"\"}/package.json`;\n    let meta = metas.get(url);\n    if (!meta) metas.set(url, meta = fetch(url).then(response => {\n      if (!response.ok) throw new RequireError(\"unable to load package.json\");\n      if (response.redirected && !metas.has(response.url)) metas.set(response.url, meta);\n      return response.json();\n    }));\n    return meta;\n  }\n\n  return async function resolve(name, base) {\n    if (name.startsWith(origin)) name = name.substring(origin.length);\n    if (/^(\\w+:)|\\/\\//i.test(name)) return name;\n    if (/^[.]{0,2}\\//i.test(name)) return new URL(name, base == null ? location : base).href;\n    if (!name.length || /^[\\s._]/.test(name) || /\\s$/.test(name)) throw new RequireError(\"illegal name\");\n    const target = parseIdentifier(name);\n    if (!target) return `${origin}${name}`;\n    if (!target.version && base != null && base.startsWith(origin)) {\n      const meta = await resolveMeta(parseIdentifier(base.substring(origin.length)));\n      target.version = meta.dependencies && meta.dependencies[target.name] || meta.peerDependencies && meta.peerDependencies[target.name];\n    }\n    if (target.path && !extensionRe.test(target.path)) target.path += \".js\";\n    if (target.path && target.version && versionRe.test(target.version)) return `${origin}${target.name}@${target.version}/${target.path}`;\n    const meta = await resolveMeta(target);\n    return `${origin}${meta.name}@${meta.version}/${target.path || main(meta) || \"index.js\"}`;\n  };\n}\n\nexport var require = requireFrom(resolveFrom());\n\nexport function requireFrom(resolver) {\n  const cache = new Map;\n  const requireBase = requireRelative(null);\n\n  function requireAbsolute(url) {\n    if (typeof url !== \"string\") return url;\n    let module = cache.get(url);\n    if (!module) cache.set(url, module = new Promise((resolve, reject) => {\n      const script = document.createElement(\"script\");\n      script.onload = () => {\n        try { resolve(queue.pop()(requireRelative(url))); }\n        catch (error) { reject(new RequireError(\"invalid module\")); }\n        script.remove();\n      };\n      script.onerror = () => {\n        reject(new RequireError(\"unable to load module\"));\n        script.remove();\n      };\n      script.async = true;\n      script.src = url;\n      window.define = define;\n      document.head.appendChild(script);\n    }));\n    return module;\n  }\n\n  function requireRelative(base) {\n    return name => Promise.resolve(resolver(name, base)).then(requireAbsolute);\n  }\n\n  function requireAlias(aliases) {\n    return requireFrom((name, base) => {\n      if (name in aliases) {\n        name = aliases[name], base = null;\n        if (typeof name !== \"string\") return name;\n      }\n      return resolver(name, base);\n    });\n  }\n\n  function require(name) {\n    return arguments.length > 1\n        ? Promise.all(map.call(arguments, requireBase)).then(merge)\n        : requireBase(name);\n  }\n\n  require.alias = requireAlias;\n  require.resolve = resolver;\n\n  return require;\n}\n\nfunction merge(modules) {\n  const o = {};\n  for (const m of modules) {\n    for (const k in m) {\n      if (hasOwnProperty.call(m, k)) {\n        if (m[k] == null) Object.defineProperty(o, k, {get: getter(m, k)});\n        else o[k] = m[k];\n      }\n    }\n  }\n  return o;\n}\n\nfunction getter(object, name) {\n  return () => object[name];\n}\n\nfunction isbuiltin(name) {\n  name = name + \"\";\n  return name === \"exports\" || name === \"module\";\n}\n\nfunction define(name, dependencies, factory) {\n  const n = arguments.length;\n  if (n < 2) factory = name, dependencies = [];\n  else if (n < 3) factory = dependencies, dependencies = typeof name === \"string\" ? [] : name;\n  queue.push(some.call(dependencies, isbuiltin) ? require => {\n    const exports = {};\n    const module = {exports};\n    return Promise.all(map.call(dependencies, name => {\n      name = name + \"\";\n      return name === \"exports\" ? exports : name === \"module\" ? module : require(name);\n    })).then(dependencies => {\n      factory.apply(null, dependencies);\n      return module.exports;\n    });\n  } : require => {\n    return Promise.all(map.call(dependencies, require)).then(dependencies => {\n      return typeof factory === \"function\" ? factory.apply(null, dependencies) : factory;\n    });\n  });\n}\n\ndefine.amd = {};\n","import Notebook from \"../notebook\";\n\nconst after = async (\n  notebook: Notebook,\n  root: any,\n  options: any\n): Promise<void> => {\n  const elements = root.querySelectorAll(\"pre code[class]\");\n  if (elements.length > 0) {\n    await Promise.all(\n      Array.from(elements, async (element: Element) => {\n        await notebook.renderCode(element);\n      })\n    );\n  }\n};\n\nexport default { after };\n","import config from \"../config\";\nimport Html from \"../lib/html\";\nimport Notebook from \"../notebook\";\n\n\nclass Editor {\n  notebook: Notebook;\n  defaults: Record<string, any>;\n  modules = [\n    \"view\",\n    \"state\",\n    \"history\",\n    \"gutter\",\n    \"fold\",\n    \"language\",\n    \"commands\",\n    \"search\",\n    \"autocomplete\",\n    \"highlight\",\n  ];\n\n  constructor(notebook: Notebook, defaults?: any) {\n    this.notebook = notebook;\n    this.defaults = { theme: \"neo\", mode: \"javascript\", ...defaults };\n  }\n\n  async load(): Promise<any> {\n    const repo = Object.create(null);\n    const loadToRepo = async (key: string) => {\n      const module = await this.loadModule(key);\n      repo[key] = module;\n    };\n    await Promise.all(this.modules.map(loadToRepo));\n    return repo;\n  }\n\n  async loadModule(module: string): Promise<any> {\n    return await this.notebook.importModule(`${config.CODEMIRROR}/${module}`);\n  }\n\n  async render(text: string, parent: HTMLElement, options?: any): Promise<any> {\n    const opts = { ...this.defaults, ...options };\n    const { tabSize = 2, events = {} } = opts;\n    const extensions: any[] = [];\n    const cm = await this.notebook.importModule(config.CODEMIRROR);\n\n    const { EditorView } = cm;\n\n    if (tabSize) {\n      //const ts = new Compartment();\n      // extensions.push(keymap.of([indentWithTab]));\n      //extensions.push(ts.of(EditorState.tabSize.of(+tabSize)));\n    }\n    // if (lineNumbers === \"\") extensions.push(cm.gutter.lineNumbers());\n\n    extensions.push(\n      EditorView.updateListener.of((update: any) => {\n        const { docChanged } = update;\n        if (docChanged && events.change)\n          events.change(update.state.doc.toString());\n      })\n    );\n\n    new EditorView({\n      doc: text,\n      extensions,\n      parent,\n    });\n  }\n\n  lineNumbers(mode: string, lineNumbers: any) {\n    return lineNumbers || mode !== \"markdown\";\n  }\n\n  tabSize(mode: string, tabSize: any) {\n    return tabSize || mode === \"python\" ? 4 : 2;\n  }\n}\n\nexport class EditorComponent extends HTMLElement {\n  async connectedCallback() {\n    const html = new Html(this);\n    const editor = Notebook.installed().editor;\n    const text = this.textContent || \"\";\n    const options = html.getAttrs();\n    await editor.render(text, this, options);\n  }\n}\n\nexport default Editor;\n","const style = (href: string) => {\n  return new Promise((resolve, reject) => {\n    const link = document.createElement(\"link\");\n    link.rel = \"stylesheet\";\n    link.href = href;\n    link.onerror = reject;\n    link.onload = resolve;\n    document.head.appendChild(link);\n  });\n};\n\nexport default style;\n","import config from \"../config\";\nimport style from \"../lib/style\";\nimport Notebook from \"../notebook\";\n\nconst math = async (require: any) => {\n  const katex = await Promise.all([\n    style(`${config.KATEX}/dist/katex.min.css`),\n    require(`${config.KATEX}/dist/katex.min.js`),\n  ]);\n  return katex[1];\n};\n\nconst renderer = {\n  code(code: string, info: string) {\n    if (info === \"math\") return `<span class=\"math\">${code}</span>`;\n    return false;\n  },\n  codespan(code: string) {\n    if (code.substring(0, 5) === \"math:\")\n      return `<span class=\"math inline\">${code.substring(5)}</span>`;\n    return false;\n  },\n};\n\nconst after = async (notebook: Notebook, root: any) => {\n  const blocks = root.querySelectorAll(\"span.math\");\n  if (blocks.length > 0) {\n    if (!notebook.cache.katex)\n      notebook.cache.katex = await math(notebook.require);\n    const katex = notebook.cache.katex;\n    Array.from(blocks, (element: any) => {\n      const classes = new Set(element.classList);\n      const text = element.innerText;\n      const target = document.createElement(\"div\");\n      if (classes.has(\"inline\")) katex.render(text, target);\n      else katex.render(text, target, { displayMode: true });\n      element.parentNode.replaceChild(target.firstChild, element);\n    });\n  }\n};\n\nexport default { renderer, after };\n","import config from \"../config\";\nimport Notebook from \"../notebook\";\n\nconst renderer = {\n  code(code: string, info: string) {\n    if (info === \"mermaid\") return `<div class=\"mermaid\">${code}</div>`;\n    return false;\n  },\n};\n\nconst after = async (notebook: Notebook, root: any) => {\n  const nodes = root.querySelectorAll(\"div.mermaid\");\n  if (nodes.length > 0) {\n    nodes.forEach((n: any) => {\n      n.style.justifyContent = \"center\";\n      n.style.display = \"flex\";\n    });\n    const theme = notebook.options.mermaidTheme || notebook.options.mode === \"dark\" ? \"dark\" : \"neutral\";\n    const mer = await notebook.importModule(config.MERMAID);\n    mer.default.initialize({ securityLevel: \"loose\", theme });\n    await mer.default.run({ nodes });\n  }\n};\n\nexport default { renderer, after };\n","const ScriptPromises: Record<string, Promise<void>> = {};\n\nconst attachScript = (script: any) => {\n  const text = script.textContent;\n  if (!ScriptPromises[text]) {\n    ScriptPromises[text] = new Promise((resolve, reject) => {\n      document.head.appendChild(script);\n      resolve();\n    });\n  }\n  return ScriptPromises[text];\n};\n\nexport default attachScript;\n","import attachScript from \"../lib/attachScript\";\nimport Html from \"../lib/html\";\nimport Notebook from \"../notebook\";\n\n\nconst renderer = {\n  html(raw: string) {\n    const html = Html.fromString(raw);\n    if (html && html.tagName === \"SCRIPT\") {\n      const attrs = html.getAttrs();\n      if (attrs.showCode !== undefined) {\n        const div = document.createElement(\"div\");\n        div.innerHTML = `<pre><code class=\"html\"></code></pre>${raw}`;\n        const code = div.querySelector(\"code\") as HTMLElement;\n        code.textContent = raw;\n        return div.innerHTML;\n      }\n    }\n    return false;\n  },\n};\n\n\nconst after = async (\n  notebook: Notebook,\n  root: any,\n  options: any\n): Promise<void> => {\n  const elements = root.querySelectorAll(\"script\");\n  if (elements.length > 0) {\n    await Promise.all(\n      Array.from(elements, (element: HTMLElement) => {\n        const html = new Html(element);\n        const attrs = html.getAttrs();\n        const src = attrs.src;\n        element.remove();\n        if (src) {\n          delete attrs.src;\n          return notebook.loadJs(src, attrs);\n        } else {\n          return attachScript(element);\n        }\n      }).filter((p: any) => p)\n    );\n  }\n};\n\nexport default { after, renderer };\n","const Styles = new Set<string>();\n\nconst addStyle = (style: string) => {\n  if (Styles.has(style)) return;\n  Styles.add(style);\n  const link = document.createElement(\"style\");\n  link.innerHTML = style;\n  document.head.appendChild(link);\n};\n\nexport default addStyle;\n","const LoadedModules: Record<string, Promise<void>> = {};\n\nconst loadJsModule = async (src: string): Promise<any> => {\n  if (!LoadedModules[src]) {\n    LoadedModules[src] = await import(/* webpackIgnore: true */ src);\n  }\n  return LoadedModules[src];\n};\n\nexport default loadJsModule;\n","export const ostring = Object.prototype.toString;\nexport const inBrowser =\n  typeof window !== \"undefined\" && ostring.call(window) !== \"[object Object]\";\nexport const logger = inBrowser ? window.console : console;\n\nexport const identity = (v: any) => v;\n\nexport const asArray = (value: string | string[], split = \",\") => {\n  if (value.constructor === String) value = (value as string).split(split);\n  if (value.constructor === Array)\n    return value.map((v) => (\"\" + v).trim()).filter(identity);\n  else return [];\n};\n","import { require as requireDefault, requireFrom, resolver } from \"d3-require\";\nimport config from \"./config\";\nimport code from \"./extensions/code\";\nimport Editor from \"./components/editor\";\nimport math from \"./extensions/math\";\nimport mermaid from \"./extensions/mermaid\";\nimport script from \"./extensions/script\";\nimport addStyle from \"./lib/addStyle\";\nimport loadJs from \"./lib/loadJs\";\nimport loadJsModule from \"./lib/loadJsModule\";\nimport style from \"./lib/style\";\nimport { asArray } from \"./lib/utils\";\nimport Markdown, { defaultMarkdownExtensions } from \"./markdown\";\n\ndefaultMarkdownExtensions.push(math);\ndefaultMarkdownExtensions.push(mermaid);\ndefaultMarkdownExtensions.push(code);\ndefaultMarkdownExtensions.push(script);\n\nconst notebookResolver = (notebook: Notebook, resolve?: resolver) => {\n  const defaultResolve = resolve || requireDefault.resolve;\n  return async (name: string): Promise<string> => {\n    for (let i = 0; i < notebook.resolvers.length; ++i) {\n      const resolved = notebook.resolvers[i](name);\n      if (resolved) return resolved;\n    }\n    return await defaultResolve(name);\n  };\n};\n\nclass Notebook {\n  require: any;\n  cache: Record<string, any>;\n  models: Record<string, any>;\n  actions: Record<string, any>;\n  options: Record<string, any>;\n  defaultResolve: any;\n  resolvers: any[];\n  md: Markdown;\n  editor: Editor;\n\n  constructor(resolve?: resolver) {\n    this.require = requireFrom(notebookResolver(this, resolve));\n    this.cache = {};\n    this.models = {};\n    this.actions = {};\n    this.resolvers = [];\n    this.options = {\n      mode: \"light\",\n      highlightStyle: \"\",\n      codeClipboard: true,\n      mermaidTheme: \"\",\n    };\n    this.md = new Markdown(this);\n    this.editor = new Editor(this);\n  }\n\n  static installed(): Notebook {\n    // @ts-ignore\n    return window.notebook as Notebook;\n  }\n\n  get resolve(): resolver {\n    return this.require.resolve;\n  }\n\n  async loadStyle(stylesheet: string): Promise<void> {\n    if (!this.cache[stylesheet]) {\n      await style(stylesheet);\n      this.cache[stylesheet] = true;\n    }\n  }\n\n  // load a javascript file\n  async loadJs(src: string, attrs?: Record<string, any>): Promise<void> {\n    await loadJs({...attrs, src});\n  }\n\n  // import a javascript module\n  async importModule(src: string): Promise<any> {\n    return await loadJsModule(src);\n  }\n\n  addStyle(style: string) {\n    addStyle(style);\n  }\n\n  // Execute Javascript code by creating a new script element\n  exec(code: string, element?: Element) {\n    const script = document.createElement(\"script\");\n    const wrappedCode = `(function() {\\n${code}\\n}());`;\n    const body = document.createTextNode(wrappedCode);\n    script.appendChild(body);\n    const target = element || document.body;\n    target.appendChild(script);\n  }\n\n  // Render a markdown text into an element\n  async render(text: string, element: any, options?: any): Promise<any> {\n    const opts = options || {};\n    const promises: Promise<any>[] = [];\n    if (opts.stylesheet)\n      asArray(opts.stylesheet).forEach((stylesheet: string) => {\n        promises.push(this.loadStyle(stylesheet));\n      });\n    if (opts.js)\n      asArray(opts.js).forEach((js: string) => {\n        promises.push(this.loadJs(js));\n      });\n    if (promises.length) await Promise.all(promises);\n    return await this.md.render(text, element, opts);\n  }\n\n  async edit(text: string, element: any, options?: any): Promise<any> {\n    return await this.editor.render(text, element, options);\n  }\n\n  async renderCode(\n    element: any,\n    code?: string,\n    lang?: string\n  ): Promise<Record<string, any>> {\n    const mode: string = this.options.mode || \"light\";\n    const hls =\n      this.options.highlightStyle || config.defaultHighlightStyle[mode];\n    await this.loadStyle(`${config.HL_CSS}/${hls}.min.css`);\n    await this.loadJs(`${config.HL_ROOT}/highlight.min.js`);\n    const text = code || element.innerText;\n    // @ts-ignore\n    const hl = window.hljs;\n    const classes = new Set(element.classList.values());\n    const language = lang || element.className || \"plaintext\";\n    let languageObject = hl.getLanguage(language);\n    if (!languageObject) {\n      languageObject = await this.require(\n        `${config.HL_ROOT}/languages/${language}.min.js`\n      );\n      hl.registerLanguage(language, languageObject);\n    }\n    element.innerHTML = hl.highlight(text, { language }).value;\n    if (this.options.codeClipboard) {\n      const pre = element.parentElement;\n      if (pre && pre.tagName === \"PRE\") {\n        const clipboard = document.createElement(\"with-clipboard\");\n        clipboard.innerHTML = pre.outerHTML;\n        pre.replaceWith(clipboard);\n      }\n    }\n    const langu =\n      languageObject && languageObject.aliases ? languageObject.aliases[0] : \"\";\n    return { lang: langu, code: text, element, classes };\n  }\n\n  context2d(\n    width: number,\n    height: number,\n    dpi?: number\n  ): CanvasRenderingContext2D {\n    if (!dpi) dpi = devicePixelRatio;\n    const canvas = document.createElement(\"canvas\");\n    canvas.width = width * dpi;\n    canvas.height = height * dpi;\n    canvas.style.width = width + \"px\";\n    const context = canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n    context.scale(dpi, dpi);\n    return context;\n  }\n}\n\nexport default Notebook;\n","import addStyle from \"../lib/addStyle\";\n\nclass Clipboard extends HTMLElement {\n  connectedCallback() {\n    addStyle(`\n    .notebook-clipboard-content {\n      position: relative !important;\n      overflow: auto !important;\n    }\n    .notebook-clipboard {\n      position: absolute !important;\n      right: 0 !important;\n      top: 0 !important;\n      animation: fade-out 200ms both;\n    }\n    .notebook-clipboard-button {\n      position: relative;\n      padding: 0 !important;\n      margin: 8px !important;\n      opacity: 0.4;\n    }`);\n    this.innerHTML = `<div class=\"notebook-clipboard-content\">\n      ${this.innerHTML}\n      <div class=\"notebook-clipboard\">\n        <button class=\"notebook-clipboard-button\">\n          <svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\">\n        <path fill-rule=\"evenodd\" d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z\"></path><path fill-rule=\"evenodd\" d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z\"></path>\n    </svg>\n        </button>\n      </div>\n      </div>`;\n    this.querySelector(\".notebook-clipboard-button\")?.addEventListener(\n      \"click\",\n      (event: Event) => {\n        const el = event.currentTarget as HTMLElement;\n        const content =\n          el.parentElement?.previousElementSibling?.textContent || \"\";\n        navigator.clipboard.writeText(content);\n      }\n    );\n  }\n}\n\nexport default Clipboard;\n","/// A Notebook plugin to render code from github\n///\n/// Usage: <github owner=\"quantmind\" repo=\"metablock-js\" path=\"packages/notebook/github.ts\" lang=\"ts\"></github>\n///\nimport config from \"../config\";\nimport Notebook from \"../notebook\";\n\nclass GithubModule extends HTMLElement {\n  async connectedCallback() {\n    const notebook = Notebook.installed();\n    const module = await notebook.importModule(config.OKTOKIT);\n    // @ts-ignore\n    const octokit = new module.Octokit();\n    const path = this.getAttribute(\"path\");\n    if (!path) {\n      this.innerHTML = \"<strong>No path</strong>\";\n      return;\n    }\n    const result = await octokit.rest.repos.getContent({\n      owner: this.getAttribute(\"owner\"),\n      repo: this.getAttribute(\"repo\"),\n      path,\n    });\n    const data = result.data;\n    if (result.status == 200 && data.type === \"file\") {\n      this.innerHTML = \"<pre><code></code></pre>\";\n      const code = this.querySelector(\"code\");\n      const language = this.getAttribute(\"lang\") || path.split(\".\").pop();\n      await notebook.renderCode(code, atob(data.content), language);\n    }\n  }\n}\n\n\nexport default GithubModule;\n","import Notebook from \"../notebook\";\n\nclass Module extends HTMLElement {\n  constructor() {\n    super();\n    this.attachShadow({ mode: \"open\" });\n  }\n\n  async connectedCallback() {\n    const src = this.getAttribute(\"src\");\n    const root = this.shadowRoot || this;\n    if (!src) {\n      root.innerHTML = `<div style=\"color: red\">No src attribute</div>`;\n      return;\n    }\n    const ar = this.getAttribute(\"aspectratio\");\n    root.innerHTML = ar\n      ? `<div class=\"module-outer\" style=\"width: 100%; position: relative; padding-top:${ar}\">\n        <div class=\"module\" style=\"position: absolute; top: 0; left: 0; bottom: 0; right: 0\"></div>\n      </div>`\n      : `<div class=\"module\"></div>`;\n    const module = await import(/* webpackIgnore: true */ src);\n    const element = root.querySelector(\".module\");\n    if (element) module.default(Notebook.installed(), element);\n  }\n}\n\nexport default Module;\n","class RawCode extends HTMLElement {\n  connectedCallback() {\n    const inline = this.hasAttribute(\"inline\");\n    const text = (this.textContent || \"\").trim();\n    const html = inline\n      ? `<span>${text}</span>`\n      : `<pre><code class=\"markdown\">${text}</code></pre>`;\n    this.innerHTML = html;\n  }\n}\n\nexport default RawCode;\n","import loadScript from \"../lib/loadJs\";\n\nclass TradingViewForexCross extends HTMLElement {\n\n  async connectedCallback() {\n    const config = this.getConfig();\n    const root = this.shadowRoot || this;\n    root.innerHTML = `<div class=\"tradingview-widget-container\">\n    <div class=\"tradingview-widget-container__widget\"></div>\n    </div>`;\n    await loadScript(\n      {\n        src: \"https://s3.tradingview.com/external-embedding/embed-widget-forex-cross-rates.js\",\n        async: true,\n        type: \"text/javascript\",\n        content: config,\n      },\n      root.children[0] as HTMLElement\n    );\n  }\n\n  getConfig() {\n    return {\n      width: \"100%\",\n      height: \"100%\",\n      currencies: [\n        \"EUR\",\n        \"USD\",\n        \"JPY\",\n        \"GBP\",\n        \"CHF\",\n        \"AUD\",\n        \"CAD\",\n        \"NZD\",\n        \"CNY\",\n        \"TRY\",\n        \"SEK\",\n        \"NOK\",\n      ],\n      isTransparent: false,\n      colorTheme: \"dark\",\n      locale: \"en\",\n    };\n  }\n}\n\nexport default TradingViewForexCross;\n","import loadScript from \"../lib/loadJs\";\n\nclass TradingViewMiniChart extends HTMLElement {\n\n  async connectedCallback() {\n    const config = this.getConfig();\n    const root = this.shadowRoot || this;\n    root.innerHTML = `<div class=\"tradingview-widget-container\">\n    <div class=\"tradingview-widget-container__widget\"></div>\n    </div>`;\n    await loadScript(\n      {\n        src: \"https://s3.tradingview.com/external-embedding/embed-widget-mini-symbol-overview.js\",\n        async: true,\n        type: \"text/javascript\",\n        content: config,\n      },\n      root.children[0] as HTMLElement\n    );\n  }\n\n  getConfig() {\n    return {\n      width: \"100%\",\n      height: \"100%\",\n      symbol: \"FX:EURUSD\",\n      dateRange: \"12M\",\n      isTransparent: false,\n      colorTheme: \"dark\",\n      locale: \"en\",\n    };\n  }\n}\n\nexport default TradingViewMiniChart;\n","import Clipboard from \"./clipboard\";\nimport { EditorComponent } from \"./editor\";\nimport GithubModule from \"./github\";\nimport Module from \"./module\";\nimport RawCode from \"./rawcode\";\nimport TradingViewForexCross from \"./tv-forex-cross\";\nimport TradingViewMiniChart from \"./tv-mini-chart\";\n\nconst installElements = () => {\n  customElements.define(\"github-repo\", GithubModule);\n  customElements.define(\"module-component\", Module);\n  customElements.define(\"editor-component\", EditorComponent);\n  customElements.define(\"raw-code\", RawCode);\n  customElements.define(\"with-clipboard\", Clipboard);\n  customElements.define(\"tradingview-forex-cross\", TradingViewForexCross);\n  customElements.define(\"tradingview-mini-chart\", TradingViewMiniChart);\n};\n\nexport default installElements;\n","import installElements from \"./components\";\nimport Notebook from \"./notebook\";\n\nconst createNotebook = (mode?: string): Notebook => {\n  // @ts-ignore\n  if (!window.notebook) {\n    // @ts-ignore\n    window.notebook = new Notebook();\n    installElements();\n  }\n  if (mode) {\n    // @ts-ignore\n    window.notebook.options.mode = mode;\n  }\n  // @ts-ignore\n  return window.notebook;\n};\n\nexport default createNotebook;\n"],"names":["require","after","Notebook","renderer","math","requireDefault","loadJs"],"mappings":"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","x_google_ignoreList":[5]}