- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
4840 lines
138 KiB
JavaScript
4840 lines
138 KiB
JavaScript
import {
|
|
await_waterfall,
|
|
event_handler_invalid,
|
|
hydration_mismatch,
|
|
state_proxy_equality_mismatch,
|
|
svelte_boundary_reset_noop,
|
|
true_default
|
|
} from "./chunk-VZQZA5WB.js";
|
|
import {
|
|
async_mode_flag,
|
|
legacy_mode_flag,
|
|
tracing_mode_flag
|
|
} from "./chunk-OHYQYV5R.js";
|
|
import {
|
|
__privateAdd,
|
|
__privateGet,
|
|
__privateMethod,
|
|
__privateSet,
|
|
__publicField
|
|
} from "./chunk-UGBVNEQM.js";
|
|
|
|
// node_modules/svelte/src/internal/shared/utils.js
|
|
var is_array = Array.isArray;
|
|
var index_of = Array.prototype.indexOf;
|
|
var includes = Array.prototype.includes;
|
|
var array_from = Array.from;
|
|
var object_keys = Object.keys;
|
|
var define_property = Object.defineProperty;
|
|
var get_descriptor = Object.getOwnPropertyDescriptor;
|
|
var get_descriptors = Object.getOwnPropertyDescriptors;
|
|
var object_prototype = Object.prototype;
|
|
var array_prototype = Array.prototype;
|
|
var get_prototype_of = Object.getPrototypeOf;
|
|
var is_extensible = Object.isExtensible;
|
|
function is_function(thing) {
|
|
return typeof thing === "function";
|
|
}
|
|
var noop = () => {
|
|
};
|
|
function is_promise(value) {
|
|
return typeof (value == null ? void 0 : value.then) === "function";
|
|
}
|
|
function run(fn) {
|
|
return fn();
|
|
}
|
|
function run_all(arr) {
|
|
for (var i = 0; i < arr.length; i++) {
|
|
arr[i]();
|
|
}
|
|
}
|
|
function deferred() {
|
|
var resolve;
|
|
var reject;
|
|
var promise = new Promise((res, rej) => {
|
|
resolve = res;
|
|
reject = rej;
|
|
});
|
|
return { promise, resolve, reject };
|
|
}
|
|
function fallback(value, fallback2, lazy = false) {
|
|
return value === void 0 ? lazy ? (
|
|
/** @type {() => V} */
|
|
fallback2()
|
|
) : (
|
|
/** @type {V} */
|
|
fallback2
|
|
) : value;
|
|
}
|
|
function to_array(value, n) {
|
|
if (Array.isArray(value)) {
|
|
return value;
|
|
}
|
|
if (n === void 0 || !(Symbol.iterator in value)) {
|
|
return Array.from(value);
|
|
}
|
|
const array = [];
|
|
for (const element of value) {
|
|
array.push(element);
|
|
if (array.length === n) break;
|
|
}
|
|
return array;
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/constants.js
|
|
var DERIVED = 1 << 1;
|
|
var EFFECT = 1 << 2;
|
|
var RENDER_EFFECT = 1 << 3;
|
|
var MANAGED_EFFECT = 1 << 24;
|
|
var BLOCK_EFFECT = 1 << 4;
|
|
var BRANCH_EFFECT = 1 << 5;
|
|
var ROOT_EFFECT = 1 << 6;
|
|
var BOUNDARY_EFFECT = 1 << 7;
|
|
var CONNECTED = 1 << 9;
|
|
var CLEAN = 1 << 10;
|
|
var DIRTY = 1 << 11;
|
|
var MAYBE_DIRTY = 1 << 12;
|
|
var INERT = 1 << 13;
|
|
var DESTROYED = 1 << 14;
|
|
var REACTION_RAN = 1 << 15;
|
|
var EFFECT_TRANSPARENT = 1 << 16;
|
|
var EAGER_EFFECT = 1 << 17;
|
|
var HEAD_EFFECT = 1 << 18;
|
|
var EFFECT_PRESERVED = 1 << 19;
|
|
var USER_EFFECT = 1 << 20;
|
|
var EFFECT_OFFSCREEN = 1 << 25;
|
|
var WAS_MARKED = 1 << 16;
|
|
var REACTION_IS_UPDATING = 1 << 21;
|
|
var ASYNC = 1 << 22;
|
|
var ERROR_VALUE = 1 << 23;
|
|
var STATE_SYMBOL = Symbol("$state");
|
|
var LEGACY_PROPS = Symbol("legacy props");
|
|
var LOADING_ATTR_SYMBOL = Symbol("");
|
|
var PROXY_PATH_SYMBOL = Symbol("proxy path");
|
|
var STALE_REACTION = new class StaleReactionError extends Error {
|
|
constructor() {
|
|
super(...arguments);
|
|
__publicField(this, "name", "StaleReactionError");
|
|
__publicField(this, "message", "The reaction that called `getAbortSignal()` was re-run or destroyed");
|
|
}
|
|
}();
|
|
var _a;
|
|
var IS_XHTML = (
|
|
// We gotta write it like this because after downleveling the pure comment may end up in the wrong location
|
|
!!((_a = globalThis.document) == null ? void 0 : _a.contentType) && globalThis.document.contentType.includes("xml")
|
|
);
|
|
var ELEMENT_NODE = 1;
|
|
var TEXT_NODE = 3;
|
|
var COMMENT_NODE = 8;
|
|
var DOCUMENT_FRAGMENT_NODE = 11;
|
|
|
|
// node_modules/svelte/src/internal/shared/errors.js
|
|
function experimental_async_required(name) {
|
|
if (true_default) {
|
|
const error = new Error(`experimental_async_required
|
|
Cannot use \`${name}(...)\` unless the \`experimental.async\` compiler option is \`true\`
|
|
https://svelte.dev/e/experimental_async_required`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/experimental_async_required`);
|
|
}
|
|
}
|
|
function invalid_default_snippet() {
|
|
if (true_default) {
|
|
const error = new Error(`invalid_default_snippet
|
|
Cannot use \`{@render children(...)}\` if the parent component uses \`let:\` directives. Consider using a named snippet instead
|
|
https://svelte.dev/e/invalid_default_snippet`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/invalid_default_snippet`);
|
|
}
|
|
}
|
|
function invalid_snippet_arguments() {
|
|
if (true_default) {
|
|
const error = new Error(`invalid_snippet_arguments
|
|
A snippet function was passed invalid arguments. Snippets should only be instantiated via \`{@render ...}\`
|
|
https://svelte.dev/e/invalid_snippet_arguments`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/invalid_snippet_arguments`);
|
|
}
|
|
}
|
|
function lifecycle_outside_component(name) {
|
|
if (true_default) {
|
|
const error = new Error(`lifecycle_outside_component
|
|
\`${name}(...)\` can only be used during component initialisation
|
|
https://svelte.dev/e/lifecycle_outside_component`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/lifecycle_outside_component`);
|
|
}
|
|
}
|
|
function missing_context() {
|
|
if (true_default) {
|
|
const error = new Error(`missing_context
|
|
Context was not set in a parent component
|
|
https://svelte.dev/e/missing_context`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/missing_context`);
|
|
}
|
|
}
|
|
function snippet_without_render_tag() {
|
|
if (true_default) {
|
|
const error = new Error(`snippet_without_render_tag
|
|
Attempted to render a snippet without a \`{@render}\` block. This would cause the snippet code to be stringified instead of its content being rendered to the DOM. To fix this, change \`{snippet}\` to \`{@render snippet()}\`.
|
|
https://svelte.dev/e/snippet_without_render_tag`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/snippet_without_render_tag`);
|
|
}
|
|
}
|
|
function store_invalid_shape(name) {
|
|
if (true_default) {
|
|
const error = new Error(`store_invalid_shape
|
|
\`${name}\` is not a store with a \`subscribe\` method
|
|
https://svelte.dev/e/store_invalid_shape`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/store_invalid_shape`);
|
|
}
|
|
}
|
|
function svelte_element_invalid_this_value() {
|
|
if (true_default) {
|
|
const error = new Error(`svelte_element_invalid_this_value
|
|
The \`this\` prop on \`<svelte:element>\` must be a string, if defined
|
|
https://svelte.dev/e/svelte_element_invalid_this_value`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/svelte_element_invalid_this_value`);
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/errors.js
|
|
function async_derived_orphan() {
|
|
if (true_default) {
|
|
const error = new Error(`async_derived_orphan
|
|
Cannot create a \`$derived(...)\` with an \`await\` expression outside of an effect tree
|
|
https://svelte.dev/e/async_derived_orphan`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/async_derived_orphan`);
|
|
}
|
|
}
|
|
function bind_invalid_checkbox_value() {
|
|
if (true_default) {
|
|
const error = new Error(`bind_invalid_checkbox_value
|
|
Using \`bind:value\` together with a checkbox input is not allowed. Use \`bind:checked\` instead
|
|
https://svelte.dev/e/bind_invalid_checkbox_value`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/bind_invalid_checkbox_value`);
|
|
}
|
|
}
|
|
function component_api_changed(method, component) {
|
|
if (true_default) {
|
|
const error = new Error(`component_api_changed
|
|
Calling \`${method}\` on a component instance (of ${component}) is no longer valid in Svelte 5
|
|
https://svelte.dev/e/component_api_changed`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/component_api_changed`);
|
|
}
|
|
}
|
|
function component_api_invalid_new(component, name) {
|
|
if (true_default) {
|
|
const error = new Error(`component_api_invalid_new
|
|
Attempted to instantiate ${component} with \`new ${name}\`, which is no longer valid in Svelte 5. If this component is not under your control, set the \`compatibility.componentApi\` compiler option to \`4\` to keep it working.
|
|
https://svelte.dev/e/component_api_invalid_new`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/component_api_invalid_new`);
|
|
}
|
|
}
|
|
function derived_references_self() {
|
|
if (true_default) {
|
|
const error = new Error(`derived_references_self
|
|
A derived value cannot reference itself recursively
|
|
https://svelte.dev/e/derived_references_self`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/derived_references_self`);
|
|
}
|
|
}
|
|
function each_key_duplicate(a, b, value) {
|
|
if (true_default) {
|
|
const error = new Error(`each_key_duplicate
|
|
${value ? `Keyed each block has duplicate key \`${value}\` at indexes ${a} and ${b}` : `Keyed each block has duplicate key at indexes ${a} and ${b}`}
|
|
https://svelte.dev/e/each_key_duplicate`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/each_key_duplicate`);
|
|
}
|
|
}
|
|
function effect_in_teardown(rune) {
|
|
if (true_default) {
|
|
const error = new Error(`effect_in_teardown
|
|
\`${rune}\` cannot be used inside an effect cleanup function
|
|
https://svelte.dev/e/effect_in_teardown`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/effect_in_teardown`);
|
|
}
|
|
}
|
|
function effect_in_unowned_derived() {
|
|
if (true_default) {
|
|
const error = new Error(`effect_in_unowned_derived
|
|
Effect cannot be created inside a \`$derived\` value that was not itself created inside an effect
|
|
https://svelte.dev/e/effect_in_unowned_derived`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/effect_in_unowned_derived`);
|
|
}
|
|
}
|
|
function effect_orphan(rune) {
|
|
if (true_default) {
|
|
const error = new Error(`effect_orphan
|
|
\`${rune}\` can only be used inside an effect (e.g. during component initialisation)
|
|
https://svelte.dev/e/effect_orphan`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/effect_orphan`);
|
|
}
|
|
}
|
|
function effect_pending_outside_reaction() {
|
|
if (true_default) {
|
|
const error = new Error(`effect_pending_outside_reaction
|
|
\`$effect.pending()\` can only be called inside an effect or derived
|
|
https://svelte.dev/e/effect_pending_outside_reaction`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/effect_pending_outside_reaction`);
|
|
}
|
|
}
|
|
function effect_update_depth_exceeded() {
|
|
if (true_default) {
|
|
const error = new Error(`effect_update_depth_exceeded
|
|
Maximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state
|
|
https://svelte.dev/e/effect_update_depth_exceeded`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/effect_update_depth_exceeded`);
|
|
}
|
|
}
|
|
function fork_discarded() {
|
|
if (true_default) {
|
|
const error = new Error(`fork_discarded
|
|
Cannot commit a fork that was already discarded
|
|
https://svelte.dev/e/fork_discarded`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/fork_discarded`);
|
|
}
|
|
}
|
|
function fork_timing() {
|
|
if (true_default) {
|
|
const error = new Error(`fork_timing
|
|
Cannot create a fork inside an effect or when state changes are pending
|
|
https://svelte.dev/e/fork_timing`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/fork_timing`);
|
|
}
|
|
}
|
|
function get_abort_signal_outside_reaction() {
|
|
if (true_default) {
|
|
const error = new Error(`get_abort_signal_outside_reaction
|
|
\`getAbortSignal()\` can only be called inside an effect or derived
|
|
https://svelte.dev/e/get_abort_signal_outside_reaction`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/get_abort_signal_outside_reaction`);
|
|
}
|
|
}
|
|
function hydratable_missing_but_required(key) {
|
|
if (true_default) {
|
|
const error = new Error(`hydratable_missing_but_required
|
|
Expected to find a hydratable with key \`${key}\` during hydration, but did not.
|
|
https://svelte.dev/e/hydratable_missing_but_required`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/hydratable_missing_but_required`);
|
|
}
|
|
}
|
|
function hydration_failed() {
|
|
if (true_default) {
|
|
const error = new Error(`hydration_failed
|
|
Failed to hydrate the application
|
|
https://svelte.dev/e/hydration_failed`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/hydration_failed`);
|
|
}
|
|
}
|
|
function invalid_snippet() {
|
|
if (true_default) {
|
|
const error = new Error(`invalid_snippet
|
|
Could not \`{@render}\` snippet due to the expression being \`null\` or \`undefined\`. Consider using optional chaining \`{@render snippet?.()}\`
|
|
https://svelte.dev/e/invalid_snippet`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/invalid_snippet`);
|
|
}
|
|
}
|
|
function lifecycle_legacy_only(name) {
|
|
if (true_default) {
|
|
const error = new Error(`lifecycle_legacy_only
|
|
\`${name}(...)\` cannot be used in runes mode
|
|
https://svelte.dev/e/lifecycle_legacy_only`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/lifecycle_legacy_only`);
|
|
}
|
|
}
|
|
function props_invalid_value(key) {
|
|
if (true_default) {
|
|
const error = new Error(`props_invalid_value
|
|
Cannot do \`bind:${key}={undefined}\` when \`${key}\` has a fallback value
|
|
https://svelte.dev/e/props_invalid_value`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/props_invalid_value`);
|
|
}
|
|
}
|
|
function props_rest_readonly(property) {
|
|
if (true_default) {
|
|
const error = new Error(`props_rest_readonly
|
|
Rest element properties of \`$props()\` such as \`${property}\` are readonly
|
|
https://svelte.dev/e/props_rest_readonly`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/props_rest_readonly`);
|
|
}
|
|
}
|
|
function rune_outside_svelte(rune) {
|
|
if (true_default) {
|
|
const error = new Error(`rune_outside_svelte
|
|
The \`${rune}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files
|
|
https://svelte.dev/e/rune_outside_svelte`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/rune_outside_svelte`);
|
|
}
|
|
}
|
|
function set_context_after_init() {
|
|
if (true_default) {
|
|
const error = new Error(`set_context_after_init
|
|
\`setContext\` must be called when a component first initializes, not in a subsequent effect or after an \`await\` expression
|
|
https://svelte.dev/e/set_context_after_init`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/set_context_after_init`);
|
|
}
|
|
}
|
|
function state_descriptors_fixed() {
|
|
if (true_default) {
|
|
const error = new Error(`state_descriptors_fixed
|
|
Property descriptors defined on \`$state\` objects must contain \`value\` and always be \`enumerable\`, \`configurable\` and \`writable\`.
|
|
https://svelte.dev/e/state_descriptors_fixed`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/state_descriptors_fixed`);
|
|
}
|
|
}
|
|
function state_prototype_fixed() {
|
|
if (true_default) {
|
|
const error = new Error(`state_prototype_fixed
|
|
Cannot set prototype of \`$state\` object
|
|
https://svelte.dev/e/state_prototype_fixed`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/state_prototype_fixed`);
|
|
}
|
|
}
|
|
function state_unsafe_mutation() {
|
|
if (true_default) {
|
|
const error = new Error(`state_unsafe_mutation
|
|
Updating state inside \`$derived(...)\`, \`$inspect(...)\` or a template expression is forbidden. If the value should not be reactive, declare it without \`$state\`
|
|
https://svelte.dev/e/state_unsafe_mutation`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/state_unsafe_mutation`);
|
|
}
|
|
}
|
|
function svelte_boundary_reset_onerror() {
|
|
if (true_default) {
|
|
const error = new Error(`svelte_boundary_reset_onerror
|
|
A \`<svelte:boundary>\` \`reset\` function cannot be called while an error is still being handled
|
|
https://svelte.dev/e/svelte_boundary_reset_onerror`);
|
|
error.name = "Svelte error";
|
|
throw error;
|
|
} else {
|
|
throw new Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`);
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/constants.js
|
|
var EACH_ITEM_REACTIVE = 1;
|
|
var EACH_INDEX_REACTIVE = 1 << 1;
|
|
var EACH_IS_CONTROLLED = 1 << 2;
|
|
var EACH_IS_ANIMATED = 1 << 3;
|
|
var EACH_ITEM_IMMUTABLE = 1 << 4;
|
|
var PROPS_IS_IMMUTABLE = 1;
|
|
var PROPS_IS_RUNES = 1 << 1;
|
|
var PROPS_IS_UPDATED = 1 << 2;
|
|
var PROPS_IS_BINDABLE = 1 << 3;
|
|
var PROPS_IS_LAZY_INITIAL = 1 << 4;
|
|
var TRANSITION_IN = 1;
|
|
var TRANSITION_OUT = 1 << 1;
|
|
var TRANSITION_GLOBAL = 1 << 2;
|
|
var TEMPLATE_FRAGMENT = 1;
|
|
var TEMPLATE_USE_IMPORT_NODE = 1 << 1;
|
|
var TEMPLATE_USE_SVG = 1 << 2;
|
|
var TEMPLATE_USE_MATHML = 1 << 3;
|
|
var HYDRATION_START = "[";
|
|
var HYDRATION_START_ELSE = "[!";
|
|
var HYDRATION_END = "]";
|
|
var HYDRATION_ERROR = {};
|
|
var ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;
|
|
var ELEMENT_IS_INPUT = 1 << 2;
|
|
var UNINITIALIZED = Symbol();
|
|
var FILENAME = Symbol("filename");
|
|
var HMR = Symbol("hmr");
|
|
var NAMESPACE_HTML = "http://www.w3.org/1999/xhtml";
|
|
var NAMESPACE_SVG = "http://www.w3.org/2000/svg";
|
|
var NAMESPACE_MATHML = "http://www.w3.org/1998/Math/MathML";
|
|
var ATTACHMENT_KEY = "@attach";
|
|
|
|
// node_modules/svelte/src/internal/client/context.js
|
|
var component_context = null;
|
|
function set_component_context(context) {
|
|
component_context = context;
|
|
}
|
|
var dev_stack = null;
|
|
function set_dev_stack(stack2) {
|
|
dev_stack = stack2;
|
|
}
|
|
function add_svelte_meta(callback, type, component, line, column, additional) {
|
|
const parent = dev_stack;
|
|
dev_stack = {
|
|
type,
|
|
file: component[FILENAME],
|
|
line,
|
|
column,
|
|
parent,
|
|
...additional
|
|
};
|
|
try {
|
|
return callback();
|
|
} finally {
|
|
dev_stack = parent;
|
|
}
|
|
}
|
|
var dev_current_component_function = null;
|
|
function set_dev_current_component_function(fn) {
|
|
dev_current_component_function = fn;
|
|
}
|
|
function createContext() {
|
|
const key = {};
|
|
return [
|
|
() => {
|
|
if (!hasContext(key)) {
|
|
missing_context();
|
|
}
|
|
return getContext(key);
|
|
},
|
|
(context) => setContext(key, context)
|
|
];
|
|
}
|
|
function getContext(key) {
|
|
const context_map = get_or_init_context_map("getContext");
|
|
const result = (
|
|
/** @type {T} */
|
|
context_map.get(key)
|
|
);
|
|
return result;
|
|
}
|
|
function setContext(key, context) {
|
|
const context_map = get_or_init_context_map("setContext");
|
|
if (async_mode_flag) {
|
|
var flags2 = (
|
|
/** @type {Effect} */
|
|
active_effect.f
|
|
);
|
|
var valid = !active_reaction && (flags2 & BRANCH_EFFECT) !== 0 && // pop() runs synchronously, so this indicates we're setting context after an await
|
|
!/** @type {ComponentContext} */
|
|
component_context.i;
|
|
if (!valid) {
|
|
set_context_after_init();
|
|
}
|
|
}
|
|
context_map.set(key, context);
|
|
return context;
|
|
}
|
|
function hasContext(key) {
|
|
const context_map = get_or_init_context_map("hasContext");
|
|
return context_map.has(key);
|
|
}
|
|
function getAllContexts() {
|
|
const context_map = get_or_init_context_map("getAllContexts");
|
|
return (
|
|
/** @type {T} */
|
|
context_map
|
|
);
|
|
}
|
|
function push(props, runes = false, fn) {
|
|
component_context = {
|
|
p: component_context,
|
|
i: false,
|
|
c: null,
|
|
e: null,
|
|
s: props,
|
|
x: null,
|
|
l: legacy_mode_flag && !runes ? { s: null, u: null, $: [] } : null
|
|
};
|
|
if (true_default) {
|
|
component_context.function = fn;
|
|
dev_current_component_function = fn;
|
|
}
|
|
}
|
|
function pop(component) {
|
|
var context = (
|
|
/** @type {ComponentContext} */
|
|
component_context
|
|
);
|
|
var effects = context.e;
|
|
if (effects !== null) {
|
|
context.e = null;
|
|
for (var fn of effects) {
|
|
create_user_effect(fn);
|
|
}
|
|
}
|
|
if (component !== void 0) {
|
|
context.x = component;
|
|
}
|
|
context.i = true;
|
|
component_context = context.p;
|
|
if (true_default) {
|
|
dev_current_component_function = (component_context == null ? void 0 : component_context.function) ?? null;
|
|
}
|
|
return component ?? /** @type {T} */
|
|
{};
|
|
}
|
|
function is_runes() {
|
|
return !legacy_mode_flag || component_context !== null && component_context.l === null;
|
|
}
|
|
function get_or_init_context_map(name) {
|
|
if (component_context === null) {
|
|
lifecycle_outside_component(name);
|
|
}
|
|
return component_context.c ?? (component_context.c = new Map(get_parent_context(component_context) || void 0));
|
|
}
|
|
function get_parent_context(component_context2) {
|
|
let parent = component_context2.p;
|
|
while (parent !== null) {
|
|
const context_map = parent.c;
|
|
if (context_map !== null) {
|
|
return context_map;
|
|
}
|
|
parent = parent.p;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dom/task.js
|
|
var micro_tasks = [];
|
|
function run_micro_tasks() {
|
|
var tasks = micro_tasks;
|
|
micro_tasks = [];
|
|
run_all(tasks);
|
|
}
|
|
function queue_micro_task(fn) {
|
|
if (micro_tasks.length === 0 && !is_flushing_sync) {
|
|
var tasks = micro_tasks;
|
|
queueMicrotask(() => {
|
|
if (tasks === micro_tasks) run_micro_tasks();
|
|
});
|
|
}
|
|
micro_tasks.push(fn);
|
|
}
|
|
function flush_tasks() {
|
|
while (micro_tasks.length > 0) {
|
|
run_micro_tasks();
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/error-handling.js
|
|
var adjustments = /* @__PURE__ */ new WeakMap();
|
|
function handle_error(error) {
|
|
var effect2 = active_effect;
|
|
if (effect2 === null) {
|
|
active_reaction.f |= ERROR_VALUE;
|
|
return error;
|
|
}
|
|
if (true_default && error instanceof Error && !adjustments.has(error)) {
|
|
adjustments.set(error, get_adjustments(error, effect2));
|
|
}
|
|
if ((effect2.f & REACTION_RAN) === 0 && (effect2.f & EFFECT) === 0) {
|
|
if (true_default && !effect2.parent && error instanceof Error) {
|
|
apply_adjustments(error);
|
|
}
|
|
throw error;
|
|
}
|
|
invoke_error_boundary(error, effect2);
|
|
}
|
|
function invoke_error_boundary(error, effect2) {
|
|
while (effect2 !== null) {
|
|
if ((effect2.f & BOUNDARY_EFFECT) !== 0) {
|
|
if ((effect2.f & REACTION_RAN) === 0) {
|
|
throw error;
|
|
}
|
|
try {
|
|
effect2.b.error(error);
|
|
return;
|
|
} catch (e) {
|
|
error = e;
|
|
}
|
|
}
|
|
effect2 = effect2.parent;
|
|
}
|
|
if (true_default && error instanceof Error) {
|
|
apply_adjustments(error);
|
|
}
|
|
throw error;
|
|
}
|
|
function get_adjustments(error, effect2) {
|
|
var _a2, _b, _c;
|
|
const message_descriptor = get_descriptor(error, "message");
|
|
if (message_descriptor && !message_descriptor.configurable) return;
|
|
var indent = is_firefox ? " " : " ";
|
|
var component_stack = `
|
|
${indent}in ${((_a2 = effect2.fn) == null ? void 0 : _a2.name) || "<unknown>"}`;
|
|
var context = effect2.ctx;
|
|
while (context !== null) {
|
|
component_stack += `
|
|
${indent}in ${(_b = context.function) == null ? void 0 : _b[FILENAME].split("/").pop()}`;
|
|
context = context.p;
|
|
}
|
|
return {
|
|
message: error.message + `
|
|
${component_stack}
|
|
`,
|
|
stack: (_c = error.stack) == null ? void 0 : _c.split("\n").filter((line) => !line.includes("svelte/src/internal")).join("\n")
|
|
};
|
|
}
|
|
function apply_adjustments(error) {
|
|
const adjusted = adjustments.get(error);
|
|
if (adjusted) {
|
|
define_property(error, "message", {
|
|
value: adjusted.message
|
|
});
|
|
define_property(error, "stack", {
|
|
value: adjusted.stack
|
|
});
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/equality.js
|
|
function equals(value) {
|
|
return value === this.v;
|
|
}
|
|
function safe_not_equal(a, b) {
|
|
return a != a ? b == b : a !== b || a !== null && typeof a === "object" || typeof a === "function";
|
|
}
|
|
function safe_equals(value) {
|
|
return !safe_not_equal(value, this.v);
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/shared/warnings.js
|
|
var bold = "font-weight: bold";
|
|
var normal = "font-weight: normal";
|
|
function dynamic_void_element_content(tag2) {
|
|
if (true_default) {
|
|
console.warn(`%c[svelte] dynamic_void_element_content
|
|
%c\`<svelte:element this="${tag2}">\` is a void element — it cannot have content
|
|
https://svelte.dev/e/dynamic_void_element_content`, bold, normal);
|
|
} else {
|
|
console.warn(`https://svelte.dev/e/dynamic_void_element_content`);
|
|
}
|
|
}
|
|
function state_snapshot_uncloneable(properties) {
|
|
if (true_default) {
|
|
console.warn(
|
|
`%c[svelte] state_snapshot_uncloneable
|
|
%c${properties ? `The following properties cannot be cloned with \`$state.snapshot\` — the return value contains the originals:
|
|
|
|
${properties}` : "Value cannot be cloned with `$state.snapshot` — the original value was returned"}
|
|
https://svelte.dev/e/state_snapshot_uncloneable`,
|
|
bold,
|
|
normal
|
|
);
|
|
} else {
|
|
console.warn(`https://svelte.dev/e/state_snapshot_uncloneable`);
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/shared/clone.js
|
|
var empty = [];
|
|
function snapshot(value, skip_warning = false, no_tojson = false) {
|
|
if (true_default && !skip_warning) {
|
|
const paths = [];
|
|
const copy = clone(value, /* @__PURE__ */ new Map(), "", paths, null, no_tojson);
|
|
if (paths.length === 1 && paths[0] === "") {
|
|
state_snapshot_uncloneable();
|
|
} else if (paths.length > 0) {
|
|
const slice = paths.length > 10 ? paths.slice(0, 7) : paths.slice(0, 10);
|
|
const excess = paths.length - slice.length;
|
|
let uncloned = slice.map((path) => `- <value>${path}`).join("\n");
|
|
if (excess > 0) uncloned += `
|
|
- ...and ${excess} more`;
|
|
state_snapshot_uncloneable(uncloned);
|
|
}
|
|
return copy;
|
|
}
|
|
return clone(value, /* @__PURE__ */ new Map(), "", empty, null, no_tojson);
|
|
}
|
|
function clone(value, cloned, path, paths, original = null, no_tojson = false) {
|
|
if (typeof value === "object" && value !== null) {
|
|
var unwrapped = cloned.get(value);
|
|
if (unwrapped !== void 0) return unwrapped;
|
|
if (value instanceof Map) return (
|
|
/** @type {Snapshot<T>} */
|
|
new Map(value)
|
|
);
|
|
if (value instanceof Set) return (
|
|
/** @type {Snapshot<T>} */
|
|
new Set(value)
|
|
);
|
|
if (is_array(value)) {
|
|
var copy = (
|
|
/** @type {Snapshot<any>} */
|
|
Array(value.length)
|
|
);
|
|
cloned.set(value, copy);
|
|
if (original !== null) {
|
|
cloned.set(original, copy);
|
|
}
|
|
for (var i = 0; i < value.length; i += 1) {
|
|
var element = value[i];
|
|
if (i in value) {
|
|
copy[i] = clone(element, cloned, true_default ? `${path}[${i}]` : path, paths, null, no_tojson);
|
|
}
|
|
}
|
|
return copy;
|
|
}
|
|
if (get_prototype_of(value) === object_prototype) {
|
|
copy = {};
|
|
cloned.set(value, copy);
|
|
if (original !== null) {
|
|
cloned.set(original, copy);
|
|
}
|
|
for (var key in value) {
|
|
copy[key] = clone(
|
|
// @ts-expect-error
|
|
value[key],
|
|
cloned,
|
|
true_default ? `${path}.${key}` : path,
|
|
paths,
|
|
null,
|
|
no_tojson
|
|
);
|
|
}
|
|
return copy;
|
|
}
|
|
if (value instanceof Date) {
|
|
return (
|
|
/** @type {Snapshot<T>} */
|
|
structuredClone(value)
|
|
);
|
|
}
|
|
if (typeof /** @type {T & { toJSON?: any } } */
|
|
value.toJSON === "function" && !no_tojson) {
|
|
return clone(
|
|
/** @type {T & { toJSON(): any } } */
|
|
value.toJSON(),
|
|
cloned,
|
|
true_default ? `${path}.toJSON()` : path,
|
|
paths,
|
|
// Associate the instance with the toJSON clone
|
|
value
|
|
);
|
|
}
|
|
}
|
|
if (value instanceof EventTarget) {
|
|
return (
|
|
/** @type {Snapshot<T>} */
|
|
value
|
|
);
|
|
}
|
|
try {
|
|
return (
|
|
/** @type {Snapshot<T>} */
|
|
structuredClone(value)
|
|
);
|
|
} catch (e) {
|
|
if (true_default) {
|
|
paths.push(path);
|
|
}
|
|
return (
|
|
/** @type {Snapshot<T>} */
|
|
value
|
|
);
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dev/tracing.js
|
|
var tracing_expressions = null;
|
|
function log_entry(signal, entry) {
|
|
const value = signal.v;
|
|
if (value === UNINITIALIZED) {
|
|
return;
|
|
}
|
|
const type = get_type(signal);
|
|
const current_reaction = (
|
|
/** @type {Reaction} */
|
|
active_reaction
|
|
);
|
|
const dirty = signal.wv > current_reaction.wv || current_reaction.wv === 0;
|
|
const style = dirty ? "color: CornflowerBlue; font-weight: bold" : "color: grey; font-weight: normal";
|
|
console.groupCollapsed(
|
|
signal.label ? `%c${type}%c ${signal.label}` : `%c${type}%c`,
|
|
style,
|
|
dirty ? "font-weight: normal" : style,
|
|
typeof value === "object" && value !== null && STATE_SYMBOL in value ? snapshot(value, true) : value
|
|
);
|
|
if (type === "$derived") {
|
|
const deps = new Set(
|
|
/** @type {Derived} */
|
|
signal.deps
|
|
);
|
|
for (const dep of deps) {
|
|
log_entry(dep);
|
|
}
|
|
}
|
|
if (signal.created) {
|
|
console.log(signal.created);
|
|
}
|
|
if (dirty && signal.updated) {
|
|
for (const updated of signal.updated.values()) {
|
|
if (updated.error) {
|
|
console.log(updated.error);
|
|
}
|
|
}
|
|
}
|
|
if (entry) {
|
|
for (var trace2 of entry.traces) {
|
|
console.log(trace2);
|
|
}
|
|
}
|
|
console.groupEnd();
|
|
}
|
|
function get_type(signal) {
|
|
var _a2;
|
|
if ((signal.f & (DERIVED | ASYNC)) !== 0) return "$derived";
|
|
return ((_a2 = signal.label) == null ? void 0 : _a2.startsWith("$")) ? "store" : "$state";
|
|
}
|
|
function trace(label2, fn) {
|
|
var previously_tracing_expressions = tracing_expressions;
|
|
try {
|
|
tracing_expressions = { entries: /* @__PURE__ */ new Map(), reaction: active_reaction };
|
|
var start = performance.now();
|
|
var value = fn();
|
|
var time = (performance.now() - start).toFixed(2);
|
|
var prefix = untrack(label2);
|
|
if (!effect_tracking()) {
|
|
console.log(`${prefix} %cran outside of an effect (${time}ms)`, "color: grey");
|
|
} else if (tracing_expressions.entries.size === 0) {
|
|
console.log(`${prefix} %cno reactive dependencies (${time}ms)`, "color: grey");
|
|
} else {
|
|
console.group(`${prefix} %c(${time}ms)`, "color: grey");
|
|
var entries = tracing_expressions.entries;
|
|
untrack(() => {
|
|
for (const [signal, traces] of entries) {
|
|
log_entry(signal, traces);
|
|
}
|
|
});
|
|
tracing_expressions = null;
|
|
console.groupEnd();
|
|
}
|
|
return value;
|
|
} finally {
|
|
tracing_expressions = previously_tracing_expressions;
|
|
}
|
|
}
|
|
function tag(source2, label2) {
|
|
source2.label = label2;
|
|
tag_proxy(source2.v, label2);
|
|
return source2;
|
|
}
|
|
function tag_proxy(value, label2) {
|
|
var _a2;
|
|
(_a2 = value == null ? void 0 : value[PROXY_PATH_SYMBOL]) == null ? void 0 : _a2.call(value, label2);
|
|
return value;
|
|
}
|
|
function label(value) {
|
|
if (typeof value === "symbol") return `Symbol(${value.description})`;
|
|
if (typeof value === "function") return "<function>";
|
|
if (typeof value === "object" && value) return "<object>";
|
|
return String(value);
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/shared/dev.js
|
|
function get_error(label2) {
|
|
const error = new Error();
|
|
const stack2 = get_stack();
|
|
if (stack2.length === 0) {
|
|
return null;
|
|
}
|
|
stack2.unshift("\n");
|
|
define_property(error, "stack", {
|
|
value: stack2.join("\n")
|
|
});
|
|
define_property(error, "name", {
|
|
value: label2
|
|
});
|
|
return (
|
|
/** @type {Error & { stack: string }} */
|
|
error
|
|
);
|
|
}
|
|
function get_stack() {
|
|
const limit = Error.stackTraceLimit;
|
|
Error.stackTraceLimit = Infinity;
|
|
const stack2 = new Error().stack;
|
|
Error.stackTraceLimit = limit;
|
|
if (!stack2) return [];
|
|
const lines = stack2.split("\n");
|
|
const new_lines = [];
|
|
for (let i = 0; i < lines.length; i++) {
|
|
const line = lines[i];
|
|
const posixified = line.replaceAll("\\", "/");
|
|
if (line.trim() === "Error") {
|
|
continue;
|
|
}
|
|
if (line.includes("validate_each_keys")) {
|
|
return [];
|
|
}
|
|
if (posixified.includes("svelte/src/internal") || posixified.includes("node_modules/.vite")) {
|
|
continue;
|
|
}
|
|
new_lines.push(line);
|
|
}
|
|
return new_lines;
|
|
}
|
|
|
|
// node_modules/svelte/src/reactivity/create-subscriber.js
|
|
function createSubscriber(start) {
|
|
let subscribers = 0;
|
|
let version = source(0);
|
|
let stop;
|
|
if (true_default) {
|
|
tag(version, "createSubscriber version");
|
|
}
|
|
return () => {
|
|
if (effect_tracking()) {
|
|
get(version);
|
|
render_effect(() => {
|
|
if (subscribers === 0) {
|
|
stop = untrack(() => start(() => increment(version)));
|
|
}
|
|
subscribers += 1;
|
|
return () => {
|
|
queue_micro_task(() => {
|
|
subscribers -= 1;
|
|
if (subscribers === 0) {
|
|
stop == null ? void 0 : stop();
|
|
stop = void 0;
|
|
increment(version);
|
|
}
|
|
});
|
|
};
|
|
});
|
|
}
|
|
};
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/status.js
|
|
var STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);
|
|
function set_signal_status(signal, status) {
|
|
signal.f = signal.f & STATUS_MASK | status;
|
|
}
|
|
function update_derived_status(derived2) {
|
|
if ((derived2.f & CONNECTED) !== 0 || derived2.deps === null) {
|
|
set_signal_status(derived2, CLEAN);
|
|
} else {
|
|
set_signal_status(derived2, MAYBE_DIRTY);
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/utils.js
|
|
function clear_marked(deps) {
|
|
if (deps === null) return;
|
|
for (const dep of deps) {
|
|
if ((dep.f & DERIVED) === 0 || (dep.f & WAS_MARKED) === 0) {
|
|
continue;
|
|
}
|
|
dep.f ^= WAS_MARKED;
|
|
clear_marked(
|
|
/** @type {Derived} */
|
|
dep.deps
|
|
);
|
|
}
|
|
}
|
|
function defer_effect(effect2, dirty_effects, maybe_dirty_effects) {
|
|
if ((effect2.f & DIRTY) !== 0) {
|
|
dirty_effects.add(effect2);
|
|
} else if ((effect2.f & MAYBE_DIRTY) !== 0) {
|
|
maybe_dirty_effects.add(effect2);
|
|
}
|
|
clear_marked(effect2.deps);
|
|
set_signal_status(effect2, CLEAN);
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dom/blocks/boundary.js
|
|
var flags = EFFECT_TRANSPARENT | EFFECT_PRESERVED;
|
|
function boundary(node, props, children) {
|
|
new Boundary(node, props, children);
|
|
}
|
|
var _anchor, _hydrate_open, _props, _children, _effect, _main_effect, _pending_effect, _failed_effect, _offscreen_fragment, _local_pending_count, _pending_count, _pending_count_update_queued, _dirty_effects, _maybe_dirty_effects, _effect_pending, _effect_pending_subscriber, _Boundary_instances, hydrate_resolved_content_fn, hydrate_pending_content_fn, render_fn, run_fn, update_pending_count_fn;
|
|
var Boundary = class {
|
|
/**
|
|
* @param {TemplateNode} node
|
|
* @param {BoundaryProps} props
|
|
* @param {((anchor: Node) => void)} children
|
|
*/
|
|
constructor(node, props, children) {
|
|
__privateAdd(this, _Boundary_instances);
|
|
/** @type {Boundary | null} */
|
|
__publicField(this, "parent");
|
|
__publicField(this, "is_pending", false);
|
|
/** @type {TemplateNode} */
|
|
__privateAdd(this, _anchor);
|
|
/** @type {TemplateNode | null} */
|
|
__privateAdd(this, _hydrate_open, hydrating ? hydrate_node : null);
|
|
/** @type {BoundaryProps} */
|
|
__privateAdd(this, _props);
|
|
/** @type {((anchor: Node) => void)} */
|
|
__privateAdd(this, _children);
|
|
/** @type {Effect} */
|
|
__privateAdd(this, _effect);
|
|
/** @type {Effect | null} */
|
|
__privateAdd(this, _main_effect, null);
|
|
/** @type {Effect | null} */
|
|
__privateAdd(this, _pending_effect, null);
|
|
/** @type {Effect | null} */
|
|
__privateAdd(this, _failed_effect, null);
|
|
/** @type {DocumentFragment | null} */
|
|
__privateAdd(this, _offscreen_fragment, null);
|
|
__privateAdd(this, _local_pending_count, 0);
|
|
__privateAdd(this, _pending_count, 0);
|
|
__privateAdd(this, _pending_count_update_queued, false);
|
|
/** @type {Set<Effect>} */
|
|
__privateAdd(this, _dirty_effects, /* @__PURE__ */ new Set());
|
|
/** @type {Set<Effect>} */
|
|
__privateAdd(this, _maybe_dirty_effects, /* @__PURE__ */ new Set());
|
|
/**
|
|
* A source containing the number of pending async deriveds/expressions.
|
|
* Only created if `$effect.pending()` is used inside the boundary,
|
|
* otherwise updating the source results in needless `Batch.ensure()`
|
|
* calls followed by no-op flushes
|
|
* @type {Source<number> | null}
|
|
*/
|
|
__privateAdd(this, _effect_pending, null);
|
|
__privateAdd(this, _effect_pending_subscriber, createSubscriber(() => {
|
|
__privateSet(this, _effect_pending, source(__privateGet(this, _local_pending_count)));
|
|
if (true_default) {
|
|
tag(__privateGet(this, _effect_pending), "$effect.pending()");
|
|
}
|
|
return () => {
|
|
__privateSet(this, _effect_pending, null);
|
|
};
|
|
}));
|
|
__privateSet(this, _anchor, node);
|
|
__privateSet(this, _props, props);
|
|
__privateSet(this, _children, (anchor) => {
|
|
var effect2 = (
|
|
/** @type {Effect} */
|
|
active_effect
|
|
);
|
|
effect2.b = this;
|
|
effect2.f |= BOUNDARY_EFFECT;
|
|
children(anchor);
|
|
});
|
|
this.parent = /** @type {Effect} */
|
|
active_effect.b;
|
|
__privateSet(this, _effect, block(() => {
|
|
if (hydrating) {
|
|
const comment = (
|
|
/** @type {Comment} */
|
|
__privateGet(this, _hydrate_open)
|
|
);
|
|
hydrate_next();
|
|
if (comment.data === HYDRATION_START_ELSE) {
|
|
__privateMethod(this, _Boundary_instances, hydrate_pending_content_fn).call(this);
|
|
} else {
|
|
__privateMethod(this, _Boundary_instances, hydrate_resolved_content_fn).call(this);
|
|
}
|
|
} else {
|
|
__privateMethod(this, _Boundary_instances, render_fn).call(this);
|
|
}
|
|
}, flags));
|
|
if (hydrating) {
|
|
__privateSet(this, _anchor, hydrate_node);
|
|
}
|
|
}
|
|
/**
|
|
* Defer an effect inside a pending boundary until the boundary resolves
|
|
* @param {Effect} effect
|
|
*/
|
|
defer_effect(effect2) {
|
|
defer_effect(effect2, __privateGet(this, _dirty_effects), __privateGet(this, _maybe_dirty_effects));
|
|
}
|
|
/**
|
|
* Returns `false` if the effect exists inside a boundary whose pending snippet is shown
|
|
* @returns {boolean}
|
|
*/
|
|
is_rendered() {
|
|
return !this.is_pending && (!this.parent || this.parent.is_rendered());
|
|
}
|
|
has_pending_snippet() {
|
|
return !!__privateGet(this, _props).pending;
|
|
}
|
|
/**
|
|
* Update the source that powers `$effect.pending()` inside this boundary,
|
|
* and controls when the current `pending` snippet (if any) is removed.
|
|
* Do not call from inside the class
|
|
* @param {1 | -1} d
|
|
*/
|
|
update_pending_count(d) {
|
|
__privateMethod(this, _Boundary_instances, update_pending_count_fn).call(this, d);
|
|
__privateSet(this, _local_pending_count, __privateGet(this, _local_pending_count) + d);
|
|
if (!__privateGet(this, _effect_pending) || __privateGet(this, _pending_count_update_queued)) return;
|
|
__privateSet(this, _pending_count_update_queued, true);
|
|
queue_micro_task(() => {
|
|
__privateSet(this, _pending_count_update_queued, false);
|
|
if (__privateGet(this, _effect_pending)) {
|
|
internal_set(__privateGet(this, _effect_pending), __privateGet(this, _local_pending_count));
|
|
}
|
|
});
|
|
}
|
|
get_effect_pending() {
|
|
__privateGet(this, _effect_pending_subscriber).call(this);
|
|
return get(
|
|
/** @type {Source<number>} */
|
|
__privateGet(this, _effect_pending)
|
|
);
|
|
}
|
|
/** @param {unknown} error */
|
|
error(error) {
|
|
var onerror = __privateGet(this, _props).onerror;
|
|
let failed = __privateGet(this, _props).failed;
|
|
if (!onerror && !failed) {
|
|
throw error;
|
|
}
|
|
if (__privateGet(this, _main_effect)) {
|
|
destroy_effect(__privateGet(this, _main_effect));
|
|
__privateSet(this, _main_effect, null);
|
|
}
|
|
if (__privateGet(this, _pending_effect)) {
|
|
destroy_effect(__privateGet(this, _pending_effect));
|
|
__privateSet(this, _pending_effect, null);
|
|
}
|
|
if (__privateGet(this, _failed_effect)) {
|
|
destroy_effect(__privateGet(this, _failed_effect));
|
|
__privateSet(this, _failed_effect, null);
|
|
}
|
|
if (hydrating) {
|
|
set_hydrate_node(
|
|
/** @type {TemplateNode} */
|
|
__privateGet(this, _hydrate_open)
|
|
);
|
|
next();
|
|
set_hydrate_node(skip_nodes());
|
|
}
|
|
var did_reset = false;
|
|
var calling_on_error = false;
|
|
const reset2 = () => {
|
|
if (did_reset) {
|
|
svelte_boundary_reset_noop();
|
|
return;
|
|
}
|
|
did_reset = true;
|
|
if (calling_on_error) {
|
|
svelte_boundary_reset_onerror();
|
|
}
|
|
if (__privateGet(this, _failed_effect) !== null) {
|
|
pause_effect(__privateGet(this, _failed_effect), () => {
|
|
__privateSet(this, _failed_effect, null);
|
|
});
|
|
}
|
|
__privateMethod(this, _Boundary_instances, run_fn).call(this, () => {
|
|
Batch.ensure();
|
|
__privateMethod(this, _Boundary_instances, render_fn).call(this);
|
|
});
|
|
};
|
|
queue_micro_task(() => {
|
|
try {
|
|
calling_on_error = true;
|
|
onerror == null ? void 0 : onerror(error, reset2);
|
|
calling_on_error = false;
|
|
} catch (error2) {
|
|
invoke_error_boundary(error2, __privateGet(this, _effect) && __privateGet(this, _effect).parent);
|
|
}
|
|
if (failed) {
|
|
__privateSet(this, _failed_effect, __privateMethod(this, _Boundary_instances, run_fn).call(this, () => {
|
|
Batch.ensure();
|
|
try {
|
|
return branch(() => {
|
|
var effect2 = (
|
|
/** @type {Effect} */
|
|
active_effect
|
|
);
|
|
effect2.b = this;
|
|
effect2.f |= BOUNDARY_EFFECT;
|
|
failed(
|
|
__privateGet(this, _anchor),
|
|
() => error,
|
|
() => reset2
|
|
);
|
|
});
|
|
} catch (error2) {
|
|
invoke_error_boundary(
|
|
error2,
|
|
/** @type {Effect} */
|
|
__privateGet(this, _effect).parent
|
|
);
|
|
return null;
|
|
}
|
|
}));
|
|
}
|
|
});
|
|
}
|
|
};
|
|
_anchor = new WeakMap();
|
|
_hydrate_open = new WeakMap();
|
|
_props = new WeakMap();
|
|
_children = new WeakMap();
|
|
_effect = new WeakMap();
|
|
_main_effect = new WeakMap();
|
|
_pending_effect = new WeakMap();
|
|
_failed_effect = new WeakMap();
|
|
_offscreen_fragment = new WeakMap();
|
|
_local_pending_count = new WeakMap();
|
|
_pending_count = new WeakMap();
|
|
_pending_count_update_queued = new WeakMap();
|
|
_dirty_effects = new WeakMap();
|
|
_maybe_dirty_effects = new WeakMap();
|
|
_effect_pending = new WeakMap();
|
|
_effect_pending_subscriber = new WeakMap();
|
|
_Boundary_instances = new WeakSet();
|
|
hydrate_resolved_content_fn = function() {
|
|
try {
|
|
__privateSet(this, _main_effect, branch(() => __privateGet(this, _children).call(this, __privateGet(this, _anchor))));
|
|
} catch (error) {
|
|
this.error(error);
|
|
}
|
|
};
|
|
hydrate_pending_content_fn = function() {
|
|
const pending2 = __privateGet(this, _props).pending;
|
|
if (!pending2) return;
|
|
this.is_pending = true;
|
|
__privateSet(this, _pending_effect, branch(() => pending2(__privateGet(this, _anchor))));
|
|
queue_micro_task(() => {
|
|
var fragment = __privateSet(this, _offscreen_fragment, document.createDocumentFragment());
|
|
var anchor = create_text();
|
|
fragment.append(anchor);
|
|
__privateSet(this, _main_effect, __privateMethod(this, _Boundary_instances, run_fn).call(this, () => {
|
|
Batch.ensure();
|
|
return branch(() => __privateGet(this, _children).call(this, anchor));
|
|
}));
|
|
if (__privateGet(this, _pending_count) === 0) {
|
|
__privateGet(this, _anchor).before(fragment);
|
|
__privateSet(this, _offscreen_fragment, null);
|
|
pause_effect(
|
|
/** @type {Effect} */
|
|
__privateGet(this, _pending_effect),
|
|
() => {
|
|
__privateSet(this, _pending_effect, null);
|
|
}
|
|
);
|
|
this.is_pending = false;
|
|
}
|
|
});
|
|
};
|
|
render_fn = function() {
|
|
try {
|
|
this.is_pending = this.has_pending_snippet();
|
|
__privateSet(this, _pending_count, 0);
|
|
__privateSet(this, _local_pending_count, 0);
|
|
__privateSet(this, _main_effect, branch(() => {
|
|
__privateGet(this, _children).call(this, __privateGet(this, _anchor));
|
|
}));
|
|
if (__privateGet(this, _pending_count) > 0) {
|
|
var fragment = __privateSet(this, _offscreen_fragment, document.createDocumentFragment());
|
|
move_effect(__privateGet(this, _main_effect), fragment);
|
|
const pending2 = (
|
|
/** @type {(anchor: Node) => void} */
|
|
__privateGet(this, _props).pending
|
|
);
|
|
__privateSet(this, _pending_effect, branch(() => pending2(__privateGet(this, _anchor))));
|
|
} else {
|
|
this.is_pending = false;
|
|
}
|
|
} catch (error) {
|
|
this.error(error);
|
|
}
|
|
};
|
|
/**
|
|
* @template T
|
|
* @param {() => T} fn
|
|
*/
|
|
run_fn = function(fn) {
|
|
var previous_effect = active_effect;
|
|
var previous_reaction = active_reaction;
|
|
var previous_ctx = component_context;
|
|
set_active_effect(__privateGet(this, _effect));
|
|
set_active_reaction(__privateGet(this, _effect));
|
|
set_component_context(__privateGet(this, _effect).ctx);
|
|
try {
|
|
return fn();
|
|
} catch (e) {
|
|
handle_error(e);
|
|
return null;
|
|
} finally {
|
|
set_active_effect(previous_effect);
|
|
set_active_reaction(previous_reaction);
|
|
set_component_context(previous_ctx);
|
|
}
|
|
};
|
|
/**
|
|
* Updates the pending count associated with the currently visible pending snippet,
|
|
* if any, such that we can replace the snippet with content once work is done
|
|
* @param {1 | -1} d
|
|
*/
|
|
update_pending_count_fn = function(d) {
|
|
var _a2;
|
|
if (!this.has_pending_snippet()) {
|
|
if (this.parent) {
|
|
__privateMethod(_a2 = this.parent, _Boundary_instances, update_pending_count_fn).call(_a2, d);
|
|
}
|
|
return;
|
|
}
|
|
__privateSet(this, _pending_count, __privateGet(this, _pending_count) + d);
|
|
if (__privateGet(this, _pending_count) === 0) {
|
|
this.is_pending = false;
|
|
for (const e of __privateGet(this, _dirty_effects)) {
|
|
set_signal_status(e, DIRTY);
|
|
schedule_effect(e);
|
|
}
|
|
for (const e of __privateGet(this, _maybe_dirty_effects)) {
|
|
set_signal_status(e, MAYBE_DIRTY);
|
|
schedule_effect(e);
|
|
}
|
|
__privateGet(this, _dirty_effects).clear();
|
|
__privateGet(this, _maybe_dirty_effects).clear();
|
|
if (__privateGet(this, _pending_effect)) {
|
|
pause_effect(__privateGet(this, _pending_effect), () => {
|
|
__privateSet(this, _pending_effect, null);
|
|
});
|
|
}
|
|
if (__privateGet(this, _offscreen_fragment)) {
|
|
__privateGet(this, _anchor).before(__privateGet(this, _offscreen_fragment));
|
|
__privateSet(this, _offscreen_fragment, null);
|
|
}
|
|
}
|
|
};
|
|
function get_boundary() {
|
|
return (
|
|
/** @type {Boundary} */
|
|
/** @type {Effect} */
|
|
active_effect.b
|
|
);
|
|
}
|
|
function pending() {
|
|
if (active_effect === null) {
|
|
effect_pending_outside_reaction();
|
|
}
|
|
var boundary2 = active_effect.b;
|
|
if (boundary2 === null) {
|
|
return 0;
|
|
}
|
|
return boundary2.get_effect_pending();
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/async.js
|
|
function flatten(blockers, sync, async, fn) {
|
|
const d = is_runes() ? derived : derived_safe_equal;
|
|
var pending2 = blockers.filter((b) => !b.settled);
|
|
if (async.length === 0 && pending2.length === 0) {
|
|
fn(sync.map(d));
|
|
return;
|
|
}
|
|
var batch = current_batch;
|
|
var parent = (
|
|
/** @type {Effect} */
|
|
active_effect
|
|
);
|
|
var restore = capture();
|
|
var blocker_promise = pending2.length === 1 ? pending2[0].promise : pending2.length > 1 ? Promise.all(pending2.map((b) => b.promise)) : null;
|
|
function finish(values) {
|
|
restore();
|
|
try {
|
|
fn(values);
|
|
} catch (error) {
|
|
if ((parent.f & DESTROYED) === 0) {
|
|
invoke_error_boundary(error, parent);
|
|
}
|
|
}
|
|
batch == null ? void 0 : batch.deactivate();
|
|
unset_context();
|
|
}
|
|
if (async.length === 0) {
|
|
blocker_promise.then(() => finish(sync.map(d)));
|
|
return;
|
|
}
|
|
function run3() {
|
|
restore();
|
|
Promise.all(async.map((expression) => async_derived(expression))).then((result) => finish([...sync.map(d), ...result])).catch((error) => invoke_error_boundary(error, parent));
|
|
}
|
|
if (blocker_promise) {
|
|
blocker_promise.then(run3);
|
|
} else {
|
|
run3();
|
|
}
|
|
}
|
|
function run_after_blockers(blockers, fn) {
|
|
flatten(blockers, [], [], fn);
|
|
}
|
|
function capture() {
|
|
var previous_effect = active_effect;
|
|
var previous_reaction = active_reaction;
|
|
var previous_component_context = component_context;
|
|
var previous_batch2 = current_batch;
|
|
if (true_default) {
|
|
var previous_dev_stack = dev_stack;
|
|
}
|
|
return function restore(activate_batch = true) {
|
|
set_active_effect(previous_effect);
|
|
set_active_reaction(previous_reaction);
|
|
set_component_context(previous_component_context);
|
|
if (activate_batch) previous_batch2 == null ? void 0 : previous_batch2.activate();
|
|
if (true_default) {
|
|
set_from_async_derived(null);
|
|
set_dev_stack(previous_dev_stack);
|
|
}
|
|
};
|
|
}
|
|
async function save(promise) {
|
|
var restore = capture();
|
|
var value = await promise;
|
|
return () => {
|
|
restore();
|
|
return value;
|
|
};
|
|
}
|
|
async function track_reactivity_loss(promise) {
|
|
var previous_async_effect = current_async_effect;
|
|
var value = await promise;
|
|
return () => {
|
|
set_from_async_derived(previous_async_effect);
|
|
return value;
|
|
};
|
|
}
|
|
async function* for_await_track_reactivity_loss(iterable) {
|
|
var _a2, _b;
|
|
const iterator = ((_a2 = iterable[Symbol.asyncIterator]) == null ? void 0 : _a2.call(iterable)) ?? ((_b = iterable[Symbol.iterator]) == null ? void 0 : _b.call(iterable));
|
|
if (iterator === void 0) {
|
|
throw new TypeError("value is not async iterable");
|
|
}
|
|
let normal_completion = false;
|
|
try {
|
|
while (true) {
|
|
const { done, value } = (await track_reactivity_loss(iterator.next()))();
|
|
if (done) {
|
|
normal_completion = true;
|
|
break;
|
|
}
|
|
yield value;
|
|
}
|
|
} finally {
|
|
if (normal_completion && iterator.return !== void 0) {
|
|
return (
|
|
/** @type {TReturn} */
|
|
(await track_reactivity_loss(iterator.return()))().value
|
|
);
|
|
}
|
|
}
|
|
}
|
|
function unset_context() {
|
|
set_active_effect(null);
|
|
set_active_reaction(null);
|
|
set_component_context(null);
|
|
if (true_default) {
|
|
set_from_async_derived(null);
|
|
set_dev_stack(null);
|
|
}
|
|
}
|
|
function run2(thunks) {
|
|
const restore = capture();
|
|
var boundary2 = get_boundary();
|
|
var batch = (
|
|
/** @type {Batch} */
|
|
current_batch
|
|
);
|
|
var blocking = boundary2.is_rendered();
|
|
boundary2.update_pending_count(1);
|
|
batch.increment(blocking);
|
|
var active = (
|
|
/** @type {Effect} */
|
|
active_effect
|
|
);
|
|
var errored = null;
|
|
const handle_error2 = (error) => {
|
|
errored = { error };
|
|
if (!aborted(active)) {
|
|
invoke_error_boundary(error, active);
|
|
}
|
|
};
|
|
var promise = Promise.resolve(thunks[0]()).catch(handle_error2);
|
|
var blocker = { promise, settled: false };
|
|
var blockers = [blocker];
|
|
promise.finally(() => {
|
|
blocker.settled = true;
|
|
});
|
|
for (const fn of thunks.slice(1)) {
|
|
promise = promise.then(() => {
|
|
if (errored) {
|
|
throw errored.error;
|
|
}
|
|
if (aborted(active)) {
|
|
throw STALE_REACTION;
|
|
}
|
|
restore();
|
|
return fn();
|
|
}).catch(handle_error2);
|
|
const blocker2 = { promise, settled: false };
|
|
blockers.push(blocker2);
|
|
promise.finally(() => {
|
|
var _a2;
|
|
blocker2.settled = true;
|
|
unset_context();
|
|
(_a2 = current_batch) == null ? void 0 : _a2.deactivate();
|
|
});
|
|
}
|
|
promise.then(() => Promise.resolve()).finally(() => {
|
|
boundary2.update_pending_count(-1);
|
|
batch.decrement(blocking);
|
|
});
|
|
return blockers;
|
|
}
|
|
function wait(blockers) {
|
|
return Promise.all(blockers.map((b) => b.promise));
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/deriveds.js
|
|
var current_async_effect = null;
|
|
function set_from_async_derived(v) {
|
|
current_async_effect = v;
|
|
}
|
|
var recent_async_deriveds = /* @__PURE__ */ new Set();
|
|
function derived(fn) {
|
|
var flags2 = DERIVED | DIRTY;
|
|
var parent_derived = active_reaction !== null && (active_reaction.f & DERIVED) !== 0 ? (
|
|
/** @type {Derived} */
|
|
active_reaction
|
|
) : null;
|
|
if (active_effect !== null) {
|
|
active_effect.f |= EFFECT_PRESERVED;
|
|
}
|
|
const signal = {
|
|
ctx: component_context,
|
|
deps: null,
|
|
effects: null,
|
|
equals,
|
|
f: flags2,
|
|
fn,
|
|
reactions: null,
|
|
rv: 0,
|
|
v: (
|
|
/** @type {V} */
|
|
UNINITIALIZED
|
|
),
|
|
wv: 0,
|
|
parent: parent_derived ?? active_effect,
|
|
ac: null
|
|
};
|
|
if (true_default && tracing_mode_flag) {
|
|
signal.created = get_error("created at");
|
|
}
|
|
return signal;
|
|
}
|
|
function async_derived(fn, label2, location) {
|
|
let parent = (
|
|
/** @type {Effect | null} */
|
|
active_effect
|
|
);
|
|
if (parent === null) {
|
|
async_derived_orphan();
|
|
}
|
|
var boundary2 = (
|
|
/** @type {Boundary} */
|
|
parent.b
|
|
);
|
|
var promise = (
|
|
/** @type {Promise<V>} */
|
|
/** @type {unknown} */
|
|
void 0
|
|
);
|
|
var signal = source(
|
|
/** @type {V} */
|
|
UNINITIALIZED
|
|
);
|
|
if (true_default) signal.label = label2;
|
|
var should_suspend = !active_reaction;
|
|
var deferreds = /* @__PURE__ */ new Map();
|
|
async_effect(() => {
|
|
var _a2;
|
|
if (true_default) current_async_effect = active_effect;
|
|
var d = deferred();
|
|
promise = d.promise;
|
|
try {
|
|
Promise.resolve(fn()).then(d.resolve, d.reject).then(() => {
|
|
if (batch === current_batch && batch.committed) {
|
|
batch.deactivate();
|
|
}
|
|
unset_context();
|
|
});
|
|
} catch (error) {
|
|
d.reject(error);
|
|
unset_context();
|
|
}
|
|
if (true_default) current_async_effect = null;
|
|
var batch = (
|
|
/** @type {Batch} */
|
|
current_batch
|
|
);
|
|
if (should_suspend) {
|
|
var blocking = boundary2.is_rendered();
|
|
boundary2.update_pending_count(1);
|
|
batch.increment(blocking);
|
|
(_a2 = deferreds.get(batch)) == null ? void 0 : _a2.reject(STALE_REACTION);
|
|
deferreds.delete(batch);
|
|
deferreds.set(batch, d);
|
|
}
|
|
const handler = (value, error = void 0) => {
|
|
current_async_effect = null;
|
|
batch.activate();
|
|
if (error) {
|
|
if (error !== STALE_REACTION) {
|
|
signal.f |= ERROR_VALUE;
|
|
internal_set(signal, error);
|
|
}
|
|
} else {
|
|
if ((signal.f & ERROR_VALUE) !== 0) {
|
|
signal.f ^= ERROR_VALUE;
|
|
}
|
|
internal_set(signal, value);
|
|
for (const [b, d2] of deferreds) {
|
|
deferreds.delete(b);
|
|
if (b === batch) break;
|
|
d2.reject(STALE_REACTION);
|
|
}
|
|
if (true_default && location !== void 0) {
|
|
recent_async_deriveds.add(signal);
|
|
setTimeout(() => {
|
|
if (recent_async_deriveds.has(signal)) {
|
|
await_waterfall(
|
|
/** @type {string} */
|
|
signal.label,
|
|
location
|
|
);
|
|
recent_async_deriveds.delete(signal);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
if (should_suspend) {
|
|
boundary2.update_pending_count(-1);
|
|
batch.decrement(blocking);
|
|
}
|
|
};
|
|
d.promise.then(handler, (e) => handler(null, e || "unknown"));
|
|
});
|
|
teardown(() => {
|
|
for (const d of deferreds.values()) {
|
|
d.reject(STALE_REACTION);
|
|
}
|
|
});
|
|
if (true_default) {
|
|
signal.f |= ASYNC;
|
|
}
|
|
return new Promise((fulfil) => {
|
|
function next2(p) {
|
|
function go() {
|
|
if (p === promise) {
|
|
fulfil(signal);
|
|
} else {
|
|
next2(promise);
|
|
}
|
|
}
|
|
p.then(go, go);
|
|
}
|
|
next2(promise);
|
|
});
|
|
}
|
|
function user_derived(fn) {
|
|
const d = derived(fn);
|
|
if (!async_mode_flag) push_reaction_value(d);
|
|
return d;
|
|
}
|
|
function derived_safe_equal(fn) {
|
|
const signal = derived(fn);
|
|
signal.equals = safe_equals;
|
|
return signal;
|
|
}
|
|
function destroy_derived_effects(derived2) {
|
|
var effects = derived2.effects;
|
|
if (effects !== null) {
|
|
derived2.effects = null;
|
|
for (var i = 0; i < effects.length; i += 1) {
|
|
destroy_effect(
|
|
/** @type {Effect} */
|
|
effects[i]
|
|
);
|
|
}
|
|
}
|
|
}
|
|
var stack = [];
|
|
function get_derived_parent_effect(derived2) {
|
|
var parent = derived2.parent;
|
|
while (parent !== null) {
|
|
if ((parent.f & DERIVED) === 0) {
|
|
return (parent.f & DESTROYED) === 0 ? (
|
|
/** @type {Effect} */
|
|
parent
|
|
) : null;
|
|
}
|
|
parent = parent.parent;
|
|
}
|
|
return null;
|
|
}
|
|
function execute_derived(derived2) {
|
|
var value;
|
|
var prev_active_effect = active_effect;
|
|
set_active_effect(get_derived_parent_effect(derived2));
|
|
if (true_default) {
|
|
let prev_eager_effects = eager_effects;
|
|
set_eager_effects(/* @__PURE__ */ new Set());
|
|
try {
|
|
if (includes.call(stack, derived2)) {
|
|
derived_references_self();
|
|
}
|
|
stack.push(derived2);
|
|
derived2.f &= ~WAS_MARKED;
|
|
destroy_derived_effects(derived2);
|
|
value = update_reaction(derived2);
|
|
} finally {
|
|
set_active_effect(prev_active_effect);
|
|
set_eager_effects(prev_eager_effects);
|
|
stack.pop();
|
|
}
|
|
} else {
|
|
try {
|
|
derived2.f &= ~WAS_MARKED;
|
|
destroy_derived_effects(derived2);
|
|
value = update_reaction(derived2);
|
|
} finally {
|
|
set_active_effect(prev_active_effect);
|
|
}
|
|
}
|
|
return value;
|
|
}
|
|
function update_derived(derived2) {
|
|
var _a2, _b;
|
|
var value = execute_derived(derived2);
|
|
if (!derived2.equals(value)) {
|
|
derived2.wv = increment_write_version();
|
|
if (!((_a2 = current_batch) == null ? void 0 : _a2.is_fork) || derived2.deps === null) {
|
|
derived2.v = value;
|
|
if (derived2.deps === null) {
|
|
set_signal_status(derived2, CLEAN);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
if (is_destroying_effect) {
|
|
return;
|
|
}
|
|
if (batch_values !== null) {
|
|
if (effect_tracking() || ((_b = current_batch) == null ? void 0 : _b.is_fork)) {
|
|
batch_values.set(derived2, value);
|
|
}
|
|
} else {
|
|
update_derived_status(derived2);
|
|
}
|
|
}
|
|
function freeze_derived_effects(derived2) {
|
|
var _a2, _b;
|
|
if (derived2.effects === null) return;
|
|
for (const e of derived2.effects) {
|
|
if (e.teardown || e.ac) {
|
|
(_a2 = e.teardown) == null ? void 0 : _a2.call(e);
|
|
(_b = e.ac) == null ? void 0 : _b.abort(STALE_REACTION);
|
|
e.teardown = noop;
|
|
e.ac = null;
|
|
remove_reactions(e, 0);
|
|
destroy_effect_children(e);
|
|
}
|
|
}
|
|
}
|
|
function unfreeze_derived_effects(derived2) {
|
|
if (derived2.effects === null) return;
|
|
for (const e of derived2.effects) {
|
|
if (e.teardown) {
|
|
update_effect(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/sources.js
|
|
var eager_effects = /* @__PURE__ */ new Set();
|
|
var old_values = /* @__PURE__ */ new Map();
|
|
function set_eager_effects(v) {
|
|
eager_effects = v;
|
|
}
|
|
var eager_effects_deferred = false;
|
|
function set_eager_effects_deferred() {
|
|
eager_effects_deferred = true;
|
|
}
|
|
function source(v, stack2) {
|
|
var signal = {
|
|
f: 0,
|
|
// TODO ideally we could skip this altogether, but it causes type errors
|
|
v,
|
|
reactions: null,
|
|
equals,
|
|
rv: 0,
|
|
wv: 0
|
|
};
|
|
if (true_default && tracing_mode_flag) {
|
|
signal.created = stack2 ?? get_error("created at");
|
|
signal.updated = null;
|
|
signal.set_during_effect = false;
|
|
signal.trace = null;
|
|
}
|
|
return signal;
|
|
}
|
|
function state(v, stack2) {
|
|
const s = source(v, stack2);
|
|
push_reaction_value(s);
|
|
return s;
|
|
}
|
|
function mutable_source(initial_value, immutable = false, trackable = true) {
|
|
var _a2;
|
|
const s = source(initial_value);
|
|
if (!immutable) {
|
|
s.equals = safe_equals;
|
|
}
|
|
if (legacy_mode_flag && trackable && component_context !== null && component_context.l !== null) {
|
|
((_a2 = component_context.l).s ?? (_a2.s = [])).push(s);
|
|
}
|
|
return s;
|
|
}
|
|
function mutate(source2, value) {
|
|
set(
|
|
source2,
|
|
untrack(() => get(source2))
|
|
);
|
|
return value;
|
|
}
|
|
function set(source2, value, should_proxy = false) {
|
|
if (active_reaction !== null && // since we are untracking the function inside `$inspect.with` we need to add this check
|
|
// to ensure we error if state is set inside an inspect effect
|
|
(!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && (current_sources === null || !includes.call(current_sources, source2))) {
|
|
state_unsafe_mutation();
|
|
}
|
|
let new_value = should_proxy ? proxy(value) : value;
|
|
if (true_default) {
|
|
tag_proxy(
|
|
new_value,
|
|
/** @type {string} */
|
|
source2.label
|
|
);
|
|
}
|
|
return internal_set(source2, new_value);
|
|
}
|
|
function internal_set(source2, value) {
|
|
var _a2;
|
|
if (!source2.equals(value)) {
|
|
var old_value = source2.v;
|
|
if (is_destroying_effect) {
|
|
old_values.set(source2, value);
|
|
} else {
|
|
old_values.set(source2, old_value);
|
|
}
|
|
source2.v = value;
|
|
var batch = Batch.ensure();
|
|
batch.capture(source2, old_value);
|
|
if (true_default) {
|
|
if (tracing_mode_flag || active_effect !== null) {
|
|
source2.updated ?? (source2.updated = /* @__PURE__ */ new Map());
|
|
const count = (((_a2 = source2.updated.get("")) == null ? void 0 : _a2.count) ?? 0) + 1;
|
|
source2.updated.set("", { error: (
|
|
/** @type {any} */
|
|
null
|
|
), count });
|
|
if (tracing_mode_flag || count > 5) {
|
|
const error = get_error("updated at");
|
|
if (error !== null) {
|
|
let entry = source2.updated.get(error.stack);
|
|
if (!entry) {
|
|
entry = { error, count: 0 };
|
|
source2.updated.set(error.stack, entry);
|
|
}
|
|
entry.count++;
|
|
}
|
|
}
|
|
}
|
|
if (active_effect !== null) {
|
|
source2.set_during_effect = true;
|
|
}
|
|
}
|
|
if ((source2.f & DERIVED) !== 0) {
|
|
const derived2 = (
|
|
/** @type {Derived} */
|
|
source2
|
|
);
|
|
if ((source2.f & DIRTY) !== 0) {
|
|
execute_derived(derived2);
|
|
}
|
|
update_derived_status(derived2);
|
|
}
|
|
source2.wv = increment_write_version();
|
|
mark_reactions(source2, DIRTY);
|
|
if (is_runes() && active_effect !== null && (active_effect.f & CLEAN) !== 0 && (active_effect.f & (BRANCH_EFFECT | ROOT_EFFECT)) === 0) {
|
|
if (untracked_writes === null) {
|
|
set_untracked_writes([source2]);
|
|
} else {
|
|
untracked_writes.push(source2);
|
|
}
|
|
}
|
|
if (!batch.is_fork && eager_effects.size > 0 && !eager_effects_deferred) {
|
|
flush_eager_effects();
|
|
}
|
|
}
|
|
return value;
|
|
}
|
|
function flush_eager_effects() {
|
|
eager_effects_deferred = false;
|
|
for (const effect2 of eager_effects) {
|
|
if ((effect2.f & CLEAN) !== 0) {
|
|
set_signal_status(effect2, MAYBE_DIRTY);
|
|
}
|
|
if (is_dirty(effect2)) {
|
|
update_effect(effect2);
|
|
}
|
|
}
|
|
eager_effects.clear();
|
|
}
|
|
function update(source2, d = 1) {
|
|
var value = get(source2);
|
|
var result = d === 1 ? value++ : value--;
|
|
set(source2, value);
|
|
return result;
|
|
}
|
|
function update_pre(source2, d = 1) {
|
|
var value = get(source2);
|
|
return set(source2, d === 1 ? ++value : --value);
|
|
}
|
|
function increment(source2) {
|
|
set(source2, source2.v + 1);
|
|
}
|
|
function mark_reactions(signal, status) {
|
|
var _a2;
|
|
var reactions = signal.reactions;
|
|
if (reactions === null) return;
|
|
var runes = is_runes();
|
|
var length = reactions.length;
|
|
for (var i = 0; i < length; i++) {
|
|
var reaction = reactions[i];
|
|
var flags2 = reaction.f;
|
|
if (!runes && reaction === active_effect) continue;
|
|
if (true_default && (flags2 & EAGER_EFFECT) !== 0) {
|
|
eager_effects.add(reaction);
|
|
continue;
|
|
}
|
|
var not_dirty = (flags2 & DIRTY) === 0;
|
|
if (not_dirty) {
|
|
set_signal_status(reaction, status);
|
|
}
|
|
if ((flags2 & DERIVED) !== 0) {
|
|
var derived2 = (
|
|
/** @type {Derived} */
|
|
reaction
|
|
);
|
|
(_a2 = batch_values) == null ? void 0 : _a2.delete(derived2);
|
|
if ((flags2 & WAS_MARKED) === 0) {
|
|
if (flags2 & CONNECTED) {
|
|
reaction.f |= WAS_MARKED;
|
|
}
|
|
mark_reactions(derived2, MAYBE_DIRTY);
|
|
}
|
|
} else if (not_dirty) {
|
|
if ((flags2 & BLOCK_EFFECT) !== 0 && eager_block_effects !== null) {
|
|
eager_block_effects.add(
|
|
/** @type {Effect} */
|
|
reaction
|
|
);
|
|
}
|
|
schedule_effect(
|
|
/** @type {Effect} */
|
|
reaction
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/batch.js
|
|
var batches = /* @__PURE__ */ new Set();
|
|
var current_batch = null;
|
|
var previous_batch = null;
|
|
var batch_values = null;
|
|
var queued_root_effects = [];
|
|
var last_scheduled_effect = null;
|
|
var is_flushing = false;
|
|
var is_flushing_sync = false;
|
|
var _commit_callbacks, _discard_callbacks, _pending, _blocking_pending, _deferred, _dirty_effects2, _maybe_dirty_effects2, _skipped_branches, _decrement_queued, _Batch_instances, traverse_effect_tree_fn, defer_effects_fn, commit_fn;
|
|
var _Batch = class _Batch {
|
|
constructor() {
|
|
__privateAdd(this, _Batch_instances);
|
|
__publicField(this, "committed", false);
|
|
/**
|
|
* The current values of any sources that are updated in this batch
|
|
* They keys of this map are identical to `this.#previous`
|
|
* @type {Map<Source, any>}
|
|
*/
|
|
__publicField(this, "current", /* @__PURE__ */ new Map());
|
|
/**
|
|
* The values of any sources that are updated in this batch _before_ those updates took place.
|
|
* They keys of this map are identical to `this.#current`
|
|
* @type {Map<Source, any>}
|
|
*/
|
|
__publicField(this, "previous", /* @__PURE__ */ new Map());
|
|
/**
|
|
* When the batch is committed (and the DOM is updated), we need to remove old branches
|
|
* and append new ones by calling the functions added inside (if/each/key/etc) blocks
|
|
* @type {Set<() => void>}
|
|
*/
|
|
__privateAdd(this, _commit_callbacks, /* @__PURE__ */ new Set());
|
|
/**
|
|
* If a fork is discarded, we need to destroy any effects that are no longer needed
|
|
* @type {Set<(batch: Batch) => void>}
|
|
*/
|
|
__privateAdd(this, _discard_callbacks, /* @__PURE__ */ new Set());
|
|
/**
|
|
* The number of async effects that are currently in flight
|
|
*/
|
|
__privateAdd(this, _pending, 0);
|
|
/**
|
|
* The number of async effects that are currently in flight, _not_ inside a pending boundary
|
|
*/
|
|
__privateAdd(this, _blocking_pending, 0);
|
|
/**
|
|
* A deferred that resolves when the batch is committed, used with `settled()`
|
|
* TODO replace with Promise.withResolvers once supported widely enough
|
|
* @type {{ promise: Promise<void>, resolve: (value?: any) => void, reject: (reason: unknown) => void } | null}
|
|
*/
|
|
__privateAdd(this, _deferred, null);
|
|
/**
|
|
* Deferred effects (which run after async work has completed) that are DIRTY
|
|
* @type {Set<Effect>}
|
|
*/
|
|
__privateAdd(this, _dirty_effects2, /* @__PURE__ */ new Set());
|
|
/**
|
|
* Deferred effects that are MAYBE_DIRTY
|
|
* @type {Set<Effect>}
|
|
*/
|
|
__privateAdd(this, _maybe_dirty_effects2, /* @__PURE__ */ new Set());
|
|
/**
|
|
* A map of branches that still exist, but will be destroyed when this batch
|
|
* is committed — we skip over these during `process`.
|
|
* The value contains child effects that were dirty/maybe_dirty before being reset,
|
|
* so they can be rescheduled if the branch survives.
|
|
* @type {Map<Effect, { d: Effect[], m: Effect[] }>}
|
|
*/
|
|
__privateAdd(this, _skipped_branches, /* @__PURE__ */ new Map());
|
|
__publicField(this, "is_fork", false);
|
|
__privateAdd(this, _decrement_queued, false);
|
|
}
|
|
is_deferred() {
|
|
return this.is_fork || __privateGet(this, _blocking_pending) > 0;
|
|
}
|
|
/**
|
|
* Add an effect to the #skipped_branches map and reset its children
|
|
* @param {Effect} effect
|
|
*/
|
|
skip_effect(effect2) {
|
|
if (!__privateGet(this, _skipped_branches).has(effect2)) {
|
|
__privateGet(this, _skipped_branches).set(effect2, { d: [], m: [] });
|
|
}
|
|
}
|
|
/**
|
|
* Remove an effect from the #skipped_branches map and reschedule
|
|
* any tracked dirty/maybe_dirty child effects
|
|
* @param {Effect} effect
|
|
*/
|
|
unskip_effect(effect2) {
|
|
var tracked = __privateGet(this, _skipped_branches).get(effect2);
|
|
if (tracked) {
|
|
__privateGet(this, _skipped_branches).delete(effect2);
|
|
for (var e of tracked.d) {
|
|
set_signal_status(e, DIRTY);
|
|
schedule_effect(e);
|
|
}
|
|
for (e of tracked.m) {
|
|
set_signal_status(e, MAYBE_DIRTY);
|
|
schedule_effect(e);
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
*
|
|
* @param {Effect[]} root_effects
|
|
*/
|
|
process(root_effects) {
|
|
var _a2;
|
|
queued_root_effects = [];
|
|
this.apply();
|
|
var effects = [];
|
|
var render_effects = [];
|
|
for (const root of root_effects) {
|
|
__privateMethod(this, _Batch_instances, traverse_effect_tree_fn).call(this, root, effects, render_effects);
|
|
}
|
|
if (this.is_deferred()) {
|
|
__privateMethod(this, _Batch_instances, defer_effects_fn).call(this, render_effects);
|
|
__privateMethod(this, _Batch_instances, defer_effects_fn).call(this, effects);
|
|
for (const [e, t] of __privateGet(this, _skipped_branches)) {
|
|
reset_branch(e, t);
|
|
}
|
|
} else {
|
|
for (const fn of __privateGet(this, _commit_callbacks)) fn();
|
|
__privateGet(this, _commit_callbacks).clear();
|
|
if (__privateGet(this, _pending) === 0) {
|
|
__privateMethod(this, _Batch_instances, commit_fn).call(this);
|
|
}
|
|
previous_batch = this;
|
|
current_batch = null;
|
|
flush_queued_effects(render_effects);
|
|
flush_queued_effects(effects);
|
|
previous_batch = null;
|
|
(_a2 = __privateGet(this, _deferred)) == null ? void 0 : _a2.resolve();
|
|
}
|
|
batch_values = null;
|
|
}
|
|
/**
|
|
* Associate a change to a given source with the current
|
|
* batch, noting its previous and current values
|
|
* @param {Source} source
|
|
* @param {any} value
|
|
*/
|
|
capture(source2, value) {
|
|
if (value !== UNINITIALIZED && !this.previous.has(source2)) {
|
|
this.previous.set(source2, value);
|
|
}
|
|
if ((source2.f & ERROR_VALUE) === 0) {
|
|
this.current.set(source2, source2.v);
|
|
batch_values == null ? void 0 : batch_values.set(source2, source2.v);
|
|
}
|
|
}
|
|
activate() {
|
|
current_batch = this;
|
|
this.apply();
|
|
}
|
|
deactivate() {
|
|
if (current_batch !== this) return;
|
|
current_batch = null;
|
|
batch_values = null;
|
|
}
|
|
flush() {
|
|
this.activate();
|
|
if (queued_root_effects.length > 0) {
|
|
flush_effects();
|
|
if (current_batch !== null && current_batch !== this) {
|
|
return;
|
|
}
|
|
} else if (__privateGet(this, _pending) === 0) {
|
|
this.process([]);
|
|
}
|
|
this.deactivate();
|
|
}
|
|
discard() {
|
|
for (const fn of __privateGet(this, _discard_callbacks)) fn(this);
|
|
__privateGet(this, _discard_callbacks).clear();
|
|
}
|
|
/**
|
|
*
|
|
* @param {boolean} blocking
|
|
*/
|
|
increment(blocking) {
|
|
__privateSet(this, _pending, __privateGet(this, _pending) + 1);
|
|
if (blocking) __privateSet(this, _blocking_pending, __privateGet(this, _blocking_pending) + 1);
|
|
}
|
|
/**
|
|
*
|
|
* @param {boolean} blocking
|
|
*/
|
|
decrement(blocking) {
|
|
__privateSet(this, _pending, __privateGet(this, _pending) - 1);
|
|
if (blocking) __privateSet(this, _blocking_pending, __privateGet(this, _blocking_pending) - 1);
|
|
if (__privateGet(this, _decrement_queued)) return;
|
|
__privateSet(this, _decrement_queued, true);
|
|
queue_micro_task(() => {
|
|
__privateSet(this, _decrement_queued, false);
|
|
if (!this.is_deferred()) {
|
|
this.revive();
|
|
} else if (queued_root_effects.length > 0) {
|
|
this.flush();
|
|
}
|
|
});
|
|
}
|
|
revive() {
|
|
for (const e of __privateGet(this, _dirty_effects2)) {
|
|
__privateGet(this, _maybe_dirty_effects2).delete(e);
|
|
set_signal_status(e, DIRTY);
|
|
schedule_effect(e);
|
|
}
|
|
for (const e of __privateGet(this, _maybe_dirty_effects2)) {
|
|
set_signal_status(e, MAYBE_DIRTY);
|
|
schedule_effect(e);
|
|
}
|
|
this.flush();
|
|
}
|
|
/** @param {() => void} fn */
|
|
oncommit(fn) {
|
|
__privateGet(this, _commit_callbacks).add(fn);
|
|
}
|
|
/** @param {(batch: Batch) => void} fn */
|
|
ondiscard(fn) {
|
|
__privateGet(this, _discard_callbacks).add(fn);
|
|
}
|
|
settled() {
|
|
return (__privateGet(this, _deferred) ?? __privateSet(this, _deferred, deferred())).promise;
|
|
}
|
|
static ensure() {
|
|
if (current_batch === null) {
|
|
const batch = current_batch = new _Batch();
|
|
batches.add(current_batch);
|
|
if (!is_flushing_sync) {
|
|
queue_micro_task(() => {
|
|
if (current_batch !== batch) {
|
|
return;
|
|
}
|
|
batch.flush();
|
|
});
|
|
}
|
|
}
|
|
return current_batch;
|
|
}
|
|
apply() {
|
|
if (!async_mode_flag || !this.is_fork && batches.size === 1) return;
|
|
batch_values = new Map(this.current);
|
|
for (const batch of batches) {
|
|
if (batch === this) continue;
|
|
for (const [source2, previous] of batch.previous) {
|
|
if (!batch_values.has(source2)) {
|
|
batch_values.set(source2, previous);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_commit_callbacks = new WeakMap();
|
|
_discard_callbacks = new WeakMap();
|
|
_pending = new WeakMap();
|
|
_blocking_pending = new WeakMap();
|
|
_deferred = new WeakMap();
|
|
_dirty_effects2 = new WeakMap();
|
|
_maybe_dirty_effects2 = new WeakMap();
|
|
_skipped_branches = new WeakMap();
|
|
_decrement_queued = new WeakMap();
|
|
_Batch_instances = new WeakSet();
|
|
/**
|
|
* Traverse the effect tree, executing effects or stashing
|
|
* them for later execution as appropriate
|
|
* @param {Effect} root
|
|
* @param {Effect[]} effects
|
|
* @param {Effect[]} render_effects
|
|
*/
|
|
traverse_effect_tree_fn = function(root, effects, render_effects) {
|
|
var _a2;
|
|
root.f ^= CLEAN;
|
|
var effect2 = root.first;
|
|
var pending_boundary = null;
|
|
while (effect2 !== null) {
|
|
var flags2 = effect2.f;
|
|
var is_branch = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;
|
|
var is_skippable_branch = is_branch && (flags2 & CLEAN) !== 0;
|
|
var skip = is_skippable_branch || (flags2 & INERT) !== 0 || __privateGet(this, _skipped_branches).has(effect2);
|
|
if (async_mode_flag && pending_boundary === null && (flags2 & BOUNDARY_EFFECT) !== 0 && ((_a2 = effect2.b) == null ? void 0 : _a2.is_pending)) {
|
|
pending_boundary = effect2;
|
|
}
|
|
if (!skip && effect2.fn !== null) {
|
|
if (is_branch) {
|
|
effect2.f ^= CLEAN;
|
|
} else if (pending_boundary !== null && (flags2 & (EFFECT | RENDER_EFFECT | MANAGED_EFFECT)) !== 0) {
|
|
pending_boundary.b.defer_effect(effect2);
|
|
} else if ((flags2 & EFFECT) !== 0) {
|
|
effects.push(effect2);
|
|
} else if (async_mode_flag && (flags2 & (RENDER_EFFECT | MANAGED_EFFECT)) !== 0) {
|
|
render_effects.push(effect2);
|
|
} else if (is_dirty(effect2)) {
|
|
if ((flags2 & BLOCK_EFFECT) !== 0) __privateGet(this, _maybe_dirty_effects2).add(effect2);
|
|
update_effect(effect2);
|
|
}
|
|
var child2 = effect2.first;
|
|
if (child2 !== null) {
|
|
effect2 = child2;
|
|
continue;
|
|
}
|
|
}
|
|
while (effect2 !== null) {
|
|
if (effect2 === pending_boundary) {
|
|
pending_boundary = null;
|
|
}
|
|
var next2 = effect2.next;
|
|
if (next2 !== null) {
|
|
effect2 = next2;
|
|
break;
|
|
}
|
|
effect2 = effect2.parent;
|
|
}
|
|
}
|
|
};
|
|
/**
|
|
* @param {Effect[]} effects
|
|
*/
|
|
defer_effects_fn = function(effects) {
|
|
for (var i = 0; i < effects.length; i += 1) {
|
|
defer_effect(effects[i], __privateGet(this, _dirty_effects2), __privateGet(this, _maybe_dirty_effects2));
|
|
}
|
|
};
|
|
commit_fn = function() {
|
|
var _a2;
|
|
if (batches.size > 1) {
|
|
this.previous.clear();
|
|
var previous_batch_values = batch_values;
|
|
var is_earlier = true;
|
|
for (const batch of batches) {
|
|
if (batch === this) {
|
|
is_earlier = false;
|
|
continue;
|
|
}
|
|
const sources = [];
|
|
for (const [source2, value] of this.current) {
|
|
if (batch.current.has(source2)) {
|
|
if (is_earlier && value !== batch.current.get(source2)) {
|
|
batch.current.set(source2, value);
|
|
} else {
|
|
continue;
|
|
}
|
|
}
|
|
sources.push(source2);
|
|
}
|
|
if (sources.length === 0) {
|
|
continue;
|
|
}
|
|
const others = [...batch.current.keys()].filter((s) => !this.current.has(s));
|
|
if (others.length > 0) {
|
|
var prev_queued_root_effects = queued_root_effects;
|
|
queued_root_effects = [];
|
|
const marked = /* @__PURE__ */ new Set();
|
|
const checked = /* @__PURE__ */ new Map();
|
|
for (const source2 of sources) {
|
|
mark_effects(source2, others, marked, checked);
|
|
}
|
|
if (queued_root_effects.length > 0) {
|
|
current_batch = batch;
|
|
batch.apply();
|
|
for (const root of queued_root_effects) {
|
|
__privateMethod(_a2 = batch, _Batch_instances, traverse_effect_tree_fn).call(_a2, root, [], []);
|
|
}
|
|
batch.deactivate();
|
|
}
|
|
queued_root_effects = prev_queued_root_effects;
|
|
}
|
|
}
|
|
current_batch = null;
|
|
batch_values = previous_batch_values;
|
|
}
|
|
this.committed = true;
|
|
batches.delete(this);
|
|
};
|
|
var Batch = _Batch;
|
|
function flushSync(fn) {
|
|
var was_flushing_sync = is_flushing_sync;
|
|
is_flushing_sync = true;
|
|
try {
|
|
var result;
|
|
if (fn) {
|
|
if (current_batch !== null) {
|
|
flush_effects();
|
|
}
|
|
result = fn();
|
|
}
|
|
while (true) {
|
|
flush_tasks();
|
|
if (queued_root_effects.length === 0) {
|
|
current_batch == null ? void 0 : current_batch.flush();
|
|
if (queued_root_effects.length === 0) {
|
|
last_scheduled_effect = null;
|
|
return (
|
|
/** @type {T} */
|
|
result
|
|
);
|
|
}
|
|
}
|
|
flush_effects();
|
|
}
|
|
} finally {
|
|
is_flushing_sync = was_flushing_sync;
|
|
}
|
|
}
|
|
function flush_effects() {
|
|
is_flushing = true;
|
|
var source_stacks = true_default ? /* @__PURE__ */ new Set() : null;
|
|
try {
|
|
var flush_count = 0;
|
|
while (queued_root_effects.length > 0) {
|
|
var batch = Batch.ensure();
|
|
if (flush_count++ > 1e3) {
|
|
if (true_default) {
|
|
var updates = /* @__PURE__ */ new Map();
|
|
for (const source2 of batch.current.keys()) {
|
|
for (const [stack2, update2] of source2.updated ?? []) {
|
|
var entry = updates.get(stack2);
|
|
if (!entry) {
|
|
entry = { error: update2.error, count: 0 };
|
|
updates.set(stack2, entry);
|
|
}
|
|
entry.count += update2.count;
|
|
}
|
|
}
|
|
for (const update2 of updates.values()) {
|
|
if (update2.error) {
|
|
console.error(update2.error);
|
|
}
|
|
}
|
|
}
|
|
infinite_loop_guard();
|
|
}
|
|
batch.process(queued_root_effects);
|
|
old_values.clear();
|
|
if (true_default) {
|
|
for (const source2 of batch.current.keys()) {
|
|
source_stacks.add(source2);
|
|
}
|
|
}
|
|
}
|
|
} finally {
|
|
queued_root_effects = [];
|
|
is_flushing = false;
|
|
last_scheduled_effect = null;
|
|
if (true_default) {
|
|
for (
|
|
const source2 of
|
|
/** @type {Set<Source>} */
|
|
source_stacks
|
|
) {
|
|
source2.updated = null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function infinite_loop_guard() {
|
|
try {
|
|
effect_update_depth_exceeded();
|
|
} catch (error) {
|
|
if (true_default) {
|
|
define_property(error, "stack", { value: "" });
|
|
}
|
|
invoke_error_boundary(error, last_scheduled_effect);
|
|
}
|
|
}
|
|
var eager_block_effects = null;
|
|
function flush_queued_effects(effects) {
|
|
var length = effects.length;
|
|
if (length === 0) return;
|
|
var i = 0;
|
|
while (i < length) {
|
|
var effect2 = effects[i++];
|
|
if ((effect2.f & (DESTROYED | INERT)) === 0 && is_dirty(effect2)) {
|
|
eager_block_effects = /* @__PURE__ */ new Set();
|
|
update_effect(effect2);
|
|
if (effect2.deps === null && effect2.first === null && effect2.nodes === null && effect2.teardown === null && effect2.ac === null) {
|
|
unlink_effect(effect2);
|
|
}
|
|
if ((eager_block_effects == null ? void 0 : eager_block_effects.size) > 0) {
|
|
old_values.clear();
|
|
for (const e of eager_block_effects) {
|
|
if ((e.f & (DESTROYED | INERT)) !== 0) continue;
|
|
const ordered_effects = [e];
|
|
let ancestor = e.parent;
|
|
while (ancestor !== null) {
|
|
if (eager_block_effects.has(ancestor)) {
|
|
eager_block_effects.delete(ancestor);
|
|
ordered_effects.push(ancestor);
|
|
}
|
|
ancestor = ancestor.parent;
|
|
}
|
|
for (let j = ordered_effects.length - 1; j >= 0; j--) {
|
|
const e2 = ordered_effects[j];
|
|
if ((e2.f & (DESTROYED | INERT)) !== 0) continue;
|
|
update_effect(e2);
|
|
}
|
|
}
|
|
eager_block_effects.clear();
|
|
}
|
|
}
|
|
}
|
|
eager_block_effects = null;
|
|
}
|
|
function mark_effects(value, sources, marked, checked) {
|
|
if (marked.has(value)) return;
|
|
marked.add(value);
|
|
if (value.reactions !== null) {
|
|
for (const reaction of value.reactions) {
|
|
const flags2 = reaction.f;
|
|
if ((flags2 & DERIVED) !== 0) {
|
|
mark_effects(
|
|
/** @type {Derived} */
|
|
reaction,
|
|
sources,
|
|
marked,
|
|
checked
|
|
);
|
|
} else if ((flags2 & (ASYNC | BLOCK_EFFECT)) !== 0 && (flags2 & DIRTY) === 0 && depends_on(reaction, sources, checked)) {
|
|
set_signal_status(reaction, DIRTY);
|
|
schedule_effect(
|
|
/** @type {Effect} */
|
|
reaction
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function mark_eager_effects(value, effects) {
|
|
if (value.reactions === null) return;
|
|
for (const reaction of value.reactions) {
|
|
const flags2 = reaction.f;
|
|
if ((flags2 & DERIVED) !== 0) {
|
|
mark_eager_effects(
|
|
/** @type {Derived} */
|
|
reaction,
|
|
effects
|
|
);
|
|
} else if ((flags2 & EAGER_EFFECT) !== 0) {
|
|
set_signal_status(reaction, DIRTY);
|
|
effects.add(
|
|
/** @type {Effect} */
|
|
reaction
|
|
);
|
|
}
|
|
}
|
|
}
|
|
function depends_on(reaction, sources, checked) {
|
|
const depends = checked.get(reaction);
|
|
if (depends !== void 0) return depends;
|
|
if (reaction.deps !== null) {
|
|
for (const dep of reaction.deps) {
|
|
if (includes.call(sources, dep)) {
|
|
return true;
|
|
}
|
|
if ((dep.f & DERIVED) !== 0 && depends_on(
|
|
/** @type {Derived} */
|
|
dep,
|
|
sources,
|
|
checked
|
|
)) {
|
|
checked.set(
|
|
/** @type {Derived} */
|
|
dep,
|
|
true
|
|
);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
checked.set(reaction, false);
|
|
return false;
|
|
}
|
|
function schedule_effect(signal) {
|
|
var effect2 = last_scheduled_effect = signal;
|
|
while (effect2.parent !== null) {
|
|
effect2 = effect2.parent;
|
|
var flags2 = effect2.f;
|
|
if (is_flushing && effect2 === active_effect && (flags2 & BLOCK_EFFECT) !== 0 && (flags2 & HEAD_EFFECT) === 0) {
|
|
return;
|
|
}
|
|
if ((flags2 & (ROOT_EFFECT | BRANCH_EFFECT)) !== 0) {
|
|
if ((flags2 & CLEAN) === 0) return;
|
|
effect2.f ^= CLEAN;
|
|
}
|
|
}
|
|
queued_root_effects.push(effect2);
|
|
}
|
|
var eager_versions = [];
|
|
function eager_flush() {
|
|
try {
|
|
flushSync(() => {
|
|
for (const version of eager_versions) {
|
|
update(version);
|
|
}
|
|
});
|
|
} finally {
|
|
eager_versions = [];
|
|
}
|
|
}
|
|
function eager(fn) {
|
|
var version = source(0);
|
|
var initial = true;
|
|
var value = (
|
|
/** @type {T} */
|
|
void 0
|
|
);
|
|
get(version);
|
|
eager_effect(() => {
|
|
if (initial) {
|
|
var previous_batch_values = batch_values;
|
|
try {
|
|
batch_values = null;
|
|
value = fn();
|
|
} finally {
|
|
batch_values = previous_batch_values;
|
|
}
|
|
return;
|
|
}
|
|
if (eager_versions.length === 0) {
|
|
queue_micro_task(eager_flush);
|
|
}
|
|
eager_versions.push(version);
|
|
});
|
|
initial = false;
|
|
return value;
|
|
}
|
|
function reset_branch(effect2, tracked) {
|
|
if ((effect2.f & BRANCH_EFFECT) !== 0 && (effect2.f & CLEAN) !== 0) {
|
|
return;
|
|
}
|
|
if ((effect2.f & DIRTY) !== 0) {
|
|
tracked.d.push(effect2);
|
|
} else if ((effect2.f & MAYBE_DIRTY) !== 0) {
|
|
tracked.m.push(effect2);
|
|
}
|
|
set_signal_status(effect2, CLEAN);
|
|
var e = effect2.first;
|
|
while (e !== null) {
|
|
reset_branch(e, tracked);
|
|
e = e.next;
|
|
}
|
|
}
|
|
function fork(fn) {
|
|
if (!async_mode_flag) {
|
|
experimental_async_required("fork");
|
|
}
|
|
if (current_batch !== null) {
|
|
fork_timing();
|
|
}
|
|
var batch = Batch.ensure();
|
|
batch.is_fork = true;
|
|
batch_values = /* @__PURE__ */ new Map();
|
|
var committed = false;
|
|
var settled2 = batch.settled();
|
|
flushSync(fn);
|
|
for (var [source2, value] of batch.previous) {
|
|
source2.v = value;
|
|
}
|
|
for (source2 of batch.current.keys()) {
|
|
if ((source2.f & DERIVED) !== 0) {
|
|
set_signal_status(source2, DIRTY);
|
|
}
|
|
}
|
|
return {
|
|
commit: async () => {
|
|
if (committed) {
|
|
await settled2;
|
|
return;
|
|
}
|
|
if (!batches.has(batch)) {
|
|
fork_discarded();
|
|
}
|
|
committed = true;
|
|
batch.is_fork = false;
|
|
for (var [source3, value2] of batch.current) {
|
|
source3.v = value2;
|
|
source3.wv = increment_write_version();
|
|
}
|
|
flushSync(() => {
|
|
var eager_effects2 = /* @__PURE__ */ new Set();
|
|
for (var source4 of batch.current.keys()) {
|
|
mark_eager_effects(source4, eager_effects2);
|
|
}
|
|
set_eager_effects(eager_effects2);
|
|
flush_eager_effects();
|
|
});
|
|
batch.revive();
|
|
await settled2;
|
|
},
|
|
discard: () => {
|
|
for (var source3 of batch.current.keys()) {
|
|
source3.wv = increment_write_version();
|
|
}
|
|
if (!committed && batches.has(batch)) {
|
|
batches.delete(batch);
|
|
batch.discard();
|
|
}
|
|
}
|
|
};
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dom/elements/misc.js
|
|
function autofocus(dom, value) {
|
|
if (value) {
|
|
const body = document.body;
|
|
dom.autofocus = true;
|
|
queue_micro_task(() => {
|
|
if (document.activeElement === body) {
|
|
dom.focus();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
function remove_textarea_child(dom) {
|
|
if (hydrating && get_first_child(dom) !== null) {
|
|
clear_text_content(dom);
|
|
}
|
|
}
|
|
var listening_to_form_reset = false;
|
|
function add_form_reset_listener() {
|
|
if (!listening_to_form_reset) {
|
|
listening_to_form_reset = true;
|
|
document.addEventListener(
|
|
"reset",
|
|
(evt) => {
|
|
Promise.resolve().then(() => {
|
|
var _a2;
|
|
if (!evt.defaultPrevented) {
|
|
for (
|
|
const e of
|
|
/**@type {HTMLFormElement} */
|
|
evt.target.elements
|
|
) {
|
|
(_a2 = e.__on_r) == null ? void 0 : _a2.call(e);
|
|
}
|
|
}
|
|
});
|
|
},
|
|
// In the capture phase to guarantee we get noticed of it (no possibility of stopPropagation)
|
|
{ capture: true }
|
|
);
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dom/elements/bindings/shared.js
|
|
function listen(target, events, handler, call_handler_immediately = true) {
|
|
if (call_handler_immediately) {
|
|
handler();
|
|
}
|
|
for (var name of events) {
|
|
target.addEventListener(name, handler);
|
|
}
|
|
teardown(() => {
|
|
for (var name2 of events) {
|
|
target.removeEventListener(name2, handler);
|
|
}
|
|
});
|
|
}
|
|
function without_reactive_context(fn) {
|
|
var previous_reaction = active_reaction;
|
|
var previous_effect = active_effect;
|
|
set_active_reaction(null);
|
|
set_active_effect(null);
|
|
try {
|
|
return fn();
|
|
} finally {
|
|
set_active_reaction(previous_reaction);
|
|
set_active_effect(previous_effect);
|
|
}
|
|
}
|
|
function listen_to_event_and_reset_event(element, event2, handler, on_reset = handler) {
|
|
element.addEventListener(event2, () => without_reactive_context(handler));
|
|
const prev = element.__on_r;
|
|
if (prev) {
|
|
element.__on_r = () => {
|
|
prev();
|
|
on_reset(true);
|
|
};
|
|
} else {
|
|
element.__on_r = () => on_reset(true);
|
|
}
|
|
add_form_reset_listener();
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/reactivity/effects.js
|
|
function validate_effect(rune) {
|
|
if (active_effect === null) {
|
|
if (active_reaction === null) {
|
|
effect_orphan(rune);
|
|
}
|
|
effect_in_unowned_derived();
|
|
}
|
|
if (is_destroying_effect) {
|
|
effect_in_teardown(rune);
|
|
}
|
|
}
|
|
function push_effect(effect2, parent_effect) {
|
|
var parent_last = parent_effect.last;
|
|
if (parent_last === null) {
|
|
parent_effect.last = parent_effect.first = effect2;
|
|
} else {
|
|
parent_last.next = effect2;
|
|
effect2.prev = parent_last;
|
|
parent_effect.last = effect2;
|
|
}
|
|
}
|
|
function create_effect(type, fn, sync) {
|
|
var parent = active_effect;
|
|
if (true_default) {
|
|
while (parent !== null && (parent.f & EAGER_EFFECT) !== 0) {
|
|
parent = parent.parent;
|
|
}
|
|
}
|
|
if (parent !== null && (parent.f & INERT) !== 0) {
|
|
type |= INERT;
|
|
}
|
|
var effect2 = {
|
|
ctx: component_context,
|
|
deps: null,
|
|
nodes: null,
|
|
f: type | DIRTY | CONNECTED,
|
|
first: null,
|
|
fn,
|
|
last: null,
|
|
next: null,
|
|
parent,
|
|
b: parent && parent.b,
|
|
prev: null,
|
|
teardown: null,
|
|
wv: 0,
|
|
ac: null
|
|
};
|
|
if (true_default) {
|
|
effect2.component_function = dev_current_component_function;
|
|
}
|
|
if (sync) {
|
|
try {
|
|
update_effect(effect2);
|
|
} catch (e2) {
|
|
destroy_effect(effect2);
|
|
throw e2;
|
|
}
|
|
} else if (fn !== null) {
|
|
schedule_effect(effect2);
|
|
}
|
|
var e = effect2;
|
|
if (sync && e.deps === null && e.teardown === null && e.nodes === null && e.first === e.last && // either `null`, or a singular child
|
|
(e.f & EFFECT_PRESERVED) === 0) {
|
|
e = e.first;
|
|
if ((type & BLOCK_EFFECT) !== 0 && (type & EFFECT_TRANSPARENT) !== 0 && e !== null) {
|
|
e.f |= EFFECT_TRANSPARENT;
|
|
}
|
|
}
|
|
if (e !== null) {
|
|
e.parent = parent;
|
|
if (parent !== null) {
|
|
push_effect(e, parent);
|
|
}
|
|
if (active_reaction !== null && (active_reaction.f & DERIVED) !== 0 && (type & ROOT_EFFECT) === 0) {
|
|
var derived2 = (
|
|
/** @type {Derived} */
|
|
active_reaction
|
|
);
|
|
(derived2.effects ?? (derived2.effects = [])).push(e);
|
|
}
|
|
}
|
|
return effect2;
|
|
}
|
|
function effect_tracking() {
|
|
return active_reaction !== null && !untracking;
|
|
}
|
|
function teardown(fn) {
|
|
const effect2 = create_effect(RENDER_EFFECT, null, false);
|
|
set_signal_status(effect2, CLEAN);
|
|
effect2.teardown = fn;
|
|
return effect2;
|
|
}
|
|
function user_effect(fn) {
|
|
validate_effect("$effect");
|
|
if (true_default) {
|
|
define_property(fn, "name", {
|
|
value: "$effect"
|
|
});
|
|
}
|
|
var flags2 = (
|
|
/** @type {Effect} */
|
|
active_effect.f
|
|
);
|
|
var defer = !active_reaction && (flags2 & BRANCH_EFFECT) !== 0 && (flags2 & REACTION_RAN) === 0;
|
|
if (defer) {
|
|
var context = (
|
|
/** @type {ComponentContext} */
|
|
component_context
|
|
);
|
|
(context.e ?? (context.e = [])).push(fn);
|
|
} else {
|
|
return create_user_effect(fn);
|
|
}
|
|
}
|
|
function create_user_effect(fn) {
|
|
return create_effect(EFFECT | USER_EFFECT, fn, false);
|
|
}
|
|
function user_pre_effect(fn) {
|
|
validate_effect("$effect.pre");
|
|
if (true_default) {
|
|
define_property(fn, "name", {
|
|
value: "$effect.pre"
|
|
});
|
|
}
|
|
return create_effect(RENDER_EFFECT | USER_EFFECT, fn, true);
|
|
}
|
|
function eager_effect(fn) {
|
|
return create_effect(EAGER_EFFECT, fn, true);
|
|
}
|
|
function effect_root(fn) {
|
|
Batch.ensure();
|
|
const effect2 = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn, true);
|
|
return () => {
|
|
destroy_effect(effect2);
|
|
};
|
|
}
|
|
function component_root(fn) {
|
|
Batch.ensure();
|
|
const effect2 = create_effect(ROOT_EFFECT | EFFECT_PRESERVED, fn, true);
|
|
return (options = {}) => {
|
|
return new Promise((fulfil) => {
|
|
if (options.outro) {
|
|
pause_effect(effect2, () => {
|
|
destroy_effect(effect2);
|
|
fulfil(void 0);
|
|
});
|
|
} else {
|
|
destroy_effect(effect2);
|
|
fulfil(void 0);
|
|
}
|
|
});
|
|
};
|
|
}
|
|
function effect(fn) {
|
|
return create_effect(EFFECT, fn, false);
|
|
}
|
|
function legacy_pre_effect(deps, fn) {
|
|
var context = (
|
|
/** @type {ComponentContextLegacy} */
|
|
component_context
|
|
);
|
|
var token = { effect: null, ran: false, deps };
|
|
context.l.$.push(token);
|
|
token.effect = render_effect(() => {
|
|
deps();
|
|
if (token.ran) return;
|
|
token.ran = true;
|
|
untrack(fn);
|
|
});
|
|
}
|
|
function legacy_pre_effect_reset() {
|
|
var context = (
|
|
/** @type {ComponentContextLegacy} */
|
|
component_context
|
|
);
|
|
render_effect(() => {
|
|
for (var token of context.l.$) {
|
|
token.deps();
|
|
var effect2 = token.effect;
|
|
if ((effect2.f & CLEAN) !== 0 && effect2.deps !== null) {
|
|
set_signal_status(effect2, MAYBE_DIRTY);
|
|
}
|
|
if (is_dirty(effect2)) {
|
|
update_effect(effect2);
|
|
}
|
|
token.ran = false;
|
|
}
|
|
});
|
|
}
|
|
function async_effect(fn) {
|
|
return create_effect(ASYNC | EFFECT_PRESERVED, fn, true);
|
|
}
|
|
function render_effect(fn, flags2 = 0) {
|
|
return create_effect(RENDER_EFFECT | flags2, fn, true);
|
|
}
|
|
function template_effect(fn, sync = [], async = [], blockers = []) {
|
|
flatten(blockers, sync, async, (values) => {
|
|
create_effect(RENDER_EFFECT, () => fn(...values.map(get)), true);
|
|
});
|
|
}
|
|
function deferred_template_effect(fn, sync = [], async = [], blockers = []) {
|
|
var batch = (
|
|
/** @type {Batch} */
|
|
current_batch
|
|
);
|
|
var is_async = async.length > 0 || blockers.length > 0;
|
|
if (is_async) batch.increment(true);
|
|
flatten(blockers, sync, async, (values) => {
|
|
create_effect(EFFECT, () => fn(...values.map(get)), false);
|
|
if (is_async) batch.decrement(true);
|
|
});
|
|
}
|
|
function block(fn, flags2 = 0) {
|
|
var effect2 = create_effect(BLOCK_EFFECT | flags2, fn, true);
|
|
if (true_default) {
|
|
effect2.dev_stack = dev_stack;
|
|
}
|
|
return effect2;
|
|
}
|
|
function managed(fn, flags2 = 0) {
|
|
var effect2 = create_effect(MANAGED_EFFECT | flags2, fn, true);
|
|
if (true_default) {
|
|
effect2.dev_stack = dev_stack;
|
|
}
|
|
return effect2;
|
|
}
|
|
function branch(fn) {
|
|
return create_effect(BRANCH_EFFECT | EFFECT_PRESERVED, fn, true);
|
|
}
|
|
function execute_effect_teardown(effect2) {
|
|
var teardown2 = effect2.teardown;
|
|
if (teardown2 !== null) {
|
|
const previously_destroying_effect = is_destroying_effect;
|
|
const previous_reaction = active_reaction;
|
|
set_is_destroying_effect(true);
|
|
set_active_reaction(null);
|
|
try {
|
|
teardown2.call(null);
|
|
} finally {
|
|
set_is_destroying_effect(previously_destroying_effect);
|
|
set_active_reaction(previous_reaction);
|
|
}
|
|
}
|
|
}
|
|
function destroy_effect_children(signal, remove_dom = false) {
|
|
var effect2 = signal.first;
|
|
signal.first = signal.last = null;
|
|
while (effect2 !== null) {
|
|
const controller = effect2.ac;
|
|
if (controller !== null) {
|
|
without_reactive_context(() => {
|
|
controller.abort(STALE_REACTION);
|
|
});
|
|
}
|
|
var next2 = effect2.next;
|
|
if ((effect2.f & ROOT_EFFECT) !== 0) {
|
|
effect2.parent = null;
|
|
} else {
|
|
destroy_effect(effect2, remove_dom);
|
|
}
|
|
effect2 = next2;
|
|
}
|
|
}
|
|
function destroy_block_effect_children(signal) {
|
|
var effect2 = signal.first;
|
|
while (effect2 !== null) {
|
|
var next2 = effect2.next;
|
|
if ((effect2.f & BRANCH_EFFECT) === 0) {
|
|
destroy_effect(effect2);
|
|
}
|
|
effect2 = next2;
|
|
}
|
|
}
|
|
function destroy_effect(effect2, remove_dom = true) {
|
|
var removed = false;
|
|
if ((remove_dom || (effect2.f & HEAD_EFFECT) !== 0) && effect2.nodes !== null && effect2.nodes.end !== null) {
|
|
remove_effect_dom(
|
|
effect2.nodes.start,
|
|
/** @type {TemplateNode} */
|
|
effect2.nodes.end
|
|
);
|
|
removed = true;
|
|
}
|
|
destroy_effect_children(effect2, remove_dom && !removed);
|
|
remove_reactions(effect2, 0);
|
|
set_signal_status(effect2, DESTROYED);
|
|
var transitions = effect2.nodes && effect2.nodes.t;
|
|
if (transitions !== null) {
|
|
for (const transition of transitions) {
|
|
transition.stop();
|
|
}
|
|
}
|
|
execute_effect_teardown(effect2);
|
|
var parent = effect2.parent;
|
|
if (parent !== null && parent.first !== null) {
|
|
unlink_effect(effect2);
|
|
}
|
|
if (true_default) {
|
|
effect2.component_function = null;
|
|
}
|
|
effect2.next = effect2.prev = effect2.teardown = effect2.ctx = effect2.deps = effect2.fn = effect2.nodes = effect2.ac = null;
|
|
}
|
|
function remove_effect_dom(node, end) {
|
|
while (node !== null) {
|
|
var next2 = node === end ? null : get_next_sibling(node);
|
|
node.remove();
|
|
node = next2;
|
|
}
|
|
}
|
|
function unlink_effect(effect2) {
|
|
var parent = effect2.parent;
|
|
var prev = effect2.prev;
|
|
var next2 = effect2.next;
|
|
if (prev !== null) prev.next = next2;
|
|
if (next2 !== null) next2.prev = prev;
|
|
if (parent !== null) {
|
|
if (parent.first === effect2) parent.first = next2;
|
|
if (parent.last === effect2) parent.last = prev;
|
|
}
|
|
}
|
|
function pause_effect(effect2, callback, destroy = true) {
|
|
var transitions = [];
|
|
pause_children(effect2, transitions, true);
|
|
var fn = () => {
|
|
if (destroy) destroy_effect(effect2);
|
|
if (callback) callback();
|
|
};
|
|
var remaining = transitions.length;
|
|
if (remaining > 0) {
|
|
var check = () => --remaining || fn();
|
|
for (var transition of transitions) {
|
|
transition.out(check);
|
|
}
|
|
} else {
|
|
fn();
|
|
}
|
|
}
|
|
function pause_children(effect2, transitions, local) {
|
|
if ((effect2.f & INERT) !== 0) return;
|
|
effect2.f ^= INERT;
|
|
var t = effect2.nodes && effect2.nodes.t;
|
|
if (t !== null) {
|
|
for (const transition of t) {
|
|
if (transition.is_global || local) {
|
|
transitions.push(transition);
|
|
}
|
|
}
|
|
}
|
|
var child2 = effect2.first;
|
|
while (child2 !== null) {
|
|
var sibling2 = child2.next;
|
|
var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || // If this is a branch effect without a block effect parent,
|
|
// it means the parent block effect was pruned. In that case,
|
|
// transparency information was transferred to the branch effect.
|
|
(child2.f & BRANCH_EFFECT) !== 0 && (effect2.f & BLOCK_EFFECT) !== 0;
|
|
pause_children(child2, transitions, transparent ? local : false);
|
|
child2 = sibling2;
|
|
}
|
|
}
|
|
function resume_effect(effect2) {
|
|
resume_children(effect2, true);
|
|
}
|
|
function resume_children(effect2, local) {
|
|
if ((effect2.f & INERT) === 0) return;
|
|
effect2.f ^= INERT;
|
|
if ((effect2.f & CLEAN) === 0) {
|
|
set_signal_status(effect2, DIRTY);
|
|
schedule_effect(effect2);
|
|
}
|
|
var child2 = effect2.first;
|
|
while (child2 !== null) {
|
|
var sibling2 = child2.next;
|
|
var transparent = (child2.f & EFFECT_TRANSPARENT) !== 0 || (child2.f & BRANCH_EFFECT) !== 0;
|
|
resume_children(child2, transparent ? local : false);
|
|
child2 = sibling2;
|
|
}
|
|
var t = effect2.nodes && effect2.nodes.t;
|
|
if (t !== null) {
|
|
for (const transition of t) {
|
|
if (transition.is_global || local) {
|
|
transition.in();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function aborted(effect2 = (
|
|
/** @type {Effect} */
|
|
active_effect
|
|
)) {
|
|
return (effect2.f & DESTROYED) !== 0;
|
|
}
|
|
function move_effect(effect2, fragment) {
|
|
if (!effect2.nodes) return;
|
|
var node = effect2.nodes.start;
|
|
var end = effect2.nodes.end;
|
|
while (node !== null) {
|
|
var next2 = node === end ? null : get_next_sibling(node);
|
|
fragment.append(node);
|
|
node = next2;
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/legacy.js
|
|
var captured_signals = null;
|
|
function capture_signals(fn) {
|
|
var previous_captured_signals = captured_signals;
|
|
try {
|
|
captured_signals = /* @__PURE__ */ new Set();
|
|
untrack(fn);
|
|
if (previous_captured_signals !== null) {
|
|
for (var signal of captured_signals) {
|
|
previous_captured_signals.add(signal);
|
|
}
|
|
}
|
|
return captured_signals;
|
|
} finally {
|
|
captured_signals = previous_captured_signals;
|
|
}
|
|
}
|
|
function invalidate_inner_signals(fn) {
|
|
for (var signal of capture_signals(fn)) {
|
|
internal_set(signal, signal.v);
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/runtime.js
|
|
var is_updating_effect = false;
|
|
var is_destroying_effect = false;
|
|
function set_is_destroying_effect(value) {
|
|
is_destroying_effect = value;
|
|
}
|
|
var active_reaction = null;
|
|
var untracking = false;
|
|
function set_active_reaction(reaction) {
|
|
active_reaction = reaction;
|
|
}
|
|
var active_effect = null;
|
|
function set_active_effect(effect2) {
|
|
active_effect = effect2;
|
|
}
|
|
var current_sources = null;
|
|
function push_reaction_value(value) {
|
|
if (active_reaction !== null && (!async_mode_flag || (active_reaction.f & DERIVED) !== 0)) {
|
|
if (current_sources === null) {
|
|
current_sources = [value];
|
|
} else {
|
|
current_sources.push(value);
|
|
}
|
|
}
|
|
}
|
|
var new_deps = null;
|
|
var skipped_deps = 0;
|
|
var untracked_writes = null;
|
|
function set_untracked_writes(value) {
|
|
untracked_writes = value;
|
|
}
|
|
var write_version = 1;
|
|
var read_version = 0;
|
|
var update_version = read_version;
|
|
function set_update_version(value) {
|
|
update_version = value;
|
|
}
|
|
function increment_write_version() {
|
|
return ++write_version;
|
|
}
|
|
function is_dirty(reaction) {
|
|
var flags2 = reaction.f;
|
|
if ((flags2 & DIRTY) !== 0) {
|
|
return true;
|
|
}
|
|
if (flags2 & DERIVED) {
|
|
reaction.f &= ~WAS_MARKED;
|
|
}
|
|
if ((flags2 & MAYBE_DIRTY) !== 0) {
|
|
var dependencies = (
|
|
/** @type {Value[]} */
|
|
reaction.deps
|
|
);
|
|
var length = dependencies.length;
|
|
for (var i = 0; i < length; i++) {
|
|
var dependency = dependencies[i];
|
|
if (is_dirty(
|
|
/** @type {Derived} */
|
|
dependency
|
|
)) {
|
|
update_derived(
|
|
/** @type {Derived} */
|
|
dependency
|
|
);
|
|
}
|
|
if (dependency.wv > reaction.wv) {
|
|
return true;
|
|
}
|
|
}
|
|
if ((flags2 & CONNECTED) !== 0 && // During time traveling we don't want to reset the status so that
|
|
// traversal of the graph in the other batches still happens
|
|
batch_values === null) {
|
|
set_signal_status(reaction, CLEAN);
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
function schedule_possible_effect_self_invalidation(signal, effect2, root = true) {
|
|
var reactions = signal.reactions;
|
|
if (reactions === null) return;
|
|
if (!async_mode_flag && current_sources !== null && includes.call(current_sources, signal)) {
|
|
return;
|
|
}
|
|
for (var i = 0; i < reactions.length; i++) {
|
|
var reaction = reactions[i];
|
|
if ((reaction.f & DERIVED) !== 0) {
|
|
schedule_possible_effect_self_invalidation(
|
|
/** @type {Derived} */
|
|
reaction,
|
|
effect2,
|
|
false
|
|
);
|
|
} else if (effect2 === reaction) {
|
|
if (root) {
|
|
set_signal_status(reaction, DIRTY);
|
|
} else if ((reaction.f & CLEAN) !== 0) {
|
|
set_signal_status(reaction, MAYBE_DIRTY);
|
|
}
|
|
schedule_effect(
|
|
/** @type {Effect} */
|
|
reaction
|
|
);
|
|
}
|
|
}
|
|
}
|
|
function update_reaction(reaction) {
|
|
var _a2, _b;
|
|
var previous_deps = new_deps;
|
|
var previous_skipped_deps = skipped_deps;
|
|
var previous_untracked_writes = untracked_writes;
|
|
var previous_reaction = active_reaction;
|
|
var previous_sources = current_sources;
|
|
var previous_component_context = component_context;
|
|
var previous_untracking = untracking;
|
|
var previous_update_version = update_version;
|
|
var flags2 = reaction.f;
|
|
new_deps = /** @type {null | Value[]} */
|
|
null;
|
|
skipped_deps = 0;
|
|
untracked_writes = null;
|
|
active_reaction = (flags2 & (BRANCH_EFFECT | ROOT_EFFECT)) === 0 ? reaction : null;
|
|
current_sources = null;
|
|
set_component_context(reaction.ctx);
|
|
untracking = false;
|
|
update_version = ++read_version;
|
|
if (reaction.ac !== null) {
|
|
without_reactive_context(() => {
|
|
reaction.ac.abort(STALE_REACTION);
|
|
});
|
|
reaction.ac = null;
|
|
}
|
|
try {
|
|
reaction.f |= REACTION_IS_UPDATING;
|
|
var fn = (
|
|
/** @type {Function} */
|
|
reaction.fn
|
|
);
|
|
var result = fn();
|
|
reaction.f |= REACTION_RAN;
|
|
var deps = reaction.deps;
|
|
var is_fork = (_a2 = current_batch) == null ? void 0 : _a2.is_fork;
|
|
if (new_deps !== null) {
|
|
var i;
|
|
if (!is_fork) {
|
|
remove_reactions(reaction, skipped_deps);
|
|
}
|
|
if (deps !== null && skipped_deps > 0) {
|
|
deps.length = skipped_deps + new_deps.length;
|
|
for (i = 0; i < new_deps.length; i++) {
|
|
deps[skipped_deps + i] = new_deps[i];
|
|
}
|
|
} else {
|
|
reaction.deps = deps = new_deps;
|
|
}
|
|
if (effect_tracking() && (reaction.f & CONNECTED) !== 0) {
|
|
for (i = skipped_deps; i < deps.length; i++) {
|
|
((_b = deps[i]).reactions ?? (_b.reactions = [])).push(reaction);
|
|
}
|
|
}
|
|
} else if (!is_fork && deps !== null && skipped_deps < deps.length) {
|
|
remove_reactions(reaction, skipped_deps);
|
|
deps.length = skipped_deps;
|
|
}
|
|
if (is_runes() && untracked_writes !== null && !untracking && deps !== null && (reaction.f & (DERIVED | MAYBE_DIRTY | DIRTY)) === 0) {
|
|
for (i = 0; i < /** @type {Source[]} */
|
|
untracked_writes.length; i++) {
|
|
schedule_possible_effect_self_invalidation(
|
|
untracked_writes[i],
|
|
/** @type {Effect} */
|
|
reaction
|
|
);
|
|
}
|
|
}
|
|
if (previous_reaction !== null && previous_reaction !== reaction) {
|
|
read_version++;
|
|
if (previous_reaction.deps !== null) {
|
|
for (let i2 = 0; i2 < previous_skipped_deps; i2 += 1) {
|
|
previous_reaction.deps[i2].rv = read_version;
|
|
}
|
|
}
|
|
if (previous_deps !== null) {
|
|
for (const dep of previous_deps) {
|
|
dep.rv = read_version;
|
|
}
|
|
}
|
|
if (untracked_writes !== null) {
|
|
if (previous_untracked_writes === null) {
|
|
previous_untracked_writes = untracked_writes;
|
|
} else {
|
|
previous_untracked_writes.push(.../** @type {Source[]} */
|
|
untracked_writes);
|
|
}
|
|
}
|
|
}
|
|
if ((reaction.f & ERROR_VALUE) !== 0) {
|
|
reaction.f ^= ERROR_VALUE;
|
|
}
|
|
return result;
|
|
} catch (error) {
|
|
return handle_error(error);
|
|
} finally {
|
|
reaction.f ^= REACTION_IS_UPDATING;
|
|
new_deps = previous_deps;
|
|
skipped_deps = previous_skipped_deps;
|
|
untracked_writes = previous_untracked_writes;
|
|
active_reaction = previous_reaction;
|
|
current_sources = previous_sources;
|
|
set_component_context(previous_component_context);
|
|
untracking = previous_untracking;
|
|
update_version = previous_update_version;
|
|
}
|
|
}
|
|
function remove_reaction(signal, dependency) {
|
|
let reactions = dependency.reactions;
|
|
if (reactions !== null) {
|
|
var index = index_of.call(reactions, signal);
|
|
if (index !== -1) {
|
|
var new_length = reactions.length - 1;
|
|
if (new_length === 0) {
|
|
reactions = dependency.reactions = null;
|
|
} else {
|
|
reactions[index] = reactions[new_length];
|
|
reactions.pop();
|
|
}
|
|
}
|
|
}
|
|
if (reactions === null && (dependency.f & DERIVED) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear
|
|
// to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`
|
|
// allows us to skip the expensive work of disconnecting and immediately reconnecting it
|
|
(new_deps === null || !includes.call(new_deps, dependency))) {
|
|
var derived2 = (
|
|
/** @type {Derived} */
|
|
dependency
|
|
);
|
|
if ((derived2.f & CONNECTED) !== 0) {
|
|
derived2.f ^= CONNECTED;
|
|
derived2.f &= ~WAS_MARKED;
|
|
}
|
|
update_derived_status(derived2);
|
|
freeze_derived_effects(derived2);
|
|
remove_reactions(derived2, 0);
|
|
}
|
|
}
|
|
function remove_reactions(signal, start_index) {
|
|
var dependencies = signal.deps;
|
|
if (dependencies === null) return;
|
|
for (var i = start_index; i < dependencies.length; i++) {
|
|
remove_reaction(signal, dependencies[i]);
|
|
}
|
|
}
|
|
function update_effect(effect2) {
|
|
var flags2 = effect2.f;
|
|
if ((flags2 & DESTROYED) !== 0) {
|
|
return;
|
|
}
|
|
set_signal_status(effect2, CLEAN);
|
|
var previous_effect = active_effect;
|
|
var was_updating_effect = is_updating_effect;
|
|
active_effect = effect2;
|
|
is_updating_effect = true;
|
|
if (true_default) {
|
|
var previous_component_fn = dev_current_component_function;
|
|
set_dev_current_component_function(effect2.component_function);
|
|
var previous_stack = (
|
|
/** @type {any} */
|
|
dev_stack
|
|
);
|
|
set_dev_stack(effect2.dev_stack ?? dev_stack);
|
|
}
|
|
try {
|
|
if ((flags2 & (BLOCK_EFFECT | MANAGED_EFFECT)) !== 0) {
|
|
destroy_block_effect_children(effect2);
|
|
} else {
|
|
destroy_effect_children(effect2);
|
|
}
|
|
execute_effect_teardown(effect2);
|
|
var teardown2 = update_reaction(effect2);
|
|
effect2.teardown = typeof teardown2 === "function" ? teardown2 : null;
|
|
effect2.wv = write_version;
|
|
if (true_default && tracing_mode_flag && (effect2.f & DIRTY) !== 0 && effect2.deps !== null) {
|
|
for (var dep of effect2.deps) {
|
|
if (dep.set_during_effect) {
|
|
dep.wv = increment_write_version();
|
|
dep.set_during_effect = false;
|
|
}
|
|
}
|
|
}
|
|
} finally {
|
|
is_updating_effect = was_updating_effect;
|
|
active_effect = previous_effect;
|
|
if (true_default) {
|
|
set_dev_current_component_function(previous_component_fn);
|
|
set_dev_stack(previous_stack);
|
|
}
|
|
}
|
|
}
|
|
async function tick() {
|
|
if (async_mode_flag) {
|
|
return new Promise((f) => {
|
|
requestAnimationFrame(() => f());
|
|
setTimeout(() => f());
|
|
});
|
|
}
|
|
await Promise.resolve();
|
|
flushSync();
|
|
}
|
|
function settled() {
|
|
return Batch.ensure().settled();
|
|
}
|
|
function get(signal) {
|
|
var _a2, _b;
|
|
var flags2 = signal.f;
|
|
var is_derived = (flags2 & DERIVED) !== 0;
|
|
(_a2 = captured_signals) == null ? void 0 : _a2.add(signal);
|
|
if (active_reaction !== null && !untracking) {
|
|
var destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0;
|
|
if (!destroyed && (current_sources === null || !includes.call(current_sources, signal))) {
|
|
var deps = active_reaction.deps;
|
|
if ((active_reaction.f & REACTION_IS_UPDATING) !== 0) {
|
|
if (signal.rv < read_version) {
|
|
signal.rv = read_version;
|
|
if (new_deps === null && deps !== null && deps[skipped_deps] === signal) {
|
|
skipped_deps++;
|
|
} else if (new_deps === null) {
|
|
new_deps = [signal];
|
|
} else {
|
|
new_deps.push(signal);
|
|
}
|
|
}
|
|
} else {
|
|
(active_reaction.deps ?? (active_reaction.deps = [])).push(signal);
|
|
var reactions = signal.reactions;
|
|
if (reactions === null) {
|
|
signal.reactions = [active_reaction];
|
|
} else if (!includes.call(reactions, active_reaction)) {
|
|
reactions.push(active_reaction);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (true_default) {
|
|
recent_async_deriveds.delete(signal);
|
|
if (tracing_mode_flag && !untracking && tracing_expressions !== null && active_reaction !== null && tracing_expressions.reaction === active_reaction) {
|
|
if (signal.trace) {
|
|
signal.trace();
|
|
} else {
|
|
var trace2 = get_error("traced at");
|
|
if (trace2) {
|
|
var entry = tracing_expressions.entries.get(signal);
|
|
if (entry === void 0) {
|
|
entry = { traces: [] };
|
|
tracing_expressions.entries.set(signal, entry);
|
|
}
|
|
var last = entry.traces[entry.traces.length - 1];
|
|
if (trace2.stack !== (last == null ? void 0 : last.stack)) {
|
|
entry.traces.push(trace2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (is_destroying_effect && old_values.has(signal)) {
|
|
return old_values.get(signal);
|
|
}
|
|
if (is_derived) {
|
|
var derived2 = (
|
|
/** @type {Derived} */
|
|
signal
|
|
);
|
|
if (is_destroying_effect) {
|
|
var value = derived2.v;
|
|
if ((derived2.f & CLEAN) === 0 && derived2.reactions !== null || depends_on_old_values(derived2)) {
|
|
value = execute_derived(derived2);
|
|
}
|
|
old_values.set(derived2, value);
|
|
return value;
|
|
}
|
|
var should_connect = (derived2.f & CONNECTED) === 0 && !untracking && active_reaction !== null && (is_updating_effect || (active_reaction.f & CONNECTED) !== 0);
|
|
var is_new = (derived2.f & REACTION_RAN) === 0;
|
|
if (is_dirty(derived2)) {
|
|
if (should_connect) {
|
|
derived2.f |= CONNECTED;
|
|
}
|
|
update_derived(derived2);
|
|
}
|
|
if (should_connect && !is_new) {
|
|
unfreeze_derived_effects(derived2);
|
|
reconnect(derived2);
|
|
}
|
|
}
|
|
if ((_b = batch_values) == null ? void 0 : _b.has(signal)) {
|
|
return batch_values.get(signal);
|
|
}
|
|
if ((signal.f & ERROR_VALUE) !== 0) {
|
|
throw signal.v;
|
|
}
|
|
return signal.v;
|
|
}
|
|
function reconnect(derived2) {
|
|
derived2.f |= CONNECTED;
|
|
if (derived2.deps === null) return;
|
|
for (const dep of derived2.deps) {
|
|
(dep.reactions ?? (dep.reactions = [])).push(derived2);
|
|
if ((dep.f & DERIVED) !== 0 && (dep.f & CONNECTED) === 0) {
|
|
unfreeze_derived_effects(
|
|
/** @type {Derived} */
|
|
dep
|
|
);
|
|
reconnect(
|
|
/** @type {Derived} */
|
|
dep
|
|
);
|
|
}
|
|
}
|
|
}
|
|
function depends_on_old_values(derived2) {
|
|
if (derived2.v === UNINITIALIZED) return true;
|
|
if (derived2.deps === null) return false;
|
|
for (const dep of derived2.deps) {
|
|
if (old_values.has(dep)) {
|
|
return true;
|
|
}
|
|
if ((dep.f & DERIVED) !== 0 && depends_on_old_values(
|
|
/** @type {Derived} */
|
|
dep
|
|
)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
function safe_get(signal) {
|
|
return signal && get(signal);
|
|
}
|
|
function untrack(fn) {
|
|
var previous_untracking = untracking;
|
|
try {
|
|
untracking = true;
|
|
return fn();
|
|
} finally {
|
|
untracking = previous_untracking;
|
|
}
|
|
}
|
|
function exclude_from_object(obj, keys) {
|
|
var result = {};
|
|
for (var key in obj) {
|
|
if (!keys.includes(key)) {
|
|
result[key] = obj[key];
|
|
}
|
|
}
|
|
for (var symbol of Object.getOwnPropertySymbols(obj)) {
|
|
if (Object.propertyIsEnumerable.call(obj, symbol) && !keys.includes(symbol)) {
|
|
result[symbol] = obj[symbol];
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
function deep_read_state(value) {
|
|
if (typeof value !== "object" || !value || value instanceof EventTarget) {
|
|
return;
|
|
}
|
|
if (STATE_SYMBOL in value) {
|
|
deep_read(value);
|
|
} else if (!Array.isArray(value)) {
|
|
for (let key in value) {
|
|
const prop = value[key];
|
|
if (typeof prop === "object" && prop && STATE_SYMBOL in prop) {
|
|
deep_read(prop);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function deep_read(value, visited = /* @__PURE__ */ new Set()) {
|
|
if (typeof value === "object" && value !== null && // We don't want to traverse DOM elements
|
|
!(value instanceof EventTarget) && !visited.has(value)) {
|
|
visited.add(value);
|
|
if (value instanceof Date) {
|
|
value.getTime();
|
|
}
|
|
for (let key in value) {
|
|
try {
|
|
deep_read(value[key], visited);
|
|
} catch (e) {
|
|
}
|
|
}
|
|
const proto = get_prototype_of(value);
|
|
if (proto !== Object.prototype && proto !== Array.prototype && proto !== Map.prototype && proto !== Set.prototype && proto !== Date.prototype) {
|
|
const descriptors = get_descriptors(proto);
|
|
for (let key in descriptors) {
|
|
const get2 = descriptors[key].get;
|
|
if (get2) {
|
|
try {
|
|
get2.call(value);
|
|
} catch (e) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/proxy.js
|
|
var regex_is_valid_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
|
|
function proxy(value) {
|
|
if (typeof value !== "object" || value === null || STATE_SYMBOL in value) {
|
|
return value;
|
|
}
|
|
const prototype = get_prototype_of(value);
|
|
if (prototype !== object_prototype && prototype !== array_prototype) {
|
|
return value;
|
|
}
|
|
var sources = /* @__PURE__ */ new Map();
|
|
var is_proxied_array = is_array(value);
|
|
var version = state(0);
|
|
var stack2 = true_default && tracing_mode_flag ? get_error("created at") : null;
|
|
var parent_version = update_version;
|
|
var with_parent = (fn) => {
|
|
if (update_version === parent_version) {
|
|
return fn();
|
|
}
|
|
var reaction = active_reaction;
|
|
var version2 = update_version;
|
|
set_active_reaction(null);
|
|
set_update_version(parent_version);
|
|
var result = fn();
|
|
set_active_reaction(reaction);
|
|
set_update_version(version2);
|
|
return result;
|
|
};
|
|
if (is_proxied_array) {
|
|
sources.set("length", state(
|
|
/** @type {any[]} */
|
|
value.length,
|
|
stack2
|
|
));
|
|
if (true_default) {
|
|
value = /** @type {any} */
|
|
inspectable_array(
|
|
/** @type {any[]} */
|
|
value
|
|
);
|
|
}
|
|
}
|
|
var path = "";
|
|
let updating = false;
|
|
function update_path(new_path) {
|
|
if (updating) return;
|
|
updating = true;
|
|
path = new_path;
|
|
tag(version, `${path} version`);
|
|
for (const [prop, source2] of sources) {
|
|
tag(source2, get_label(path, prop));
|
|
}
|
|
updating = false;
|
|
}
|
|
return new Proxy(
|
|
/** @type {any} */
|
|
value,
|
|
{
|
|
defineProperty(_, prop, descriptor) {
|
|
if (!("value" in descriptor) || descriptor.configurable === false || descriptor.enumerable === false || descriptor.writable === false) {
|
|
state_descriptors_fixed();
|
|
}
|
|
var s = sources.get(prop);
|
|
if (s === void 0) {
|
|
with_parent(() => {
|
|
var s2 = state(descriptor.value, stack2);
|
|
sources.set(prop, s2);
|
|
if (true_default && typeof prop === "string") {
|
|
tag(s2, get_label(path, prop));
|
|
}
|
|
return s2;
|
|
});
|
|
} else {
|
|
set(s, descriptor.value, true);
|
|
}
|
|
return true;
|
|
},
|
|
deleteProperty(target, prop) {
|
|
var s = sources.get(prop);
|
|
if (s === void 0) {
|
|
if (prop in target) {
|
|
const s2 = with_parent(() => state(UNINITIALIZED, stack2));
|
|
sources.set(prop, s2);
|
|
increment(version);
|
|
if (true_default) {
|
|
tag(s2, get_label(path, prop));
|
|
}
|
|
}
|
|
} else {
|
|
set(s, UNINITIALIZED);
|
|
increment(version);
|
|
}
|
|
return true;
|
|
},
|
|
get(target, prop, receiver) {
|
|
var _a2;
|
|
if (prop === STATE_SYMBOL) {
|
|
return value;
|
|
}
|
|
if (true_default && prop === PROXY_PATH_SYMBOL) {
|
|
return update_path;
|
|
}
|
|
var s = sources.get(prop);
|
|
var exists = prop in target;
|
|
if (s === void 0 && (!exists || ((_a2 = get_descriptor(target, prop)) == null ? void 0 : _a2.writable))) {
|
|
s = with_parent(() => {
|
|
var p = proxy(exists ? target[prop] : UNINITIALIZED);
|
|
var s2 = state(p, stack2);
|
|
if (true_default) {
|
|
tag(s2, get_label(path, prop));
|
|
}
|
|
return s2;
|
|
});
|
|
sources.set(prop, s);
|
|
}
|
|
if (s !== void 0) {
|
|
var v = get(s);
|
|
return v === UNINITIALIZED ? void 0 : v;
|
|
}
|
|
return Reflect.get(target, prop, receiver);
|
|
},
|
|
getOwnPropertyDescriptor(target, prop) {
|
|
var descriptor = Reflect.getOwnPropertyDescriptor(target, prop);
|
|
if (descriptor && "value" in descriptor) {
|
|
var s = sources.get(prop);
|
|
if (s) descriptor.value = get(s);
|
|
} else if (descriptor === void 0) {
|
|
var source2 = sources.get(prop);
|
|
var value2 = source2 == null ? void 0 : source2.v;
|
|
if (source2 !== void 0 && value2 !== UNINITIALIZED) {
|
|
return {
|
|
enumerable: true,
|
|
configurable: true,
|
|
value: value2,
|
|
writable: true
|
|
};
|
|
}
|
|
}
|
|
return descriptor;
|
|
},
|
|
has(target, prop) {
|
|
var _a2;
|
|
if (prop === STATE_SYMBOL) {
|
|
return true;
|
|
}
|
|
var s = sources.get(prop);
|
|
var has = s !== void 0 && s.v !== UNINITIALIZED || Reflect.has(target, prop);
|
|
if (s !== void 0 || active_effect !== null && (!has || ((_a2 = get_descriptor(target, prop)) == null ? void 0 : _a2.writable))) {
|
|
if (s === void 0) {
|
|
s = with_parent(() => {
|
|
var p = has ? proxy(target[prop]) : UNINITIALIZED;
|
|
var s2 = state(p, stack2);
|
|
if (true_default) {
|
|
tag(s2, get_label(path, prop));
|
|
}
|
|
return s2;
|
|
});
|
|
sources.set(prop, s);
|
|
}
|
|
var value2 = get(s);
|
|
if (value2 === UNINITIALIZED) {
|
|
return false;
|
|
}
|
|
}
|
|
return has;
|
|
},
|
|
set(target, prop, value2, receiver) {
|
|
var _a2;
|
|
var s = sources.get(prop);
|
|
var has = prop in target;
|
|
if (is_proxied_array && prop === "length") {
|
|
for (var i = value2; i < /** @type {Source<number>} */
|
|
s.v; i += 1) {
|
|
var other_s = sources.get(i + "");
|
|
if (other_s !== void 0) {
|
|
set(other_s, UNINITIALIZED);
|
|
} else if (i in target) {
|
|
other_s = with_parent(() => state(UNINITIALIZED, stack2));
|
|
sources.set(i + "", other_s);
|
|
if (true_default) {
|
|
tag(other_s, get_label(path, i));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (s === void 0) {
|
|
if (!has || ((_a2 = get_descriptor(target, prop)) == null ? void 0 : _a2.writable)) {
|
|
s = with_parent(() => state(void 0, stack2));
|
|
if (true_default) {
|
|
tag(s, get_label(path, prop));
|
|
}
|
|
set(s, proxy(value2));
|
|
sources.set(prop, s);
|
|
}
|
|
} else {
|
|
has = s.v !== UNINITIALIZED;
|
|
var p = with_parent(() => proxy(value2));
|
|
set(s, p);
|
|
}
|
|
var descriptor = Reflect.getOwnPropertyDescriptor(target, prop);
|
|
if (descriptor == null ? void 0 : descriptor.set) {
|
|
descriptor.set.call(receiver, value2);
|
|
}
|
|
if (!has) {
|
|
if (is_proxied_array && typeof prop === "string") {
|
|
var ls = (
|
|
/** @type {Source<number>} */
|
|
sources.get("length")
|
|
);
|
|
var n = Number(prop);
|
|
if (Number.isInteger(n) && n >= ls.v) {
|
|
set(ls, n + 1);
|
|
}
|
|
}
|
|
increment(version);
|
|
}
|
|
return true;
|
|
},
|
|
ownKeys(target) {
|
|
get(version);
|
|
var own_keys = Reflect.ownKeys(target).filter((key2) => {
|
|
var source3 = sources.get(key2);
|
|
return source3 === void 0 || source3.v !== UNINITIALIZED;
|
|
});
|
|
for (var [key, source2] of sources) {
|
|
if (source2.v !== UNINITIALIZED && !(key in target)) {
|
|
own_keys.push(key);
|
|
}
|
|
}
|
|
return own_keys;
|
|
},
|
|
setPrototypeOf() {
|
|
state_prototype_fixed();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
function get_label(path, prop) {
|
|
if (typeof prop === "symbol") return `${path}[Symbol(${prop.description ?? ""})]`;
|
|
if (regex_is_valid_identifier.test(prop)) return `${path}.${prop}`;
|
|
return /^\d+$/.test(prop) ? `${path}[${prop}]` : `${path}['${prop}']`;
|
|
}
|
|
function get_proxied_value(value) {
|
|
try {
|
|
if (value !== null && typeof value === "object" && STATE_SYMBOL in value) {
|
|
return value[STATE_SYMBOL];
|
|
}
|
|
} catch {
|
|
}
|
|
return value;
|
|
}
|
|
function is(a, b) {
|
|
return Object.is(get_proxied_value(a), get_proxied_value(b));
|
|
}
|
|
var ARRAY_MUTATING_METHODS = /* @__PURE__ */ new Set([
|
|
"copyWithin",
|
|
"fill",
|
|
"pop",
|
|
"push",
|
|
"reverse",
|
|
"shift",
|
|
"sort",
|
|
"splice",
|
|
"unshift"
|
|
]);
|
|
function inspectable_array(array) {
|
|
return new Proxy(array, {
|
|
get(target, prop, receiver) {
|
|
var value = Reflect.get(target, prop, receiver);
|
|
if (!ARRAY_MUTATING_METHODS.has(
|
|
/** @type {string} */
|
|
prop
|
|
)) {
|
|
return value;
|
|
}
|
|
return function(...args) {
|
|
set_eager_effects_deferred();
|
|
var result = value.apply(this, args);
|
|
flush_eager_effects();
|
|
return result;
|
|
};
|
|
}
|
|
});
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dev/equality.js
|
|
function init_array_prototype_warnings() {
|
|
const array_prototype2 = Array.prototype;
|
|
const cleanup = Array.__svelte_cleanup;
|
|
if (cleanup) {
|
|
cleanup();
|
|
}
|
|
const { indexOf, lastIndexOf, includes: includes2 } = array_prototype2;
|
|
array_prototype2.indexOf = function(item, from_index) {
|
|
const index = indexOf.call(this, item, from_index);
|
|
if (index === -1) {
|
|
for (let i = from_index ?? 0; i < this.length; i += 1) {
|
|
if (get_proxied_value(this[i]) === item) {
|
|
state_proxy_equality_mismatch("array.indexOf(...)");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return index;
|
|
};
|
|
array_prototype2.lastIndexOf = function(item, from_index) {
|
|
const index = lastIndexOf.call(this, item, from_index ?? this.length - 1);
|
|
if (index === -1) {
|
|
for (let i = 0; i <= (from_index ?? this.length - 1); i += 1) {
|
|
if (get_proxied_value(this[i]) === item) {
|
|
state_proxy_equality_mismatch("array.lastIndexOf(...)");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return index;
|
|
};
|
|
array_prototype2.includes = function(item, from_index) {
|
|
const has = includes2.call(this, item, from_index);
|
|
if (!has) {
|
|
for (let i = 0; i < this.length; i += 1) {
|
|
if (get_proxied_value(this[i]) === item) {
|
|
state_proxy_equality_mismatch("array.includes(...)");
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return has;
|
|
};
|
|
Array.__svelte_cleanup = () => {
|
|
array_prototype2.indexOf = indexOf;
|
|
array_prototype2.lastIndexOf = lastIndexOf;
|
|
array_prototype2.includes = includes2;
|
|
};
|
|
}
|
|
function strict_equals(a, b, equal = true) {
|
|
try {
|
|
if (a === b !== (get_proxied_value(a) === get_proxied_value(b))) {
|
|
state_proxy_equality_mismatch(equal ? "===" : "!==");
|
|
}
|
|
} catch {
|
|
}
|
|
return a === b === equal;
|
|
}
|
|
function equals2(a, b, equal = true) {
|
|
if (a == b !== (get_proxied_value(a) == get_proxied_value(b))) {
|
|
state_proxy_equality_mismatch(equal ? "==" : "!=");
|
|
}
|
|
return a == b === equal;
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dom/operations.js
|
|
var $window;
|
|
var $document;
|
|
var is_firefox;
|
|
var first_child_getter;
|
|
var next_sibling_getter;
|
|
function init_operations() {
|
|
if ($window !== void 0) {
|
|
return;
|
|
}
|
|
$window = window;
|
|
$document = document;
|
|
is_firefox = /Firefox/.test(navigator.userAgent);
|
|
var element_prototype = Element.prototype;
|
|
var node_prototype = Node.prototype;
|
|
var text_prototype = Text.prototype;
|
|
first_child_getter = get_descriptor(node_prototype, "firstChild").get;
|
|
next_sibling_getter = get_descriptor(node_prototype, "nextSibling").get;
|
|
if (is_extensible(element_prototype)) {
|
|
element_prototype.__click = void 0;
|
|
element_prototype.__className = void 0;
|
|
element_prototype.__attributes = null;
|
|
element_prototype.__style = void 0;
|
|
element_prototype.__e = void 0;
|
|
}
|
|
if (is_extensible(text_prototype)) {
|
|
text_prototype.__t = void 0;
|
|
}
|
|
if (true_default) {
|
|
element_prototype.__svelte_meta = null;
|
|
init_array_prototype_warnings();
|
|
}
|
|
}
|
|
function create_text(value = "") {
|
|
return document.createTextNode(value);
|
|
}
|
|
function get_first_child(node) {
|
|
return (
|
|
/** @type {TemplateNode | null} */
|
|
first_child_getter.call(node)
|
|
);
|
|
}
|
|
function get_next_sibling(node) {
|
|
return (
|
|
/** @type {TemplateNode | null} */
|
|
next_sibling_getter.call(node)
|
|
);
|
|
}
|
|
function child(node, is_text) {
|
|
if (!hydrating) {
|
|
return get_first_child(node);
|
|
}
|
|
var child2 = get_first_child(hydrate_node);
|
|
if (child2 === null) {
|
|
child2 = hydrate_node.appendChild(create_text());
|
|
} else if (is_text && child2.nodeType !== TEXT_NODE) {
|
|
var text = create_text();
|
|
child2 == null ? void 0 : child2.before(text);
|
|
set_hydrate_node(text);
|
|
return text;
|
|
}
|
|
if (is_text) {
|
|
merge_text_nodes(
|
|
/** @type {Text} */
|
|
child2
|
|
);
|
|
}
|
|
set_hydrate_node(child2);
|
|
return child2;
|
|
}
|
|
function first_child(node, is_text = false) {
|
|
var _a2, _b;
|
|
if (!hydrating) {
|
|
var first = get_first_child(node);
|
|
if (first instanceof Comment && first.data === "") return get_next_sibling(first);
|
|
return first;
|
|
}
|
|
if (is_text) {
|
|
if (((_a2 = hydrate_node) == null ? void 0 : _a2.nodeType) !== TEXT_NODE) {
|
|
var text = create_text();
|
|
(_b = hydrate_node) == null ? void 0 : _b.before(text);
|
|
set_hydrate_node(text);
|
|
return text;
|
|
}
|
|
merge_text_nodes(
|
|
/** @type {Text} */
|
|
hydrate_node
|
|
);
|
|
}
|
|
return hydrate_node;
|
|
}
|
|
function sibling(node, count = 1, is_text = false) {
|
|
let next_sibling = hydrating ? hydrate_node : node;
|
|
var last_sibling;
|
|
while (count--) {
|
|
last_sibling = next_sibling;
|
|
next_sibling = /** @type {TemplateNode} */
|
|
get_next_sibling(next_sibling);
|
|
}
|
|
if (!hydrating) {
|
|
return next_sibling;
|
|
}
|
|
if (is_text) {
|
|
if ((next_sibling == null ? void 0 : next_sibling.nodeType) !== TEXT_NODE) {
|
|
var text = create_text();
|
|
if (next_sibling === null) {
|
|
last_sibling == null ? void 0 : last_sibling.after(text);
|
|
} else {
|
|
next_sibling.before(text);
|
|
}
|
|
set_hydrate_node(text);
|
|
return text;
|
|
}
|
|
merge_text_nodes(
|
|
/** @type {Text} */
|
|
next_sibling
|
|
);
|
|
}
|
|
set_hydrate_node(next_sibling);
|
|
return next_sibling;
|
|
}
|
|
function clear_text_content(node) {
|
|
node.textContent = "";
|
|
}
|
|
function should_defer_append() {
|
|
if (!async_mode_flag) return false;
|
|
if (eager_block_effects !== null) return false;
|
|
var flags2 = (
|
|
/** @type {Effect} */
|
|
active_effect.f
|
|
);
|
|
return (flags2 & REACTION_RAN) !== 0;
|
|
}
|
|
function create_element(tag2, namespace, is2) {
|
|
let options = is2 ? { is: is2 } : void 0;
|
|
return (
|
|
/** @type {T extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[T] : Element} */
|
|
document.createElementNS(namespace ?? NAMESPACE_HTML, tag2, options)
|
|
);
|
|
}
|
|
function create_fragment() {
|
|
return document.createDocumentFragment();
|
|
}
|
|
function create_comment(data = "") {
|
|
return document.createComment(data);
|
|
}
|
|
function set_attribute(element, key, value = "") {
|
|
if (key.startsWith("xlink:")) {
|
|
element.setAttributeNS("http://www.w3.org/1999/xlink", key, value);
|
|
return;
|
|
}
|
|
return element.setAttribute(key, value);
|
|
}
|
|
function merge_text_nodes(text) {
|
|
if (
|
|
/** @type {string} */
|
|
text.nodeValue.length < 65536
|
|
) {
|
|
return;
|
|
}
|
|
let next2 = text.nextSibling;
|
|
while (next2 !== null && next2.nodeType === TEXT_NODE) {
|
|
next2.remove();
|
|
text.nodeValue += /** @type {string} */
|
|
next2.nodeValue;
|
|
next2 = text.nextSibling;
|
|
}
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dom/hydration.js
|
|
var hydrating = false;
|
|
function set_hydrating(value) {
|
|
hydrating = value;
|
|
}
|
|
var hydrate_node;
|
|
function set_hydrate_node(node) {
|
|
if (node === null) {
|
|
hydration_mismatch();
|
|
throw HYDRATION_ERROR;
|
|
}
|
|
return hydrate_node = node;
|
|
}
|
|
function hydrate_next() {
|
|
return set_hydrate_node(get_next_sibling(hydrate_node));
|
|
}
|
|
function reset(node) {
|
|
if (!hydrating) return;
|
|
if (get_next_sibling(hydrate_node) !== null) {
|
|
hydration_mismatch();
|
|
throw HYDRATION_ERROR;
|
|
}
|
|
hydrate_node = node;
|
|
}
|
|
function hydrate_template(template) {
|
|
if (hydrating) {
|
|
hydrate_node = template.content;
|
|
}
|
|
}
|
|
function next(count = 1) {
|
|
if (hydrating) {
|
|
var i = count;
|
|
var node = hydrate_node;
|
|
while (i--) {
|
|
node = /** @type {TemplateNode} */
|
|
get_next_sibling(node);
|
|
}
|
|
hydrate_node = node;
|
|
}
|
|
}
|
|
function skip_nodes(remove = true) {
|
|
var depth = 0;
|
|
var node = hydrate_node;
|
|
while (true) {
|
|
if (node.nodeType === COMMENT_NODE) {
|
|
var data = (
|
|
/** @type {Comment} */
|
|
node.data
|
|
);
|
|
if (data === HYDRATION_END) {
|
|
if (depth === 0) return node;
|
|
depth -= 1;
|
|
} else if (data === HYDRATION_START || data === HYDRATION_START_ELSE || // "[1", "[2", etc. for if blocks
|
|
data[0] === "[" && !isNaN(Number(data.slice(1)))) {
|
|
depth += 1;
|
|
}
|
|
}
|
|
var next2 = (
|
|
/** @type {TemplateNode} */
|
|
get_next_sibling(node)
|
|
);
|
|
if (remove) node.remove();
|
|
node = next2;
|
|
}
|
|
}
|
|
function read_hydration_instruction(node) {
|
|
if (!node || node.nodeType !== COMMENT_NODE) {
|
|
hydration_mismatch();
|
|
throw HYDRATION_ERROR;
|
|
}
|
|
return (
|
|
/** @type {Comment} */
|
|
node.data
|
|
);
|
|
}
|
|
|
|
// node_modules/svelte/src/internal/client/dom/elements/events.js
|
|
var event_symbol = Symbol("events");
|
|
var all_registered_events = /* @__PURE__ */ new Set();
|
|
var root_event_handles = /* @__PURE__ */ new Set();
|
|
function replay_events(dom) {
|
|
if (!hydrating) return;
|
|
dom.removeAttribute("onload");
|
|
dom.removeAttribute("onerror");
|
|
const event2 = dom.__e;
|
|
if (event2 !== void 0) {
|
|
dom.__e = void 0;
|
|
queueMicrotask(() => {
|
|
if (dom.isConnected) {
|
|
dom.dispatchEvent(event2);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
function create_event(event_name, dom, handler, options = {}) {
|
|
function target_handler(event2) {
|
|
if (!options.capture) {
|
|
handle_event_propagation.call(dom, event2);
|
|
}
|
|
if (!event2.cancelBubble) {
|
|
return without_reactive_context(() => {
|
|
return handler == null ? void 0 : handler.call(this, event2);
|
|
});
|
|
}
|
|
}
|
|
if (event_name.startsWith("pointer") || event_name.startsWith("touch") || event_name === "wheel") {
|
|
queue_micro_task(() => {
|
|
dom.addEventListener(event_name, target_handler, options);
|
|
});
|
|
} else {
|
|
dom.addEventListener(event_name, target_handler, options);
|
|
}
|
|
return target_handler;
|
|
}
|
|
function on(element, type, handler, options = {}) {
|
|
var target_handler = create_event(type, element, handler, options);
|
|
return () => {
|
|
element.removeEventListener(type, target_handler, options);
|
|
};
|
|
}
|
|
function event(event_name, dom, handler, capture2, passive) {
|
|
var options = { capture: capture2, passive };
|
|
var target_handler = create_event(event_name, dom, handler, options);
|
|
if (dom === document.body || // @ts-ignore
|
|
dom === window || // @ts-ignore
|
|
dom === document || // Firefox has quirky behavior, it can happen that we still get "canplay" events when the element is already removed
|
|
dom instanceof HTMLMediaElement) {
|
|
teardown(() => {
|
|
dom.removeEventListener(event_name, target_handler, options);
|
|
});
|
|
}
|
|
}
|
|
function delegated(event_name, element, handler) {
|
|
(element[event_symbol] ?? (element[event_symbol] = {}))[event_name] = handler;
|
|
}
|
|
function delegate(events) {
|
|
for (var i = 0; i < events.length; i++) {
|
|
all_registered_events.add(events[i]);
|
|
}
|
|
for (var fn of root_event_handles) {
|
|
fn(events);
|
|
}
|
|
}
|
|
var last_propagated_event = null;
|
|
function handle_event_propagation(event2) {
|
|
var _a2, _b;
|
|
var handler_element = this;
|
|
var owner_document = (
|
|
/** @type {Node} */
|
|
handler_element.ownerDocument
|
|
);
|
|
var event_name = event2.type;
|
|
var path = ((_a2 = event2.composedPath) == null ? void 0 : _a2.call(event2)) || [];
|
|
var current_target = (
|
|
/** @type {null | Element} */
|
|
path[0] || event2.target
|
|
);
|
|
last_propagated_event = event2;
|
|
var path_idx = 0;
|
|
var handled_at = last_propagated_event === event2 && event2[event_symbol];
|
|
if (handled_at) {
|
|
var at_idx = path.indexOf(handled_at);
|
|
if (at_idx !== -1 && (handler_element === document || handler_element === /** @type {any} */
|
|
window)) {
|
|
event2[event_symbol] = handler_element;
|
|
return;
|
|
}
|
|
var handler_idx = path.indexOf(handler_element);
|
|
if (handler_idx === -1) {
|
|
return;
|
|
}
|
|
if (at_idx <= handler_idx) {
|
|
path_idx = at_idx;
|
|
}
|
|
}
|
|
current_target = /** @type {Element} */
|
|
path[path_idx] || event2.target;
|
|
if (current_target === handler_element) return;
|
|
define_property(event2, "currentTarget", {
|
|
configurable: true,
|
|
get() {
|
|
return current_target || owner_document;
|
|
}
|
|
});
|
|
var previous_reaction = active_reaction;
|
|
var previous_effect = active_effect;
|
|
set_active_reaction(null);
|
|
set_active_effect(null);
|
|
try {
|
|
var throw_error;
|
|
var other_errors = [];
|
|
while (current_target !== null) {
|
|
var parent_element = current_target.assignedSlot || current_target.parentNode || /** @type {any} */
|
|
current_target.host || null;
|
|
try {
|
|
var delegated2 = (_b = current_target[event_symbol]) == null ? void 0 : _b[event_name];
|
|
if (delegated2 != null && (!/** @type {any} */
|
|
current_target.disabled || // DOM could've been updated already by the time this is reached, so we check this as well
|
|
// -> the target could not have been disabled because it emits the event in the first place
|
|
event2.target === current_target)) {
|
|
delegated2.call(current_target, event2);
|
|
}
|
|
} catch (error) {
|
|
if (throw_error) {
|
|
other_errors.push(error);
|
|
} else {
|
|
throw_error = error;
|
|
}
|
|
}
|
|
if (event2.cancelBubble || parent_element === handler_element || parent_element === null) {
|
|
break;
|
|
}
|
|
current_target = parent_element;
|
|
}
|
|
if (throw_error) {
|
|
for (let error of other_errors) {
|
|
queueMicrotask(() => {
|
|
throw error;
|
|
});
|
|
}
|
|
throw throw_error;
|
|
}
|
|
} finally {
|
|
event2[event_symbol] = handler_element;
|
|
delete event2.currentTarget;
|
|
set_active_reaction(previous_reaction);
|
|
set_active_effect(previous_effect);
|
|
}
|
|
}
|
|
function apply(thunk, element, args, component, loc, has_side_effects = false, remove_parens = false) {
|
|
var _a2, _b;
|
|
let handler;
|
|
let error;
|
|
try {
|
|
handler = thunk();
|
|
} catch (e) {
|
|
error = e;
|
|
}
|
|
if (typeof handler !== "function" && (has_side_effects || handler != null || error)) {
|
|
const filename = component == null ? void 0 : component[FILENAME];
|
|
const location = loc ? ` at ${filename}:${loc[0]}:${loc[1]}` : ` in ${filename}`;
|
|
const phase = ((_a2 = args[0]) == null ? void 0 : _a2.eventPhase) < Event.BUBBLING_PHASE ? "capture" : "";
|
|
const event_name = ((_b = args[0]) == null ? void 0 : _b.type) + phase;
|
|
const description = `\`${event_name}\` handler${location}`;
|
|
const suggestion = remove_parens ? "remove the trailing `()`" : "add a leading `() =>`";
|
|
event_handler_invalid(description, suggestion);
|
|
if (error) {
|
|
throw error;
|
|
}
|
|
}
|
|
handler == null ? void 0 : handler.apply(element, args);
|
|
}
|
|
|
|
export {
|
|
is_array,
|
|
array_from,
|
|
object_keys,
|
|
define_property,
|
|
get_descriptor,
|
|
get_descriptors,
|
|
get_prototype_of,
|
|
is_function,
|
|
noop,
|
|
is_promise,
|
|
run,
|
|
run_all,
|
|
deferred,
|
|
fallback,
|
|
to_array,
|
|
BLOCK_EFFECT,
|
|
BRANCH_EFFECT,
|
|
DIRTY,
|
|
MAYBE_DIRTY,
|
|
INERT,
|
|
DESTROYED,
|
|
REACTION_RAN,
|
|
EFFECT_TRANSPARENT,
|
|
HEAD_EFFECT,
|
|
EFFECT_OFFSCREEN,
|
|
STATE_SYMBOL,
|
|
LEGACY_PROPS,
|
|
LOADING_ATTR_SYMBOL,
|
|
IS_XHTML,
|
|
ELEMENT_NODE,
|
|
TEXT_NODE,
|
|
COMMENT_NODE,
|
|
DOCUMENT_FRAGMENT_NODE,
|
|
experimental_async_required,
|
|
invalid_default_snippet,
|
|
invalid_snippet_arguments,
|
|
lifecycle_outside_component,
|
|
snippet_without_render_tag,
|
|
store_invalid_shape,
|
|
svelte_element_invalid_this_value,
|
|
bind_invalid_checkbox_value,
|
|
component_api_changed,
|
|
component_api_invalid_new,
|
|
each_key_duplicate,
|
|
get_abort_signal_outside_reaction,
|
|
hydratable_missing_but_required,
|
|
hydration_failed,
|
|
invalid_snippet,
|
|
lifecycle_legacy_only,
|
|
props_invalid_value,
|
|
props_rest_readonly,
|
|
rune_outside_svelte,
|
|
EACH_ITEM_REACTIVE,
|
|
EACH_INDEX_REACTIVE,
|
|
EACH_IS_CONTROLLED,
|
|
EACH_IS_ANIMATED,
|
|
EACH_ITEM_IMMUTABLE,
|
|
PROPS_IS_IMMUTABLE,
|
|
PROPS_IS_RUNES,
|
|
PROPS_IS_UPDATED,
|
|
PROPS_IS_BINDABLE,
|
|
PROPS_IS_LAZY_INITIAL,
|
|
TRANSITION_IN,
|
|
TRANSITION_OUT,
|
|
TRANSITION_GLOBAL,
|
|
TEMPLATE_FRAGMENT,
|
|
TEMPLATE_USE_IMPORT_NODE,
|
|
TEMPLATE_USE_SVG,
|
|
TEMPLATE_USE_MATHML,
|
|
HYDRATION_START,
|
|
HYDRATION_START_ELSE,
|
|
HYDRATION_END,
|
|
HYDRATION_ERROR,
|
|
UNINITIALIZED,
|
|
FILENAME,
|
|
HMR,
|
|
NAMESPACE_HTML,
|
|
NAMESPACE_SVG,
|
|
NAMESPACE_MATHML,
|
|
ATTACHMENT_KEY,
|
|
hydrating,
|
|
set_hydrating,
|
|
hydrate_node,
|
|
set_hydrate_node,
|
|
hydrate_next,
|
|
reset,
|
|
hydrate_template,
|
|
next,
|
|
skip_nodes,
|
|
read_hydration_instruction,
|
|
safe_not_equal,
|
|
dynamic_void_element_content,
|
|
snapshot,
|
|
trace,
|
|
tag,
|
|
tag_proxy,
|
|
label,
|
|
get_error,
|
|
component_context,
|
|
dev_stack,
|
|
add_svelte_meta,
|
|
dev_current_component_function,
|
|
set_dev_current_component_function,
|
|
createContext,
|
|
getContext,
|
|
setContext,
|
|
hasContext,
|
|
getAllContexts,
|
|
push,
|
|
pop,
|
|
is_runes,
|
|
queue_micro_task,
|
|
invoke_error_boundary,
|
|
set_signal_status,
|
|
current_batch,
|
|
previous_batch,
|
|
is_flushing_sync,
|
|
Batch,
|
|
flushSync,
|
|
eager,
|
|
fork,
|
|
createSubscriber,
|
|
boundary,
|
|
get_boundary,
|
|
pending,
|
|
flatten,
|
|
run_after_blockers,
|
|
capture,
|
|
save,
|
|
track_reactivity_loss,
|
|
for_await_track_reactivity_loss,
|
|
unset_context,
|
|
run2,
|
|
wait,
|
|
derived,
|
|
async_derived,
|
|
user_derived,
|
|
derived_safe_equal,
|
|
source,
|
|
state,
|
|
mutable_source,
|
|
mutate,
|
|
set,
|
|
internal_set,
|
|
update,
|
|
update_pre,
|
|
increment,
|
|
proxy,
|
|
is,
|
|
strict_equals,
|
|
equals2 as equals,
|
|
$window,
|
|
$document,
|
|
is_firefox,
|
|
init_operations,
|
|
create_text,
|
|
get_first_child,
|
|
get_next_sibling,
|
|
child,
|
|
first_child,
|
|
sibling,
|
|
clear_text_content,
|
|
should_defer_append,
|
|
create_element,
|
|
create_fragment,
|
|
create_comment,
|
|
set_attribute,
|
|
merge_text_nodes,
|
|
autofocus,
|
|
remove_textarea_child,
|
|
add_form_reset_listener,
|
|
listen,
|
|
without_reactive_context,
|
|
listen_to_event_and_reset_event,
|
|
validate_effect,
|
|
effect_tracking,
|
|
teardown,
|
|
user_effect,
|
|
user_pre_effect,
|
|
eager_effect,
|
|
effect_root,
|
|
component_root,
|
|
effect,
|
|
legacy_pre_effect,
|
|
legacy_pre_effect_reset,
|
|
render_effect,
|
|
template_effect,
|
|
deferred_template_effect,
|
|
block,
|
|
managed,
|
|
branch,
|
|
destroy_effect,
|
|
remove_effect_dom,
|
|
pause_effect,
|
|
resume_effect,
|
|
aborted,
|
|
move_effect,
|
|
invalidate_inner_signals,
|
|
is_destroying_effect,
|
|
active_reaction,
|
|
set_active_reaction,
|
|
active_effect,
|
|
set_active_effect,
|
|
update_version,
|
|
tick,
|
|
settled,
|
|
get,
|
|
safe_get,
|
|
untrack,
|
|
exclude_from_object,
|
|
deep_read_state,
|
|
deep_read,
|
|
all_registered_events,
|
|
root_event_handles,
|
|
replay_events,
|
|
create_event,
|
|
on,
|
|
event,
|
|
delegated,
|
|
delegate,
|
|
handle_event_propagation,
|
|
apply
|
|
};
|
|
//# sourceMappingURL=chunk-TSNSHTNV.js.map
|