@hpcc-js/observablehq-compiler 3.3.9 → 3.5.0
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.
- package/dist/dot-DK4iDc2-.js +40 -0
- package/dist/dot-DK4iDc2-.js.map +1 -0
- package/dist/duckdb-DkM9_nXT.js +298 -0
- package/dist/duckdb-DkM9_nXT.js.map +1 -0
- package/dist/highlight-Bv8PkwN-.js +2402 -0
- package/dist/highlight-Bv8PkwN-.js.map +1 -0
- package/dist/index-B7vRtYlU.js +1807 -0
- package/dist/index-B7vRtYlU.js.map +1 -0
- package/dist/index-COHaJzee.js +260 -0
- package/dist/index-COHaJzee.js.map +1 -0
- package/dist/index-CP3HrqN0.js +1815 -0
- package/dist/index-CP3HrqN0.js.map +1 -0
- package/dist/index-D3TL70UM.js +163 -0
- package/dist/index-D3TL70UM.js.map +1 -0
- package/dist/index-DNwLE6Kk.js +198 -0
- package/dist/index-DNwLE6Kk.js.map +1 -0
- package/dist/index.js +1716 -302
- package/dist/index.js.map +1 -1
- package/dist/inputs-CsCXZHQ8.js +3 -0
- package/dist/inputs-CsCXZHQ8.js.map +1 -0
- package/dist/leaflet-CkvVhxBL.js +9 -0
- package/dist/leaflet-CkvVhxBL.js.map +1 -0
- package/dist/mapboxgl-C0i2HzjJ.js +9 -0
- package/dist/mapboxgl-C0i2HzjJ.js.map +1 -0
- package/dist/md-Bxvu6Hld.js +7603 -0
- package/dist/md-Bxvu6Hld.js.map +1 -0
- package/dist/mermaid-CFg6sgdO.js +17 -0
- package/dist/mermaid-CFg6sgdO.js.map +1 -0
- package/dist/node/index.cjs +32 -0
- package/dist/node/index.cjs.map +7 -0
- package/dist/node/index.js +32 -0
- package/dist/node/index.js.map +7 -0
- package/dist/runtime.js +2501 -0
- package/dist/runtime.js.map +1 -0
- package/dist/tex-ayRXOMLZ.js +24 -0
- package/dist/tex-ayRXOMLZ.js.map +1 -0
- package/dist/vega-lite-CESXoehe.js +8 -0
- package/dist/vega-lite-CESXoehe.js.map +1 -0
- package/package.json +18 -10
- package/src/__package__.ts +2 -2
- package/src/compiler.ts +23 -6
- package/src/cst.ts +1 -2
- package/src/index.node.ts +7 -0
- package/src/index.ts +2 -3
- package/src/kit/compiler.ts +41 -0
- package/src/kit/index.ts +3 -0
- package/src/kit/runtime.ts +57 -0
- package/src/kit/util.ts +157 -0
- package/src/util.ts +36 -60
- package/types/compiler.d.ts +8 -36
- package/types/index.d.ts +2 -2
- package/types/kit/compiler.d.ts +6 -0
- package/types/kit/index.d.ts +3 -0
- package/types/kit/runtime.d.ts +13 -0
- package/types/kit/util.d.ts +52 -0
- package/types/util.d.ts +3 -14
- package/dist/index.umd.cjs +0 -5
- package/dist/index.umd.cjs.map +0 -1
- package/src/index.css +0 -460
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sources":["../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/errors.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/generatorish.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/constant.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/identity.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/rethrow.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/array.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/noop.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/variable.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/module.js","../../../node_modules/@observablehq/notebook-kit/node_modules/@observablehq/runtime/src/runtime.js","../../../node_modules/@observablehq/inspector/src/dispatch.js","../../../node_modules/@observablehq/inspector/src/array.js","../../../node_modules/@observablehq/inspector/src/inspectName.js","../../../node_modules/@observablehq/inspector/src/formatSymbol.js","../../../node_modules/@observablehq/inspector/src/object.js","../../../node_modules/@observablehq/inspector/src/immutable.js","../../../node_modules/@observablehq/inspector/src/expanded.js","../../../node_modules/@observablehq/inspector/src/collapsed.js","../../../node_modules/isoformat/src/format.js","../../../node_modules/@observablehq/inspector/src/formatDate.js","../../../node_modules/@observablehq/inspector/src/formatError.js","../../../node_modules/@observablehq/inspector/src/formatRegExp.js","../../../node_modules/@observablehq/inspector/src/formatString.js","../../../node_modules/@observablehq/inspector/src/inspectFunction.js","../../../node_modules/@observablehq/inspector/src/inspect.js","../../../node_modules/@observablehq/inspector/src/index.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/inspect.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/assets.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/display.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/observe.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/input.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/now.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/queue.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/generators/width.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/mutable.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/define.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/fileAttachment.js","../../../node_modules/@observablehq/notebook-kit/dist/src/lib/sluggify.js","../../../node_modules/@observablehq/notebook-kit/dist/src/lib/hash.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/databaseClient.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/canvas.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/context2d.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/svg.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/text.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/dom/uid.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/observer.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/recommendedLibraries.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/require.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/sampleDatasets.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/index.js","../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/index.js","../src/kit/runtime.ts"],"sourcesContent":["export class RuntimeError extends Error {\n constructor(message, input) {\n super(message);\n this.input = input;\n }\n}\n\nRuntimeError.prototype.name = \"RuntimeError\";\n","export function generatorish(value) {\n return value\n && typeof value.next === \"function\"\n && typeof value.return === \"function\";\n}\n","export function constant(x) {\n return () => x;\n}\n","export function identity(x) {\n return x;\n}\n","export function rethrow(error) {\n return () => {\n throw error;\n };\n}\n","const prototype = Array.prototype;\nexport const map = prototype.map;\nexport const forEach = prototype.forEach;\n","export function noop() {}\n","import {map} from \"./array.js\";\nimport {constant} from \"./constant.js\";\nimport {RuntimeError} from \"./errors.js\";\nimport {identity} from \"./identity.js\";\nimport {noop} from \"./noop.js\";\n\nexport const TYPE_NORMAL = 1; // a normal variable\nexport const TYPE_IMPLICIT = 2; // created on reference\nexport const TYPE_DUPLICATE = 3; // created on duplicate definition\n\nexport const no_observer = Symbol(\"no-observer\");\nexport const no_value = Promise.resolve();\n\nexport function Variable(type, module, observer, options) {\n if (!observer) observer = no_observer;\n Object.defineProperties(this, {\n _observer: {value: observer, writable: true},\n _definition: {value: variable_undefined, writable: true},\n _duplicate: {value: undefined, writable: true},\n _duplicates: {value: undefined, writable: true},\n _indegree: {value: NaN, writable: true}, // The number of computing inputs.\n _inputs: {value: [], writable: true},\n _invalidate: {value: noop, writable: true},\n _module: {value: module},\n _name: {value: null, writable: true},\n _outputs: {value: new Set, writable: true},\n _promise: {value: no_value, writable: true},\n _reachable: {value: observer !== no_observer, writable: true}, // Is this variable transitively visible?\n _rejector: {value: variable_rejector(this)},\n _shadow: {value: initShadow(module, options)},\n _type: {value: type},\n _value: {value: undefined, writable: true},\n _version: {value: 0, writable: true}\n });\n}\n\nObject.defineProperties(Variable.prototype, {\n _pending: {value: variable_pending, writable: true, configurable: true},\n _fulfilled: {value: variable_fulfilled, writable: true, configurable: true},\n _rejected: {value: variable_rejected, writable: true, configurable: true},\n _resolve: {value: variable_resolve, writable: true, configurable: true},\n define: {value: variable_define, writable: true, configurable: true},\n delete: {value: variable_delete, writable: true, configurable: true},\n import: {value: variable_import, writable: true, configurable: true}\n});\n\nfunction initShadow(module, options) {\n if (!options?.shadow) return null;\n return new Map(\n Object.entries(options.shadow)\n .map(([name, definition]) => [name, (new Variable(TYPE_IMPLICIT, module)).define([], definition)])\n );\n}\n\nfunction variable_attach(variable) {\n variable._module._runtime._dirty.add(variable);\n variable._outputs.add(this);\n}\n\nfunction variable_detach(variable) {\n variable._module._runtime._dirty.add(variable);\n variable._outputs.delete(this);\n}\n\nfunction variable_undefined() {\n throw variable_undefined;\n}\n\nexport function variable_stale() {\n throw variable_stale;\n}\n\nfunction variable_rejector(variable) {\n return (error) => {\n if (error === variable_stale) throw error;\n if (error === variable_undefined) throw new RuntimeError(`${variable._name} is not defined`, variable._name);\n if (error instanceof Error && error.message) throw new RuntimeError(error.message, variable._name);\n throw new RuntimeError(`${variable._name} could not be resolved`, variable._name);\n };\n}\n\nfunction variable_duplicate(name) {\n return () => {\n throw new RuntimeError(`${name} is defined more than once`);\n };\n}\n\nfunction variable_define(name, inputs, definition) {\n switch (arguments.length) {\n case 1: {\n definition = name, name = inputs = null;\n break;\n }\n case 2: {\n definition = inputs;\n if (typeof name === \"string\") inputs = null;\n else inputs = name, name = null;\n break;\n }\n }\n return variable_defineImpl.call(this,\n name == null ? null : String(name),\n inputs == null ? [] : map.call(inputs, this._resolve, this),\n typeof definition === \"function\" ? definition : constant(definition)\n );\n}\n\nfunction variable_resolve(name) {\n return this._shadow?.get(name) ?? this._module._resolve(name);\n}\n\nfunction variable_defineImpl(name, inputs, definition) {\n const scope = this._module._scope, runtime = this._module._runtime;\n\n this._inputs.forEach(variable_detach, this);\n inputs.forEach(variable_attach, this);\n this._inputs = inputs;\n this._definition = definition;\n this._value = undefined;\n\n // Is this an active variable (that may require disposal)?\n if (definition === noop) runtime._variables.delete(this);\n else runtime._variables.add(this);\n\n // Did the variable’s name change? Time to patch references!\n if (name !== this._name || scope.get(name) !== this) {\n let error, found;\n\n if (this._name) { // Did this variable previously have a name?\n if (this._outputs.size) { // And did other variables reference this variable?\n scope.delete(this._name);\n found = this._module._resolve(this._name);\n found._outputs = this._outputs, this._outputs = new Set;\n found._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(this)] = found; }, this);\n found._outputs.forEach(runtime._updates.add, runtime._updates);\n runtime._dirty.add(found).add(this);\n scope.set(this._name, found);\n } else if ((found = scope.get(this._name)) === this) { // Do no other variables reference this variable?\n scope.delete(this._name); // It’s safe to delete!\n } else if (found._type === TYPE_DUPLICATE) { // Do other variables assign this name?\n found._duplicates.delete(this); // This variable no longer assigns this name.\n this._duplicate = undefined;\n if (found._duplicates.size === 1) { // Is there now only one variable assigning this name?\n found = found._duplicates.keys().next().value; // Any references are now fixed!\n error = scope.get(this._name);\n found._outputs = error._outputs, error._outputs = new Set;\n found._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(error)] = found; });\n found._definition = found._duplicate, found._duplicate = undefined;\n runtime._dirty.add(error).add(found);\n runtime._updates.add(found);\n scope.set(this._name, found);\n }\n } else {\n throw new Error;\n }\n }\n\n if (this._outputs.size) throw new Error;\n\n if (name) { // Does this variable have a new name?\n if (found = scope.get(name)) { // Do other variables reference or assign this name?\n if (found._type === TYPE_DUPLICATE) { // Do multiple other variables already define this name?\n this._definition = variable_duplicate(name), this._duplicate = definition;\n found._duplicates.add(this);\n } else if (found._type === TYPE_IMPLICIT) { // Are the variable references broken?\n this._outputs = found._outputs, found._outputs = new Set; // Now they’re fixed!\n this._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(found)] = this; }, this);\n runtime._dirty.add(found).add(this);\n scope.set(name, this);\n } else { // Does another variable define this name?\n found._duplicate = found._definition, this._duplicate = definition; // Now they’re duplicates.\n error = new Variable(TYPE_DUPLICATE, this._module);\n error._name = name;\n error._definition = this._definition = found._definition = variable_duplicate(name);\n error._outputs = found._outputs, found._outputs = new Set;\n error._outputs.forEach(function(output) { output._inputs[output._inputs.indexOf(found)] = error; });\n error._duplicates = new Set([this, found]);\n runtime._dirty.add(found).add(error);\n runtime._updates.add(found).add(error);\n scope.set(name, error);\n }\n } else {\n scope.set(name, this);\n }\n }\n\n this._name = name;\n }\n\n // If this redefined variable was previously evaluated, invalidate it. (If the\n // variable was never evaluated, then the invalidated value could never have\n // been exposed and we can avoid this extra work.)\n if (this._version > 0) ++this._version;\n\n runtime._updates.add(this);\n runtime._compute();\n return this;\n}\n\nfunction variable_import(remote, name, module) {\n if (arguments.length < 3) module = name, name = remote;\n return variable_defineImpl.call(this, String(name), [module._resolve(String(remote))], identity);\n}\n\nfunction variable_delete() {\n return variable_defineImpl.call(this, null, [], noop);\n}\n\nfunction variable_pending() {\n if (this._observer.pending) this._observer.pending();\n}\n\nfunction variable_fulfilled(value) {\n if (this._observer.fulfilled) this._observer.fulfilled(value, this._name);\n}\n\nfunction variable_rejected(error) {\n if (this._observer.rejected) this._observer.rejected(error, this._name);\n}\n","import {constant} from \"./constant.js\";\nimport {RuntimeError} from \"./errors.js\";\nimport {identity} from \"./identity.js\";\nimport {rethrow} from \"./rethrow.js\";\nimport {Variable, TYPE_DUPLICATE, TYPE_IMPLICIT, TYPE_NORMAL, no_observer, variable_stale} from \"./variable.js\";\n\nexport const variable_variable = Symbol(\"variable\");\nexport const variable_invalidation = Symbol(\"invalidation\");\nexport const variable_visibility = Symbol(\"visibility\");\n\nexport function Module(runtime, builtins = []) {\n Object.defineProperties(this, {\n _runtime: {value: runtime},\n _scope: {value: new Map},\n _builtins: {value: new Map([\n [\"@variable\", variable_variable],\n [\"invalidation\", variable_invalidation],\n [\"visibility\", variable_visibility],\n ...builtins\n ])},\n _source: {value: null, writable: true}\n });\n}\n\nObject.defineProperties(Module.prototype, {\n _resolve: {value: module_resolve, writable: true, configurable: true},\n redefine: {value: module_redefine, writable: true, configurable: true},\n define: {value: module_define, writable: true, configurable: true},\n derive: {value: module_derive, writable: true, configurable: true},\n import: {value: module_import, writable: true, configurable: true},\n value: {value: module_value, writable: true, configurable: true},\n variable: {value: module_variable, writable: true, configurable: true},\n builtin: {value: module_builtin, writable: true, configurable: true}\n});\n\nfunction module_redefine(name) {\n const v = this._scope.get(name);\n if (!v) throw new RuntimeError(`${name} is not defined`);\n if (v._type === TYPE_DUPLICATE) throw new RuntimeError(`${name} is defined more than once`);\n return v.define.apply(v, arguments);\n}\n\nfunction module_define() {\n const v = new Variable(TYPE_NORMAL, this);\n return v.define.apply(v, arguments);\n}\n\nfunction module_import() {\n const v = new Variable(TYPE_NORMAL, this);\n return v.import.apply(v, arguments);\n}\n\nfunction module_variable(observer, options) {\n return new Variable(TYPE_NORMAL, this, observer, options);\n}\n\nasync function module_value(name) {\n let v = this._scope.get(name);\n if (!v) throw new RuntimeError(`${name} is not defined`);\n if (v._observer === no_observer) {\n v = this.variable(true).define([name], identity);\n try {\n return await module_revalue(this._runtime, v);\n } finally {\n v.delete();\n }\n } else {\n return module_revalue(this._runtime, v);\n }\n}\n\n// If the variable is redefined before its value resolves, try again.\nasync function module_revalue(runtime, variable) {\n await runtime._compute();\n try {\n return await variable._promise;\n } catch (error) {\n if (error === variable_stale) return module_revalue(runtime, variable);\n throw error;\n }\n}\n\nfunction module_derive(injects, injectModule) {\n const map = new Map();\n const modules = new Set();\n const copies = [];\n\n // Given a module, derives an alias of that module with an initially-empty\n // definition. The variables will be copied later in a second pass below.\n function alias(source) {\n let target = map.get(source);\n if (target) return target;\n target = new Module(source._runtime, source._builtins);\n target._source = source;\n map.set(source, target);\n copies.push([target, source]);\n modules.add(source);\n return target;\n }\n\n // Inject the given variables as reverse imports into the derived module.\n const derive = alias(this);\n for (const inject of injects) {\n const {alias, name} = typeof inject === \"object\" ? inject : {name: inject};\n derive.import(name, alias == null ? name : alias, injectModule);\n }\n\n // Iterate over all the variables (currently) in this module. If any\n // represents an import-with (i.e., an import of a module with a _source), the\n // transitive import-with must be copied, too, as direct injections may affect\n // transitive injections. Note that an import-with can only be created with\n // module.derive and hence it’s not possible for an import-with to be added\n // later; therefore we only need to apply this check once, now.\n for (const module of modules) {\n for (const [name, variable] of module._scope) {\n if (variable._definition === identity) { // import\n if (module === this && derive._scope.has(name)) continue; // overridden by injection\n const importedModule = variable._inputs[0]._module;\n if (importedModule._source) alias(importedModule);\n }\n }\n }\n\n // Finally, with the modules resolved, copy the variable definitions.\n for (const [target, source] of copies) {\n for (const [name, sourceVariable] of source._scope) {\n const targetVariable = target._scope.get(name);\n if (targetVariable && targetVariable._type !== TYPE_IMPLICIT) continue; // preserve injection\n if (sourceVariable._definition === identity) { // import\n const sourceInput = sourceVariable._inputs[0];\n const sourceModule = sourceInput._module;\n target.import(sourceInput._name, name, map.get(sourceModule) || sourceModule);\n } else { // non-import\n target.define(name, sourceVariable._inputs.map(variable_name), sourceVariable._definition);\n }\n }\n }\n\n return derive;\n}\n\nfunction module_resolve(name) {\n let variable = this._scope.get(name), value;\n if (!variable) {\n variable = new Variable(TYPE_IMPLICIT, this);\n if (this._builtins.has(name)) {\n variable.define(name, constant(this._builtins.get(name)));\n } else if (this._runtime._builtin._scope.has(name)) {\n variable.import(name, this._runtime._builtin);\n } else {\n try {\n value = this._runtime._global(name);\n } catch (error) {\n return variable.define(name, rethrow(error));\n }\n if (value === undefined) {\n this._scope.set(variable._name = name, variable);\n } else {\n variable.define(name, constant(value));\n }\n }\n }\n return variable;\n}\n\nfunction module_builtin(name, value) {\n this._builtins.set(name, value);\n}\n\nfunction variable_name(variable) {\n return variable._name;\n}\n","import {RuntimeError} from \"./errors.js\";\nimport {generatorish} from \"./generatorish.js\";\nimport {Module, variable_variable, variable_invalidation, variable_visibility} from \"./module.js\";\nimport {noop} from \"./noop.js\";\nimport {Variable, TYPE_IMPLICIT, no_observer, variable_stale} from \"./variable.js\";\n\nconst frame = typeof requestAnimationFrame === \"function\" ? requestAnimationFrame\n : typeof setImmediate === \"function\" ? setImmediate\n : f => setTimeout(f, 0);\n\nexport function Runtime(builtins, global = window_global) {\n const builtin = this.module();\n Object.defineProperties(this, {\n _dirty: {value: new Set},\n _updates: {value: new Set},\n _precomputes: {value: [], writable: true},\n _computing: {value: null, writable: true},\n _init: {value: null, writable: true},\n _modules: {value: new Map},\n _variables: {value: new Set},\n _disposed: {value: false, writable: true},\n _builtin: {value: builtin},\n _global: {value: global}\n });\n if (builtins) for (const name in builtins) {\n (new Variable(TYPE_IMPLICIT, builtin)).define(name, [], builtins[name]);\n }\n}\n\nObject.defineProperties(Runtime.prototype, {\n _precompute: {value: runtime_precompute, writable: true, configurable: true},\n _compute: {value: runtime_compute, writable: true, configurable: true},\n _computeSoon: {value: runtime_computeSoon, writable: true, configurable: true},\n _computeNow: {value: runtime_computeNow, writable: true, configurable: true},\n dispose: {value: runtime_dispose, writable: true, configurable: true},\n module: {value: runtime_module, writable: true, configurable: true}\n});\n\nfunction runtime_dispose() {\n this._computing = Promise.resolve();\n this._disposed = true;\n this._variables.forEach(v => {\n v._invalidate();\n v._version = NaN;\n });\n}\n\nfunction runtime_module(define, observer = noop) {\n let module;\n if (define === undefined) {\n if (module = this._init) {\n this._init = null;\n return module;\n }\n return new Module(this);\n }\n module = this._modules.get(define);\n if (module) return module;\n this._init = module = new Module(this);\n this._modules.set(define, module);\n try {\n define(this, observer);\n } finally {\n this._init = null;\n }\n return module;\n}\n\nfunction runtime_precompute(callback) {\n this._precomputes.push(callback);\n this._compute();\n}\n\nfunction runtime_compute() {\n return this._computing || (this._computing = this._computeSoon());\n}\n\nfunction runtime_computeSoon() {\n return new Promise(frame).then(() => this._disposed ? undefined : this._computeNow());\n}\n\nasync function runtime_computeNow() {\n let queue = [],\n variables,\n variable,\n precomputes = this._precomputes;\n\n // If there are any paused generators, resume them before computing so they\n // can update (if synchronous) before computing downstream variables.\n if (precomputes.length) {\n this._precomputes = [];\n for (const callback of precomputes) callback();\n await runtime_defer(3);\n }\n\n // Compute the reachability of the transitive closure of dirty variables.\n // Any newly-reachable variable must also be recomputed.\n // Any no-longer-reachable variable must be terminated.\n variables = new Set(this._dirty);\n variables.forEach(function(variable) {\n variable._inputs.forEach(variables.add, variables);\n const reachable = variable_reachable(variable);\n if (reachable > variable._reachable) {\n this._updates.add(variable);\n } else if (reachable < variable._reachable) {\n variable._invalidate();\n }\n variable._reachable = reachable;\n }, this);\n\n // Compute the transitive closure of updating, reachable variables.\n variables = new Set(this._updates);\n variables.forEach(function(variable) {\n if (variable._reachable) {\n variable._indegree = 0;\n variable._outputs.forEach(variables.add, variables);\n } else {\n variable._indegree = NaN;\n variables.delete(variable);\n }\n });\n\n this._computing = null;\n this._updates.clear();\n this._dirty.clear();\n\n // Compute the indegree of updating variables.\n variables.forEach(function(variable) {\n variable._outputs.forEach(variable_increment);\n });\n\n do {\n // Identify the root variables (those with no updating inputs).\n variables.forEach(function(variable) {\n if (variable._indegree === 0) {\n queue.push(variable);\n }\n });\n\n // Compute the variables in topological order.\n while (variable = queue.pop()) {\n variable_compute(variable);\n variable._outputs.forEach(postqueue);\n variables.delete(variable);\n }\n\n // Any remaining variables are circular, or depend on them.\n variables.forEach(function(variable) {\n if (variable_circular(variable)) {\n variable_error(variable, new RuntimeError(\"circular definition\"));\n variable._outputs.forEach(variable_decrement);\n variables.delete(variable);\n }\n });\n } while (variables.size);\n\n function postqueue(variable) {\n if (--variable._indegree === 0) {\n queue.push(variable);\n }\n }\n}\n\n// We want to give generators, if they’re defined synchronously, a chance to\n// update before computing downstream variables. This creates a synchronous\n// promise chain of the given depth that we’ll await before recomputing\n// downstream variables.\nfunction runtime_defer(depth = 0) {\n let p = Promise.resolve();\n for (let i = 0; i < depth; ++i) p = p.then(() => {});\n return p;\n}\n\nfunction variable_circular(variable) {\n const inputs = new Set(variable._inputs);\n for (const i of inputs) {\n if (i === variable) return true;\n i._inputs.forEach(inputs.add, inputs);\n }\n return false;\n}\n\nfunction variable_increment(variable) {\n ++variable._indegree;\n}\n\nfunction variable_decrement(variable) {\n --variable._indegree;\n}\n\nfunction variable_value(variable) {\n return variable._promise.catch(variable._rejector);\n}\n\nfunction variable_invalidator(variable) {\n return new Promise(function(resolve) {\n variable._invalidate = resolve;\n });\n}\n\nfunction variable_intersector(invalidation, variable) {\n let node = typeof IntersectionObserver === \"function\" && variable._observer && variable._observer._node;\n let visible = !node, resolve = noop, reject = noop, promise, observer;\n if (node) {\n observer = new IntersectionObserver(([entry]) => (visible = entry.isIntersecting) && (promise = null, resolve()));\n observer.observe(node);\n invalidation.then(() => (observer.disconnect(), observer = null, reject()));\n }\n return function(value) {\n if (visible) return Promise.resolve(value);\n if (!observer) return Promise.reject();\n if (!promise) promise = new Promise((y, n) => (resolve = y, reject = n));\n return promise.then(() => value);\n };\n}\n\nfunction variable_compute(variable) {\n variable._invalidate();\n variable._invalidate = noop;\n variable._pending();\n\n const value0 = variable._value;\n const version = ++variable._version;\n const inputs = variable._inputs;\n const definition = variable._definition;\n\n // Lazily-constructed invalidation variable; only constructed if referenced as an input.\n let invalidation = null;\n\n // Wait for the previous definition to compute before recomputing.\n const promise = variable._promise = variable._promise\n .then(init, init)\n .then(define)\n .then(generate);\n\n function init() {\n return Promise.all(inputs.map(variable_value));\n }\n\n // Compute the initial value of the variable.\n function define(inputs) {\n if (variable._version !== version) throw variable_stale;\n\n // Replace any reference to invalidation with the promise, lazily.\n for (let i = 0, n = inputs.length; i < n; ++i) {\n switch (inputs[i]) {\n case variable_invalidation: {\n inputs[i] = invalidation = variable_invalidator(variable);\n break;\n }\n case variable_visibility: {\n if (!invalidation) invalidation = variable_invalidator(variable);\n inputs[i] = variable_intersector(invalidation, variable);\n break;\n }\n case variable_variable: {\n inputs[i] = variable;\n break;\n }\n }\n }\n\n return definition.apply(value0, inputs);\n }\n\n // If the value is a generator, then retrieve its first value, and dispose of\n // the generator if the variable is invalidated. Note that the cell may\n // already have been invalidated here, in which case we need to terminate the\n // generator immediately!\n function generate(value) {\n if (variable._version !== version) throw variable_stale;\n if (generatorish(value)) {\n (invalidation || variable_invalidator(variable)).then(variable_return(value));\n return variable_generate(variable, version, value);\n }\n return value;\n }\n\n promise.then((value) => {\n variable._value = value;\n variable._fulfilled(value);\n }, (error) => {\n if (error === variable_stale || variable._version !== version) return;\n variable._value = undefined;\n variable._rejected(error);\n });\n}\n\nfunction variable_generate(variable, version, generator) {\n const runtime = variable._module._runtime;\n let currentValue; // so that yield resolves to the yielded value\n\n // Retrieve the next value from the generator; if successful, invoke the\n // specified callback. The returned promise resolves to the yielded value, or\n // to undefined if the generator is done.\n function compute(onfulfilled) {\n return new Promise(resolve => resolve(generator.next(currentValue))).then(({done, value}) => {\n return done ? undefined : Promise.resolve(value).then(onfulfilled);\n });\n }\n\n // Retrieve the next value from the generator; if successful, fulfill the\n // variable, compute downstream variables, and schedule the next value to be\n // pulled from the generator at the start of the next animation frame. If not\n // successful, reject the variable, compute downstream variables, and return.\n function recompute() {\n const promise = compute((value) => {\n if (variable._version !== version) throw variable_stale;\n currentValue = value;\n postcompute(value, promise).then(() => runtime._precompute(recompute));\n variable._fulfilled(value);\n return value;\n });\n promise.catch((error) => {\n if (error === variable_stale || variable._version !== version) return;\n postcompute(undefined, promise);\n variable._rejected(error);\n });\n }\n\n // After the generator fulfills or rejects, set its current value, promise,\n // and schedule any downstream variables for update.\n function postcompute(value, promise) {\n variable._value = value;\n variable._promise = promise;\n variable._outputs.forEach(runtime._updates.add, runtime._updates);\n return runtime._compute();\n }\n\n // When retrieving the first value from the generator, the promise graph is\n // already established, so we only need to queue the next pull.\n return compute((value) => {\n if (variable._version !== version) throw variable_stale;\n currentValue = value;\n runtime._precompute(recompute);\n return value;\n });\n}\n\nfunction variable_error(variable, error) {\n variable._invalidate();\n variable._invalidate = noop;\n variable._pending();\n ++variable._version;\n variable._indegree = NaN;\n (variable._promise = Promise.reject(error)).catch(noop);\n variable._value = undefined;\n variable._rejected(error);\n}\n\nfunction variable_return(generator) {\n return function() {\n generator.return();\n };\n}\n\nfunction variable_reachable(variable) {\n if (variable._observer !== no_observer) return true; // Directly reachable.\n const outputs = new Set(variable._outputs);\n for (const output of outputs) {\n if (output._observer !== no_observer) return true;\n output._outputs.forEach(outputs.add, outputs);\n }\n return false;\n}\n\nfunction window_global(name) {\n return globalThis[name];\n}\n","export default function dispatch(node, type, detail) {\n detail = detail || {};\n var document = node.ownerDocument, event = document.defaultView.CustomEvent;\n if (typeof event === \"function\") {\n event = new event(type, {detail: detail});\n } else {\n event = document.createEvent(\"Event\");\n event.initEvent(type, false, false);\n event.detail = detail;\n }\n node.dispatchEvent(event);\n}\n","// TODO https://twitter.com/mbostock/status/702737065121742848\nexport function isarray(value) {\n return Array.isArray(value)\n || value instanceof Int8Array\n || value instanceof Int16Array\n || value instanceof Int32Array\n || value instanceof Uint8Array\n || value instanceof Uint8ClampedArray\n || value instanceof Uint16Array\n || value instanceof Uint32Array\n || value instanceof Float32Array\n || value instanceof Float64Array;\n}\n\n// Non-integer keys in arrays, e.g. [1, 2, 0.5: \"value\"].\nexport function isindex(key) {\n return key === (key | 0) + \"\";\n}\n","export default function inspectName(name) {\n const n = document.createElement(\"span\");\n n.className = \"observablehq--cellname\";\n n.textContent = `${name} = `;\n return n;\n}\n","const symbolToString = Symbol.prototype.toString;\n\n// Symbols do not coerce to strings; they must be explicitly converted.\nexport default function formatSymbol(symbol) {\n return symbolToString.call(symbol);\n}\n","const {getOwnPropertySymbols, prototype: {hasOwnProperty}} = Object;\nconst {toStringTag} = Symbol;\n\nexport const FORBIDDEN = {};\n\nexport const symbolsof = getOwnPropertySymbols;\n\nexport function isown(object, key) {\n return hasOwnProperty.call(object, key);\n}\n\nexport function tagof(object) {\n return object[toStringTag]\n || (object.constructor && object.constructor.name)\n || \"Object\";\n}\n\nexport function valueof(object, key) {\n try {\n const value = object[key];\n if (value) value.constructor; // Test for SecurityError.\n return value;\n } catch (ignore) {\n return FORBIDDEN;\n }\n}\n","const SYMBOLS = [\n { symbol: \"@@__IMMUTABLE_INDEXED__@@\", name: \"Indexed\", modifier: true },\n { symbol: \"@@__IMMUTABLE_KEYED__@@\", name: \"Keyed\", modifier: true },\n { symbol: \"@@__IMMUTABLE_LIST__@@\", name: \"List\", arrayish: true },\n { symbol: \"@@__IMMUTABLE_MAP__@@\", name: \"Map\" },\n {\n symbol: \"@@__IMMUTABLE_ORDERED__@@\",\n name: \"Ordered\",\n modifier: true,\n prefix: true\n },\n { symbol: \"@@__IMMUTABLE_RECORD__@@\", name: \"Record\" },\n {\n symbol: \"@@__IMMUTABLE_SET__@@\",\n name: \"Set\",\n arrayish: true,\n setish: true\n },\n { symbol: \"@@__IMMUTABLE_STACK__@@\", name: \"Stack\", arrayish: true }\n];\n\nexport function immutableName(obj) {\n try {\n let symbols = SYMBOLS.filter(({ symbol }) => obj[symbol] === true);\n if (!symbols.length) return;\n\n const name = symbols.find(s => !s.modifier);\n const prefix =\n name.name === \"Map\" && symbols.find(s => s.modifier && s.prefix);\n\n const arrayish = symbols.some(s => s.arrayish);\n const setish = symbols.some(s => s.setish);\n\n return {\n name: `${prefix ? prefix.name : \"\"}${name.name}`,\n symbols,\n arrayish: arrayish && !setish,\n setish\n };\n } catch (e) {\n return null;\n }\n}\n","import dispatch from \"./dispatch.js\";\nimport inspectName from \"./inspectName.js\";\nimport {isarray, isindex} from \"./array.js\";\nimport inspectCollapsed from \"./collapsed.js\";\nimport formatSymbol from \"./formatSymbol.js\";\nimport {inspect, replace} from \"./inspect.js\";\nimport {isown, symbolsof, tagof, valueof} from \"./object.js\";\nimport {immutableName} from \"./immutable.js\";\n\nconst {getPrototypeOf, getOwnPropertyDescriptors} = Object;\nconst objectPrototype = getPrototypeOf({});\n\nexport default function inspectExpanded(object, _, name, proto) {\n let arrayish = isarray(object);\n let tag, fields, next, n;\n\n if (object instanceof Map) {\n if (object instanceof object.constructor) {\n tag = `Map(${object.size})`;\n fields = iterateMap;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Map()\";\n fields = iterateObject;\n }\n } else if (object instanceof Set) {\n if (object instanceof object.constructor) {\n tag = `Set(${object.size})`;\n fields = iterateSet;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Set()\";\n fields = iterateObject;\n }\n } else if (arrayish) {\n tag = `${object.constructor.name}(${object.length})`;\n fields = iterateArray;\n } else if ((n = immutableName(object))) {\n tag = `Immutable.${n.name}${n.name === \"Record\" ? \"\" : `(${object.size})`}`;\n arrayish = n.arrayish;\n fields = n.arrayish\n ? iterateImArray\n : n.setish\n ? iterateImSet\n : iterateImObject;\n } else if (proto) {\n tag = tagof(object);\n fields = iterateProto;\n } else {\n tag = tagof(object);\n fields = iterateObject;\n }\n\n const span = document.createElement(\"span\");\n span.className = \"observablehq--expanded\";\n if (name) {\n span.appendChild(inspectName(name));\n }\n const a = span.appendChild(document.createElement(\"a\"));\n a.innerHTML = `<svg width=8 height=8 class='observablehq--caret'>\n <path d='M4 7L0 1h8z' fill='currentColor' />\n </svg>`;\n a.appendChild(document.createTextNode(`${tag}${arrayish ? \" [\" : \" {\"}`));\n a.addEventListener(\"mouseup\", function(event) {\n event.stopPropagation();\n replace(span, inspectCollapsed(object, null, name, proto));\n });\n\n fields = fields(object);\n for (let i = 0; !(next = fields.next()).done && i < 20; ++i) {\n span.appendChild(next.value);\n }\n\n if (!next.done) {\n const a = span.appendChild(document.createElement(\"a\"));\n a.className = \"observablehq--field\";\n a.style.display = \"block\";\n a.appendChild(document.createTextNode(` … more`));\n a.addEventListener(\"mouseup\", function(event) {\n event.stopPropagation();\n span.insertBefore(next.value, span.lastChild.previousSibling);\n for (let i = 0; !(next = fields.next()).done && i < 19; ++i) {\n span.insertBefore(next.value, span.lastChild.previousSibling);\n }\n if (next.done) span.removeChild(span.lastChild.previousSibling);\n dispatch(span, \"load\");\n });\n }\n\n span.appendChild(document.createTextNode(arrayish ? \"]\" : \"}\"));\n\n return span;\n}\n\nfunction* iterateMap(map) {\n for (const [key, value] of map) {\n yield formatMapField(key, value);\n }\n yield* iterateObject(map);\n}\n\nfunction* iterateSet(set) {\n for (const value of set) {\n yield formatSetField(value);\n }\n yield* iterateObject(set);\n}\n\nfunction* iterateImSet(set) {\n for (const value of set) {\n yield formatSetField(value);\n }\n}\n\nfunction* iterateArray(array) {\n for (let i = 0, n = array.length; i < n; ++i) {\n if (i in array) {\n yield formatField(i, valueof(array, i), \"observablehq--index\");\n }\n }\n for (const key in array) {\n if (!isindex(key) && isown(array, key)) {\n yield formatField(key, valueof(array, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(array)) {\n yield formatField(\n formatSymbol(symbol),\n valueof(array, symbol),\n \"observablehq--symbol\"\n );\n }\n}\n\nfunction* iterateImArray(array) {\n let i1 = 0;\n for (const n = array.size; i1 < n; ++i1) {\n yield formatField(i1, array.get(i1), true);\n }\n}\n\nfunction* iterateProto(object) {\n for (const key in getOwnPropertyDescriptors(object)) {\n yield formatField(key, valueof(object, key), \"observablehq--key\");\n }\n for (const symbol of symbolsof(object)) {\n yield formatField(\n formatSymbol(symbol),\n valueof(object, symbol),\n \"observablehq--symbol\"\n );\n }\n\n const proto = getPrototypeOf(object);\n if (proto && proto !== objectPrototype) {\n yield formatPrototype(proto);\n }\n}\n\nfunction* iterateObject(object) {\n for (const key in object) {\n if (isown(object, key)) {\n yield formatField(key, valueof(object, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(object)) {\n yield formatField(\n formatSymbol(symbol),\n valueof(object, symbol),\n \"observablehq--symbol\"\n );\n }\n\n const proto = getPrototypeOf(object);\n if (proto && proto !== objectPrototype) {\n yield formatPrototype(proto);\n }\n}\n\nfunction* iterateImObject(object) {\n for (const [key, value] of object) {\n yield formatField(key, value, \"observablehq--key\");\n }\n}\n\nfunction formatPrototype(value) {\n const item = document.createElement(\"div\");\n const span = item.appendChild(document.createElement(\"span\"));\n item.className = \"observablehq--field\";\n span.className = \"observablehq--prototype-key\";\n span.textContent = ` <prototype>`;\n item.appendChild(document.createTextNode(\": \"));\n item.appendChild(inspect(value, undefined, undefined, undefined, true));\n return item;\n}\n\nfunction formatField(key, value, className) {\n const item = document.createElement(\"div\");\n const span = item.appendChild(document.createElement(\"span\"));\n item.className = \"observablehq--field\";\n span.className = className;\n span.textContent = ` ${key}`;\n item.appendChild(document.createTextNode(\": \"));\n item.appendChild(inspect(value));\n return item;\n}\n\nfunction formatMapField(key, value) {\n const item = document.createElement(\"div\");\n item.className = \"observablehq--field\";\n item.appendChild(document.createTextNode(\" \"));\n item.appendChild(inspect(key));\n item.appendChild(document.createTextNode(\" => \"));\n item.appendChild(inspect(value));\n return item;\n}\n\nfunction formatSetField(value) {\n const item = document.createElement(\"div\");\n item.className = \"observablehq--field\";\n item.appendChild(document.createTextNode(\" \"));\n item.appendChild(inspect(value));\n return item;\n}\n","import {isarray, isindex} from \"./array.js\";\nimport inspectExpanded from \"./expanded.js\";\nimport formatSymbol from \"./formatSymbol.js\";\nimport inspectName from \"./inspectName.js\";\nimport {inspect, replace} from \"./inspect.js\";\nimport {isown, symbolsof, tagof, valueof} from \"./object.js\";\nimport {immutableName} from \"./immutable.js\";\n\nfunction hasSelection(elem) {\n const sel = window.getSelection();\n return (\n sel.type === \"Range\" &&\n (sel.containsNode(elem, true) ||\n elem.contains(sel.anchorNode) ||\n elem.contains(sel.focusNode))\n );\n}\n\nexport default function inspectCollapsed(object, shallow, name, proto) {\n let arrayish = isarray(object);\n let tag, fields, next, n;\n\n if (object instanceof Map) {\n if (object instanceof object.constructor) {\n tag = `Map(${object.size})`;\n fields = iterateMap;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Map()\";\n fields = iterateObject;\n }\n } else if (object instanceof Set) {\n if (object instanceof object.constructor) {\n tag = `Set(${object.size})`;\n fields = iterateSet;\n } else { // avoid incompatible receiver error for prototype\n tag = \"Set()\";\n fields = iterateObject;\n }\n } else if (arrayish) {\n tag = `${object.constructor.name}(${object.length})`;\n fields = iterateArray;\n } else if ((n = immutableName(object))) {\n tag = `Immutable.${n.name}${n.name === 'Record' ? '' : `(${object.size})`}`;\n arrayish = n.arrayish;\n fields = n.arrayish ? iterateImArray : n.setish ? iterateImSet : iterateImObject;\n } else {\n tag = tagof(object);\n fields = iterateObject;\n }\n\n if (shallow) {\n const span = document.createElement(\"span\");\n span.className = \"observablehq--shallow\";\n if (name) {\n span.appendChild(inspectName(name));\n }\n span.appendChild(document.createTextNode(tag));\n span.addEventListener(\"mouseup\", function(event) {\n if (hasSelection(span)) return;\n event.stopPropagation();\n replace(span, inspectCollapsed(object));\n });\n return span;\n }\n\n const span = document.createElement(\"span\");\n span.className = \"observablehq--collapsed\";\n if (name) {\n span.appendChild(inspectName(name));\n }\n const a = span.appendChild(document.createElement(\"a\"));\n a.innerHTML = `<svg width=8 height=8 class='observablehq--caret'>\n <path d='M7 4L1 8V0z' fill='currentColor' />\n </svg>`;\n a.appendChild(document.createTextNode(`${tag}${arrayish ? \" [\" : \" {\"}`));\n span.addEventListener(\"mouseup\", function(event) {\n if (hasSelection(span)) return;\n event.stopPropagation();\n replace(span, inspectExpanded(object, null, name, proto));\n }, true);\n\n fields = fields(object);\n for (let i = 0; !(next = fields.next()).done && i < 20; ++i) {\n if (i > 0) span.appendChild(document.createTextNode(\", \"));\n span.appendChild(next.value);\n }\n\n if (!next.done) span.appendChild(document.createTextNode(\", …\"));\n span.appendChild(document.createTextNode(arrayish ? \"]\" : \"}\"));\n\n return span;\n}\n\nfunction* iterateMap(map) {\n for (const [key, value] of map) {\n yield formatMapField(key, value);\n }\n yield* iterateObject(map);\n}\n\nfunction* iterateSet(set) {\n for (const value of set) {\n yield inspect(value, true);\n }\n yield* iterateObject(set);\n}\n\nfunction* iterateImSet(set) {\n for (const value of set) {\n yield inspect(value, true);\n }\n}\n\nfunction* iterateImArray(array) {\n let i0 = -1, i1 = 0;\n for (const n = array.size; i1 < n; ++i1) {\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n yield inspect(array.get(i1), true);\n i0 = i1;\n }\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n}\n\nfunction* iterateArray(array) {\n let i0 = -1, i1 = 0;\n for (const n = array.length; i1 < n; ++i1) {\n if (i1 in array) {\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n yield inspect(valueof(array, i1), true);\n i0 = i1;\n }\n }\n if (i1 > i0 + 1) yield formatEmpty(i1 - i0 - 1);\n for (const key in array) {\n if (!isindex(key) && isown(array, key)) {\n yield formatField(key, valueof(array, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(array)) {\n yield formatField(formatSymbol(symbol), valueof(array, symbol), \"observablehq--symbol\");\n }\n}\n\nfunction* iterateObject(object) {\n for (const key in object) {\n if (isown(object, key)) {\n yield formatField(key, valueof(object, key), \"observablehq--key\");\n }\n }\n for (const symbol of symbolsof(object)) {\n yield formatField(formatSymbol(symbol), valueof(object, symbol), \"observablehq--symbol\");\n }\n}\n\nfunction* iterateImObject(object) {\n for (const [key, value] of object) {\n yield formatField(key, value, \"observablehq--key\");\n }\n}\n\nfunction formatEmpty(e) {\n const span = document.createElement(\"span\");\n span.className = \"observablehq--empty\";\n span.textContent = e === 1 ? \"empty\" : `empty × ${e}`;\n return span;\n}\n\nfunction formatField(key, value, className) {\n const fragment = document.createDocumentFragment();\n const span = fragment.appendChild(document.createElement(\"span\"));\n span.className = className;\n span.textContent = key;\n fragment.appendChild(document.createTextNode(\": \"));\n fragment.appendChild(inspect(value, true));\n return fragment;\n}\n\nfunction formatMapField(key, value) {\n const fragment = document.createDocumentFragment();\n fragment.appendChild(inspect(key, true));\n fragment.appendChild(document.createTextNode(\" => \"));\n fragment.appendChild(inspect(value, true));\n return fragment;\n}\n","export default function format(date, fallback) {\n if (!(date instanceof Date)) date = new Date(+date);\n if (isNaN(date)) return typeof fallback === \"function\" ? fallback(date) : fallback;\n const hours = date.getUTCHours();\n const minutes = date.getUTCMinutes();\n const seconds = date.getUTCSeconds();\n const milliseconds = date.getUTCMilliseconds();\n return `${formatYear(date.getUTCFullYear(), 4)}-${pad(date.getUTCMonth() + 1, 2)}-${pad(date.getUTCDate(), 2)}${\n hours || minutes || seconds || milliseconds ? `T${pad(hours, 2)}:${pad(minutes, 2)}${\n seconds || milliseconds ? `:${pad(seconds, 2)}${\n milliseconds ? `.${pad(milliseconds, 3)}` : ``\n }` : ``\n }Z` : ``\n }`;\n}\n\nfunction formatYear(year) {\n return year < 0 ? `-${pad(-year, 6)}`\n : year > 9999 ? `+${pad(year, 6)}`\n : pad(year, 4);\n}\n\nfunction pad(value, width) {\n return `${value}`.padStart(width, \"0\");\n}\n","import {format} from \"isoformat\";\n\nexport default function formatDate(date) {\n return format(date, \"Invalid Date\");\n}\n","var errorToString = Error.prototype.toString;\n\nexport default function formatError(value) {\n return value.stack || errorToString.call(value);\n}\n","var regExpToString = RegExp.prototype.toString;\n\nexport default function formatRegExp(value) {\n return regExpToString.call(value);\n}\n","import inspectName from \"./inspectName.js\";\nimport {inspect, replace} from \"./inspect.js\";\n\n/* eslint-disable no-control-regex */\nconst NEWLINE_LIMIT = 20;\n\nexport default function formatString(string, shallow, expanded, name) {\n if (shallow === false) {\n // String has fewer escapes displayed with double quotes\n if (count(string, /[\"\\n]/g) <= count(string, /`|\\${/g)) {\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const textValue = span.appendChild(document.createElement(\"span\"));\n textValue.className = \"observablehq--string\";\n textValue.textContent = JSON.stringify(string);\n return span;\n }\n const lines = string.split(\"\\n\");\n if (lines.length > NEWLINE_LIMIT && !expanded) {\n const div = document.createElement(\"div\");\n if (name) div.appendChild(inspectName(name));\n const textValue = div.appendChild(document.createElement(\"span\"));\n textValue.className = \"observablehq--string\";\n textValue.textContent = \"`\" + templatify(lines.slice(0, NEWLINE_LIMIT).join(\"\\n\"));\n const splitter = div.appendChild(document.createElement(\"span\"));\n const truncatedCount = lines.length - NEWLINE_LIMIT;\n splitter.textContent = `Show ${truncatedCount} truncated line${truncatedCount > 1 ? \"s\": \"\"}`; splitter.className = \"observablehq--string-expand\";\n splitter.addEventListener(\"mouseup\", function (event) {\n event.stopPropagation();\n replace(div, inspect(string, shallow, true, name));\n });\n return div;\n }\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const textValue = span.appendChild(document.createElement(\"span\"));\n textValue.className = `observablehq--string${expanded ? \" observablehq--expanded\" : \"\"}`;\n textValue.textContent = \"`\" + templatify(string) + \"`\";\n return span;\n }\n\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const textValue = span.appendChild(document.createElement(\"span\"));\n textValue.className = \"observablehq--string\";\n textValue.textContent = JSON.stringify(string.length > 100 ?\n `${string.slice(0, 50)}…${string.slice(-49)}` : string);\n return span;\n}\n\nfunction templatify(string) {\n return string.replace(/[\\\\`\\x00-\\x09\\x0b-\\x19]|\\${/g, templatifyChar);\n}\n\nfunction templatifyChar(char) {\n var code = char.charCodeAt(0);\n switch (code) {\n case 0x8: return \"\\\\b\";\n case 0x9: return \"\\\\t\";\n case 0xb: return \"\\\\v\";\n case 0xc: return \"\\\\f\";\n case 0xd: return \"\\\\r\";\n }\n return code < 0x10 ? \"\\\\x0\" + code.toString(16)\n : code < 0x20 ? \"\\\\x\" + code.toString(16)\n : \"\\\\\" + char;\n}\n\nfunction count(string, re) {\n var n = 0;\n while (re.exec(string)) ++n;\n return n;\n}\n","import inspectName from \"./inspectName.js\";\nvar toString = Function.prototype.toString,\n TYPE_ASYNC = {prefix: \"async ƒ\"},\n TYPE_ASYNC_GENERATOR = {prefix: \"async ƒ*\"},\n TYPE_CLASS = {prefix: \"class\"},\n TYPE_FUNCTION = {prefix: \"ƒ\"},\n TYPE_GENERATOR = {prefix: \"ƒ*\"};\n\nexport default function inspectFunction(f, name) {\n var type, m, t = toString.call(f);\n\n switch (f.constructor && f.constructor.name) {\n case \"AsyncFunction\": type = TYPE_ASYNC; break;\n case \"AsyncGeneratorFunction\": type = TYPE_ASYNC_GENERATOR; break;\n case \"GeneratorFunction\": type = TYPE_GENERATOR; break;\n default: type = /^class\\b/.test(t) ? TYPE_CLASS : TYPE_FUNCTION; break;\n }\n\n // A class, possibly named.\n // class Name\n if (type === TYPE_CLASS) {\n return formatFunction(type, \"\", name);\n }\n\n // An arrow function with a single argument.\n // foo =>\n // async foo =>\n if ((m = /^(?:async\\s*)?(\\w+)\\s*=>/.exec(t))) {\n return formatFunction(type, \"(\" + m[1] + \")\", name);\n }\n\n // An arrow function with parenthesized arguments.\n // (…)\n // async (…)\n if ((m = /^(?:async\\s*)?\\(\\s*(\\w+(?:\\s*,\\s*\\w+)*)?\\s*\\)/.exec(t))) {\n return formatFunction(type, m[1] ? \"(\" + m[1].replace(/\\s*,\\s*/g, \", \") + \")\" : \"()\", name);\n }\n\n // A function, possibly: async, generator, anonymous, simply arguments.\n // function name(…)\n // function* name(…)\n // async function name(…)\n // async function* name(…)\n if ((m = /^(?:async\\s*)?function(?:\\s*\\*)?(?:\\s*\\w+)?\\s*\\(\\s*(\\w+(?:\\s*,\\s*\\w+)*)?\\s*\\)/.exec(t))) {\n return formatFunction(type, m[1] ? \"(\" + m[1].replace(/\\s*,\\s*/g, \", \") + \")\" : \"()\", name);\n }\n\n // Something else, like destructuring, comments or default values.\n return formatFunction(type, \"(…)\", name);\n}\n\nfunction formatFunction(type, args, cellname) {\n var span = document.createElement(\"span\");\n span.className = \"observablehq--function\";\n if (cellname) {\n span.appendChild(inspectName(cellname));\n }\n var spanType = span.appendChild(document.createElement(\"span\"));\n spanType.className = \"observablehq--keyword\";\n spanType.textContent = type.prefix;\n span.appendChild(document.createTextNode(args));\n return span;\n}\n","import dispatch from \"./dispatch.js\";\nimport inspectCollapsed from \"./collapsed.js\";\nimport inspectExpanded from \"./expanded.js\";\nimport inspectName from \"./inspectName.js\";\nimport formatDate from \"./formatDate.js\";\nimport formatError from \"./formatError.js\";\nimport formatRegExp from \"./formatRegExp.js\";\nimport formatString from \"./formatString.js\";\nimport formatSymbol from \"./formatSymbol.js\";\nimport inspectFunction from \"./inspectFunction.js\";\nimport {FORBIDDEN} from \"./object.js\";\n\nconst {prototype: {toString}} = Object;\n\nexport function inspect(value, shallow, expand, name, proto) {\n let type = typeof value;\n switch (type) {\n case \"boolean\":\n case \"undefined\": { value += \"\"; break; }\n case \"number\": { value = value === 0 && 1 / value < 0 ? \"-0\" : value + \"\"; break; }\n case \"bigint\": { value = value + \"n\"; break; }\n case \"symbol\": { value = formatSymbol(value, name); break; }\n case \"function\": { return inspectFunction(value, name); }\n case \"string\": { return formatString(value, shallow, expand, name); }\n default: {\n if (value === null) { type = null, value = \"null\"; break; }\n if (value instanceof Date) { type = \"date\", value = formatDate(value, name); break; }\n if (value === FORBIDDEN) { type = \"forbidden\", value = \"[forbidden]\"; break; }\n switch (toString.call(value)) {\n case \"[object RegExp]\": { type = \"regexp\", value = formatRegExp(value, name); break; }\n case \"[object Error]\": // https://github.com/lodash/lodash/blob/master/isError.js#L26\n case \"[object DOMException]\": { type = \"error\", value = formatError(value, name); break; }\n default: return (expand ? inspectExpanded : inspectCollapsed)(value, shallow, name, proto);\n }\n break;\n }\n }\n const span = document.createElement(\"span\");\n if (name) span.appendChild(inspectName(name));\n const n = span.appendChild(document.createElement(\"span\"));\n n.className = `observablehq--${type}`;\n n.textContent = value;\n return span;\n}\n\nexport function replace(spanOld, spanNew) {\n if (spanOld.classList.contains(\"observablehq--inspect\")) spanNew.classList.add(\"observablehq--inspect\");\n spanOld.parentNode.replaceChild(spanNew, spanOld);\n dispatch(spanNew, \"load\");\n}\n","import dispatch from \"./dispatch.js\";\nimport {inspect} from \"./inspect.js\";\nimport inspectName from \"./inspectName.js\";\n\nconst LOCATION_MATCH = /\\s+\\(\\d+:\\d+\\)$/m;\n\nexport class Inspector {\n constructor(node) {\n if (!node) throw new Error(\"invalid node\");\n this._node = node;\n node.classList.add(\"observablehq\");\n }\n pending() {\n const {_node} = this;\n _node.classList.remove(\"observablehq--error\");\n _node.classList.add(\"observablehq--running\");\n }\n fulfilled(value, name) {\n const {_node} = this;\n if (!isnode(value) || (value.parentNode && value.parentNode !== _node)) {\n value = inspect(value, false, _node.firstChild // TODO Do this better.\n && _node.firstChild.classList\n && _node.firstChild.classList.contains(\"observablehq--expanded\"), name);\n value.classList.add(\"observablehq--inspect\");\n }\n _node.classList.remove(\"observablehq--running\", \"observablehq--error\");\n if (_node.firstChild !== value) {\n if (_node.firstChild) {\n while (_node.lastChild !== _node.firstChild) _node.removeChild(_node.lastChild);\n _node.replaceChild(value, _node.firstChild);\n } else {\n _node.appendChild(value);\n }\n }\n dispatch(_node, \"update\");\n }\n rejected(error, name) {\n const {_node} = this;\n _node.classList.remove(\"observablehq--running\");\n _node.classList.add(\"observablehq--error\");\n while (_node.lastChild) _node.removeChild(_node.lastChild);\n var div = document.createElement(\"div\");\n div.className = \"observablehq--inspect\";\n if (name) div.appendChild(inspectName(name));\n div.appendChild(document.createTextNode((error + \"\").replace(LOCATION_MATCH, \"\")));\n _node.appendChild(div);\n dispatch(_node, \"error\", {error: error});\n }\n}\n\nInspector.into = function(container) {\n if (typeof container === \"string\") {\n container = document.querySelector(container);\n if (container == null) throw new Error(\"container not found\");\n }\n return function() {\n return new Inspector(container.appendChild(document.createElement(\"div\")));\n };\n};\n\n// Returns true if the given value is something that should be added to the DOM\n// by the inspector, rather than being inspected. This deliberately excludes\n// DocumentFragment since appending a fragment “dissolves” (mutates) the\n// fragment, and we wish for the inspector to not have side-effects. Also,\n// HTMLElement.prototype is an instanceof Element, but not an element!\nfunction isnode(value) {\n return (value instanceof Element || value instanceof Text)\n && (value instanceof value.constructor);\n}\n","import { Inspector } from \"@observablehq/inspector\";\nexport function inspect(value, expanded) {\n const node = document.createElement(\"div\");\n new Inspector(node).fulfilled(value); // TODO name?\n if (expanded) {\n for (const path of expanded) {\n let child = node;\n for (const i of path)\n child = child?.childNodes[i];\n child?.dispatchEvent(new Event(\"mouseup\")); // restore expanded state\n }\n }\n return node;\n}\nexport function inspectError(value) {\n const node = document.createElement(\"div\");\n new Inspector(node).rejected(value);\n return node;\n}\nexport function getExpanded(node) {\n if (!isInspector(node))\n return;\n const expanded = node.querySelectorAll(\".observablehq--expanded\");\n if (expanded.length)\n return Array.from(expanded, (e) => getNodePath(node, e));\n}\nfunction isElement(node) {\n return node.nodeType === 1;\n}\nfunction isInspector(node) {\n return isElement(node) && node.classList.contains(\"observablehq\");\n}\nfunction getNodePath(node, descendant) {\n const path = [];\n while (descendant !== node) {\n path.push(getChildIndex(descendant));\n descendant = descendant.parentNode;\n }\n return path.reverse();\n}\nfunction getChildIndex(node) {\n return Array.prototype.indexOf.call(node.parentNode.childNodes, node);\n}\n","const SRC_SELECTOR = [\n \"audio source[src]\", // audio\n \"audio[src]\", // audio\n \"img[src]\", // images\n \"picture source[src]\", // images\n \"video source[src]\", // videos\n \"video[src]\" // videos\n].join();\nconst SRCSET_SELECTOR = [\n \"img[srcset]\", // images\n \"picture source[srcset]\" // images\n].join();\nconst HREF_SELECTOR = [\n \"a[href][download]\", // download links\n \"link[href]\" // stylesheets\n].join();\nconst ASSET_ATTRIBUTES = [\n [SRC_SELECTOR, \"src\"],\n [SRCSET_SELECTOR, \"srcset\"],\n [HREF_SELECTOR, \"href\"]\n];\n/** Populates the asset keys from the specified root. */\nexport function collectAssets(assets, root) {\n for (const [selector, name] of ASSET_ATTRIBUTES) {\n for (const element of root.querySelectorAll(selector)) {\n if (isRelExternal(element))\n continue;\n const source = decodeURI(element.getAttribute(name));\n if (name === \"srcset\") {\n for (const s of parseSrcset(source)) {\n if (isSourcePath(s)) {\n assets.add(asImportPath(s));\n }\n }\n }\n else if (isSourcePath(source)) {\n assets.add(asImportPath(source));\n }\n }\n }\n}\n/** Mutates the specified root to apply the specified asset mapping. */\nexport function mapAssets(root, assets) {\n const resolve = (s) => assets.get(asImportPath(s)) ?? s;\n for (const [selector, src] of ASSET_ATTRIBUTES) {\n for (const element of root.querySelectorAll(selector)) {\n if (isRelExternal(element))\n continue;\n const source = decodeURI(element.getAttribute(src));\n if (src === \"srcset\")\n element.setAttribute(src, resolveSrcset(source, resolve));\n else\n element.setAttribute(src, resolve(source));\n }\n }\n}\n/** Returns true if the specified element has rel=external. */\nfunction isRelExternal(a) {\n return /(?:^|\\s)external(?:\\s|$)/i.test(a.getAttribute(\"rel\") ?? \"\"); // e.g., <a href rel=\"external\">\n}\n/** Strips the query string and anchor fragment from the specified source. */\nfunction asPath(source) {\n const i = source.indexOf(\"?\");\n const j = source.indexOf(\"#\");\n const k = i >= 0 && j >= 0 ? Math.min(i, j) : i >= 0 ? i : j;\n return k >= 0 ? source.slice(0, k) : source; // strip query string or anchor fragment\n}\n/** Converts the specified source into an import path, typically with ./. */\nfunction asImportPath(source) {\n const path = asPath(source);\n return isImportPath(path) ? path : `./${path}`;\n}\n/**\n * Returns true if the specified import specifier is a path, as opposed to a\n * bare module specifier or a URL; import paths start with ./, ../, or /.\n */\nfunction isImportPath(specifier) {\n return [\"./\", \"../\", \"/\"].some((prefix) => specifier.startsWith(prefix));\n}\n/**\n * Returns true if the specified source (such as an img element src attribute)\n * is a path; this is anything that is not empty and does not start with a\n * protocol or a hash.\n */\nfunction isSourcePath(specifier) {\n return asPath(specifier) ? !/^(\\w+:|#)/.test(specifier) : false;\n}\n/** Parses the specified srcset attribute, returning the array of sources. */\nfunction parseSrcset(srcset) {\n return srcset\n .trim()\n .split(/\\s*,\\s*/)\n .filter((src) => src)\n .map((src) => src.split(/\\s+/)[0]);\n}\n/** Resolves the specified srcset attribute, resolving any sources. */\nfunction resolveSrcset(srcset, resolve) {\n return srcset\n .trim()\n .split(/\\s*,\\s*/)\n .filter((src) => src)\n .map((src) => {\n const parts = src.split(/\\s+/);\n const path = resolve(parts[0]);\n if (path)\n parts[0] = encodeURI(path);\n return parts.join(\" \");\n })\n .join(\", \");\n}\n","import { inspect, inspectError, getExpanded } from \"./inspect.js\";\nimport { mapAssets } from \"./stdlib/assets.js\";\nexport function display(state, value) {\n const { root, expanded } = state;\n const node = isDisplayable(value, root) ? value : inspect(value, expanded[root.childNodes.length]); // prettier-ignore\n displayNode(state, node);\n}\nfunction displayNode(state, node) {\n if (node.nodeType === 11) {\n let child;\n while ((child = node.firstChild)) {\n state.root.appendChild(child);\n }\n }\n else {\n state.root.appendChild(node);\n }\n}\nfunction displayError(state, value) {\n displayNode(state, inspectError(value));\n}\n// Note: Element.prototype is instanceof Node, but cannot be inserted! This\n// excludes DocumentFragment since appending a fragment “dissolves” (mutates)\n// the fragment, and we wish for the inspector to not have side-effects.\nfunction isDisplayable(value, root) {\n return ((value instanceof Element || value instanceof Text) &&\n value instanceof value.constructor &&\n (!value.parentNode || root.contains(value)));\n}\nexport function clear(state) {\n state.autoclear = false;\n state.expanded = Array.from(state.root.childNodes, getExpanded);\n while (state.root.lastChild)\n state.root.lastChild.remove();\n}\nexport function observe(state, { autodisplay, assets }) {\n return {\n _error: false,\n _node: state.root, // _node for visibility promise\n pending() {\n if (this._error) {\n this._error = false;\n clear(state);\n }\n },\n fulfilled(value) {\n if (autodisplay) {\n if (assets && value instanceof Element)\n mapAssets(value, assets);\n clear(state);\n display(state, value);\n }\n else if (state.autoclear) {\n clear(state);\n }\n },\n rejected(error) {\n console.error(error);\n this._error = true;\n clear(state);\n displayError(state, error);\n }\n };\n}\n","export async function* observe(initialize) {\n let resolve;\n let value;\n let stale = false;\n const dispose = initialize((x) => {\n value = x;\n if (resolve) {\n resolve(x);\n resolve = undefined;\n }\n else {\n stale = true;\n }\n return x;\n });\n if (dispose != null && typeof dispose !== \"function\") {\n throw new Error(typeof dispose === \"object\" && \"then\" in dispose && typeof dispose.then === \"function\"\n ? \"async initializers are not supported\"\n : \"initializer returned something, but not a dispose function\");\n }\n try {\n while (true) {\n yield stale ? ((stale = false), value) : new Promise((_) => (resolve = _));\n }\n }\n finally {\n if (dispose != null) {\n dispose();\n }\n }\n}\n","import { observe } from \"./observe.js\";\nexport function input(element) {\n return observe((change) => {\n const event = eventof(element);\n const value = valueof(element);\n const inputted = () => change(valueof(element));\n element.addEventListener(event, inputted);\n if (value !== undefined)\n change(value);\n return () => element.removeEventListener(event, inputted);\n });\n}\nfunction valueof(element) {\n const input = element;\n const select = element;\n if (\"type\" in element) {\n switch (element.type) {\n case \"range\":\n case \"number\":\n return input.valueAsNumber;\n case \"date\":\n return input.valueAsDate;\n case \"checkbox\":\n return input.checked;\n case \"file\":\n return input.multiple ? input.files : input.files[0];\n case \"select-multiple\":\n return Array.from(select.selectedOptions, (o) => o.value);\n }\n }\n return input.value;\n}\nfunction eventof(element) {\n if (\"type\" in element) {\n switch (element.type) {\n case \"button\":\n case \"submit\":\n case \"checkbox\":\n return \"click\";\n case \"file\":\n return \"change\";\n }\n }\n return \"input\";\n}\n","export async function* now() {\n while (true) {\n yield Date.now();\n }\n}\n","export async function* queue(initialize) {\n let resolve;\n const values = [];\n const dispose = initialize((x) => {\n values.push(x);\n if (resolve) {\n resolve(values.shift());\n resolve = undefined;\n }\n return x;\n });\n if (dispose != null && typeof dispose !== \"function\") {\n throw new Error(typeof dispose === \"object\" && \"then\" in dispose && typeof dispose.then === \"function\"\n ? \"async initializers are not supported\"\n : \"initializer returned something, but not a dispose function\");\n }\n try {\n while (true) {\n yield values.length ? values.shift() : new Promise((_) => (resolve = _));\n }\n }\n finally {\n if (dispose != null) {\n dispose();\n }\n }\n}\n","import { observe } from \"./observe.js\";\nexport function width(target, options) {\n return observe((notify) => {\n let width;\n const observer = new ResizeObserver(([entry]) => {\n const w = entry.contentRect.width;\n if (w !== width)\n notify((width = w));\n });\n observer.observe(target, options);\n return () => observer.disconnect();\n });\n}\n","import { observe } from \"./generators/observe.js\";\n// Mutable returns a generator with a value getter/setting that allows the\n// generated value to be mutated. Therefore, direct mutation is only allowed\n// within the defining cell, but the cell can also export functions that allows\n// other cells to mutate the value as desired.\nexport function Mutable(value) {\n let change;\n return Object.defineProperty(observe((_) => {\n change = _;\n if (value !== undefined)\n change(value);\n }), \"value\", {\n get: () => value,\n set: (x) => ((value = x), void change?.(value))\n });\n}\nexport function Mutator(value) {\n const mutable = Mutable(value);\n return [\n mutable,\n {\n get value() {\n return mutable.value;\n },\n set value(v) {\n mutable.value = v;\n }\n }\n ];\n}\n","import { clear, display, observe } from \"./display.js\";\nimport { input } from \"./stdlib/generators/index.js\";\nimport { Mutator } from \"./stdlib/mutable.js\";\nexport function define(main, state, definition, observer = observe) {\n const { id, body, inputs = [], outputs = [], output, autodisplay, autoview, automutable } = definition;\n const variables = state.variables;\n const v = main.variable(observer(state, definition), { shadow: {} });\n const vid = output ?? (outputs.length ? `cell ${id}` : null);\n state.autoclear = true;\n if (inputs.includes(\"display\") || inputs.includes(\"view\")) {\n let displayVersion = -1; // the variable._version of currently-displayed values\n const vd = new v.constructor(2, v._module);\n vd.define(inputs.filter((i) => i !== \"display\" && i !== \"view\"), () => {\n const version = v._version; // capture version on input change\n return (value) => {\n if (version < displayVersion)\n throw new Error(\"stale display\");\n else if (state.variables[0] !== v)\n throw new Error(\"stale display\");\n else if (version > displayVersion)\n clear(state);\n displayVersion = version;\n display(state, value);\n return value;\n };\n });\n v._shadow.set(\"display\", vd);\n if (inputs.includes(\"view\")) {\n const vv = new v.constructor(2, v._module, null, { shadow: {} });\n vv._shadow.set(\"display\", vd);\n vv.define([\"display\"], (display) => (value) => input(display(value)));\n v._shadow.set(\"view\", vv);\n }\n }\n else if (!autodisplay) {\n clear(state);\n }\n variables.push(v.define(vid, inputs, body));\n if (output != null) {\n if (autoview) {\n const o = unprefix(output, \"viewof$\");\n variables.push(main.define(o, [output], input));\n }\n else if (automutable) {\n const o = unprefix(output, \"mutable \");\n const x = `cell ${id}`;\n v.define(o, [x], ([mutable]) => mutable); // observe live value\n variables.push(main.define(output, inputs, body), // initial value\n main.define(x, [output], Mutator), main.define(`mutable$${o}`, [x], ([, mutator]) => mutator));\n }\n }\n else {\n for (const o of outputs) {\n variables.push(main.variable(true).define(o, [vid], (exports) => exports[o]));\n }\n }\n}\nfunction unprefix(name, prefix) {\n if (!name.startsWith(prefix))\n throw new Error(`expected ${prefix}: ${name}`);\n return name.slice(prefix.length);\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nconst files = new Map();\n// TODO Enforce that files have been registered; throw error if not found.\nexport const FileAttachment = (name, base = document.baseURI) => {\n const href = new URL(name, base).href;\n let file = files.get(href);\n if (!file) {\n file = new FileAttachmentImpl(href, name.split(\"/\").pop());\n files.set(href, file);\n }\n return file;\n};\nexport function registerFile(name, info, base = location.href) {\n const href = new URL(name, base).href;\n if (info == null) {\n files.delete(href);\n }\n else {\n const { path, mimeType, lastModified, size } = info;\n const file = new FileAttachmentImpl(new URL(path, base).href, name.split(\"/\").pop(), mimeType, lastModified, size);\n files.set(href, file);\n return file;\n }\n}\nasync function fetchFile(file) {\n const response = await fetch(file.href);\n if (!response.ok)\n throw new Error(`Unable to load file: ${file.name}`);\n return response;\n}\nexport class AbstractFile {\n constructor(name, mimeType = guessMimeType(name), lastModified, size) {\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"mimeType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"lastModified\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperties(this, {\n name: { value: `${name}`, enumerable: true },\n mimeType: { value: `${mimeType}`, enumerable: true },\n lastModified: { value: lastModified === undefined ? undefined : +lastModified, enumerable: true }, // prettier-ignore\n size: { value: size === undefined ? undefined : +size, enumerable: true }\n });\n }\n async url() {\n return this.href;\n }\n async blob() {\n return (await fetchFile(this)).blob();\n }\n async arrayBuffer() {\n return (await fetchFile(this)).arrayBuffer();\n }\n async text(encoding) {\n return encoding === undefined\n ? (await fetchFile(this)).text()\n : new TextDecoder(encoding).decode(await this.arrayBuffer());\n }\n async json() {\n return (await fetchFile(this)).json();\n }\n async stream() {\n return (await fetchFile(this)).body;\n }\n async dsv({ delimiter = \",\", array = false, typed = false } = {}) {\n const [text, d3] = await Promise.all([this.text(), import(\"npm:d3-dsv\")]);\n const format = d3.dsvFormat(delimiter);\n const parse = array ? format.parseRows : format.parse;\n return parse(text, typed && d3.autoType);\n }\n async csv(options) {\n return this.dsv({ ...options, delimiter: \",\" });\n }\n async tsv(options) {\n return this.dsv({ ...options, delimiter: \"\\t\" });\n }\n async image(props) {\n const url = await this.url();\n return new Promise((resolve, reject) => {\n const i = new Image();\n if (new URL(url, document.baseURI).origin !== location.origin)\n i.crossOrigin = \"anonymous\";\n Object.assign(i, props);\n i.onload = () => resolve(i);\n i.onerror = () => reject(new Error(`Unable to load file: ${this.name}`));\n i.src = url;\n });\n }\n async arrow() {\n const [Arrow, response] = await Promise.all([import(\"npm:apache-arrow\"), fetchFile(this)]);\n return Arrow.tableFromIPC(response);\n }\n async arquero(options) {\n let request;\n let from;\n switch (this.mimeType) {\n case \"application/json\":\n request = this.text();\n from = \"fromJSON\";\n break;\n // @ts-expect-error fall through\n case \"text/tab-separated-values\":\n if (options?.delimiter === undefined)\n options = { ...options, delimiter: \"\\t\" };\n // fall through\n case \"text/csv\":\n request = this.text();\n from = \"fromCSV\";\n break;\n default:\n if (/\\.arrow$/i.test(this.name)) {\n request = this.arrow();\n from = \"fromArrow\";\n }\n else if (/\\.parquet$/i.test(this.name)) {\n request = this.parquet();\n from = \"fromArrow\";\n }\n else {\n throw new Error(`unable to determine Arquero loader: ${this.name}`);\n }\n break;\n }\n const [aq, body] = await Promise.all([import(\"npm:arquero\"), request]);\n return aq[from](body, options);\n }\n async parquet() {\n const [Arrow, Parquet, buffer] = await Promise.all([import(\"npm:apache-arrow\"), import(\"npm:parquet-wasm\").then(async (Parquet) => (await Parquet.default(\"https://cdn.jsdelivr.net/npm/parquet-wasm/esm/parquet_wasm_bg.wasm\"), Parquet)), this.arrayBuffer()]); // prettier-ignore\n return Arrow.tableFromIPC(Parquet.readParquet(new Uint8Array(buffer)).intoIPCStream());\n }\n async xml(mimeType = \"application/xml\") {\n return new DOMParser().parseFromString(await this.text(), mimeType);\n }\n async html() {\n return this.xml(\"text/html\");\n }\n}\n// TODO Replace this with static analysis of files.\nfunction guessMimeType(name) {\n const i = name.lastIndexOf(\".\");\n const j = name.lastIndexOf(\"/\");\n const extension = i > 0 && (j < 0 || i > j) ? name.slice(i).toLowerCase() : \"\";\n switch (extension) {\n case \".csv\":\n return \"text/csv\";\n case \".tsv\":\n return \"text/tab-separated-values\";\n case \".json\":\n return \"application/json\";\n case \".html\":\n return \"text/html\";\n case \".xml\":\n return \"application/xml\";\n case \".png\":\n return \"image/png\";\n case \".jpg\":\n return \"image/jpg\";\n case \".js\":\n return \"text/javascript\";\n default:\n return \"application/octet-stream\";\n }\n}\nclass FileAttachmentImpl extends AbstractFile {\n constructor(href, name, mimeType, lastModified, size) {\n super(name, mimeType, lastModified, size);\n Object.defineProperty(this, \"href\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"href\", { value: href });\n }\n}\nObject.defineProperty(FileAttachmentImpl, \"name\", { value: \"FileAttachment\" }); // prevent mangling\nFileAttachment.prototype = FileAttachmentImpl.prototype; // instanceof\nexport function fileAttachments(resolve) {\n function FileAttachment(name) {\n const result = resolve((name += \"\"));\n if (result == null)\n throw new Error(`File not found: ${name}`);\n if (typeof result === \"object\" && \"url\" in result) {\n const { url, mimeType } = result;\n return new FileAttachmentImpl(url, name, mimeType);\n }\n return new FileAttachmentImpl(result, name);\n }\n FileAttachment.prototype = FileAttachmentImpl.prototype; // instanceof\n return FileAttachment;\n}\n","export function sluggify(string, { length = 50, fallback = \"untitled\", separator = \"-\" } = {}) {\n const parts = string\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f'‘’]/g, \"\")\n .toLowerCase()\n .split(/\\W+/g)\n .filter(nonempty);\n let i = -1;\n for (let l = 0, n = parts.length; ++i < n;) {\n if ((l += parts[i].length) + i > length) {\n parts[i] = parts[i].substring(0, length - l + parts[i].length - i);\n break;\n }\n }\n return (parts\n .slice(0, i + 1)\n .filter(Boolean)\n .join(separator) || fallback.slice(0, length));\n}\nfunction nonempty(string) {\n return string.length > 0;\n}\n","import { sluggify } from \"./sluggify.js\";\nasync function sha256(input) {\n const encoded = new TextEncoder().encode(input);\n const buffer = await crypto.subtle.digest(\"SHA-256\", encoded);\n return new Uint8Array(buffer).reduce((i, byte) => (i << 8n) | BigInt(byte), 0n);\n}\nfunction base36(int, length) {\n return int.toString(36).padStart(length, \"0\").slice(0, length);\n}\nexport async function hash(strings, ...params) {\n return base36(await sha256(JSON.stringify([strings, ...params])), 16);\n}\nexport async function nameHash(name) {\n return /^[\\w-]+$/.test(name)\n ? name\n : `${sluggify(basename(name))}.${base36(await sha256(name), 8)}`;\n}\nfunction basename(name) {\n return name.replace(/^.*\\//, \"\");\n}\n","import { hash, nameHash } from \"../../lib/hash.js\";\nexport const DatabaseClient = (name, options) => {\n return new DatabaseClientImpl(name, normalizeOptions(options));\n};\nfunction normalizeOptions({ id, since } = {}) {\n const options = {};\n if (id !== undefined)\n options.id = id;\n if (since !== undefined)\n options.since = new Date(since);\n return options;\n}\nclass DatabaseClientImpl {\n constructor(name, options) {\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperties(this, {\n name: { value: name, enumerable: true },\n options: { value: options, enumerable: true }\n });\n }\n async sql(strings, ...params) {\n const path = await this.cachePath(strings, ...params);\n const response = await fetch(path);\n if (!response.ok)\n throw new Error(`failed to fetch: ${path}`);\n return await response.json().then(revive);\n }\n async cachePath(strings, ...params) {\n return `.observable/cache/${await nameHash(this.name)}-${await hash(strings, ...params)}.json`;\n }\n}\nfunction revive({ rows, schema, date, ...meta }) {\n for (const column of schema) {\n switch (column.type) {\n case \"bigint\": {\n const { name } = column;\n for (const row of rows) {\n const value = row[name];\n if (value == null)\n continue;\n row[name] = Number(value); // TODO BigInt?\n }\n break;\n }\n case \"date\": {\n const { name } = column;\n for (const row of rows) {\n const value = row[name];\n if (value == null)\n continue;\n row[name] = asDate(value);\n }\n break;\n }\n }\n }\n if (date != null)\n date = new Date(date);\n return Object.assign(rows, { schema, date }, meta);\n}\nfunction asDate(value) {\n return new Date(/^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}(?::\\d{2})?$/.test(value) ? value + \"Z\" : value);\n}\nDatabaseClient.revive = revive;\nDatabaseClient.prototype = DatabaseClientImpl.prototype; // instanceof\nObject.defineProperty(DatabaseClientImpl, \"name\", { value: \"DatabaseClient\" }); // prevent mangling\n","export function canvas(width, height) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n","export function context2d(width, height, dpi = devicePixelRatio) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = width * dpi;\n canvas.height = height * dpi;\n canvas.style.width = `${width}px`;\n const context = canvas.getContext(\"2d\");\n context.scale(dpi, dpi);\n return context;\n}\n","export function svg(width, height) {\n const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n svg.setAttribute(\"width\", `${width}`);\n svg.setAttribute(\"height\", `${height}`);\n return svg;\n}\n","export function text(value) {\n return document.createTextNode(value);\n}\n","let count = 0;\nexport function uid(name) {\n return new Id(`O-${name == null ? \"\" : `${name}-`}${++count}`);\n}\nclass Id {\n constructor(id) {\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"href\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.id = id;\n this.href = new URL(`#${id}`, location.href).href;\n }\n toString() {\n return `url(${this.href})`;\n }\n}\n","var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Observer_promise;\nexport class Observer {\n constructor() {\n _Observer_promise.set(this, void 0);\n Object.defineProperty(this, \"fulfilled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"rejected\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.next();\n }\n async next() {\n const value = await __classPrivateFieldGet(this, _Observer_promise, \"f\");\n __classPrivateFieldSet(this, _Observer_promise, new Promise((res, rej) => ((this.fulfilled = res), (this.rejected = rej))), \"f\");\n return { done: false, value };\n }\n throw() {\n return { done: true };\n }\n return() {\n return { done: true };\n }\n}\n_Observer_promise = new WeakMap();\n","export const _ = () => import(\"npm:lodash\").then((_) => _.default);\nexport const aq = () => import(\"npm:arquero\");\nexport const Arrow = () => import(\"npm:apache-arrow\");\nexport const d3 = () => import(\"npm:d3\");\nexport const dot = () => import(\"./dot.js\").then((_) => _.dot);\nexport const duckdb = () => import(\"npm:@duckdb/duckdb-wasm\");\nexport const DuckDBClient = () => import(\"./duckdb.js\").then((_) => _.DuckDBClient);\nexport const echarts = () => import(\"npm:echarts\");\nexport const htl = () => import(\"npm:htl\");\nexport const html = () => import(\"npm:htl\").then((_) => _.html);\nexport const svg = () => import(\"npm:htl\").then((_) => _.svg);\nexport const Inputs = () => import(\"./inputs.js\");\nexport const L = () => import(\"./leaflet.js\");\nexport const mapboxgl = () => import(\"./mapboxgl.js\").then((_) => _.default);\nexport const md = () => import(\"./md.js\").then((_) => _.md);\nexport const mermaid = () => import(\"./mermaid.js\").then((_) => _.mermaid);\nexport const Plot = () => import(\"npm:@observablehq/plot\");\nexport const React = () => import(\"npm:react\");\nexport const ReactDOM = () => import(\"npm:react-dom\");\n// export const sql = () => import(\"observablehq:stdlib/duckdb\").then((_) => _.sql);\n// export const SQLite = () => import(\"observablehq:stdlib/sqlite\").then((_) => _.default);\n// export const SQLiteDatabaseClient = () => import(\"observablehq:stdlib/sqlite\").then((_) => _.SQLiteDatabaseClient);\nexport const tex = () => import(\"./tex.js\").then((_) => _.tex);\nexport const topojson = () => import(\"npm:topojson-client\");\n// export const vg = () => import(\"observablehq:stdlib/vgplot\").then((_) => _.default());\nexport const vl = () => import(\"./vega-lite.js\").then((_) => _.vl);\n","require.resolve = resolve;\nexport function require(...specifiers) {\n return specifiers.length === 1\n ? import(/* @vite-ignore */ resolve(specifiers[0]))\n : Promise.all(specifiers.map((s) => require(s))).then((modules) => Object.assign({}, ...modules));\n}\nfunction parseNpmSpecifier(specifier) {\n const parts = specifier.split(\"/\");\n const namerange = specifier.startsWith(\"@\")\n ? [parts.shift(), parts.shift()].join(\"/\")\n : parts.shift();\n const ranged = namerange.indexOf(\"@\", 1);\n const name = ranged > 0 ? namerange.slice(0, ranged) : namerange;\n const range = ranged > 0 ? namerange.slice(ranged) : \"\";\n const path = parts.length > 0 ? `/${parts.join(\"/\")}` : \"\";\n return { name, range, path };\n}\nfunction resolve(_specifier) {\n const specifier = String(_specifier);\n if (isProtocol(specifier) || isLocal(specifier))\n return specifier;\n const { name, range, path } = parseNpmSpecifier(specifier);\n return `https://cdn.jsdelivr.net/npm/${name}${range}${path + (isFile(path) || isDirectory(path) ? \"\" : \"/+esm\")}`;\n}\n/** Returns true for e.g. https://example.com/ */\nfunction isProtocol(specifier) {\n return /^\\w+:/.test(specifier);\n}\n/** Returns true for e.g. ./foo.js */\nfunction isLocal(specifier) {\n return /^(\\.\\/|\\.\\.\\/|\\/)/.test(specifier);\n}\n/** Returns true for e.g. foo/bar.js */\nfunction isFile(specifier) {\n return /(\\.\\w*)$/.test(specifier);\n}\n/** Returns true for e.g. foo/bar/ */\nfunction isDirectory(specifier) {\n return /(\\/)$/.test(specifier);\n}\n","export const aapl = () => csv(dataset(\"aapl.csv\"), true);\nexport const alphabet = () => csv(dataset(\"alphabet.csv\"), true);\nexport const cars = () => csv(dataset(\"cars.csv\"), true);\nexport const citywages = () => csv(dataset(\"citywages.csv\"), true);\nexport const diamonds = () => csv(dataset(\"diamonds.csv\"), true);\nexport const flare = () => csv(dataset(\"flare.csv\"), true);\nexport const industries = () => csv(dataset(\"industries.csv\"), true);\nexport const miserables = () => json(dataset(\"miserables.json\"));\nexport const olympians = () => csv(dataset(\"olympians.csv\"), true);\nexport const penguins = () => csv(dataset(\"penguins.csv\"), true);\nexport const pizza = () => csv(dataset(\"pizza.csv\"), true);\nexport const weather = () => csv(dataset(\"weather.csv\"), true);\nfunction dataset(name) {\n return `https://cdn.jsdelivr.net/npm/@observablehq/sample-datasets/${name}`;\n}\nasync function json(url) {\n const response = await fetch(url);\n if (!response.ok)\n throw new Error(`unable to fetch ${url}: status ${response.status}`);\n return response.json();\n}\nasync function text(url) {\n const response = await fetch(url);\n if (!response.ok)\n throw new Error(`unable to fetch ${url}: status ${response.status}`);\n return response.text();\n}\nasync function csv(url, typed) {\n const [contents, d3] = await Promise.all([text(url), import(\"npm:d3-dsv\")]);\n return d3.csvParse(contents, typed && d3.autoType);\n}\n","import { DatabaseClient } from \"./databaseClient.js\";\nimport * as DOM from \"./dom/index.js\";\nimport { FileAttachment } from \"./fileAttachment.js\";\nimport * as Generators from \"./generators/index.js\";\nimport { Mutable } from \"./mutable.js\";\nimport { Observer } from \"./observer.js\";\nimport * as recommendedLibraries from \"./recommendedLibraries.js\";\nimport { require } from \"./require.js\";\nimport * as sampleDatasets from \"./sampleDatasets.js\";\nexport const root = document.querySelector(\"main\") ?? document.body;\nexport const library = {\n now: () => Generators.now(),\n width: () => Generators.width(root),\n DatabaseClient: () => DatabaseClient,\n FileAttachment: () => FileAttachment,\n Generators: () => Generators,\n Mutable: () => Mutable,\n DOM: () => DOM, // deprecated!\n require: () => require, // deprecated!\n __ojs_observer: () => () => new Observer(),\n ...recommendedLibraries,\n ...sampleDatasets\n};\n","import { Runtime } from \"@observablehq/runtime\";\nimport { define as _define } from \"./define.js\";\nimport { fileAttachments } from \"./stdlib/fileAttachment.js\";\nimport { library } from \"./stdlib/index.js\";\nexport * from \"./display.js\";\nexport * from \"./inspect.js\";\nexport * from \"./stdlib/index.js\";\nexport { DatabaseClient } from \"./stdlib/databaseClient.js\";\nexport { FileAttachment, registerFile } from \"./stdlib/fileAttachment.js\";\nexport class NotebookRuntime {\n constructor(builtins = library) {\n Object.defineProperty(this, \"runtime\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"main\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n const runtime = new Runtime({ ...builtins, __ojs_runtime: () => runtime });\n this.runtime = Object.assign(runtime, { fileAttachments });\n this.main = runtime.module();\n }\n define(state, definition, observer) {\n _define(this.main, state, definition, observer);\n }\n}\nconst defaultNotebook = new NotebookRuntime();\nexport const runtime = defaultNotebook.runtime;\nexport const main = defaultNotebook.main;\nexport const define = defaultNotebook.define.bind(defaultNotebook);\nmain.constructor.prototype.defines = function (name) {\n return (this._scope.has(name) ||\n this._builtins.has(name) ||\n this._runtime._builtin._scope.has(name));\n};\n","import { type DefineState, NotebookRuntime as NotebookRuntimeBase } from \"@observablehq/notebook-kit/runtime\";\nimport { type Definition } from \"./index.ts\";\n\nimport \"@observablehq/notebook-kit/index.css\";\nimport \"@observablehq/notebook-kit/theme-air.css\";\n\nexport class NotebookRuntime extends NotebookRuntimeBase {\n\n stateById = new Map<number, DefineState>();\n\n constructor() {\n super();\n }\n\n has(cellId: number): boolean {\n return this.stateById.has(cellId);\n }\n\n async add(cellId: number, definition: Definition, placeholderDiv: HTMLDivElement): Promise<void> {\n let state: DefineState | undefined = this.stateById.get(cellId);\n if (state) {\n this.remove(cellId);\n }\n state = { root: placeholderDiv, expanded: [], variables: [] };\n this.stateById.set(cellId, state);\n this.define(state, definition);\n await this.runtime._computeNow();\n }\n\n async remove(cellId: number): Promise<void> {\n const state = this.stateById.get(cellId);\n if (!state) return;\n [...state.variables].forEach(v => v.delete());\n this.stateById.delete(cellId);\n state.root?.remove();\n await this.runtime._computeNow();\n }\n\n async removeAll(): Promise<void> {\n const keys = [...this.stateById.keys()];\n for (const key of keys) {\n this.remove(key);\n }\n await this.runtime._computeNow();\n }\n\n render(definitions: Definition[], target: HTMLElement) {\n definitions.forEach(definition => {\n const placeholderDiv = document.createElement(\"div\");\n placeholderDiv.id = `cell-${definition.id}`;\n placeholderDiv.className = \"observablehq observablehq--cell\";\n this.stateById.set(definition.id, { root: placeholderDiv, expanded: [], variables: [] });\n this.define(this.stateById.get(definition.id)!, definition);\n target.appendChild(placeholderDiv);\n });\n }\n}\n"],"names":["input","map","alias","define","queue","variable","resolve","inputs","document","valueof","_","iterateMap","iterateObject","iterateSet","iterateArray","iterateImArray","iterateImSet","iterateImObject","a","formatMapField","formatField","inspect","span","width","count","textValue","toString","root","observe","main","display","text","d3","format","Arrow","aq","Parquet","FileAttachment","canvas","svg","require","Generators.now","Generators.width","_define","NotebookRuntime","NotebookRuntimeBase"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import katex from "https://cdn.jsdelivr.net/npm/katex/+esm";
|
|
4
|
+
const link = document.createElement("link");
|
|
5
|
+
link.href = "https://cdn.jsdelivr.net/npm/katex/dist/katex.min.css";
|
|
6
|
+
link.rel = "stylesheet";
|
|
7
|
+
document.head.appendChild(link);
|
|
8
|
+
const tex = Object.assign(renderer(), {
|
|
9
|
+
options: renderer,
|
|
10
|
+
block: renderer({ displayMode: true })
|
|
11
|
+
});
|
|
12
|
+
function renderer(options) {
|
|
13
|
+
return function(template, ...values) {
|
|
14
|
+
const source = String.raw.call(String, template, ...values);
|
|
15
|
+
const root = document.createElement("div");
|
|
16
|
+
katex.render(source, root, { ...options, output: "html" });
|
|
17
|
+
return root.removeChild(root.firstChild);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
__name(renderer, "renderer");
|
|
21
|
+
export {
|
|
22
|
+
tex
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=tex-ayRXOMLZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tex-ayRXOMLZ.js","sources":["../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/tex.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport katex from \"npm:katex\";\nconst link = document.createElement(\"link\");\nlink.href = \"https://cdn.jsdelivr.net/npm/katex/dist/katex.min.css\";\nlink.rel = \"stylesheet\";\ndocument.head.appendChild(link);\nexport const tex = Object.assign(renderer(), {\n options: renderer,\n block: renderer({ displayMode: true })\n});\nfunction renderer(options) {\n return function (template, ...values) {\n const source = String.raw.call(String, template, ...values);\n const root = document.createElement(\"div\");\n katex.render(source, root, { ...options, output: \"html\" });\n return root.removeChild(root.firstChild);\n };\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,KAAK,OAAO;AACZ,KAAK,MAAM;AACX,SAAS,KAAK,YAAY,IAAI;AAClB,MAAC,MAAM,OAAO,OAAO,YAAY;AAAA,EACzC,SAAS;AAAA,EACT,OAAO,SAAS,EAAE,aAAa,KAAI,CAAE;AACzC,CAAC;AACD,SAAS,SAAS,SAAS;AACvB,SAAO,SAAU,aAAa,QAAQ;AAClC,UAAM,SAAS,OAAO,IAAI,KAAK,QAAQ,UAAU,GAAG,MAAM;AAC1D,UAAM,OAAO,SAAS,cAAc,KAAK;AACzC,UAAM,OAAO,QAAQ,MAAM,EAAE,GAAG,SAAS,QAAQ,QAAQ;AACzD,WAAO,KAAK,YAAY,KAAK,UAAU;AAAA,EAC3C;AACJ;AAPS;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as vega from "https://cdn.jsdelivr.net/npm/vega/+esm";
|
|
2
|
+
import * as vegaLite from "https://cdn.jsdelivr.net/npm/vega-lite/+esm";
|
|
3
|
+
import * as vegaLiteApi from "https://cdn.jsdelivr.net/npm/vega-lite-api/+esm";
|
|
4
|
+
const vl = vegaLiteApi.register(vega, vegaLite);
|
|
5
|
+
export {
|
|
6
|
+
vl
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=vega-lite-CESXoehe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vega-lite-CESXoehe.js","sources":["../../../node_modules/@observablehq/notebook-kit/dist/src/runtime/stdlib/vega-lite.js"],"sourcesContent":["import * as vega from \"npm:vega\";\nimport * as vegaLite from \"npm:vega-lite\";\nimport * as vegaLiteApi from \"npm:vega-lite-api\";\nexport const vl = vegaLiteApi.register(vega, vegaLite);\n"],"names":[],"mappings":";;;AAGY,MAAC,KAAK,YAAY,SAAS,MAAM,QAAQ;","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hpcc-js/observablehq-compiler",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "hpcc-js - ObservableHQ Compiler (unoffical)",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "./dist/index.
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./types/index.d.ts",
|
|
11
|
-
"import": "./dist/index.js"
|
|
12
|
-
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./runtime": {
|
|
14
|
+
"types": "./types/runtime.d.ts",
|
|
15
|
+
"import": "./dist/runtime.js"
|
|
13
16
|
},
|
|
14
17
|
"./dist/*": "./dist/*"
|
|
15
18
|
},
|
|
16
|
-
"browser": "./dist/index.umd.cjs",
|
|
17
19
|
"types": "./types/index.d.ts",
|
|
18
20
|
"files": [
|
|
19
21
|
"dist/*",
|
|
@@ -25,8 +27,11 @@
|
|
|
25
27
|
},
|
|
26
28
|
"scripts": {
|
|
27
29
|
"clean": "rimraf --glob lib* types dist *.tsbuildinfo .turbo",
|
|
28
|
-
"bundle": "
|
|
30
|
+
"bundle-node": "node ./esbuild.js",
|
|
31
|
+
"bundle-browser": "vite build",
|
|
32
|
+
"bundle": "run-s bundle-browser bundle-node",
|
|
29
33
|
"bundle-watch": "vite --port 5514",
|
|
34
|
+
"bundle-preview": "vite preview --outDir /",
|
|
30
35
|
"gen-types": "tsc --project tsconfig.json",
|
|
31
36
|
"gen-types-watch": "npm run gen-types -- --watch",
|
|
32
37
|
"build": "run-p gen-types bundle",
|
|
@@ -43,12 +48,15 @@
|
|
|
43
48
|
"update-major": "npx --yes npm-check-updates -u"
|
|
44
49
|
},
|
|
45
50
|
"dependencies": {
|
|
46
|
-
"
|
|
51
|
+
"jsdom": "26.1.0",
|
|
52
|
+
"yargs": "18.0.0"
|
|
47
53
|
},
|
|
48
54
|
"devDependencies": {
|
|
49
|
-
"@hpcc-js/esbuild-plugins": "^1.
|
|
55
|
+
"@hpcc-js/esbuild-plugins": "^1.5.0",
|
|
56
|
+
"@observablehq/notebook-kit": "1.2.0",
|
|
50
57
|
"@observablehq/parser": "6.1.0",
|
|
51
|
-
"@observablehq/runtime": "5.9.9"
|
|
58
|
+
"@observablehq/runtime": "5.9.9",
|
|
59
|
+
"@types/jsdom": "21.1.7"
|
|
52
60
|
},
|
|
53
61
|
"repository": {
|
|
54
62
|
"type": "git",
|
|
@@ -69,5 +77,5 @@
|
|
|
69
77
|
"url": "https://github.com/hpcc-systems/Visualization/issues"
|
|
70
78
|
},
|
|
71
79
|
"homepage": "https://github.com/hpcc-systems/Visualization/tree/trunk/packages/observablehq-compiler",
|
|
72
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "c3979857aa66ee4e81a2844a6b27bfa3b655c643"
|
|
73
81
|
}
|
package/src/__package__.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export const PKG_NAME = "@hpcc-js/observablehq-compiler";
|
|
2
|
-
export const PKG_VERSION = "3.
|
|
3
|
-
export const BUILD_VERSION = "3.
|
|
2
|
+
export const PKG_VERSION = "3.5.0";
|
|
3
|
+
export const BUILD_VERSION = "3.11.0";
|
package/src/compiler.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
|
|
2
|
+
import { type Notebook, type Definition, compile as compileKit, fixRelativeUrl, isRelativePath, obfuscatedImport } from "./kit/index.ts";
|
|
1
3
|
import { ohq, splitModule } from "./observable-shim.ts";
|
|
2
4
|
import { parseCell, ParsedImportCell } from "./cst.ts";
|
|
3
5
|
import { Writer } from "./writer.ts";
|
|
4
|
-
import {
|
|
6
|
+
import { encodeBacktick, fetchEx, ojs2notebook, omd2notebook } from "./util.ts";
|
|
5
7
|
|
|
6
8
|
// Inspector Factory ---
|
|
7
9
|
export type InspectorFactoryEx = (name: string | undefined, id: string | number) => Inspector;
|
|
@@ -314,10 +316,25 @@ export function notebook(_files: ohq.File[] = [], _cells: CellFunc[] = [], { bas
|
|
|
314
316
|
};
|
|
315
317
|
return retVal;
|
|
316
318
|
}
|
|
319
|
+
type NotebookFunc = ReturnType<typeof notebook>;
|
|
320
|
+
|
|
321
|
+
export function isNotebookKit(value: any): value is Notebook {
|
|
322
|
+
return !!value && Array.isArray(value.cells);
|
|
323
|
+
}
|
|
317
324
|
|
|
318
|
-
export
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
325
|
+
export function isOhqNotebook(value: any): value is ohq.Notebook {
|
|
326
|
+
return !!value && Array.isArray(value.nodes);
|
|
327
|
+
}
|
|
328
|
+
export async function compile(notebookOrOjs: Notebook): Promise<Definition[]>;
|
|
329
|
+
export async function compile(notebookOrOjs: ohq.Notebook, options?: CompileOptions): Promise<NotebookFunc>;
|
|
330
|
+
export async function compile(notebookOrOjs: string, options?: CompileOptions): Promise<NotebookFunc>;
|
|
331
|
+
export async function compile(notebookOrOjs: Notebook | ohq.Notebook | string, { baseUrl = ".", importMode = "precompiled" }: CompileOptions = {}) {
|
|
332
|
+
if (isNotebookKit(notebookOrOjs)) {
|
|
333
|
+
return compileKit(notebookOrOjs);
|
|
334
|
+
} else if (typeof notebookOrOjs === "string") {
|
|
335
|
+
notebookOrOjs = ojs2notebook(notebookOrOjs);
|
|
336
|
+
}
|
|
337
|
+
const _cells: CellFunc[] = await Promise.all(notebookOrOjs.nodes.map(n => createCell(n, { baseUrl, importMode })));
|
|
338
|
+
return notebook(notebookOrOjs.files, _cells, { baseUrl, importMode });
|
|
322
339
|
}
|
|
323
|
-
export type
|
|
340
|
+
export type CompileFunc = Awaited<ReturnType<typeof compile>>;
|
package/src/cst.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ancestor, parseCell as ohqParseCell, Cell, Node, walk, AncestorVisitors } from "./observable-shim.ts";
|
|
2
|
-
|
|
3
|
-
import { fixRelativeUrl, createFunction, Refs } from "./util.ts";
|
|
2
|
+
import { fixRelativeUrl, createFunction, Refs } from "./kit/index.ts";
|
|
4
3
|
|
|
5
4
|
function calcRefs(cellAst: Cell, cellStr: string): Refs {
|
|
6
5
|
if (cellAst.references === undefined) return { inputs: [], args: [], patches: [] };
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export type { ohq } from "./observable-shim.ts";
|
|
2
2
|
|
|
3
3
|
export * from "./compiler.ts";
|
|
4
|
-
export { ojs2notebook, omd2notebook, download } from "./util.ts";
|
|
4
|
+
export { ojs2notebook, omd2notebook, omd2notebookKit, ojs2notebookKit, download } from "./util.ts";
|
|
5
|
+
export { compile as compileKit, html2notebook, notebook2html } from "./kit/index.ts";
|
|
5
6
|
export * from "./writer.ts";
|
|
6
|
-
|
|
7
|
-
import "../src/index.css";
|