@jsenv/core 23.8.3 → 23.8.9

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.
@@ -2,46 +2,352 @@
2
2
  "version": 3,
3
3
  "file": "jsenv_exploring_index.js",
4
4
  "sources": [
5
- "../.jsenv/build/best/src/internal/memoize.js",
6
- "../.jsenv/build/best/src/internal/toolbar/util/fetching.js",
7
- "../.jsenv/build/best/src/internal/toolbar/util/preferences.js",
8
- "../.jsenv/build/best/helpers/babel/objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js",
9
- "../.jsenv/build/best/helpers/babel/objectWithoutProperties/objectWithoutProperties.js",
10
- "../.jsenv/build/best/src/internal/toolbar/util/animation.js",
11
- "../.jsenv/build/best/helpers/babel/defineProperty/defineProperty.js",
12
- "../.jsenv/build/best/node_modules/@jsenv/logger/src/createDetailedMessage.js",
13
- "../.jsenv/build/best/helpers/babel/objectSpread2/objectSpread2.js",
14
- "../.jsenv/build/best/helpers/babel/typeof/typeof.js",
15
- "../.jsenv/build/best/src/internal/browser-utils/fetchUsingXHR.js",
16
- "../.jsenv/build/best/src/internal/browser-utils/fetch-browser.js",
17
- "../.jsenv/build/best/src/internal/browser-utils/fetchJson.js",
18
- "../.jsenv/build/best/src/internal/exploring/fetchExploringJson.js",
19
- "../.jsenv/build/best/src/internal/exploring/exploring.js"
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
20
  ],
