@jsenv/core 24.1.0-alpha.0 → 24.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/{license → LICENSE} +0 -0
  2. package/dist/browser_runtime/browser_runtime-fbd309a1.js +5137 -0
  3. package/dist/browser_runtime/browser_runtime-fbd309a1.js.map +1064 -0
  4. package/dist/{jsenv_browser_system.js → browser_system/browser_system-29eda202.js} +12 -12
  5. package/dist/{jsenv_browser_system.js.map → browser_system/browser_system-29eda202.js.map} +64 -64
  6. package/dist/build_manifest.js +12 -0
  7. package/dist/compile_proxy/assets/s.js-749702e8.map +242 -0
  8. package/dist/compile_proxy/compile_proxy-405777e6.html +2074 -0
  9. package/dist/compile_proxy/compile_proxy.html__inline__20-39c0801c.js.map +385 -0
  10. package/dist/event_source_client/event_source_client-9f14c8b9.js +356 -0
  11. package/dist/event_source_client/event_source_client-9f14c8b9.js.map +127 -0
  12. package/dist/redirector/assets/s.js-749702e8.map +242 -0
  13. package/dist/redirector/redirector-237cd168.html +2118 -0
  14. package/dist/redirector/redirector.html__inline__15-33acb0b9.js.map +390 -0
  15. package/dist/toolbar/assets/compilation.css-209d68b4.map +12 -0
  16. package/dist/toolbar/assets/eventsource.css-38cd0a36.map +12 -0
  17. package/dist/toolbar/assets/execution.css-0ebe522f.map +12 -0
  18. package/dist/toolbar/assets/focus.css-3f9c156d.map +12 -0
  19. package/dist/toolbar/assets/light-theme.css-78b19a80.map +12 -0
  20. package/dist/toolbar/assets/overflow-menu.css-d9688a1c.map +12 -0
  21. package/dist/toolbar/assets/s.js-749702e8.map +242 -0
  22. package/dist/toolbar/assets/settings.css-2b81b245.map +12 -0
  23. package/dist/toolbar/assets/toolbar.main.css-846920e9.map +28 -0
  24. package/dist/toolbar/assets/tooltip.css-03395ee6.map +12 -0
  25. package/dist/toolbar/toolbar-d3d98c2e.html +4778 -0
  26. package/dist/toolbar/toolbar.main-cab36c15.js.map +795 -0
  27. package/dist/toolbar_injector/assets/jsenv-logo-188b9ca6.svg +95 -0
  28. package/dist/{jsenv_toolbar_injector.js → toolbar_injector/toolbar_injector-01f71ce3.js} +62 -137
  29. package/dist/toolbar_injector/toolbar_injector-01f71ce3.js.map +294 -0
  30. package/main.js +0 -1
  31. package/package.json +4 -2
  32. package/readme.md +10 -7
  33. package/src/buildProject.js +8 -2
  34. package/src/dev_server.js +45 -102
  35. package/src/importUsingChildProcess.js +1 -1
  36. package/src/internal/{runtime/detectBrowser/detectBrowser.js → browser_detection/browser_detection.js} +0 -0
  37. package/src/internal/{runtime/detectBrowser → browser_detection}/detectAndroid.js +0 -0
  38. package/src/internal/{runtime/detectBrowser → browser_detection}/detectChrome.js +0 -0
  39. package/src/internal/{runtime/detectBrowser → browser_detection}/detectEdge.js +0 -0
  40. package/src/internal/{runtime/detectBrowser → browser_detection}/detectElectron.js +0 -0
  41. package/src/internal/{runtime/detectBrowser → browser_detection}/detectFirefox.js +0 -0
  42. package/src/internal/{runtime/detectBrowser → browser_detection}/detectIOS.js +0 -0
  43. package/src/internal/{runtime/detectBrowser → browser_detection}/detectInternetExplorer.js +0 -0
  44. package/src/internal/{runtime/detectBrowser → browser_detection}/detectOpera.js +0 -0
  45. package/src/internal/{runtime/detectBrowser → browser_detection}/detectSafari.js +0 -0
  46. package/src/internal/{runtime/detectBrowser → browser_detection}/util.js +0 -0
  47. package/src/internal/{runtime/createBrowserRuntime/scanBrowserRuntimeFeatures.js → browser_feature_detection/browser_feature_detection.js} +116 -81
  48. package/src/internal/browser_feature_detection/compile_proxy.html +27 -0
  49. package/src/internal/{browser-launcher → browser_launcher}/createSharing.js +0 -0
  50. package/src/internal/{browser-launcher → browser_launcher}/executeHtmlFile.js +7 -4
  51. package/src/internal/{browser-launcher → browser_launcher}/trackPageToNotify.js +0 -0
  52. package/src/internal/{browser-launcher/jsenv-browser-system.js → browser_runtime/browser_runtime.js} +4 -4
  53. package/src/internal/{runtime/createBrowserRuntime/createBrowserSystem.js → browser_runtime/browser_system.js} +3 -2
  54. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/createBrowserRuntime.js +7 -5
  55. package/src/internal/{browser-launcher → browser_runtime}/displayErrorInDocument.js +0 -0
  56. package/src/internal/{browser-launcher → browser_runtime}/displayErrorNotification.js +2 -4
  57. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/evalSource.js +2 -0
  58. package/src/internal/{runtime/createBrowserRuntime → browser_runtime}/makeNamespaceTransferable.js +0 -0
  59. package/src/internal/{browser-utils → browser_utils}/fetch-browser.js +2 -0
  60. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingFetch.js +3 -0
  61. package/src/internal/{browser-utils → browser_utils}/fetchAndEvalUsingScript.js +2 -0
  62. package/src/internal/{browser-utils → browser_utils}/fetchJson.js +0 -0
  63. package/src/internal/{browser-utils → browser_utils}/fetchUsingXHR.js +4 -4
  64. package/src/internal/building/buildUsingRollup.js +4 -0
  65. package/src/internal/building/createJsenvRollupPlugin.js +19 -9
  66. package/src/internal/building/css/applyPostCss.js +19 -8
  67. package/src/internal/building/css/moveCssUrls.js +44 -0
  68. package/src/internal/building/css/parseCssRessource.js +67 -17
  69. package/src/internal/building/css/parseCssUrls.js +29 -23
  70. package/src/internal/building/css/postcss_plugin_url_visitor.js +11 -20
  71. package/src/internal/building/css/replaceCssUrls.js +38 -19
  72. package/src/internal/building/css_module.js +6 -10
  73. package/src/internal/building/html/parseHtmlRessource.js +37 -11
  74. package/src/internal/building/parseRessource.js +3 -0
  75. package/src/internal/building/ressource_builder.js +12 -3
  76. package/src/internal/compiling/babel_plugin_import_assertions.js +1 -2
  77. package/src/internal/compiling/compile-directory/validateCache.js +0 -5
  78. package/src/internal/compiling/compileFile.js +17 -54
  79. package/src/internal/compiling/createCompiledFileService.js +2 -0
  80. package/src/internal/compiling/html_source_file_service.js +49 -13
  81. package/src/internal/compiling/jsenvCompilerForHtml.js +29 -12
  82. package/src/internal/compiling/startCompileServer.js +39 -33
  83. package/src/internal/dev_server/event_source_client/event_source_client.js +63 -0
  84. package/src/internal/{toolbar/eventsource/connectEventSource.js → dev_server/event_source_client/event_source_connection.js} +66 -88
  85. package/src/internal/dev_server/event_source_client/file_changes.js +82 -0
  86. package/src/internal/dev_server/event_source_client/livereload_preference.js +13 -0
  87. package/src/internal/{exploring → dev_server/exploring}/exploring.css +0 -0
  88. package/src/internal/{exploring → dev_server/exploring}/exploring.html +8 -3
  89. package/src/internal/{exploring → dev_server/exploring}/exploring.js +0 -0
  90. package/src/internal/{exploring → dev_server/exploring}/fetchExploringJson.js +4 -9
  91. package/src/internal/dev_server/redirector/redirector.html +48 -0
  92. package/src/internal/{toolbar → dev_server/toolbar}/animation/toolbar.animation.js +0 -0
  93. package/src/internal/{toolbar → dev_server/toolbar}/compilation/compilation.css +0 -0
  94. package/src/internal/{toolbar → dev_server/toolbar}/compilation/toolbar.compilation.js +4 -7
  95. package/src/internal/{toolbar → dev_server/toolbar}/eventsource/eventsource.css +0 -0
  96. package/src/internal/dev_server/toolbar/eventsource/toolbar.eventsource.js +83 -0
  97. package/src/internal/{toolbar → dev_server/toolbar}/execution/execution.css +0 -0
  98. package/src/internal/{toolbar → dev_server/toolbar}/execution/toolbar.execution.js +0 -0
  99. package/src/internal/{toolbar → dev_server/toolbar}/focus/focus.css +0 -0
  100. package/src/internal/{toolbar → dev_server/toolbar}/focus/toolbar.focus.js +0 -0
  101. package/src/internal/{toolbar → dev_server/toolbar}/jsenv-logo.svg +0 -0
  102. package/src/internal/dev_server/toolbar/notification/toolbar.notification.js +152 -0
  103. package/src/internal/{toolbar → dev_server/toolbar}/responsive/overflow-menu.css +0 -0
  104. package/src/internal/{toolbar → dev_server/toolbar}/responsive/toolbar.responsive.js +0 -0
  105. package/src/internal/{toolbar → dev_server/toolbar}/settings/settings.css +0 -0
  106. package/src/internal/{toolbar → dev_server/toolbar}/settings/toolbar.settings.js +0 -0
  107. package/src/internal/{toolbar → dev_server/toolbar}/theme/jsenv-theme.css +0 -0
  108. package/src/internal/{toolbar → dev_server/toolbar}/theme/light-theme.css +0 -0
  109. package/src/internal/{toolbar → dev_server/toolbar}/theme/toolbar.theme.js +0 -0
  110. package/src/internal/{toolbar → dev_server/toolbar}/toolbar.html +35 -42
  111. package/src/internal/{toolbar → dev_server/toolbar}/toolbar.injector.js +53 -125
  112. package/src/internal/{toolbar → dev_server/toolbar}/toolbar.main.css +0 -0
  113. package/src/internal/{toolbar → dev_server/toolbar}/toolbar.main.js +44 -31
  114. package/src/internal/{toolbar → dev_server/toolbar}/tooltip/tooltip.css +0 -0
  115. package/src/internal/{toolbar → dev_server/toolbar}/tooltip/tooltip.js +0 -0
  116. package/src/internal/{toolbar → dev_server/toolbar}/util/animation.js +0 -0
  117. package/src/internal/{toolbar → dev_server/toolbar}/util/dom.js +0 -0
  118. package/src/internal/{toolbar → dev_server/toolbar}/util/fetching.js +2 -2
  119. package/src/internal/{toolbar → dev_server/toolbar}/util/jsenvLogger.js +0 -0
  120. package/src/internal/{toolbar → dev_server/toolbar}/util/preferences.js +0 -0
  121. package/src/internal/{toolbar → dev_server/toolbar}/util/responsive.js +0 -0
  122. package/src/internal/{toolbar → dev_server/toolbar}/util/util.js +0 -0
  123. package/src/internal/{toolbar → dev_server/toolbar}/variant/variant.js +0 -0
  124. package/src/internal/generateGroupMap/one_runtime_compat.js +1 -1
  125. package/src/internal/generateGroupMap/runtime_compat_composition.js +1 -1
  126. package/src/internal/generateGroupMap/runtime_support.js +1 -1
  127. package/src/internal/jsenvInternalFiles.js +0 -84
  128. package/src/internal/jsenv_builds.js +19 -0
  129. package/src/internal/{runtime/node-feature-detect/feature-detect-dynamic-import.mjs → node_feature_detection/feature_detect_dynamic_import.mjs} +0 -0
  130. package/src/internal/{runtime/node-feature-detect/feature-detect-top-level-await.mjs → node_feature_detection/feature_detect_top_level_await.mjs} +0 -0
  131. package/src/internal/{runtime/node-feature-detect → node_feature_detection}/nodeSupportsDynamicImport.js +0 -0
  132. package/src/internal/node_feature_detection/nodeSupportsTopLevelAwait.js +16 -0
  133. package/src/internal/{runtime/createNodeRuntime/scanNodeRuntimeFeatures.js → node_feature_detection/node_feature_detection.js} +12 -13
  134. package/src/internal/{node-launcher → node_launcher}/createChildProcessOptions.js +0 -0
  135. package/src/internal/{node-launcher → node_launcher}/createControllableNodeProcess.js +9 -14
  136. package/src/internal/{node-launcher → node_launcher}/kill_process_tree.js +0 -0
  137. package/src/internal/{node-launcher → node_launcher}/processOptions.js +0 -0
  138. package/src/internal/{runtime/detectNode → node_runtime}/detectNode.js +0 -0
  139. package/src/internal/{runtime/createNodeRuntime → node_runtime}/evalSource.js +1 -1
  140. package/src/internal/{runtime/createNodeRuntime → node_runtime}/fetchSource.js +1 -1
  141. package/src/internal/{node-launcher → node_runtime}/nodeControllableFile.mjs +14 -11
  142. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithDynamicImport.js → node_runtime/node_execution_dynamic_import.js} +34 -6
  143. package/src/internal/node_runtime/node_execution_performance.js +67 -0
  144. package/src/internal/{runtime/createNodeRuntime/createNodeExecutionWithSystemJs.js → node_runtime/node_execution_systemjs.js} +38 -24
  145. package/src/internal/{runtime/createNodeRuntime/createNodeSystem.js → node_runtime/node_system.js} +4 -4
  146. package/src/internal/runtime/computeCompileIdFromGroupId.js +1 -0
  147. package/src/internal/runtime/resolveGroup.js +1 -1
  148. package/src/internal/runtime/resolveRuntimeGroup.js +2 -2
  149. package/src/internal/{semantic-versioning → semantic_versioning}/findHighestVersion.js +0 -0
  150. package/src/internal/{semantic-versioning → semantic_versioning}/findLowestVersion.js +0 -0
  151. package/src/internal/{semantic-versioning → semantic_versioning}/index.js +0 -0
  152. package/src/internal/{semantic-versioning → semantic_versioning}/valueToVersion.js +0 -0
  153. package/src/internal/{semantic-versioning → semantic_versioning}/versionCompare.js +0 -0
  154. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsAbove.js +0 -0
  155. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsBelow.js +0 -0
  156. package/src/internal/{semantic-versioning → semantic_versioning}/versionIsEqual.js +0 -0
  157. package/src/launchBrowser.js +3 -3
  158. package/src/launchNode.js +33 -7
  159. package/src/requireUsingChildProcess.js +1 -1
  160. package/dist/jsenv_compile_proxy.js +0 -1339
  161. package/dist/jsenv_compile_proxy.js.map +0 -378
  162. package/dist/jsenv_exploring_index.js +0 -1092
  163. package/dist/jsenv_exploring_index.js.map +0 -353
  164. package/dist/jsenv_exploring_redirector.js +0 -1386
  165. package/dist/jsenv_exploring_redirector.js.map +0 -384
  166. package/dist/jsenv_toolbar.js +0 -3347
  167. package/dist/jsenv_toolbar.js.map +0 -846
  168. package/dist/jsenv_toolbar_injector.js.map +0 -320
  169. package/src/internal/browser-launcher/jsenv_compile_proxy.html +0 -13
  170. package/src/internal/browser-launcher/jsenv_compile_proxy.js +0 -5
  171. package/src/internal/exploring/exploring.redirector.html +0 -13
  172. package/src/internal/exploring/exploring.redirector.js +0 -28
  173. package/src/internal/node-launcher/node-js-file.js +0 -110
  174. package/src/internal/runtime/createNodeRuntime/createNodeRuntime.js +0 -32
  175. package/src/internal/runtime/node-feature-detect/nodeSupportsTopLevelAwait.js +0 -18
  176. package/src/internal/toolbar/backtolist/toolbar.backtolist.js +0 -33
  177. package/src/internal/toolbar/eventsource/connectCompileServerEventSource.js +0 -74
  178. package/src/internal/toolbar/eventsource/toolbar.eventsource.js +0 -239
  179. package/src/internal/toolbar/notification/toolbar.notification.js +0 -121
  180. package/src/nodeRuntime.js +0 -5
