togokah
Upload files
2609fac
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?d270","webpack:///./src/MyComponent.vue?ba71","webpack:///./src/streamlit/WithStreamlitConnection.vue?196c","webpack:///./src/App.vue","webpack:///./src/MyComponent.vue","webpack:///./src/streamlit/StreamlitVue.ts","webpack:///./src/MyComponent.vue?d0e1","webpack:///./src/streamlit/WithStreamlitConnection.vue","webpack:///./src/streamlit/WithStreamlitConnection.vue?69f8","webpack:///./src/streamlit/WithStreamlitConnection.vue?07d5","webpack:///./src/App.vue?1d14","webpack:///./src/App.vue?97f5","webpack:///./src/main.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","id","args","class","isHorizontal","style","styleObjectToString","styles","menuTitle","href","menuIcon","options","option","selectedIndex","onClicked","aria-current","icons","useStreamlit","setFrameHeight","getFullIconName","props","setup","orientation","defaultIndex","index","setComponentValue","obj","condition","styleString","render","__scopeId","componentError","renderData","disabled","undefined","onRenderEvent","event","renderEvent","detail","events","addEventListener","RENDER_EVENT","setComponentReady","removeEventListener","err","String","components","MyComponent","WithStreamlitConnection","App","mount"],"mappings":"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","file":"js/app.0d11cb9b.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=07d8329a&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./MyComponent.vue?vue&type=style&index=0&id=4323f8ce&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./WithStreamlitConnection.vue?vue&type=style&index=0&id=bef81972&scoped=true&lang=css\"","<!-- \n We bootstrap our Component to Streamlit with our scoped slot in the top-level App.\n This is where scoped slot passes Streamlit `args` data from itself to children MyComponent.\n You should not have to edit this, but are free to do so :)\n-->\n<template>\n <div id=\"app\">\n <WithStreamlitConnection v-slot=\"{ args }\">\n <MyComponent :args=\"args\" />\n </WithStreamlitConnection>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from \"vue\"\nimport MyComponent from \"./MyComponent.vue\"\n\n// \"withStreamlitConnection\" is a scoped slot. It bootstraps the\n// connection between your component and the Streamlit app, and handles\n// passing arguments from Python -> Component.\n//\n// You don't need to edit withStreamlitConnection (but you're welcome to!).\nimport WithStreamlitConnection from \"./streamlit/WithStreamlitConnection.vue\"\n\nexport default defineComponent({\n name: \"App\",\n components: {\n MyComponent,\n WithStreamlitConnection,\n },\n})\n</script>\n\n<style>\nbody {\n margin: 0;\n}\n#app {\n font-family: Avenir, Helvetica, Arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n color: #2c3e50;\n}\n</style>\n","<template>\n <div class=\"menu\">\n <div class=\"container-xxl d-flex flex-column flex-shrink-0\" :class=\"{'p-3': !isHorizontal, 'p-h':isHorizontal, 'nav-justified': isHorizontal}\" :style=\"styleObjectToString(styles['container'])\">\n <template v-if=\"menuTitle\">\n <a href=\"#\" class=\"menu-title align-items-center mb-md-0 me-md-auto text-decoration-none\"\n :style=\"styleObjectToString(styles['menu-title'])\"\n >\n <i class=\"icon\" :class=\"menuIcon\" :style=\"styleObjectToString(styles['menu-icon'])\"></i>\n {{menuTitle}}\n </a>\n <hr>\n </template>\n <ul class=\"nav nav-pills mb-auto\" :class=\"{'flex-column': !isHorizontal, 'nav-justified': isHorizontal}\"\n :style=\"styleObjectToString(styles['nav'])\"\n >\n <li class=\"nav-item\" v-for=\"(option,i) in args.options\" :key=\"option\"\n :style=\"styleObjectToString(styles['nav-item'])\"\n >\n <hr :class=\"{vr: isHorizontal}\" v-if=\"option === '---'\" :style=\"styleObjectToString(styles['separator'])\">\n <a v-else href=\"#\" class=\"nav-link\" :class=\"{active: i == selectedIndex, 'nav-link-horizontal':isHorizontal}\" \n @click=\"onClicked(i, option)\" aria-current=\"page\" \n :style=\"styleObjectToString(styles['nav-link']) + styleObjectToString(styles['nav-link-selected'], i == selectedIndex)\">\n <i class=\"icon\" :class=\"icons[i]\" :style=\"styleObjectToString(styles['icon'])\"></i>\n {{option}}\n </a>\n </li>\n </ul>\n </div>\n </div>\n</template>\n<script>\nimport { ref } from \"vue\"\nimport { Streamlit } from \"streamlit-component-lib\"\nimport { useStreamlit } from \"./streamlit\"\nimport \"bootstrap/dist/css/bootstrap.min.css\"\nimport \"bootstrap-icons/font/bootstrap-icons.css\";\n\n\nfunction getFullIconName(name) {\n return name.slice(0,3) !== \"bi-\"? \"bi-\" + name : name\n}\n\nexport default {\n name: \"MyComponent\",\n props: [\"args\"], // Arguments that are passed to the plugin in Python are accessible in prop \"args\"\n setup(props) {\n useStreamlit() // lifecycle hooks for automatic Streamlit resize\n\n const menuTitle = ref(props.args.menuTitle)\n const isHorizontal = props.args.orientation == \"horizontal\"\n const menuIcon = ref(props.args.menuIcon || \"bi-menu-up\")\n menuIcon.value = getFullIconName(menuIcon.value)\n const icons = ref(props.args.icons || [])\n for (let i = 0; i < props.args.options.length; i++) {\n if (!icons.value[i]) {\n icons.value[i] = \"bi-caret-right\";\n }\n icons.value[i] = getFullIconName(icons.value[i]);\n }\n const selectedIndex = ref(props.args.defaultIndex)\n const onClicked = (index, option) => {\n selectedIndex.value = index\n Streamlit.setComponentValue(option)\n }\n const styleObjectToString = (obj, condition) => {\n if (typeof condition === \"undefined\") {\n condition = true\n }\n if (!condition) {\n return \"\"\n }\n let styleString = \"\"\n for (const key in obj) {\n styleString += `${key}:${obj[key]};`\n }\n return styleString\n }\n const styles = ref(props.args.styles || {});\n return {\n selectedIndex,\n menuTitle,\n menuIcon,\n icons,\n styles,\n onClicked,\n styleObjectToString,\n isHorizontal\n }\n },\n}\n</script>\n\n<style scoped>\n.icon {\n font-size: 1rem;\n margin-right: 0.5rem;\n}\n\n.menu hr {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.menu .container-xxl {\n background-color: var(--secondary-background-color);\n border-radius: 0.5rem;\n}\n\n.menu-title {\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n}\n\n.menu-title, .menu-title .icon {\n font-size: 1.5rem;\n}\n\n.menu-title .icon {\n margin-right: 0.75rem;\n}\n\n.menu-title, .menu .nav-link, .menu .nav-item, hr {\n color: var(--text-color);\n}\n\n.nav-link.active {\n color: white;\n}\n\n.nav-link:hover {\n background-color: var(--hover-color);\n}\n\n.nav-link-hover:hover {\n background-color: inherit;\n}\n\n.menu .nav-link {\n /* box-shadow: 0 0px 0.2rem #aaa; */\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.menu .nav-link-horizontal {\n /* margin-top: 0.25rem;\n margin-bottom: 0.25rem; */\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.p-h {\n padding: 0.5rem 0.75rem;\n}\n\n.container .flex-column {\n padding-top: 0.25rem;\n}\n\n.menu .nav-item .nav-link.active{\n background-color: var(--primary-color);\n}\n\n.nav-link.active, .nav-link.active+.icon {\n font-weight: 900;\n}\n\n.vr {\n width: 1px; \n height: 80%;\n}\n</style>","/**\n * Vue.js specific composables\n */\nimport { onMounted, onUpdated } from \"vue\"\nimport { Streamlit } from \"streamlit-component-lib\"\n\nexport function useStreamlit() {\n /**\n * Optional Streamlit Vue-based setup.\n *\n * You are not required call this function on your Streamlit\n * component. If you decide not to call it, you should implement the\n * `onMounted` and `onUpdated` functions in your own component,\n * so that your plugin properly resizes.\n */\n\n onMounted((): void => {\n // After we're rendered for the first time, tell Streamlit that our height\n // has changed.\n Streamlit.setFrameHeight()\n })\n\n onUpdated((): void => {\n // After we're updated, tell Streamlit that our height may have changed.\n Streamlit.setFrameHeight()\n })\n}\n","import { render } from \"./MyComponent.vue?vue&type=template&id=4323f8ce&scoped=true\"\nimport script from \"./MyComponent.vue?vue&type=script&lang=js\"\nexport * from \"./MyComponent.vue?vue&type=script&lang=js\"\n\nimport \"./MyComponent.vue?vue&type=style&index=0&id=4323f8ce&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-4323f8ce\"\n\nexport default script","<template>\n <div>\n <!-- Error boundary. If our wrapped component threw an error, display it. -->\n <div v-if=\"componentError != ''\">\n <h1 class=\"err__title\">Component Error</h1>\n <div class=\"err__msg\">Message: {{ componentError }}</div>\n </div>\n <!-- \n Else render the component slot and pass Streamlit event data in `args` props to it.\n Don't render until we've gotten our first RENDER_EVENT from Streamlit.\n All components get disabled while the app is being re-run, and become re-enabled when the re-run has finished.\n -->\n <slot\n v-else-if=\"renderData != null\"\n :args=\"renderData.args\"\n :disabled=\"renderData.disabled\"\n ></slot>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n ref,\n defineComponent,\n onMounted,\n onUpdated,\n onUnmounted,\n onErrorCaptured,\n} from \"vue\"\nimport { Streamlit, RenderData } from \"streamlit-component-lib\"\n\nexport default defineComponent({\n name: \"WithStreamlitConnection\",\n setup() {\n const renderData = ref<RenderData>((undefined as unknown) as RenderData)\n const componentError = ref(\"\")\n\n const onRenderEvent = (event: Event): void => {\n const renderEvent = event as CustomEvent<RenderData>\n renderData.value = renderEvent.detail\n componentError.value = \"\"\n }\n\n // Set up event listeners, and signal to Streamlit that we're ready.\n // We won't render the component until we receive the first RENDER_EVENT.\n onMounted(() => {\n Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRenderEvent)\n Streamlit.setComponentReady()\n })\n onUpdated(() => {\n // If our slot threw an error, we display it in render(). In this\n // case, the slot won't be mounted and therefore won't call\n // `setFrameHeight` on its own. We do it here so that the rendered\n // error will be visible.\n if (componentError.value != \"\") {\n Streamlit.setFrameHeight()\n }\n })\n onUnmounted(() => {\n Streamlit.events.removeEventListener(\n Streamlit.RENDER_EVENT,\n onRenderEvent\n )\n })\n onErrorCaptured(err => {\n componentError.value = String(err)\n })\n\n return {\n renderData,\n componentError,\n }\n },\n})\n</script>\n\n<style scoped>\n.err__title,\n.err__msg {\n margin: 0;\n}\n</style>\n","\nimport {\n ref,\n defineComponent,\n onMounted,\n onUpdated,\n onUnmounted,\n onErrorCaptured,\n} from \"vue\"\nimport { Streamlit, RenderData } from \"streamlit-component-lib\"\n\nexport default defineComponent({\n name: \"WithStreamlitConnection\",\n setup() {\n const renderData = ref<RenderData>((undefined as unknown) as RenderData)\n const componentError = ref(\"\")\n\n const onRenderEvent = (event: Event): void => {\n const renderEvent = event as CustomEvent<RenderData>\n renderData.value = renderEvent.detail\n componentError.value = \"\"\n }\n\n // Set up event listeners, and signal to Streamlit that we're ready.\n // We won't render the component until we receive the first RENDER_EVENT.\n onMounted(() => {\n Streamlit.events.addEventListener(Streamlit.RENDER_EVENT, onRenderEvent)\n Streamlit.setComponentReady()\n })\n onUpdated(() => {\n // If our slot threw an error, we display it in render(). In this\n // case, the slot won't be mounted and therefore won't call\n // `setFrameHeight` on its own. We do it here so that the rendered\n // error will be visible.\n if (componentError.value != \"\") {\n Streamlit.setFrameHeight()\n }\n })\n onUnmounted(() => {\n Streamlit.events.removeEventListener(\n Streamlit.RENDER_EVENT,\n onRenderEvent\n )\n })\n onErrorCaptured(err => {\n componentError.value = String(err)\n })\n\n return {\n renderData,\n componentError,\n }\n },\n})\n","import { render } from \"./WithStreamlitConnection.vue?vue&type=template&id=bef81972&scoped=true\"\nimport script from \"./WithStreamlitConnection.vue?vue&type=script&lang=ts\"\nexport * from \"./WithStreamlitConnection.vue?vue&type=script&lang=ts\"\n\nimport \"./WithStreamlitConnection.vue?vue&type=style&index=0&id=bef81972&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-bef81972\"\n\nexport default script","\nimport { defineComponent } from \"vue\"\nimport MyComponent from \"./MyComponent.vue\"\n\n// \"withStreamlitConnection\" is a scoped slot. It bootstraps the\n// connection between your component and the Streamlit app, and handles\n// passing arguments from Python -> Component.\n//\n// You don't need to edit withStreamlitConnection (but you're welcome to!).\nimport WithStreamlitConnection from \"./streamlit/WithStreamlitConnection.vue\"\n\nexport default defineComponent({\n name: \"App\",\n components: {\n MyComponent,\n WithStreamlitConnection,\n },\n})\n","import { render } from \"./App.vue?vue&type=template&id=07d8329a\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=07d8329a&lang=css\"\nscript.render = render\n\nexport default script","import { createApp } from 'vue'\nimport App from './App.vue'\n\ncreateApp(App).mount('#app')\n"],"sourceRoot":""}