21
21
  "sourcesContent": [
22
- "export var memoize = function memoize(compute) {\n var memoized = false;\n var memoizedValue;\n\n var fnWithMemoization = function fnWithMemoization() {\n if (memoized) {\n return memoizedValue;\n } // if compute is recursive wait for it to be fully done before storing the lockValue\n // so set locked later\n\n\n memoizedValue = compute.apply(void 0, arguments);\n memoized = true;\n return memoizedValue;\n };\n\n fnWithMemoization.forget = function () {\n var value = memoizedValue;\n memoized = false;\n memoizedValue = undefined;\n return value;\n };\n\n return fnWithMemoization;\n};\n//# sourceMappingURL=memoize.js.map",
23
- "import { memoize } from \"../../memoize.js\";\n\nfunction _call(body, then, direct) {\n if (direct) {\n return then ? then(body()) : body();\n }\n\n try {\n var result = Promise.resolve(body());\n return then ? result.then(then) : result;\n } catch (e) {\n return Promise.reject(e);\n }\n}\n\nvar fetchPolyfill = function fetchPolyfill() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _call(loadPolyfill, function (_ref) {\n var fetchUsingXHR = _ref.fetchUsingXHR;\n return fetchUsingXHR.apply(void 0, args);\n });\n};\n\nvar loadPolyfill = memoize(function () {\n return import(\"../../browser-utils/fetchUsingXHR.js\");\n});\nexport var fetchUrl = typeof window.fetch === \"function\" && typeof window.AbortController === \"function\" ? window.fetch : fetchPolyfill;\n//# sourceMappingURL=fetching.js.map",
24
- "export var createPreference = function createPreference(name) {\n return {\n has: function has() {\n return localStorage.hasOwnProperty(name);\n },\n get: function get() {\n return localStorage.hasOwnProperty(name) ? JSON.parse(localStorage.getItem(name)) : undefined;\n },\n set: function set(value) {\n return localStorage.setItem(name, JSON.stringify(value));\n }\n };\n};\n//# sourceMappingURL=preferences.js.map",
25
- "export default (function (source, excluded) {\n if (source === null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key;\n var i;\n\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\n return target;\n});\n//# sourceMappingURL=objectWithoutPropertiesLoose.js.map",
26
- "import objectWithoutPropertiesLoose from \"../objectWithoutPropertiesLoose/objectWithoutPropertiesLoose.js\";\nexport default (function (source, excluded) {\n if (source === null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key;\n var i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\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\n return target;\n});\n//# sourceMappingURL=objectWithoutProperties.js.map",
27
- "import _objectWithoutProperties from \"@jsenv/core/helpers/babel/objectWithoutProperties/objectWithoutProperties.js\";\nvar _excluded = [\"signal\"];\n\nfunction _empty() {}\n\nimport { setStyles } from \"./dom.js\";\n\nfunction _awaitIgnored(value, direct) {\n if (!direct) {\n return value && value.then ? value.then(_empty) : Promise.resolve();\n }\n}\n\nvar animateFallback = function animateFallback() {\n return Promise.resolve();\n};\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nvar animateNative = function animateNative(node, keyframes) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var signal = _ref.signal,\n options = _objectWithoutProperties(_ref, _excluded);\n\n var animation = node.animate(keyframes, options);\n\n if (signal) {\n signal.addEventListener(\"abort\", function () {\n animation.cancel();\n });\n }\n\n return new Promise(function (resolve) {\n animation.onfinish = resolve;\n });\n};\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nexport var canUseAnimation = function canUseAnimation() {\n return typeof HTMLElement.prototype.animate === \"function\";\n};\nexport var animateElement = canUseAnimation() ? animateNative : animateFallback;\nexport var fadeIn = function fadeIn(node, options) {\n return animateElement(node, [{\n opacity: 0\n }, {\n opacity: 1\n }], options);\n};\nexport var fadeOut = function fadeOut(node, options) {\n return animateElement(node, [{\n opacity: 1\n }, {\n opacity: 0\n }], options);\n};\nexport var move = function move(fromNode, toNode, options) {\n var fromComputedStyle = window.getComputedStyle(fromNode);\n var toComputedStyle = window.getComputedStyle(toNode); // get positions of input in toolbar and aElement\n\n var fromPosition = fromNode.getBoundingClientRect();\n var toPosition = toNode.getBoundingClientRect(); // we'll do the animation in a div preventing overflow and pointer events\n\n var div = document.createElement(\"div\");\n div.style.position = \"absolute\";\n div.style.left = 0;\n div.style.top = 0;\n div.style.width = \"\".concat(document.documentElement.scrollWidth, \"px\");\n div.style.height = \"\".concat(document.documentElement.scrollHeight, \"px\");\n div.style.overflow = \"hidden\";\n div.style.pointerEvents = \"none\";\n var documentScroll = {\n left: window.pageXOffset || document.documentElement.scrollLeft,\n top: window.pageYOffset || document.documentElement.scrollTop\n }; // clone node and style it\n\n var copy = fromNode.cloneNode(true);\n copy.style.position = \"absolute\";\n copy.style.left = \"\".concat(documentScroll.left + fromPosition.left, \"px\");\n copy.style.top = \"\".concat(documentScroll.top + fromPosition.top, \"px\");\n copy.style.maxWidth = \"\".concat(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 var left = toPosition.left - fromPosition.left - (parseInt(fromComputedStyle.paddingLeft) || 0);\n var top = toPosition.top - fromPosition.top - (parseInt(fromComputedStyle.paddingTop) || 0); // define final position of new element and the duration\n\n var translate = \"translate(\".concat(left, \"px, \").concat(top, \"px)\"); // animate new element\n\n return animateElement(copy, [{\n transform: \"translate(0px, 0px)\",\n backgroundColor: fromComputedStyle.backgroundColor,\n color: fromComputedStyle.color,\n fontSize: fromComputedStyle.fontSize,\n height: \"\".concat(fromPosition.bottom - fromPosition.top, \"px\"),\n width: \"100%\"\n }, {\n offset: 0.9,\n backgroundColor: fromComputedStyle.backgroundColor,\n color: fromComputedStyle.color\n }, {\n transform: translate,\n backgroundColor: toComputedStyle.backgroundColor,\n color: toComputedStyle.color,\n fontSize: toComputedStyle.fontSize,\n height: \"\".concat(toPosition.bottom - toPosition.top, \"px\"),\n width: toComputedStyle.width\n }], options).then(function () {\n div.parentNode.removeChild(div);\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%\n\nexport var createToolbarAnimation = function createToolbarAnimation() {\n var collapsedState = {\n \"#page\": {\n paddingBottom: 0\n },\n \"footer\": {\n height: 0\n },\n \"#toolbar\": {\n visibility: \"hidden\"\n }\n };\n var expandedState = {\n \"#page\": {\n paddingBottom: \"40px\"\n },\n \"footer\": {\n height: \"40px\"\n },\n \"#toolbar\": {\n visibility: \"visible\"\n }\n };\n var expandTransition = transit(collapsedState, expandedState, {\n duration: 300\n });\n\n var expand = function expand() {\n expandTransition.play();\n };\n\n var collapse = function collapse() {\n expandTransition.reverse();\n };\n\n return {\n expand: expand,\n collapse: collapse\n };\n};\nexport var transit = function transit(fromState, toState) {\n var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n _ref2$commitStyles = _ref2.commitStyles,\n commitStyles = _ref2$commitStyles === void 0 ? true : _ref2$commitStyles,\n _ref2$fill = _ref2.fill,\n fill = _ref2$fill === void 0 ? \"both\" : _ref2$fill,\n _ref2$duration = _ref2.duration,\n duration = _ref2$duration === void 0 ? 300 : _ref2$duration;\n\n var steps = [];\n Object.keys(fromState).forEach(function (selector) {\n var fromStyles = {};\n var toStyles = {};\n var element = document.querySelector(selector);\n var keyframes = [];\n var fromProperties = fromState[selector];\n var toProperties = toState[selector];\n Object.keys(fromProperties).forEach(function (propertyName) {\n var from = fromProperties[propertyName];\n var to = toProperties[propertyName];\n fromStyles[propertyName] = from;\n toStyles[propertyName] = to;\n });\n keyframes.push(fromStyles, toStyles);\n var animation;\n\n if (canUseAnimation()) {\n var effect = new KeyframeEffect(element, keyframes, {\n fill: fill,\n duration: duration\n });\n animation = new Animation(effect);\n } else {\n animation = {\n playbackRate: 1,\n play: function play() {\n animation.onfinish();\n },\n reverse: function reverse() {\n animation.playbackRate = -1;\n animation.onfinish();\n },\n finish: function finish() {},\n onfinish: function onfinish() {}\n };\n }\n\n steps.push({\n element: element,\n animation: animation,\n fromStyles: fromStyles,\n toStyles: toStyles\n });\n });\n\n var play = _async(function () {\n return _awaitIgnored(Promise.all(steps.map(function (_ref3) {\n var animation = _ref3.animation,\n element = _ref3.element,\n toStyles = _ref3.toStyles;\n return new Promise(function (resolve) {\n animation.onfinish = function () {\n if (commitStyles) {\n setStyles(element, toStyles);\n }\n\n resolve();\n };\n\n if (animation.playbackRate === -1) {\n animation.reverse();\n } else {\n animation.play();\n }\n });\n })));\n });\n\n var reverse = _async(function () {\n return _awaitIgnored(Promise.all(steps.map(function (_ref4) {\n var animation = _ref4.animation,\n element = _ref4.element,\n fromStyles = _ref4.fromStyles;\n return new Promise(function (resolve) {\n animation.onfinish = function () {\n if (commitStyles) {\n setStyles(element, fromStyles);\n }\n\n resolve();\n };\n\n animation.reverse();\n });\n })));\n });\n\n var finish = _async(function () {\n steps.forEach(function (_ref5) {\n var animation = _ref5.animation;\n animation.finish();\n });\n return _await();\n });\n\n return {\n play: play,\n reverse: reverse,\n finish: finish\n };\n};\nexport var startJavaScriptAnimation = function startJavaScriptAnimation(_ref6) {\n var _ref6$duration = _ref6.duration,\n duration = _ref6$duration === void 0 ? 300 : _ref6$duration,\n _ref6$timingFunction = _ref6.timingFunction,\n timingFunction = _ref6$timingFunction === void 0 ? function (t) {\n return t;\n } : _ref6$timingFunction,\n _ref6$onProgress = _ref6.onProgress,\n onProgress = _ref6$onProgress === void 0 ? function () {} : _ref6$onProgress,\n _ref6$onCancel = _ref6.onCancel,\n onCancel = _ref6$onCancel === void 0 ? function () {} : _ref6$onCancel,\n _ref6$onComplete = _ref6.onComplete,\n onComplete = _ref6$onComplete === void 0 ? function () {} : _ref6$onComplete;\n\n if (isNaN(duration)) {\n // console.warn(`duration must be a number, received ${duration}`)\n return function () {};\n }\n\n duration = parseInt(duration, 10);\n var startMs = performance.now();\n var currentRequestAnimationFrameId;\n var done = false;\n var rawProgress = 0;\n var progress = 0;\n\n var handler = function handler() {\n currentRequestAnimationFrameId = null;\n var nowMs = performance.now();\n rawProgress = Math.min((nowMs - startMs) / duration, 1);\n progress = timingFunction(rawProgress);\n done = rawProgress === 1;\n onProgress({\n done: done,\n rawProgress: rawProgress,\n progress: progress\n });\n\n if (done) {\n onComplete();\n } else {\n currentRequestAnimationFrameId = window.requestAnimationFrame(handler);\n }\n };\n\n handler();\n\n var stop = function stop() {\n if (currentRequestAnimationFrameId) {\n window.cancelAnimationFrame(currentRequestAnimationFrameId);\n currentRequestAnimationFrameId = null;\n }\n\n if (!done) {\n done = true;\n onCancel({\n rawProgress: rawProgress,\n progress: progress\n });\n }\n };\n\n return stop;\n};\n//# sourceMappingURL=animation.js.map",
28
- "export default (function (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: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n});\n//# sourceMappingURL=defineProperty.js.map",
29
- "export var createDetailedMessage = function createDetailedMessage(message) {\n var details = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var string = \"\".concat(message);\n Object.keys(details).forEach(function (key) {\n var value = details[key];\n string += \"\\n--- \".concat(key, \" ---\\n\").concat(Array.isArray(value) ? value.join(\"\\n\") : value);\n });\n return string;\n};\n//# sourceMappingURL=createDetailedMessage.js.map",
30
- "import defineProperty from \"../defineProperty/defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\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\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\n return target;\n}\n//# sourceMappingURL=objectSpread2.js.map",
31
- "var nativeTypeOf = function nativeTypeOf(obj) {\n return typeof obj;\n};\n\nvar customTypeOf = function customTypeOf(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nexport default typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? nativeTypeOf : customTypeOf;\n//# sourceMappingURL=typeof.js.map",
32
- "import _typeof from \"@jsenv/core/helpers/babel/typeof/typeof.js\";\nimport _defineProperty from \"@jsenv/core/helpers/babel/defineProperty/defineProperty.js\";\nimport { createDetailedMessage } from \"@jsenv/logger\";\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nfunction _call(body, then, direct) {\n if (direct) {\n return then ? then(body()) : body();\n }\n\n try {\n var result = Promise.resolve(body());\n return then ? result.then(then) : result;\n } catch (e) {\n return Promise.reject(e);\n }\n}\n\nexport var fetchUsingXHR = _async(function (url) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n signal = _ref.signal,\n _ref$method = _ref.method,\n method = _ref$method === void 0 ? \"GET\" : _ref$method,\n _ref$credentials = _ref.credentials,\n credentials = _ref$credentials === void 0 ? \"same-origin\" : _ref$credentials,\n _ref$headers = _ref.headers,\n headers = _ref$headers === void 0 ? {} : _ref$headers,\n _ref$body = _ref.body,\n body = _ref$body === void 0 ? null : _ref$body;\n\n var headersPromise = createPromiseAndHooks();\n var bodyPromise = createPromiseAndHooks();\n var xhr = new XMLHttpRequest();\n\n var failure = function 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 var cleanup = function cleanup() {\n xhr.ontimeout = null;\n xhr.onerror = null;\n xhr.onload = null;\n xhr.onreadystatechange = null;\n };\n\n xhr.ontimeout = function () {\n cleanup();\n failure(new Error(\"xhr request timeout on \".concat(url, \".\")));\n };\n\n xhr.onerror = function (error) {\n cleanup(); // unfortunately with have no clue why it fails\n // might be cors for instance\n\n failure(createRequestError(error, {\n url: url\n }));\n };\n\n xhr.onload = function () {\n cleanup();\n bodyPromise.resolve();\n };\n\n signal.addEventListener(\"abort\", function () {\n xhr.abort();\n var abortError = new Error(\"aborted\");\n abortError.name = \"AbortError\";\n failure(abortError);\n });\n\n xhr.onreadystatechange = function () {\n // https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest/readyState\n var readyState = xhr.readyState;\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(function (key) {\n xhr.setRequestHeader(key, headers[key]);\n });\n xhr.withCredentials = computeWithCredentials({\n credentials: credentials,\n url: url\n });\n\n if (\"responseType\" in xhr && hasBlob) {\n xhr.responseType = \"blob\";\n }\n\n xhr.send(body);\n return _await(headersPromise, function () {\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseURL\n var responseUrl = \"responseURL\" in xhr ? xhr.responseURL : headers[\"x-request-url\"];\n var responseStatus = xhr.status;\n var responseStatusText = xhr.statusText;\n var responseHeaders = getHeadersFromXHR(xhr);\n\n var readBody = function readBody() {\n return _await(bodyPromise, function () {\n var status = xhr.status; // in Chrome on file:/// URLs, status is 0\n\n if (status === 0) {\n responseStatus = 200;\n }\n\n var body = \"response\" in xhr ? xhr.response : xhr.responseText;\n return {\n responseBody: body,\n responseBodyType: detectBodyType(body)\n };\n });\n };\n\n var text = function text() {\n return _call(readBody, function (_ref2) {\n var responseBody = _ref2.responseBody,\n responseBodyType = _ref2.responseBodyType;\n\n if (responseBodyType === \"blob\") {\n return blobToText(responseBody);\n }\n\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as text\");\n }\n\n return responseBodyType === \"dataView\" ? arrayBufferToText(responseBody.buffer) : responseBodyType === \"arrayBuffer\" ? arrayBufferToText(responseBody) : String(responseBody);\n });\n };\n\n var json = function json() {\n return _call(text, JSON.parse);\n };\n\n var blob = _async(function () {\n if (!hasBlob) {\n throw new Error(\"blob not supported\");\n }\n\n return _call(readBody, function (_ref3) {\n var responseBody = _ref3.responseBody,\n responseBodyType = _ref3.responseBodyType;\n\n if (responseBodyType === \"blob\") {\n return responseBody;\n }\n\n if (responseBodyType === \"dataView\") {\n return new Blob([cloneBuffer(responseBody.buffer)]);\n }\n\n if (responseBodyType === \"arrayBuffer\") {\n return new Blob([cloneBuffer(responseBody)]);\n }\n\n if (responseBodyType === \"formData\") {\n throw new Error(\"could not read FormData body as blob\");\n }\n\n return new Blob([String(responseBody)]);\n });\n });\n\n var arrayBuffer = function arrayBuffer() {\n return _call(readBody, function (_ref4) {\n var responseBody = _ref4.responseBody,\n responseBodyType = _ref4.responseBodyType;\n return responseBodyType === \"arrayBuffer\" ? cloneBuffer(responseBody) : _call(blob, blobToArrayBuffer);\n });\n };\n\n var formData = _async(function () {\n if (!hasFormData) {\n throw new Error(\"formData not supported\");\n }\n\n return _call(text, textToFormData);\n });\n\n return {\n url: responseUrl,\n status: responseStatus,\n statusText: responseStatusText,\n headers: responseHeaders,\n text: text,\n json: json,\n blob: blob,\n arrayBuffer: arrayBuffer,\n formData: formData\n };\n });\n});\n\nvar canUseBlob = function canUseBlob() {\n if (typeof window.FileReader !== \"function\") return false;\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\nvar hasBlob = canUseBlob();\nvar hasFormData = typeof window.FormData === \"function\";\nvar hasArrayBuffer = typeof window.ArrayBuffer === \"function\";\nvar hasSearchParams = typeof window.URLSearchParams === \"function\";\n\nvar createRequestError = function createRequestError(error, _ref5) {\n var url = _ref5.url;\n return new Error(createDetailedMessage(\"error during xhr request on \".concat(url, \".\"), _defineProperty({}, \"error stack\", error.stack)));\n};\n\nvar createPromiseAndHooks = function createPromiseAndHooks() {\n var resolve;\n var reject;\n var promise = new Promise(function (res, rej) {\n resolve = function resolve(value) {\n promise.settled = true;\n res(value);\n };\n\n reject = function reject(value) {\n promise.settled = true;\n rej(value);\n };\n });\n promise.resolve = resolve;\n promise.reject = reject;\n return promise;\n}; // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch\n\n\nvar computeWithCredentials = function computeWithCredentials(_ref6) {\n var credentials = _ref6.credentials,\n url = _ref6.url;\n\n if (credentials === \"same-origin\") {\n return originSameAsGlobalOrigin(url);\n }\n\n return credentials === \"include\";\n};\n\nvar originSameAsGlobalOrigin = function originSameAsGlobalOrigin(url) {\n // if we cannot read globalOrigin from window.location.origin, let's consider it's ok\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== \"object\") return true;\n if (_typeof(window.location) !== \"object\") return true;\n var globalOrigin = window.location.origin;\n if (globalOrigin === \"null\") return true;\n return hrefToOrigin(url) === globalOrigin;\n};\n\nvar detectBodyType = function detectBodyType(body) {\n if (!body) {\n return \"\";\n }\n\n if (typeof body === \"string\") {\n return \"text\";\n }\n\n if (hasBlob && Blob.prototype.isPrototypeOf(body)) {\n return \"blob\";\n }\n\n if (hasFormData && FormData.prototype.isPrototypeOf(body)) {\n return \"formData\";\n }\n\n if (hasArrayBuffer) {\n if (hasBlob && isDataView(body)) {\n return \"dataView\";\n }\n\n if (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body)) {\n return \"arrayBuffer\";\n }\n }\n\n if (hasSearchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n return \"searchParams\";\n }\n\n return \"\";\n}; // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\n\n\nvar getHeadersFromXHR = function getHeadersFromXHR(xhr) {\n var headerMap = {};\n var headersString = xhr.getAllResponseHeaders();\n if (headersString === \"\") return headerMap;\n var lines = headersString.trim().split(/[\\r\\n]+/);\n lines.forEach(function (line) {\n var parts = line.split(\": \");\n var name = parts.shift();\n var value = parts.join(\": \");\n headerMap[name.toLowerCase()] = value;\n });\n return headerMap;\n};\n\nvar hrefToOrigin = function hrefToOrigin(href) {\n var scheme = hrefToScheme(href);\n\n if (scheme === \"file\") {\n return \"file://\";\n }\n\n if (scheme === \"http\" || scheme === \"https\") {\n var secondProtocolSlashIndex = scheme.length + \"://\".length;\n var pathnameSlashIndex = href.indexOf(\"/\", secondProtocolSlashIndex);\n if (pathnameSlashIndex === -1) return href;\n return href.slice(0, pathnameSlashIndex);\n }\n\n return href.slice(0, scheme.length + 1);\n};\n\nvar hrefToScheme = function hrefToScheme(href) {\n var colonIndex = href.indexOf(\":\");\n if (colonIndex === -1) return \"\";\n return href.slice(0, colonIndex);\n};\n\nvar isDataView = function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj);\n};\n\nvar isArrayBufferView = ArrayBuffer.isView || function () {\n var viewClasses = [\"[object Int8Array]\", \"[object Uint8Array]\", \"[object Uint8ClampedArray]\", \"[object Int16Array]\", \"[object Uint16Array]\", \"[object Int32Array]\", \"[object Uint32Array]\", \"[object Float32Array]\", \"[object Float64Array]\"];\n return function (value) {\n return value && viewClasses.includes(Object.prototype.toString.call(value));\n };\n}();\n\nvar textToFormData = function textToFormData(text) {\n var form = new FormData();\n text.trim().split(\"&\").forEach(function (bytes) {\n if (bytes) {\n var split = bytes.split(\"=\");\n var name = split.shift().replace(/\\+/g, \" \");\n var value = split.join(\"=\").replace(/\\+/g, \" \");\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form;\n};\n\nvar blobToArrayBuffer = _async(function (blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise;\n});\n\nvar blobToText = function blobToText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise;\n};\n\nvar arrayBufferToText = function arrayBufferToText(arrayBuffer) {\n var view = new Uint8Array(arrayBuffer);\n var chars = new Array(view.length);\n var i = 0;\n\n while (i < view.length) {\n chars[i] = String.fromCharCode(view[i]);\n i++;\n }\n\n return chars.join(\"\");\n};\n\nvar fileReaderReady = function fileReaderReady(reader) {\n return new Promise(function (resolve, reject) {\n reader.onload = function () {\n resolve(reader.result);\n };\n\n reader.onerror = function () {\n reject(reader.error);\n };\n });\n};\n\nvar cloneBuffer = function cloneBuffer(buffer) {\n if (buffer.slice) {\n return buffer.slice(0);\n }\n\n var view = new Uint8Array(buffer.byteLength);\n view.set(new Uint8Array(buffer));\n return view.buffer;\n};\n//# sourceMappingURL=fetchUsingXHR.js.map",
33
- "import _objectSpread from \"@jsenv/core/helpers/babel/objectSpread2/objectSpread2.js\";\nimport _objectWithoutProperties from \"@jsenv/core/helpers/babel/objectWithoutProperties/objectWithoutProperties.js\";\nvar _excluded = [\"mode\"];\nimport { fetchUsingXHR } from \"./fetchUsingXHR.js\";\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nvar fetchNative = _async(function (url) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? \"cors\" : _ref$mode,\n options = _objectWithoutProperties(_ref, _excluded);\n\n return _await(window.fetch(url, _objectSpread({\n mode: mode\n }, options)), function (response) {\n return {\n url: response.url,\n status: response.status,\n statusText: \"\",\n headers: responseToHeaders(response),\n text: function text() {\n return response.text();\n },\n json: function json() {\n return response.json();\n },\n blob: function blob() {\n return response.blob();\n },\n arrayBuffer: function arrayBuffer() {\n return response.arrayBuffer();\n },\n formData: function formData() {\n return response.formData();\n }\n };\n });\n});\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nvar responseToHeaders = function responseToHeaders(response) {\n var headers = {};\n response.headers.forEach(function (value, name) {\n headers[name] = value;\n });\n return headers;\n};\n\nexport var fetchUrl = typeof window.fetch === \"function\" && typeof window.AbortController === \"function\" ? fetchNative : fetchUsingXHR;\n//# sourceMappingURL=fetch-browser.js.map",
34
- "import { fetchUrl } from \"./fetch-browser.js\";\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nexport var fetchJson = _async(function (url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _await(fetchUrl(url, options), function (response) {\n return _await(response.json());\n });\n});\n//# sourceMappingURL=fetchJson.js.map",
35
- "import _defineProperty from \"@jsenv/core/helpers/babel/defineProperty/defineProperty.js\";\nimport { createDetailedMessage } from \"@jsenv/logger\";\nimport { fetchJson } from \"../browser-utils/fetchJson.js\";\n\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nfunction _catch(body, recover) {\n try {\n var result = body();\n } catch (e) {\n return recover(e);\n }\n\n if (result && result.then) {\n return result.then(void 0, recover);\n }\n\n return result;\n}\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nexport var fetchExploringJson = _async(function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n signal = _ref.signal;\n\n return _catch(function () {\n return _await(fetchJson(\"/.jsenv/exploring.json\", {\n signal: signal\n }));\n }, function (e) {\n if (signal && signal.aborted && e.name === \"AbortError\") {\n throw e;\n }\n\n throw new Error(createDetailedMessage(\"Cannot communicate with exploring server due to a network error\", _defineProperty({}, \"error stack\", e.stack)));\n });\n});\n//# sourceMappingURL=fetchExploringJson.js.map",
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\nfunction _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }\n\n if (!value || !value.then) {\n value = Promise.resolve(value);\n }\n\n return then ? value.then(then) : value;\n}\n\nvar fetchJSON = _async(function (url, options) {\n return _await(fetchUrl(url, options), function (response) {\n return _await(response.json());\n });\n});\n\nfunction _async(f) {\n return function () {\n for (var args = [], i = 0; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n try {\n return Promise.resolve(f.apply(this, args));\n } catch (e) {\n return Promise.reject(e);\n }\n };\n}\n\nvar groupPreference = createPreference(\"group\");\n\nfunction _call(body, then, direct) {\n if (direct) {\n return then ? then(body()) : body();\n }\n\n try {\n var result = Promise.resolve(body());\n return then ? result.then(then) : result;\n } catch (e) {\n return Promise.reject(e);\n }\n}\n\nvar run = function run() {\n return _call(fetchExploringJson, function (_ref) {\n var projectDirectoryUrl = _ref.projectDirectoryUrl,\n explorableConfig = _ref.explorableConfig,\n outDirectoryRelativeUrl = _ref.outDirectoryRelativeUrl;\n return _await(fetchJSON(\"/.jsenv/explorables.json\", {\n method: \"GET\"\n }), function (files) {\n var compileServerOrigin = document.location.origin;\n var outDirectoryUrl = String(new URL(outDirectoryRelativeUrl, compileServerOrigin));\n var documentUrl = document.location.href;\n var compileId;\n var outDirectoryIndex = documentUrl.indexOf(outDirectoryUrl);\n\n if (outDirectoryIndex === 0) {\n var afterOutDirectory = documentUrl.slice(outDirectoryUrl.length);\n compileId = afterOutDirectory.split(\"/\")[0];\n } else {\n compileId = null;\n }\n\n var renderHtml = function 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 var fileListElement = document.querySelector(\"[data-page=\\\"file-list\\\"]\").cloneNode(true);\n var directoryName = directoryUrlToDirectoryName(projectDirectoryUrl);\n var span = fileListElement.querySelector(\"#directory_relative_url\");\n span.title = projectDirectoryUrl;\n span.textContent = directoryName;\n var h4 = fileListElement.querySelector(\"h4\");\n var ul = fileListElement.querySelector(\"ul\");\n ul.innerHTML = files.map(function (file) {\n return \"<li>\\n <a\\n class=\\\"execution-link\\\"\\n data-relative-url=\".concat(file.relativeUrl, \"\\n href=\").concat(urlToVisitFromRelativeUrl(file.relativeUrl), \"\\n >\\n \").concat(file.relativeUrl, \"\\n </a>\\n </li>\");\n }).join(\"\");\n var groupFieldset = fileListElement.querySelector(\"#filter-group-set\");\n var groupNames = Object.keys(explorableConfig);\n groupFieldset.innerHTML = groupNames.map(function (key) {\n return \"<label data-contains-hidden-input class=\\\"item\\\">\\n <input type=\\\"radio\\\" name=\\\"filter-group\\\" value=\\\"\".concat(key, \"\\\"/>\\n <span>\").concat(key, \"</span>\\n</label>\");\n }).join(\"\");\n var currentGroup = groupPreference.has() ? groupPreference.get() : groupNames[0];\n Array.from(groupFieldset.querySelectorAll(\"input\")).forEach(function (inputRadio) {\n inputRadio.checked = inputRadio.value === currentGroup;\n\n inputRadio.onchange = function () {\n if (inputRadio.checked) {\n groupPreference.set(inputRadio.value);\n enableGroup(inputRadio.value);\n }\n };\n });\n\n var enableGroup = function enableGroup(groupName) {\n var arrayOfElementToShow = [];\n var arrayOfElementToHide = [];\n files.forEach(function (file) {\n var fileLink = fileListElement.querySelector(\"a[data-relative-url=\\\"\".concat(file.relativeUrl, \"\\\"]\"));\n var fileLi = fileLink.parentNode;\n\n if (file.meta[groupName]) {\n arrayOfElementToShow.push(fileLi);\n } else {\n arrayOfElementToHide.push(fileLi);\n }\n });\n arrayOfElementToShow.forEach(function (element) {\n element.removeAttribute(\"data-force-hide\");\n });\n arrayOfElementToHide.forEach(function (element) {\n element.setAttribute(\"data-force-hide\", \"\");\n });\n h4.innerHTML = arrayOfElementToShow.length === 0 ? \"No file found.\\n Config for this section: <pre>\".concat(JSON.stringify(explorableConfig[groupName], null, \" \"), \"</pre>\") : \"\".concat(arrayOfElementToShow.length, \" files found. Click on the one you want to execute\");\n };\n\n enableGroup(currentGroup);\n document.querySelector(\"main\").appendChild(fileListElement);\n makeMenuScrollable();\n };\n\n var urlToVisitFromRelativeUrl = function urlToVisitFromRelativeUrl(relativeUrl) {\n if (compileId) {\n return \"\".concat(compileServerOrigin, \"/\").concat(outDirectoryRelativeUrl).concat(compileId, \"/\").concat(relativeUrl);\n }\n\n return \"\".concat(compileServerOrigin, \"/\").concat(relativeUrl);\n };\n\n var makeMenuScrollable = function makeMenuScrollable() {\n var getMenuWrapperSize = function getMenuWrapperSize() {\n return document.querySelector(\".menu-wrapper\").getBoundingClientRect().width;\n };\n\n var menuWrapperSize = getMenuWrapperSize();\n\n var getMenuSize = function getMenuSize() {\n return document.querySelector(\".menu\").getBoundingClientRect().width;\n };\n\n var menuSize = getMenuSize();\n var menuVisibleSize = menuWrapperSize;\n var menuInvisibleSize = menuSize - menuVisibleSize;\n\n var getMenuPosition = function getMenuPosition() {\n return document.querySelector(\".menu-wrapper\").scrollLeft;\n };\n\n var scrollDuration = 300;\n var leftPaddle = document.querySelector(\".left-paddle\");\n var rightPaddle = document.querySelector(\".right-paddle\");\n\n var handleMenuScroll = function handleMenuScroll() {\n menuInvisibleSize = menuSize - menuWrapperSize;\n var menuPosition = getMenuPosition();\n var menuEndOffset = menuInvisibleSize; // show & hide the paddles, depending on scroll position\n\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\n handleMenuScroll();\n\n window.onresize = function () {\n menuWrapperSize = getMenuWrapperSize();\n menuSize = getMenuSize();\n handleMenuScroll();\n }; // finally, what happens when we are actually scrolling the menu\n\n\n document.querySelector(\".menu-wrapper\").onscroll = function () {\n handleMenuScroll();\n }; // scroll to left\n\n\n rightPaddle.onclick = function () {\n var scrollStart = document.querySelector(\".menu-wrapper\").scrollLeft;\n var scrollEnd = scrollStart + menuWrapperSize;\n startJavaScriptAnimation({\n duration: scrollDuration,\n onProgress: function onProgress(_ref2) {\n var progress = _ref2.progress;\n document.querySelector(\".menu-wrapper\").scrollLeft = scrollStart + (scrollEnd - scrollStart) * progress;\n }\n });\n }; // scroll to right\n\n\n leftPaddle.onclick = function () {\n var scrollStart = document.querySelector(\".menu-wrapper\").scrollLeft;\n var scrollEnd = scrollStart - menuWrapperSize;\n startJavaScriptAnimation({\n duration: scrollDuration,\n onProgress: function onProgress(_ref3) {\n var progress = _ref3.progress;\n document.querySelector(\".menu-wrapper\").scrollLeft = scrollStart + (scrollEnd - scrollStart) * progress;\n }\n });\n };\n };\n\n var directoryUrlToDirectoryName = function directoryUrlToDirectoryName(directoryUrl) {\n var slashLastIndex = directoryUrl.lastIndexOf(\"/\", // ignore last slash\n directoryUrl.length - 2);\n if (slashLastIndex === -1) return \"\";\n return directoryUrl.slice(slashLastIndex + 1);\n };\n\n renderHtml();\n });\n });\n};\n\nrun();\n//# sourceMappingURL=exploring.js.map"
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
37
  ],
38
38
  "names": [
39
+ "memoize",
40
+ "compute",
41
+ "memoized",
42
+ "memoizedValue",
43
+ "fnWithMemoization",
44
+ "forget",
45
+ "value",
46
+ "undefined",
39
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",
40
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",
41
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",
42
261
  "_await",
262
+ "fetchNative",
263
+ "mode",
264
+ "options",
265
+ "responseToHeaders",
43
266
  "_async",
44
- "_objectSpread"
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"
45
351
  ],
46
- "mappings": "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"
352
+ "mappings": "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"
47
353
  }