{"version":3,"sources":["../../src/utils/executeSetters.ts","../../src/utils/batching.ts"],"names":["RESOLVED_PROMISE","_valueToggler","_callbacks"],"mappings":";;;;;AAEA,IAAM,cAAA,GAAiB,CAAC,GAAA,EAA2B,KAAoB,KAAA;AACrE,EAAM,MAAA,EAAA,GAAK,IAAI,MAAO,EAAA;AAEtB,EAAA,MAAM,IAAO,GAAA,EAAA,CAAG,IAAK,CAAA,IAAA,CAAK,EAAE,CAAA;AAE5B,EAAS,KAAA,IAAA,CAAA,GAAI,GAAI,CAAA,IAAA,EAAM,CAAO,EAAA,IAAA;AAC5B,IAAK,IAAA,EAAA,CAAE,MAAM,KAAK,CAAA;AAAA;AAEtB,CAAA;AAEA,IAAO,sBAAQ,GAAA;;;ACRf,IAAM,uBAA0C,EAAC;AAEjD,IAAM,qBAAwC,EAAC;AAE/C,IAAI,QAAA,uBAAe,GAAgB,EAAA;AAEnC,IAAI,cAAiB,GAAA,IAAA;AAEd,IAAM,gBAAgB,MAAM;AACjC,EAAA,IAAI,cAAgB,EAAA;AAClB,IAAiB,cAAA,GAAA,KAAA;AAEjB,IAAAA,kCAAA,CAAiB,KAAK,MAAM;AAC1B,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,oBAAA,CAAqB,QAAQ,CAAK,EAAA,EAAA;AACpD,QAAA,oBAAA,CAAqB,CAAC,CAAE,EAAA;AAAA;AAG1B,MAAA,oBAAA,CAAqB,MAAS,GAAA,CAAA;AAE9B,MAAA,MAAM,OAAU,GAAA,QAAA;AAEhB,MAAA,QAAA,uBAAe,GAAI,EAAA;AAEnB,MAAM,MAAA,EAAA,GAAK,QAAQ,IAAK,EAAA;AAExB,MAAA,MAAM,IAAO,GAAA,EAAA,CAAG,IAAK,CAAA,IAAA,CAAK,EAAE,CAAA;AAE5B,MAAS,KAAA,IAAA,CAAA,GAAI,OAAQ,CAAA,IAAA,EAAM,CAAO,EAAA,IAAA;AAChC,QAAM,MAAA,KAAA,GAAe,MAAO,CAAA,KAAA;AAE5B,QAAMC,KAAAA,CAAAA,CAAAA,GAAiB,MAAMA,CAAgB,GAAA,CAAA;AAE7C,QAAI,IAAA,KAAA,CAAMC,EAAW,IAAM,EAAA;AACzB,UAAA,sBAAA,CAAe,KAAMA,CAAAA,CAAAA,EAAY,OAAQ,CAAA,GAAA,CAAI,KAAK,CAAC,CAAA;AAAA;AACrD;AAGF,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,kBAAA,CAAmB,QAAQ,CAAK,EAAA,EAAA;AAClD,QAAA,kBAAA,CAAmB,CAAC,CAAE,EAAA;AAAA;AAGxB,MAAA,kBAAA,CAAmB,MAAS,GAAA,CAAA;AAE5B,MAAiB,cAAA,GAAA,IAAA;AAEjB,MAAI,IAAA,oBAAA,CAAqB,MAAU,IAAA,QAAA,CAAS,IAAM,EAAA;AAChD,QAAc,aAAA,EAAA;AAAA;AAChB,KACD,CAAA;AAAA;AAEL;AAEa,IAAA,UAAA,GAAa,CAAC,KAAA,EAAc,KAAe,KAAA;AACtD,EAAS,QAAA,CAAA,GAAA,CAAI,OAAO,KAAK,CAAA;AAEzB,EAAc,aAAA,EAAA;AAChB;AAEO,IAAM,wBACX,GAAA,oBAAA,CAAqB,IAAK,CAAA,IAAA,CAAK,oBAAoB;AAE9C,IAAM,sBACX,GAAA,kBAAA,CAAmB,IAAK,CAAA,IAAA,CAAK,kBAAkB","file":"chunk-Y3Z7JBDZ.cjs","sourcesContent":["import type { ValueChangeCallbacks } from '../types';\n\nconst executeSetters = (set: ValueChangeCallbacks, value?: unknown) => {\n  const it = set.values();\n\n  const next = it.next.bind(it);\n\n  for (let i = set.size; i--; ) {\n    next().value(value);\n  }\n};\n\nexport default executeSetters;\n","import type { State } from '../types';\nimport { RESOLVED_PROMISE } from './constants';\nimport executeSetters from './executeSetters';\n\nconst beforeBatchCallbacks: Array<() => void> = [];\n\nconst postBatchCallbacks: Array<() => void> = [];\n\nlet batchMap = new Map<State, any>();\n\nlet batchInPending = true;\n\nexport const scheduleBatch = () => {\n  if (batchInPending) {\n    batchInPending = false;\n\n    RESOLVED_PROMISE.then(() => {\n      for (let i = 0; i < beforeBatchCallbacks.length; i++) {\n        beforeBatchCallbacks[i]();\n      }\n\n      beforeBatchCallbacks.length = 0;\n\n      const currMap = batchMap;\n\n      batchMap = new Map();\n\n      const it = currMap.keys();\n\n      const next = it.next.bind(it);\n\n      for (let i = currMap.size; i--; ) {\n        const state: State = next().value;\n\n        state._valueToggler = (state._valueToggler ^ 1) as 0 | 1;\n\n        if (state._callbacks.size) {\n          executeSetters(state._callbacks, currMap.get(state));\n        }\n      }\n\n      for (let i = 0; i < postBatchCallbacks.length; i++) {\n        postBatchCallbacks[i]();\n      }\n\n      postBatchCallbacks.length = 0;\n\n      batchInPending = true;\n\n      if (beforeBatchCallbacks.length || batchMap.size) {\n        scheduleBatch();\n      }\n    });\n  }\n};\n\nexport const addToBatch = (state: State, value: any) => {\n  batchMap.set(state, value);\n\n  scheduleBatch();\n};\n\nexport const beforeBatchCallbacksPush =\n  beforeBatchCallbacks.push.bind(beforeBatchCallbacks);\n\nexport const postBatchCallbacksPush =\n  postBatchCallbacks.push.bind(postBatchCallbacks);\n"]}