@@ -1,353 +0,0 @@
1
- {
2
- "version": 3,
3
- "file": "jsenv_exploring_index.js",
4
- "sources": [
5
- "../src/internal/memoize.js",
6
- "../src/internal/toolbar/util/fetching.js",
7
- "../src/internal/toolbar/util/preferences.js",
8
- "../helpers/babel/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js",
9
- "../helpers/babel/objectWithoutProperties/objectWithoutProperties.js",
10
- "../src/internal/toolbar/util/animation.js",
11
- "../helpers/babel/defineProperty/defineProperty.js",
12
- "../node_modules/@jsenv/logger/src/createDetailedMessage.js",
13
- "../helpers/babel/objectSpread2/objectSpread2.js",
14
- "../helpers/babel/typeof/typeof.js",
15
- "../src/internal/browser-utils/fetchUsingXHR.js",
16
- "../src/internal/browser-utils/fetch-browser.js",
17
- "../src/internal/browser-utils/fetchJson.js",
18
- "../src/internal/exploring/fetchExploringJson.js",
19
- "../src/internal/exploring/exploring.js"
20
- ],
21
- "sourcesContent": [
22
- "export const memoize = (compute) => {\n let memoized = false\n let memoizedValue\n\n const fnWithMemoization = (...args) => {\n if (memoized) {\n return memoizedValue\n }\n // if compute is recursive wait for it to be fully done before storing the lockValue\n // so set locked later\n memoizedValue = compute(...args)\n memoized = true\n return memoizedValue\n }\n\n fnWithMemoization.forget = () => {\n const value = memoizedValue\n memoized = false\n memoizedValue = undefined\n return value\n }\n\n return fnWithMemoization\n}\n",
23
- "import { memoize } from \"../../memoize.js\"\n\nconst fetchPolyfill = async (...args) => {\n const { fetchUsingXHR } = await loadPolyfill()\n return fetchUsingXHR(...args)\n}\n\nconst loadPolyfill = memoize(() =>\n import(\"../../browser-utils/fetchUsingXHR.js\"),\n)\n\nexport const fetchUrl =\n typeof window.fetch === \"function\" &&\n typeof window.AbortController === \"function\"\n ? window.fetch\n : fetchPolyfill\n",
24
- "export const createPreference = (name) => {\n return {\n has: () => localStorage.hasOwnProperty(name),\n get: () =>\n localStorage.hasOwnProperty(name)\n ? JSON.parse(localStorage.getItem(name))\n : undefined,\n set: (value) => localStorage.setItem(name, JSON.stringify(value)),\n }\n}\n",
25
- "export default (source, excluded) => {\n if (source === null) return {}\n var target = {}\n var sourceKeys = Object.keys(source)\n var key\n var i\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i]\n if (excluded.indexOf(key) >= 0) continue\n target[key] = source[key]\n }\n return target\n}\n",
26
- "import objectWithoutPropertiesLoose from \"../objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js\"\n\nexport default (source, excluded) => {\n if (source === null) return {}\n\n var target = objectWithoutPropertiesLoose(source, excluded)\n var key\n var i\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source)\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i]\n if (excluded.indexOf(key) >= 0) continue\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue\n target[key] = source[key]\n }\n }\n return target\n}\n",
27
- "import { setStyles } from \"./dom.js\"\n\nconst animateFallback = () => {\n return Promise.resolve()\n}\n\nconst animateNative = (node, keyframes, { signal, ...options } = {}) => {\n const animation = node.animate(keyframes, options)\n if (signal) {\n signal.addEventListener(\"abort\", () => {\n animation.cancel()\n })\n }\n return new Promise((resolve) => {\n animation.onfinish = resolve\n })\n}\n\nexport const canUseAnimation = () =>\n typeof HTMLElement.prototype.animate === \"function\"\n\nexport const animateElement = canUseAnimation()\n ? animateNative\n : animateFallback\n\nexport const fadeIn = (node, options) =>\n animateElement(\n node,\n [\n {\n opacity: 0,\n },\n {\n opacity: 1,\n },\n ],\n options,\n )\n\nexport const fadeOut = (node, options) =>\n animateElement(\n node,\n [\n {\n opacity: 1,\n },\n {\n opacity: 0,\n },\n ],\n options,\n )\n\nexport const move = (fromNode, toNode, options) => {\n const fromComputedStyle = window.getComputedStyle(fromNode)\n const toComputedStyle = window.getComputedStyle(toNode)\n // get positions of input in toolbar and aElement\n const fromPosition = fromNode.getBoundingClientRect()\n const toPosition = toNode.getBoundingClientRect()\n\n // we'll do the animation in a div preventing overflow and pointer events\n const div = document.createElement(\"div\")\n div.style.position = \"absolute\"\n div.style.left = 0\n div.style.top = 0\n div.style.width = `${document.documentElement.scrollWidth}px`\n div.style.height = `${document.documentElement.scrollHeight}px`\n div.style.overflow = \"hidden\"\n div.style.pointerEvents = \"none\"\n\n const documentScroll = {\n left: window.pageXOffset || document.documentElement.scrollLeft,\n top: window.pageYOffset || document.documentElement.scrollTop,\n }\n\n // clone node and style it\n const copy = fromNode.cloneNode(true)\n copy.style.position = \"absolute\"\n copy.style.left = `${documentScroll.left + fromPosition.left}px`\n copy.style.top = `${documentScroll.top + fromPosition.top}px`\n copy.style.maxWidth = `${fromPosition.right - fromPosition.left}px`\n copy.style.overflow = toComputedStyle.overflow\n copy.style.textOverflow = toComputedStyle.textOverflow\n div.appendChild(copy)\n document.body.appendChild(div)\n\n const left =\n toPosition.left -\n fromPosition.left -\n (parseInt(fromComputedStyle.paddingLeft) || 0)\n const top =\n toPosition.top -\n fromPosition.top -\n (parseInt(fromComputedStyle.paddingTop) || 0)\n // define final position of new element and the duration\n const translate = `translate(${left}px, ${top}px)`\n\n // animate new element\n return animateElement(\n copy,\n [\n {\n transform: \"translate(0px, 0px)\",\n backgroundColor: fromComputedStyle.backgroundColor,\n color: fromComputedStyle.color,\n fontSize: fromComputedStyle.fontSize,\n height: `${fromPosition.bottom - fromPosition.top}px`,\n width: \"100%\",\n },\n {\n offset: 0.9,\n backgroundColor: fromComputedStyle.backgroundColor,\n color: fromComputedStyle.color,\n },\n {\n transform: translate,\n backgroundColor: toComputedStyle.backgroundColor,\n color: toComputedStyle.color,\n fontSize: toComputedStyle.fontSize,\n height: `${toPosition.bottom - toPosition.top}px`,\n width: toComputedStyle.width,\n },\n ],\n options,\n ).then(() => {\n div.parentNode.removeChild(div)\n })\n}\n\n// the whole point of this toolbar animation wass to flight a visual imperfection when it's done by css transition.\n// This imperfection is a white line sometimes flickering at the bottom of the page.\n// It got fixed by removing the usage of calc(100vh - 40px)\n// It was hapenning in chrome, safari but not inside Firefox\n// I assume it's because Firefox does not read parent element min-height while\n// chrome use it to compute min-height: 100%\nexport const createToolbarAnimation = () => {\n const collapsedState = {\n \"#page\": { paddingBottom: 0 },\n \"footer\": { height: 0 },\n \"#toolbar\": { visibility: \"hidden\" },\n }\n const expandedState = {\n \"#page\": { paddingBottom: \"40px\" },\n \"footer\": { height: \"40px\" },\n \"#toolbar\": { visibility: \"visible\" },\n }\n const expandTransition = transit(collapsedState, expandedState, {\n duration: 300,\n })\n\n const expand = () => {\n expandTransition.play()\n }\n\n const collapse = () => {\n expandTransition.reverse()\n }\n\n return { expand, collapse }\n}\n\nexport const transit = (\n fromState,\n toState,\n { commitStyles = true, fill = \"both\", duration = 300 } = {},\n) => {\n const steps = []\n Object.keys(fromState).forEach((selector) => {\n const fromStyles = {}\n const toStyles = {}\n const element = document.querySelector(selector)\n\n const keyframes = []\n const fromProperties = fromState[selector]\n const toProperties = toState[selector]\n Object.keys(fromProperties).forEach((propertyName) => {\n const from = fromProperties[propertyName]\n const to = toProperties[propertyName]\n fromStyles[propertyName] = from\n toStyles[propertyName] = to\n })\n keyframes.push(fromStyles, toStyles)\n\n let animation\n if (canUseAnimation()) {\n const effect = new KeyframeEffect(element, keyframes, { fill, duration })\n animation = new Animation(effect)\n } else {\n animation = {\n playbackRate: 1,\n play: () => {\n animation.onfinish()\n },\n reverse: () => {\n animation.playbackRate = -1\n animation.onfinish()\n },\n finish: () => {},\n onfinish: () => {},\n }\n }\n\n steps.push({\n element,\n animation,\n fromStyles,\n toStyles,\n })\n })\n\n const play = async () => {\n await Promise.all(\n steps.map(({ animation, element, toStyles }) => {\n return new Promise((resolve) => {\n animation.onfinish = () => {\n if (commitStyles) {\n setStyles(element, toStyles)\n }\n resolve()\n }\n if (animation.playbackRate === -1) {\n animation.reverse()\n } else {\n animation.play()\n }\n })\n }),\n )\n }\n\n const reverse = async () => {\n await Promise.all(\n steps.map(({ animation, element, fromStyles }) => {\n return new Promise((resolve) => {\n animation.onfinish = () => {\n if (commitStyles) {\n setStyles(element, fromStyles)\n }\n resolve()\n }\n animation.reverse()\n })\n }),\n )\n }\n\n const finish = async () => {\n steps.forEach(({ animation }) => {\n animation.finish()\n })\n }\n\n return { play, reverse, finish }\n}\n\nexport const startJavaScriptAnimation = ({\n duration = 300,\n timingFunction = (t) => t,\n onProgress = () => {},\n onCancel = () => {},\n onComplete = () => {},\n}) => {\n if (isNaN(duration)) {\n // console.warn(`duration must be a number, received ${duration}`)\n return () => {}\n }\n duration = parseInt(duration, 10)\n const startMs = performance.now()\n let currentRequestAnimationFrameId\n let done = false\n let rawProgress = 0\n let progress = 0\n const handler = () => {\n currentRequestAnimationFrameId = null\n const nowMs = performance.now()\n rawProgress = Math.min((nowMs - startMs) / duration, 1)\n progress = timingFunction(rawProgress)\n done = rawProgress === 1\n onProgress({\n done,\n rawProgress,\n progress,\n })\n if (done) {\n onComplete()\n } else {\n currentRequestAnimationFrameId = window.requestAnimationFrame(handler)\n }\n }\n handler()\n const stop = () => {\n if (currentRequestAnimationFrameId) {\n window.cancelAnimationFrame(currentRequestAnimationFrameId)\n currentRequestAnimationFrameId = null\n }\n if (!done) {\n done = true\n onCancel({\n rawProgress,\n progress,\n })\n }\n }\n return stop\n}\n",
28
- "export default (obj, key, value) => {\n // Shortcircuit the slow defineProperty path when possible.\n // We are trying to avoid issues where setters defined on the\n // prototype cause side effects under the fast path of simple\n // assignment. By checking for existence of the property with\n // the in operator, we can optimize most of this overhead away.\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value,\n enumerable: true,\n configurable: true,\n writable: true,\n })\n } else {\n obj[key] = value\n }\n return obj\n}\n",
29
- "export const createDetailedMessage = (message, details = {}) => {\n let string = `${message}`\n\n Object.keys(details).forEach((key) => {\n const value = details[key]\n string += `\n--- ${key} ---\n${\n Array.isArray(value)\n ? value.join(`\n`)\n : value\n}`\n })\n\n return string\n}\n",
30
- "import defineProperty from \"../defineProperty/defineProperty.js\"\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object)\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object)\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\n })\n }\n keys.push.apply(keys, symbols)\n }\n return keys\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {}\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key])\n })\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\n })\n }\n }\n return target\n}\n",
31
- "const nativeTypeOf = (obj) => typeof obj\n\nconst customTypeOf = (obj) => {\n return obj &&\n typeof Symbol === \"function\" &&\n obj.constructor === Symbol &&\n obj !== Symbol.prototype\n ? \"symbol\"\n : typeof obj\n}\n\nexport default typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\"\n ? nativeTypeOf\n : customTypeOf\n",
32
- "import { createDetailedMessage } from \"@jsenv/logger\"\n\nexport const fetchUsingXHR = async (\n url,\n {\n signal,\n method = \"GET\",\n credentials = \"same-origin\",\n headers = {},\n body = null,\n } = {},\n) => {\n const headersPromise = createPromiseAndHooks()\n const bodyPromise = createPromiseAndHooks()\n\n const xhr = new XMLHttpRequest()\n\n const failure = (error) => {\n // if it was already resolved, we must reject the body promise\n if (headersPromise.settled) {\n bodyPromise.reject(error)\n } else {\n headersPromise.reject(error)\n }\n }\n\n const cleanup = () => {\n xhr.ontimeout = null\n xhr.onerror = null\n xhr.onload = null\n xhr.onreadystatechange = null\n }\n\n xhr.ontimeout = () => {\n cleanup()\n failure(new Error(`xhr request timeout on ${url}.`))\n }\n\n xhr.onerror = (error) => {\n cleanup()\n // unfortunately with have no clue why it fails\n // might be cors for instance\n failure(createRequestError(error, { url }))\n }\n\n xhr.onload = () => {\n cleanup()\n bodyPromise.resolve()\n }\n\n signal.addEventListener(\"abort\", () => {\n xhr.abort()\n const abortError = new Error(\"aborted\")\n abortError.name = \"AbortError\"\n failure(abortError)\n })\n\n xhr.onreadystatechange = () => {\n // https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest/readyState\n const { readyState } = xhr\n\n if (readyState === 2) {\n headersPromise.resolve()\n } else if (readyState === 4) {\n cleanup()\n bodyPromise.resolve()\n }\n }\n\n xhr.open(method, url, true)\n Object.keys(headers).forEach((key) => {\n xhr.setRequestHeader(key, headers[key])\n })\n xhr.withCredentials = computeWithCredentials({ credentials, url })\n if (\"responseType\" in xhr && hasBlob) {\n xhr.responseType = \"blob\"\n }\n xhr.send(body)\n\n await headersPromise\n\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseURL\n const responseUrl =\n \"responseURL\" in xhr ? xhr.responseURL : headers[\"x-request-url\"]\n let responseStatus = xhr.status\n const responseStatusText = xhr.statusText\n const responseHeaders = getHeadersFromXHR(xhr)\n\n const readBody = async () => {\n await bodyPromise\n\n const { status } = xhr\n // in Chrome on file:/// URLs, status is 0\n if (status === 0) {\n responseStatus = 200\n }\n\n const body = \"response\" in xhr ? xhr.response : xhr.responseText\n\n return {\n responseBody: body,\n responseBodyType: detectBodyType(body),\n }\n }\n\n const text = async () => {\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"blob\") {\n return blobToText(responseBody)\n }\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as text\")\n }\n if (responseBodyType === \"dataView\") {\n return arrayBufferToText(responseBody.buffer)\n }\n if (responseBodyType === \"arrayBuffer\") {\n return arrayBufferToText(responseBody)\n }\n // if (responseBodyType === \"text\" || responseBodyType === 'searchParams') {\n // return body\n // }\n return String(responseBody)\n }\n\n const json = async () => {\n const responseText = await text()\n return JSON.parse(responseText)\n }\n\n const blob = async () => {\n if (!hasBlob) {\n throw new Error(`blob not supported`)\n }\n\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"blob\") {\n return responseBody\n }\n if (responseBodyType === \"dataView\") {\n return new Blob([cloneBuffer(responseBody.buffer)])\n }\n if (responseBodyType === \"arrayBuffer\") {\n return new Blob([cloneBuffer(responseBody)])\n }\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as blob\")\n }\n return new Blob([String(responseBody)])\n }\n\n const arrayBuffer = async () => {\n const { responseBody, responseBodyType } = await readBody()\n\n if (responseBodyType === \"arrayBuffer\") {\n return cloneBuffer(responseBody)\n }\n const responseBlob = await blob()\n return blobToArrayBuffer(responseBlob)\n }\n\n const formData = async () => {\n if (!hasFormData) {\n throw new Error(`formData not supported`)\n }\n const responseText = await text()\n return textToFormData(responseText)\n }\n\n return {\n url: responseUrl,\n status: responseStatus,\n statusText: responseStatusText,\n headers: responseHeaders,\n text,\n json,\n blob,\n arrayBuffer,\n formData,\n }\n}\n\nconst canUseBlob = () => {\n if (typeof window.FileReader !== \"function\") return false\n\n if (typeof window.Blob !== \"function\") return false\n\n try {\n // eslint-disable-next-line no-new\n new Blob()\n return true\n } catch (e) {\n return false\n }\n}\n\nconst hasBlob = canUseBlob()\n\nconst hasFormData = typeof window.FormData === \"function\"\n\nconst hasArrayBuffer = typeof window.ArrayBuffer === \"function\"\n\nconst hasSearchParams = typeof window.URLSearchParams === \"function\"\n\nconst createRequestError = (error, { url }) => {\n return new Error(\n createDetailedMessage(`error during xhr request on ${url}.`, {\n [\"error stack\"]: error.stack,\n }),\n )\n}\n\nconst createPromiseAndHooks = () => {\n let resolve\n let reject\n const promise = new Promise((res, rej) => {\n resolve = (value) => {\n promise.settled = true\n res(value)\n }\n reject = (value) => {\n promise.settled = true\n rej(value)\n }\n })\n promise.resolve = resolve\n promise.reject = reject\n return promise\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\nconst computeWithCredentials = ({ credentials, url }) => {\n if (credentials === \"same-origin\") {\n return originSameAsGlobalOrigin(url)\n }\n return credentials === \"include\"\n}\n\nconst originSameAsGlobalOrigin = (url) => {\n // if we cannot read globalOrigin from window.location.origin, let's consider it's ok\n if (typeof window !== \"object\") return true\n if (typeof window.location !== \"object\") return true\n const globalOrigin = window.location.origin\n if (globalOrigin === \"null\") return true\n return hrefToOrigin(url) === globalOrigin\n}\n\nconst detectBodyType = (body) => {\n if (!body) {\n return \"\"\n }\n if (typeof body === \"string\") {\n return \"text\"\n }\n if (hasBlob && Blob.prototype.isPrototypeOf(body)) {\n return \"blob\"\n }\n if (hasFormData && FormData.prototype.isPrototypeOf(body)) {\n return \"formData\"\n }\n if (hasArrayBuffer) {\n if (hasBlob && isDataView(body)) {\n return `dataView`\n }\n if (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body)) {\n return `arrayBuffer`\n }\n }\n if (hasSearchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n return \"searchParams\"\n }\n return \"\"\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\nconst getHeadersFromXHR = (xhr) => {\n const headerMap = {}\n\n const headersString = xhr.getAllResponseHeaders()\n if (headersString === \"\") return headerMap\n\n const lines = headersString.trim().split(/[\\r\\n]+/)\n lines.forEach((line) => {\n const parts = line.split(\": \")\n const name = parts.shift()\n const value = parts.join(\": \")\n headerMap[name.toLowerCase()] = value\n })\n\n return headerMap\n}\n\nconst hrefToOrigin = (href) => {\n const scheme = hrefToScheme(href)\n\n if (scheme === \"file\") {\n return \"file://\"\n }\n\n if (scheme === \"http\" || scheme === \"https\") {\n const secondProtocolSlashIndex = scheme.length + \"://\".length\n const pathnameSlashIndex = href.indexOf(\"/\", secondProtocolSlashIndex)\n\n if (pathnameSlashIndex === -1) return href\n return href.slice(0, pathnameSlashIndex)\n }\n\n return href.slice(0, scheme.length + 1)\n}\n\nconst hrefToScheme = (href) => {\n const colonIndex = href.indexOf(\":\")\n if (colonIndex === -1) return \"\"\n return href.slice(0, colonIndex)\n}\n\nconst isDataView = (obj) => {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nconst isArrayBufferView =\n ArrayBuffer.isView ||\n (() => {\n const viewClasses = [\n \"[object Int8Array]\",\n \"[object Uint8Array]\",\n \"[object Uint8ClampedArray]\",\n \"[object Int16Array]\",\n \"[object Uint16Array]\",\n \"[object Int32Array]\",\n \"[object Uint32Array]\",\n \"[object Float32Array]\",\n \"[object Float64Array]\",\n ]\n\n return (value) => {\n return (\n value && viewClasses.includes(Object.prototype.toString.call(value))\n )\n }\n })()\n\nconst textToFormData = (text) => {\n const form = new FormData()\n text\n .trim()\n .split(\"&\")\n .forEach(function (bytes) {\n if (bytes) {\n const split = bytes.split(\"=\")\n const name = split.shift().replace(/\\+/g, \" \")\n const value = split.join(\"=\").replace(/\\+/g, \" \")\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nconst blobToArrayBuffer = async (blob) => {\n const reader = new FileReader()\n const promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nconst blobToText = (blob) => {\n const reader = new FileReader()\n const promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nconst arrayBufferToText = (arrayBuffer) => {\n const view = new Uint8Array(arrayBuffer)\n const chars = new Array(view.length)\n let i = 0\n while (i < view.length) {\n chars[i] = String.fromCharCode(view[i])\n\n i++\n }\n return chars.join(\"\")\n}\n\nconst fileReaderReady = (reader) => {\n return new Promise(function (resolve, reject) {\n reader.onload = function () {\n resolve(reader.result)\n }\n reader.onerror = function () {\n reject(reader.error)\n }\n })\n}\n\nconst cloneBuffer = (buffer) => {\n if (buffer.slice) {\n return buffer.slice(0)\n }\n const view = new Uint8Array(buffer.byteLength)\n view.set(new Uint8Array(buffer))\n return view.buffer\n}\n",
33
- "import { fetchUsingXHR } from \"./fetchUsingXHR.js\"\n\nconst fetchNative = async (url, { mode = \"cors\", ...options } = {}) => {\n const response = await window.fetch(url, {\n mode,\n ...options,\n })\n\n return {\n url: response.url,\n status: response.status,\n statusText: \"\",\n headers: responseToHeaders(response),\n text: () => response.text(),\n json: () => response.json(),\n blob: () => response.blob(),\n arrayBuffer: () => response.arrayBuffer(),\n formData: () => response.formData(),\n }\n}\n\nconst responseToHeaders = (response) => {\n const headers = {}\n response.headers.forEach((value, name) => {\n headers[name] = value\n })\n return headers\n}\n\nexport const fetchUrl =\n typeof window.fetch === \"function\" &&\n typeof window.AbortController === \"function\"\n ? fetchNative\n : fetchUsingXHR\n",
34
- "import { fetchUrl } from \"./fetch-browser.js\"\n\nexport const fetchJson = async (url, options = {}) => {\n const response = await fetchUrl(url, options)\n const object = await response.json()\n return object\n}\n",
35
- "import { createDetailedMessage } from \"@jsenv/logger\"\n\nimport { fetchJson } from \"../browser-utils/fetchJson.js\"\n\nexport const fetchExploringJson = async ({ signal } = {}) => {\n try {\n const exploringInfo = await fetchJson(\"/.jsenv/exploring.json\", {\n signal,\n })\n return exploringInfo\n } catch (e) {\n if (signal && signal.aborted && e.name === \"AbortError\") {\n throw e\n }\n throw new Error(\n createDetailedMessage(\n `Cannot communicate with exploring server due to a network error`,\n {\n [\"error stack\"]: e.stack,\n },\n ),\n )\n }\n}\n",
36
- "import { fetchUrl } from \"../toolbar/util/fetching.js\"\nimport { createPreference } from \"../toolbar/util/preferences.js\"\nimport { startJavaScriptAnimation } from \"../toolbar/util/animation.js\"\nimport { fetchExploringJson } from \"./fetchExploringJson.js\"\n\nconst fetchJSON = async (url, options) => {\n const response = await fetchUrl(url, options)\n const json = await response.json()\n return json\n}\n\nconst groupPreference = createPreference(\"group\")\n\nconst run = async () => {\n const { projectDirectoryUrl, explorableConfig, outDirectoryRelativeUrl } =\n await fetchExploringJson()\n\n const files = await fetchJSON(`/.jsenv/explorables.json`, {\n method: \"GET\",\n })\n\n const compileServerOrigin = document.location.origin\n const outDirectoryUrl = String(\n new URL(outDirectoryRelativeUrl, compileServerOrigin),\n )\n const documentUrl = document.location.href\n let compileId\n\n const outDirectoryIndex = documentUrl.indexOf(outDirectoryUrl)\n if (outDirectoryIndex === 0) {\n const afterOutDirectory = documentUrl.slice(outDirectoryUrl.length)\n compileId = afterOutDirectory.split(\"/\")[0]\n } else {\n compileId = null\n }\n\n const renderHtml = () => {\n // const mainHtmlFileRelativeUrl = \"index.html\"\n // const mainFileLink = document.querySelector(\"#main_file_link\")\n // const mainFileUrl = urlToVisitFromRelativeUrl(mainHtmlFileRelativeUrl)\n // mainFileLink.href = mainFileUrl\n // mainFileLink.textContent = `${mainHtmlFileRelativeUrl}`\n // const mainFileIframe = document.querySelector(`#main_file_iframe`)\n // mainFileIframe.src = mainFileUrl\n\n const fileListElement = document\n .querySelector(`[data-page=\"file-list\"]`)\n .cloneNode(true)\n const directoryName = directoryUrlToDirectoryName(projectDirectoryUrl)\n const span = fileListElement.querySelector(\"#directory_relative_url\")\n span.title = projectDirectoryUrl\n span.textContent = directoryName\n\n const h4 = fileListElement.querySelector(\"h4\")\n\n const ul = fileListElement.querySelector(\"ul\")\n ul.innerHTML = files\n .map(\n (file) =>\n `<li>\n <a\n class=\"execution-link\"\n data-relative-url=${file.relativeUrl}\n href=${urlToVisitFromRelativeUrl(file.relativeUrl)}\n >\n ${file.relativeUrl}\n </a>\n </li>`,\n )\n .join(\"\")\n\n const groupFieldset = fileListElement.querySelector(\"#filter-group-set\")\n const groupNames = Object.keys(explorableConfig)\n groupFieldset.innerHTML = groupNames\n .map(\n (key) => `<label data-contains-hidden-input class=\"item\">\n <input type=\"radio\" name=\"filter-group\" value=\"${key}\"/>\n <span>${key}</span>\n</label>`,\n )\n .join(\"\")\n\n const currentGroup = groupPreference.has()\n ? groupPreference.get()\n : groupNames[0]\n Array.from(groupFieldset.querySelectorAll(\"input\")).forEach(\n (inputRadio) => {\n inputRadio.checked = inputRadio.value === currentGroup\n inputRadio.onchange = () => {\n if (inputRadio.checked) {\n groupPreference.set(inputRadio.value)\n enableGroup(inputRadio.value)\n }\n }\n },\n )\n\n const enableGroup = (groupName) => {\n const arrayOfElementToShow = []\n const arrayOfElementToHide = []\n files.forEach((file) => {\n const fileLink = fileListElement.querySelector(\n `a[data-relative-url=\"${file.relativeUrl}\"]`,\n )\n const fileLi = fileLink.parentNode\n if (file.meta[groupName]) {\n arrayOfElementToShow.push(fileLi)\n } else {\n arrayOfElementToHide.push(fileLi)\n }\n })\n arrayOfElementToShow.forEach((element) => {\n element.removeAttribute(\"data-force-hide\")\n })\n arrayOfElementToHide.forEach((element) => {\n element.setAttribute(\"data-force-hide\", \"\")\n })\n\n h4.innerHTML =\n arrayOfElementToShow.length === 0\n ? `No file found.\n Config for this section: <pre>${JSON.stringify(\n explorableConfig[groupName],\n null,\n \" \",\n )}</pre>`\n : `${arrayOfElementToShow.length} files found. Click on the one you want to execute`\n }\n enableGroup(currentGroup)\n\n document.querySelector(\"main\").appendChild(fileListElement)\n makeMenuScrollable()\n }\n\n const urlToVisitFromRelativeUrl = (relativeUrl) => {\n if (compileId) {\n return `${compileServerOrigin}/${outDirectoryRelativeUrl}${compileId}/${relativeUrl}`\n }\n return `${compileServerOrigin}/${relativeUrl}`\n }\n\n const makeMenuScrollable = () => {\n const getMenuWrapperSize = () => {\n return document.querySelector(\".menu-wrapper\").getBoundingClientRect()\n .width\n }\n let menuWrapperSize = getMenuWrapperSize()\n\n const getMenuSize = () => {\n return document.querySelector(\".menu\").getBoundingClientRect().width\n }\n let menuSize = getMenuSize()\n\n const menuVisibleSize = menuWrapperSize\n let menuInvisibleSize = menuSize - menuVisibleSize\n\n const getMenuPosition = () => {\n return document.querySelector(\".menu-wrapper\").scrollLeft\n }\n\n const scrollDuration = 300\n const leftPaddle = document.querySelector(\".left-paddle\")\n const rightPaddle = document.querySelector(\".right-paddle\")\n\n const handleMenuScroll = () => {\n menuInvisibleSize = menuSize - menuWrapperSize\n const menuPosition = getMenuPosition()\n const menuEndOffset = menuInvisibleSize\n\n // show & hide the paddles, depending on scroll position\n if (menuPosition <= 0 && menuEndOffset <= 0) {\n // hide both paddles if the window is large enough to display all tabs\n leftPaddle.classList.add(\"hidden\")\n rightPaddle.classList.add(\"hidden\")\n } else if (menuPosition <= 0) {\n leftPaddle.classList.add(\"hidden\")\n rightPaddle.classList.remove(\"hidden\")\n } else if (menuPosition < Math.floor(menuEndOffset)) {\n // show both paddles in the middle\n leftPaddle.classList.remove(\"hidden\")\n rightPaddle.classList.remove(\"hidden\")\n } else if (menuPosition >= Math.floor(menuEndOffset)) {\n leftPaddle.classList.remove(\"hidden\")\n rightPaddle.classList.add(\"hidden\")\n }\n }\n handleMenuScroll()\n\n window.onresize = () => {\n menuWrapperSize = getMenuWrapperSize()\n menuSize = getMenuSize()\n handleMenuScroll()\n }\n\n // finally, what happens when we are actually scrolling the menu\n document.querySelector(\".menu-wrapper\").onscroll = () => {\n handleMenuScroll()\n }\n\n // scroll to left\n rightPaddle.onclick = () => {\n const scrollStart = document.querySelector(\".menu-wrapper\").scrollLeft\n const scrollEnd = scrollStart + menuWrapperSize\n startJavaScriptAnimation({\n duration: scrollDuration,\n onProgress: ({ progress }) => {\n document.querySelector(\".menu-wrapper\").scrollLeft =\n scrollStart + (scrollEnd - scrollStart) * progress\n },\n })\n }\n\n // scroll to right\n leftPaddle.onclick = () => {\n const scrollStart = document.querySelector(\".menu-wrapper\").scrollLeft\n const scrollEnd = scrollStart - menuWrapperSize\n startJavaScriptAnimation({\n duration: scrollDuration,\n onProgress: ({ progress }) => {\n document.querySelector(\".menu-wrapper\").scrollLeft =\n scrollStart + (scrollEnd - scrollStart) * progress\n },\n })\n }\n }\n\n const directoryUrlToDirectoryName = (directoryUrl) => {\n const slashLastIndex = directoryUrl.lastIndexOf(\n \"/\",\n // ignore last slash\n directoryUrl.length - 2,\n )\n if (slashLastIndex === -1) return \"\"\n\n return directoryUrl.slice(slashLastIndex + 1)\n }\n\n renderHtml()\n}\n\nrun()\n"
37
- ],
38
- "names": [
39
- "memoize",
40
- "compute",
41
- "memoized",
42
- "memoizedValue",
43
- "fnWithMemoization",
44
- "forget",
45
- "value",
46
- "undefined",
47
- "_call",
48
- "body",
49
- "then",
50
- "direct",
51
- "result",
52
- "Promise",
53
- "resolve",
54
- "e",
55
- "reject",
56
- "fetchPolyfill",
57
- "args",
58
- "loadPolyfill",
59
- "fetchUsingXHR",
60
- "fetchUrl",
61
- "window",
62
- "fetch",
63
- "AbortController",
64
- "createPreference",
65
- "name",
66
- "has",
67
- "localStorage",
68
- "hasOwnProperty",
69
- "get",
70
- "JSON",
71
- "parse",
72
- "getItem",
73
- "set",
74
- "setItem",
75
- "stringify",
76
- "source",
77
- "excluded",
78
- "target",
79
- "sourceKeys",
80
- "Object",
81
- "keys",
82
- "key",
83
- "i",
84
- "length",
85
- "indexOf",
86
- "objectWithoutPropertiesLoose",
87
- "getOwnPropertySymbols",
88
- "sourceSymbolKeys",
89
- "prototype",
90
- "propertyIsEnumerable",
91
- "call",
92
- "startJavaScriptAnimation",
93
- "duration",
94
- "timingFunction",
95
- "t",
96
- "onProgress",
97
- "onCancel",
98
- "onComplete",
99
- "isNaN",
100
- "parseInt",
101
- "startMs",
102
- "performance",
103
- "now",
104
- "currentRequestAnimationFrameId",
105
- "done",
106
- "rawProgress",
107
- "progress",
108
- "handler",
109
- "nowMs",
110
- "Math",
111
- "min",
112
- "requestAnimationFrame",
113
- "stop",
114
- "cancelAnimationFrame",
115
- "obj",
116
- "defineProperty",
117
- "enumerable",
118
- "configurable",
119
- "writable",
120
- "createDetailedMessage",
121
- "message",
122
- "details",
123
- "string",
124
- "forEach",
125
- "Array",
126
- "isArray",
127
- "join",
128
- "ownKeys",
129
- "object",
130
- "enumerableOnly",
131
- "symbols",
132
- "filter",
133
- "sym",
134
- "getOwnPropertyDescriptor",
135
- "push",
136
- "apply",
137
- "_objectSpread2",
138
- "arguments",
139
- "getOwnPropertyDescriptors",
140
- "defineProperties",
141
- "nativeTypeOf",
142
- "customTypeOf",
143
- "Symbol",
144
- "constructor",
145
- "iterator",
146
- "f",
147
- "url",
148
- "signal",
149
- "method",
150
- "credentials",
151
- "headers",
152
- "headersPromise",
153
- "createPromiseAndHooks",
154
- "bodyPromise",
155
- "xhr",
156
- "XMLHttpRequest",
157
- "failure",
158
- "error",
159
- "settled",
160
- "cleanup",
161
- "ontimeout",
162
- "onerror",
163
- "onload",
164
- "onreadystatechange",
165
- "Error",
166
- "createRequestError",
167
- "addEventListener",
168
- "abort",
169
- "abortError",
170
- "readyState",
171
- "open",
172
- "setRequestHeader",
173
- "withCredentials",
174
- "computeWithCredentials",
175
- "hasBlob",
176
- "responseType",
177
- "send",
178
- "responseUrl",
179
- "responseURL",
180
- "responseStatus",
181
- "status",
182
- "responseStatusText",
183
- "statusText",
184
- "responseHeaders",
185
- "getHeadersFromXHR",
186
- "readBody",
187
- "response",
188
- "responseText",
189
- "responseBody",
190
- "responseBodyType",
191
- "detectBodyType",
192
- "text",
193
- "blobToText",
194
- "arrayBufferToText",
195
- "buffer",
196
- "String",
197
- "json",
198
- "blob",
199
- "Blob",
200
- "cloneBuffer",
201
- "arrayBuffer",
202
- "blobToArrayBuffer",
203
- "formData",
204
- "hasFormData",
205
- "textToFormData",
206
- "canUseBlob",
207
- "FileReader",
208
- "FormData",
209
- "hasArrayBuffer",
210
- "ArrayBuffer",
211
- "hasSearchParams",
212
- "URLSearchParams",
213
- "stack",
214
- "promise",
215
- "res",
216
- "rej",
217
- "originSameAsGlobalOrigin",
218
- "location",
219
- "globalOrigin",
220
- "origin",
221
- "hrefToOrigin",
222
- "isPrototypeOf",
223
- "isDataView",
224
- "isArrayBufferView",
225
- "headerMap",
226
- "headersString",
227
- "getAllResponseHeaders",
228
- "lines",
229
- "trim",
230
- "split",
231
- "line",
232
- "parts",
233
- "shift",
234
- "toLowerCase",
235
- "href",
236
- "scheme",
237
- "hrefToScheme",
238
- "secondProtocolSlashIndex",
239
- "pathnameSlashIndex",
240
- "slice",
241
- "colonIndex",
242
- "DataView",
243
- "isView",
244
- "viewClasses",
245
- "includes",
246
- "toString",
247
- "form",
248
- "bytes",
249
- "replace",
250
- "append",
251
- "decodeURIComponent",
252
- "reader",
253
- "fileReaderReady",
254
- "readAsArrayBuffer",
255
- "readAsText",
256
- "view",
257
- "Uint8Array",
258
- "chars",
259
- "fromCharCode",
260
- "byteLength",
261
- "_await",
262
- "fetchNative",
263
- "mode",
264
- "options",
265
- "responseToHeaders",
266
- "_async",
267
- "fetchJson",
268
- "recover",
269
- "fetchExploringJson",
270
- "aborted",
271
- "fetchJSON",
272
- "groupPreference",
273
- "run",
274
- "projectDirectoryUrl",
275
- "explorableConfig",
276
- "outDirectoryRelativeUrl",
277
- "files",
278
- "compileServerOrigin",
279
- "document",
280
- "outDirectoryUrl",
281
- "URL",
282
- "documentUrl",
283
- "compileId",
284
- "outDirectoryIndex",
285
- "afterOutDirectory",
286
- "renderHtml",
287
- "fileListElement",
288
- "querySelector",
289
- "cloneNode",
290
- "directoryName",
291
- "directoryUrlToDirectoryName",
292
- "span",
293
- "title",
294
- "textContent",
295
- "h4",
296
- "ul",
297
- "innerHTML",
298
- "map",
299
- "file",
300
- "relativeUrl",
301
- "urlToVisitFromRelativeUrl",
302
- "groupFieldset",
303
- "groupNames",
304
- "currentGroup",
305
- "from",
306
- "querySelectorAll",
307
- "inputRadio",
308
- "checked",
309
- "onchange",
310
- "enableGroup",
311
- "groupName",
312
- "arrayOfElementToShow",
313
- "arrayOfElementToHide",
314
- "fileLink",
315
- "fileLi",
316
- "parentNode",
317
- "meta",
318
- "element",
319
- "removeAttribute",
320
- "setAttribute",
321
- "appendChild",
322
- "makeMenuScrollable",
323
- "getMenuWrapperSize",
324
- "getBoundingClientRect",
325
- "width",
326
- "menuWrapperSize",
327
- "getMenuSize",
328
- "menuSize",
329
- "menuVisibleSize",
330
- "menuInvisibleSize",
331
- "getMenuPosition",
332
- "scrollLeft",
333
- "scrollDuration",
334
- "leftPaddle",
335
- "rightPaddle",
336
- "handleMenuScroll",
337
- "menuPosition",
338
- "menuEndOffset",
339
- "classList",
340
- "add",
341
- "remove",
342
- "floor",
343
- "onresize",
344
- "onscroll",
345
- "onclick",
346
- "scrollStart",
347
- "scrollEnd",
348
- "directoryUrl",
349
- "slashLastIndex",
350
- "lastIndexOf"
351
- ],
352
- "mappings": "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"
353
- }