{"version":3,"file":"lifecycle.Bz5Q4l75.js","sources":["../../../../../../../../node_modules/svelte/src/internal/client/dom/legacy/lifecycle.js"],"sourcesContent":["/** @import { ComponentContextLegacy } from '#client' */\nimport { run, run_all } from '../../../shared/utils.js';\nimport { derived } from '../../reactivity/deriveds.js';\nimport { user_pre_effect, user_effect } from '../../reactivity/effects.js';\nimport { component_context, deep_read_state, get, untrack } from '../../runtime.js';\n\n/**\n * Legacy-mode only: Call `onMount` callbacks and set up `beforeUpdate`/`afterUpdate` effects\n * @param {boolean} [immutable]\n */\nexport function init(immutable = false) {\n\tconst context = /** @type {ComponentContextLegacy} */ (component_context);\n\n\tconst callbacks = context.l.u;\n\tif (!callbacks) return;\n\n\tlet props = () => deep_read_state(context.s);\n\n\tif (immutable) {\n\t\tlet version = 0;\n\t\tlet prev = /** @type {Record} */ ({});\n\n\t\t// In legacy immutable mode, before/afterUpdate only fire if the object identity of a prop changes\n\t\tconst d = derived(() => {\n\t\t\tlet changed = false;\n\t\t\tconst props = context.s;\n\t\t\tfor (const key in props) {\n\t\t\t\tif (props[key] !== prev[key]) {\n\t\t\t\t\tprev[key] = props[key];\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (changed) version++;\n\t\t\treturn version;\n\t\t});\n\n\t\tprops = () => get(d);\n\t}\n\n\t// beforeUpdate\n\tif (callbacks.b.length) {\n\t\tuser_pre_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.b);\n\t\t});\n\t}\n\n\t// onMount (must run before afterUpdate)\n\tuser_effect(() => {\n\t\tconst fns = untrack(() => callbacks.m.map(run));\n\t\treturn () => {\n\t\t\tfor (const fn of fns) {\n\t\t\t\tif (typeof fn === 'function') {\n\t\t\t\t\tfn();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n\n\t// afterUpdate\n\tif (callbacks.a.length) {\n\t\tuser_effect(() => {\n\t\t\tobserve_all(context, props);\n\t\t\trun_all(callbacks.a);\n\t\t});\n\t}\n}\n\n/**\n * Invoke the getter of all signals associated with a component\n * so they can be registered to the effect this function is called in.\n * @param {ComponentContextLegacy} context\n * @param {(() => void)} props\n */\nfunction observe_all(context, props) {\n\tif (context.l.s) {\n\t\tfor (const signal of context.l.s) get(signal);\n\t}\n\n\tprops();\n}\n"],"names":["init","immutable","context","component_context","callbacks","props","deep_read_state","version","prev","d","derived","changed","key","get","user_pre_effect","observe_all","run_all","user_effect","fns","untrack","run","fn","signal"],"mappings":"yGAUO,SAASA,EAAKC,EAAY,GAAO,CACvC,MAAMC,EAAiDC,EAEjDC,EAAYF,EAAQ,EAAE,EAC5B,GAAI,CAACE,EAAW,OAEhB,IAAIC,EAAQ,IAAMC,EAAgBJ,EAAQ,CAAC,EAE3C,GAAID,EAAW,CACd,IAAIM,EAAU,EACVC,EAA2C,CAAA,EAG/C,MAAMC,EAAIC,EAAQ,IAAM,CACvB,IAAIC,EAAU,GACd,MAAMN,EAAQH,EAAQ,EACtB,UAAWU,KAAOP,EACbA,EAAMO,CAAG,IAAMJ,EAAKI,CAAG,IAC1BJ,EAAKI,CAAG,EAAIP,EAAMO,CAAG,EACrBD,EAAU,IAGZ,OAAIA,GAASJ,IACNA,CACV,CAAG,EAEDF,EAAQ,IAAMQ,EAAIJ,CAAC,CACrB,CAGKL,EAAU,EAAE,QACfU,EAAgB,IAAM,CACrBC,EAAYb,EAASG,CAAK,EAC1BW,EAAQZ,EAAU,CAAC,CACtB,CAAG,EAIFa,EAAY,IAAM,CACjB,MAAMC,EAAMC,EAAQ,IAAMf,EAAU,EAAE,IAAIgB,CAAG,CAAC,EAC9C,MAAO,IAAM,CACZ,UAAWC,KAAMH,EACZ,OAAOG,GAAO,YACjBA,EAAI,CAGN,CACH,CAAE,EAGGjB,EAAU,EAAE,QACfa,EAAY,IAAM,CACjBF,EAAYb,EAASG,CAAK,EAC1BW,EAAQZ,EAAU,CAAC,CACtB,CAAG,CAEH,CAQA,SAASW,EAAYb,EAASG,EAAO,CACpC,GAAIH,EAAQ,EAAE,EACb,UAAWoB,KAAUpB,EAAQ,EAAE,EAAGW,EAAIS,CAAM,EAG7CjB,EAAO,CACR","x_google_ignoreList":[0]}