prefect 3.6.14.dev3__py3-none-any.whl → 3.6.14.dev5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- prefect/_build_info.py +3 -3
- prefect/events/clients.py +36 -3
- prefect/futures.py +17 -4
- prefect/runner/runner.py +113 -29
- prefect/server/api/events.py +3 -2
- prefect/server/ui-v2/assets/{artifact-card-CNabu-6j.js → artifact-card-DprxJzPy.js} +2 -2
- prefect/server/ui-v2/assets/{artifact-card-CNabu-6j.js.map → artifact-card-DprxJzPy.js.map} +1 -1
- prefect/server/ui-v2/assets/{artifact._id-Emkhr_0h.js → artifact._id-CXcnU7_U.js} +2 -2
- prefect/server/ui-v2/assets/{artifact._id-Emkhr_0h.js.map → artifact._id-CXcnU7_U.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation-schema-CRKJHa4q.js → automation-schema-crrFcHTg.js} +2 -2
- prefect/server/ui-v2/assets/{automation-schema-CRKJHa4q.js.map → automation-schema-crrFcHTg.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation-wizard-Cej8aik5.js → automation-wizard-DPKDA6ji.js} +2 -2
- prefect/server/ui-v2/assets/{automation-wizard-Cej8aik5.js.map → automation-wizard-DPKDA6ji.js.map} +1 -1
- prefect/server/ui-v2/assets/automation._id-BvFFkDrn.js +2 -0
- prefect/server/ui-v2/assets/{automation._id-Bm1T3_NO.js.map → automation._id-BvFFkDrn.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation_._id.edit-C5NIVfxR.js → automation_._id.edit-vpFy8Znl.js} +2 -2
- prefect/server/ui-v2/assets/{automation_._id.edit-C5NIVfxR.js.map → automation_._id.edit-vpFy8Znl.js.map} +1 -1
- prefect/server/ui-v2/assets/{automations-header-CdJSlWw8.js → automations-header-eG-shDxp.js} +2 -2
- prefect/server/ui-v2/assets/{automations-header-CdJSlWw8.js.map → automations-header-eG-shDxp.js.map} +1 -1
- prefect/server/ui-v2/assets/{base-job-template-form-section-DX_X28oU.js → base-job-template-form-section-du3c8HMM.js} +2 -2
- prefect/server/ui-v2/assets/{base-job-template-form-section-DX_X28oU.js.map → base-job-template-form-section-du3c8HMM.js.map} +1 -1
- prefect/server/ui-v2/assets/{block-type-details-BcpcwaJS.js → block-type-details-CIGWaz9i.js} +2 -2
- prefect/server/ui-v2/assets/{block-type-details-BcpcwaJS.js.map → block-type-details-CIGWaz9i.js.map} +1 -1
- prefect/server/ui-v2/assets/block-type-logo-B3oMH8dS.js +2 -0
- prefect/server/ui-v2/assets/{block-type-logo-ox5VqJuy.js.map → block-type-logo-B3oMH8dS.js.map} +1 -1
- prefect/server/ui-v2/assets/{block._id-BD6wu3yC.js → block._id-Cay2vm3g.js} +2 -2
- prefect/server/ui-v2/assets/{block._id-BD6wu3yC.js.map → block._id-Cay2vm3g.js.map} +1 -1
- prefect/server/ui-v2/assets/{block_._id.edit-aneXPzUW.js → block_._id.edit-bNSemu_v.js} +2 -2
- prefect/server/ui-v2/assets/{block_._id.edit-aneXPzUW.js.map → block_._id.edit-bNSemu_v.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog-C7ttFKuv.js → catalog-B3SdxUVJ.js} +2 -2
- prefect/server/ui-v2/assets/{catalog-C7ttFKuv.js.map → catalog-B3SdxUVJ.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog_._slug-CrcphBbo.js → catalog_._slug-BfQw_9GK.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug-CrcphBbo.js.map → catalog_._slug-BfQw_9GK.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog_._slug_.create-Dd7ATIKq.js → catalog_._slug_.create-k_HRDFv7.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug_.create-Dd7ATIKq.js.map → catalog_._slug_.create-k_HRDFv7.js.map} +1 -1
- prefect/server/ui-v2/assets/{collapsible-D5U2XK4R.js → collapsible-CjJyAdbn.js} +2 -2
- prefect/server/ui-v2/assets/{collapsible-D5U2XK4R.js.map → collapsible-CjJyAdbn.js.map} +1 -1
- prefect/server/ui-v2/assets/{concurrency-limit._id-D-xV_tiF.js → concurrency-limit._id-B3Gnqcjc.js} +2 -2
- prefect/server/ui-v2/assets/{concurrency-limit._id-D-xV_tiF.js.map → concurrency-limit._id-B3Gnqcjc.js.map} +1 -1
- prefect/server/ui-v2/assets/create-AIgXW0ut.js +2 -0
- prefect/server/ui-v2/assets/{create-Da7OBOa5.js.map → create-AIgXW0ut.js.map} +1 -1
- prefect/server/ui-v2/assets/create-CWAzl36x.js +2 -0
- prefect/server/ui-v2/assets/{create-CiMo25er.js.map → create-CWAzl36x.js.map} +1 -1
- prefect/server/ui-v2/assets/cronstrue-IJcBJ9tZ.js +2 -0
- prefect/server/ui-v2/assets/cronstrue-IJcBJ9tZ.js.map +1 -0
- prefect/server/ui-v2/assets/{data-table-Bfa8_ZJd.js → data-table-B3EtpFhV.js} +2 -2
- prefect/server/ui-v2/assets/{data-table-Bfa8_ZJd.js.map → data-table-B3EtpFhV.js.map} +1 -1
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-D18TITKv.js → delete-confirmation-dialog-DyUMWSB-.js} +2 -2
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-D18TITKv.js.map → delete-confirmation-dialog-DyUMWSB-.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment-action-header-BJ8WZ6O0.js +2 -0
- prefect/server/ui-v2/assets/{deployment-action-header-AamGn0qI.js.map → deployment-action-header-BJ8WZ6O0.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-form-QIRH-pew.js → deployment-form-DXZUK11h.js} +3 -3
- prefect/server/ui-v2/assets/{deployment-form-QIRH-pew.js.map → deployment-form-DXZUK11h.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-links-yTRvIDd3.js → deployment-links-bbtRf3OX.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-links-yTRvIDd3.js.map → deployment-links-bbtRf3OX.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-m4luvPWl.js → deployment._id-DFzzDIAz.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-m4luvPWl.js.map → deployment._id-DFzzDIAz.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-CCBPOCfw.js → deployment._id-GmnYU2jN.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-CCBPOCfw.js.map → deployment._id-GmnYU2jN.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.duplicate--_rm26pJ.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.duplicate-DFjSeYn4.js.map → deployment_._id.duplicate--_rm26pJ.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.edit-BS799pF4.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.edit-5-mFOphJ.js.map → deployment_._id.edit-BS799pF4.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment_._id.run-CwVe5hPJ.js → deployment_._id.run-c02Fu6v1.js} +2 -2
- prefect/server/ui-v2/assets/{deployment_._id.run-CwVe5hPJ.js.map → deployment_._id.run-c02Fu6v1.js.map} +1 -1
- prefect/server/ui-v2/assets/{dropdown-menu-g64QiYKu.js → dropdown-menu-6cSdnzsr.js} +2 -2
- prefect/server/ui-v2/assets/{dropdown-menu-g64QiYKu.js.map → dropdown-menu-6cSdnzsr.js.map} +1 -1
- prefect/server/ui-v2/assets/{event-resource-display-BqqHFc0B.js → event-resource-display-DeFGeJR9.js} +2 -2
- prefect/server/ui-v2/assets/{event-resource-display-BqqHFc0B.js.map → event-resource-display-DeFGeJR9.js.map} +1 -1
- prefect/server/ui-v2/assets/{event._eventDate._eventId-BR0eukkm.js → event._eventDate._eventId-CKnfHNoF.js} +2 -2
- prefect/server/ui-v2/assets/{event._eventDate._eventId-BR0eukkm.js.map → event._eventDate._eventId-CKnfHNoF.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run-graph-kZfaIevn.js → flow-run-graph-aynL8fbE.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run-graph-kZfaIevn.js.map → flow-run-graph-aynL8fbE.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run._id-4lwBtUgU.js +2 -0
- prefect/server/ui-v2/assets/{flow-run._id-DiA0_X5m.js.map → flow-run._id-4lwBtUgU.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run._id-CT2imMDV.js +2 -0
- prefect/server/ui-v2/assets/{flow-run._id-Caq--9Lr.js.map → flow-run._id-CT2imMDV.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run._id-BX0UeXTj.js → flow-run._id-s3t6dDIS.js} +4 -4
- prefect/server/ui-v2/assets/{flow-run._id-BX0UeXTj.js.map → flow-run._id-s3t6dDIS.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-runs-pagination-CoZZ-ed_.js → flow-runs-pagination-DvDLs5GM.js} +2 -2
- prefect/server/ui-v2/assets/{flow-runs-pagination-CoZZ-ed_.js.map → flow-runs-pagination-DvDLs5GM.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow._id-nRzTWzLb.js → flow._id-U31aNcVQ.js} +2 -2
- prefect/server/ui-v2/assets/{flow._id-nRzTWzLb.js.map → flow._id-U31aNcVQ.js.map} +1 -1
- prefect/server/ui-v2/assets/{form-CdcF42XZ.js → form-DvAgEGjn.js} +2 -2
- prefect/server/ui-v2/assets/{form-CdcF42XZ.js.map → form-DvAgEGjn.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-DkJo9Uge.js → header-Bq61DIIv.js} +2 -2
- prefect/server/ui-v2/assets/{header-DkJo9Uge.js.map → header-Bq61DIIv.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-DijI5Lcu.js → header-QiKDPn2b.js} +2 -2
- prefect/server/ui-v2/assets/{header-DijI5Lcu.js.map → header-QiKDPn2b.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-DV0gMQER.js → header-YbYlGgAg.js} +2 -2
- prefect/server/ui-v2/assets/{header-DV0gMQER.js.map → header-YbYlGgAg.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BZ9TDxSy.js → index--QEAQOap.js} +2 -2
- prefect/server/ui-v2/assets/{index-BZ9TDxSy.js.map → index--QEAQOap.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-VUajxmNL.js → index-BJJn5VNO.js} +2 -2
- prefect/server/ui-v2/assets/{index-VUajxmNL.js.map → index-BJJn5VNO.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DYKO0qOd.js → index-BToZEh2M.js} +2 -2
- prefect/server/ui-v2/assets/{index-DYKO0qOd.js.map → index-BToZEh2M.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BmUvoLOK.js → index-BzE5jxe7.js} +2 -2
- prefect/server/ui-v2/assets/{index-BmUvoLOK.js.map → index-BzE5jxe7.js.map} +1 -1
- prefect/server/ui-v2/assets/index-C-uTnVrI.js +2 -0
- prefect/server/ui-v2/assets/{index-BCKNs_w7.js.map → index-C-uTnVrI.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-yTjygRmH.js → index-C19BICb6.js} +2 -2
- prefect/server/ui-v2/assets/{index-yTjygRmH.js.map → index-C19BICb6.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-Cuh3BwlA.js → index-C84_3iOG.js} +2 -2
- prefect/server/ui-v2/assets/{index-Cuh3BwlA.js.map → index-C84_3iOG.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-Chtop8D8.js → index-CGt_907f.js} +2 -2
- prefect/server/ui-v2/assets/{index-Chtop8D8.js.map → index-CGt_907f.js.map} +1 -1
- prefect/server/ui-v2/assets/index-COtFm673.js +2 -0
- prefect/server/ui-v2/assets/{index-CqvGvZOq.js.map → index-COtFm673.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BZqccBpn.js → index-CQlQauOE.js} +6 -6
- prefect/server/ui-v2/assets/index-CQlQauOE.js.map +1 -0
- prefect/server/ui-v2/assets/{index-BGZtCgRR.js → index-CovPzmtX.js} +2 -2
- prefect/server/ui-v2/assets/{index-BGZtCgRR.js.map → index-CovPzmtX.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BV3WqCCv.js → index-CzZJA-g2.js} +2 -2
- prefect/server/ui-v2/assets/{index-BV3WqCCv.js.map → index-CzZJA-g2.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CUZXozY8.js → index-D9O_iUny.js} +2 -2
- prefect/server/ui-v2/assets/{index-CUZXozY8.js.map → index-D9O_iUny.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-AXV1ellj.js → index-DBhG-F3c.js} +2 -2
- prefect/server/ui-v2/assets/{index-AXV1ellj.js.map → index-DBhG-F3c.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-KlV75baW.js → index-DEijvsFf.js} +2 -2
- prefect/server/ui-v2/assets/{index-KlV75baW.js.map → index-DEijvsFf.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DO_c3_A_.js → index-DJx6_wL3.js} +2 -2
- prefect/server/ui-v2/assets/{index-DO_c3_A_.js.map → index-DJx6_wL3.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-faXvGo5k.js → index-DzylsDQg.js} +2 -2
- prefect/server/ui-v2/assets/{index-faXvGo5k.js.map → index-DzylsDQg.js.map} +1 -1
- prefect/server/ui-v2/assets/index-MqrX6o60.js +2 -0
- prefect/server/ui-v2/assets/{index-BijfHkUE.js.map → index-MqrX6o60.js.map} +1 -1
- prefect/server/ui-v2/assets/index-Xbikq0U9.js +2 -0
- prefect/server/ui-v2/assets/{index-CUJoNEgb.js.map → index-Xbikq0U9.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BfuGBXBN.js → index-xd6ftCzl.js} +2 -2
- prefect/server/ui-v2/assets/{index-BfuGBXBN.js.map → index-xd6ftCzl.js.map} +1 -1
- prefect/server/ui-v2/assets/{json-input-DFgWdLGv.js → json-input-CUdR2ooF.js} +2 -2
- prefect/server/ui-v2/assets/{json-input-DFgWdLGv.js.map → json-input-CUdR2ooF.js.map} +1 -1
- prefect/server/ui-v2/assets/{key._key-CpeWM0mN.js → key._key-Dkjl-3EA.js} +2 -2
- prefect/server/ui-v2/assets/{key._key-CpeWM0mN.js.map → key._key-Dkjl-3EA.js.map} +1 -1
- prefect/server/ui-v2/assets/{lazy-markdown-Bzi0YUUV.js → lazy-markdown-B5J5jhCs.js} +3 -3
- prefect/server/ui-v2/assets/{lazy-markdown-Bzi0YUUV.js.map → lazy-markdown-B5J5jhCs.js.map} +1 -1
- prefect/server/ui-v2/assets/{login-CM0nuDdd.js → login-DzDO0DVR.js} +2 -2
- prefect/server/ui-v2/assets/{login-CM0nuDdd.js.map → login-DzDO0DVR.js.map} +1 -1
- prefect/server/ui-v2/assets/{markdown-input-CGOAnaWz.js → markdown-input-BYRT3e1M.js} +2 -2
- prefect/server/ui-v2/assets/{markdown-input-CGOAnaWz.js.map → markdown-input-BYRT3e1M.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-example-snippet-CyJ28Tm-.js → python-example-snippet-BMLiEUYL.js} +3 -3
- prefect/server/ui-v2/assets/{python-example-snippet-CyJ28Tm-.js.map → python-example-snippet-BMLiEUYL.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-input-D8_x22t4.js → python-input-xovZoSSG.js} +2 -2
- prefect/server/ui-v2/assets/{python-input-D8_x22t4.js.map → python-input-xovZoSSG.js.map} +1 -1
- prefect/server/ui-v2/assets/{radio-group-Dgu38qwz.js → radio-group-B4HH3BMW.js} +2 -2
- prefect/server/ui-v2/assets/{radio-group-Dgu38qwz.js.map → radio-group-B4HH3BMW.js.map} +1 -1
- prefect/server/ui-v2/assets/{route-error-state-CVHTggxQ.js → route-error-state-BI1VOaRa.js} +2 -2
- prefect/server/ui-v2/assets/{route-error-state-CVHTggxQ.js.map → route-error-state-BI1VOaRa.js.map} +1 -1
- prefect/server/ui-v2/assets/schema-form-DvPKoIJV.js +2 -0
- prefect/server/ui-v2/assets/schema-form-DvPKoIJV.js.map +1 -0
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DuEmswz-.js → schema-form-input-string-format-datetime-FBLeet2k.js} +4 -4
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DuEmswz-.js.map → schema-form-input-string-format-datetime-FBLeet2k.js.map} +1 -1
- prefect/server/ui-v2/assets/{settings-CtKmYnoo.js → settings-LiwgpMzF.js} +2 -2
- prefect/server/ui-v2/assets/{settings-CtKmYnoo.js.map → settings-LiwgpMzF.js.map} +1 -1
- prefect/server/ui-v2/assets/{sort-filter-BNQ6rjAG.js → sort-filter-BdZ0BjdE.js} +2 -2
- prefect/server/ui-v2/assets/{sort-filter-BNQ6rjAG.js.map → sort-filter-BdZ0BjdE.js.map} +1 -1
- prefect/server/ui-v2/assets/{table-CJS-5Aky.js → table--kjjs3jN.js} +2 -2
- prefect/server/ui-v2/assets/{table-CJS-5Aky.js.map → table--kjjs3jN.js.map} +1 -1
- prefect/server/ui-v2/assets/{tags-input-CDvuqe9B.js → tags-input-9pBchAz7.js} +2 -2
- prefect/server/ui-v2/assets/{tags-input-CDvuqe9B.js.map → tags-input-9pBchAz7.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-DMqNFEVn.js → task-run-concurrency-limits-reset-dialog-B3XhJqIQ.js} +2 -2
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-DMqNFEVn.js.map → task-run-concurrency-limits-reset-dialog-B3XhJqIQ.js.map} +1 -1
- prefect/server/ui-v2/assets/task-run._id-BdlPyINB.js +2 -0
- prefect/server/ui-v2/assets/{task-run._id-CiVsXKpy.js.map → task-run._id-BdlPyINB.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-CV5t0LR0.js → task-run._id-BnZwcX9a.js} +3 -3
- prefect/server/ui-v2/assets/{task-run._id-CV5t0LR0.js.map → task-run._id-BnZwcX9a.js.map} +1 -1
- prefect/server/ui-v2/assets/task-runs-pagination-ClbepGWu.js +2 -0
- prefect/server/ui-v2/assets/{task-runs-pagination-DGjxL4DO.js.map → task-runs-pagination-ClbepGWu.js.map} +1 -1
- prefect/server/ui-v2/assets/{textarea-Mne2s-1n.js → textarea-CjmPCtZi.js} +2 -2
- prefect/server/ui-v2/assets/{textarea-Mne2s-1n.js.map → textarea-CjmPCtZi.js.map} +1 -1
- prefect/server/ui-v2/assets/{timezone-select-CPBtT8tA.js → timezone-select-5WxUFUXB.js} +2 -2
- prefect/server/ui-v2/assets/{timezone-select-CPBtT8tA.js.map → timezone-select-5WxUFUXB.js.map} +1 -1
- prefect/server/ui-v2/assets/{toggle-group-CvPe0UY1.js → toggle-group-DjbSsHsv.js} +2 -2
- prefect/server/ui-v2/assets/{toggle-group-CvPe0UY1.js.map → toggle-group-DjbSsHsv.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-debounce-callback-Dcf0d0U7.js → use-debounce-callback-CVfZS_LP.js} +2 -2
- prefect/server/ui-v2/assets/{use-debounce-callback-Dcf0d0U7.js.map → use-debounce-callback-CVfZS_LP.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DnRkM1Cj.js → use-delete-automation-confirmation-dialog-C7nas8eR.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DnRkM1Cj.js.map → use-delete-automation-confirmation-dialog-C7nas8eR.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-CMHtwDvb.js → use-delete-block-document-confirmation-dialog-Cz3znU4m.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-CMHtwDvb.js.map → use-delete-block-document-confirmation-dialog-Cz3znU4m.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-confirmation-dialog-Bka9YDdO.js → use-delete-confirmation-dialog-C5d6hPL-.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-confirmation-dialog-Bka9YDdO.js.map → use-delete-confirmation-dialog-C5d6hPL-.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DB4pe2_m.js → use-flow-runs-selected-rows-B_7PiPKo.js} +2 -2
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DB4pe2_m.js.map → use-flow-runs-selected-rows-B_7PiPKo.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DUPrB7V9.js → use-get-artifacts-flow-task-runs-BitcuQLc.js} +2 -2
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DUPrB7V9.js.map → use-get-artifacts-flow-task-runs-BitcuQLc.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-is-overflowing-Cc-Qm0vx.js → use-is-overflowing-CyVH32I2.js} +2 -2
- prefect/server/ui-v2/assets/{use-is-overflowing-Cc-Qm0vx.js.map → use-is-overflowing-CyVH32I2.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-page-title-ELpQMkBC.js → use-page-title-CImKMV-D.js} +2 -2
- prefect/server/ui-v2/assets/{use-page-title-ELpQMkBC.js.map → use-page-title-CImKMV-D.js.map} +1 -1
- prefect/server/ui-v2/assets/use-quick-run-IfBGzpj9.js +2 -0
- prefect/server/ui-v2/assets/{use-quick-run-uAasMmAv.js.map → use-quick-run-IfBGzpj9.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-state-favicon-CzOUYzQe.js → use-state-favicon-kNCf3RcS.js} +2 -2
- prefect/server/ui-v2/assets/{use-state-favicon-CzOUYzQe.js.map → use-state-favicon-kNCf3RcS.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-stepper-DvHmfROo.js → use-stepper-DRdSNO1_.js} +2 -2
- prefect/server/ui-v2/assets/{use-stepper-DvHmfROo.js.map → use-stepper-DRdSNO1_.js.map} +1 -1
- prefect/server/ui-v2/assets/{utilities-XA-1-LhA.js → utilities-B74wofJY.js} +2 -2
- prefect/server/ui-v2/assets/{utilities-XA-1-LhA.js.map → utilities-B74wofJY.js.map} +1 -1
- prefect/server/ui-v2/assets/{vendor-codemirror-Dn73yRFx.js → vendor-codemirror-OTxfneaa.js} +2 -2
- prefect/server/ui-v2/assets/{vendor-codemirror-Dn73yRFx.js.map → vendor-codemirror-OTxfneaa.js.map} +1 -1
- prefect/server/ui-v2/assets/{vendor-date-Bxa7CHB1.js → vendor-date-CRz8gtWZ.js} +2 -2
- prefect/server/ui-v2/assets/{vendor-date-Bxa7CHB1.js.map → vendor-date-CRz8gtWZ.js.map} +1 -1
- prefect/server/ui-v2/assets/{vendor-forms-mroZAMaw.js → vendor-forms-D-iybWES.js} +2 -2
- prefect/server/ui-v2/assets/{vendor-forms-mroZAMaw.js.map → vendor-forms-D-iybWES.js.map} +1 -1
- prefect/server/ui-v2/assets/{vendor-markdown-BV905mMk.js → vendor-markdown-TdbL8FCd.js} +2 -2
- prefect/server/ui-v2/assets/{vendor-markdown-BV905mMk.js.map → vendor-markdown-TdbL8FCd.js.map} +1 -1
- prefect/server/ui-v2/assets/{vendor-radix-CP6hQtRc.js → vendor-radix-DRMjKWJW.js} +5 -5
- prefect/server/ui-v2/assets/{vendor-radix-CP6hQtRc.js.map → vendor-radix-DRMjKWJW.js.map} +1 -1
- prefect/server/ui-v2/assets/{vendor-recharts-BOcghvr2.js → vendor-recharts-BGjDGXVf.js} +2 -2
- prefect/server/ui-v2/assets/{vendor-recharts-BOcghvr2.js.map → vendor-recharts-BGjDGXVf.js.map} +1 -1
- prefect/server/ui-v2/assets/{vendor-tanstack-CLpbOGYv.js → vendor-tanstack-CWDKYA_B.js} +2 -2
- prefect/server/ui-v2/assets/{vendor-tanstack-CLpbOGYv.js.map → vendor-tanstack-CWDKYA_B.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool-filter-D4DI4Hd5.js → work-pool-filter-BD0cywQF.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-filter-D4DI4Hd5.js.map → work-pool-filter-BD0cywQF.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool-queue-toggle--tVsqhDi.js → work-pool-queue-toggle-Dd3mOecD.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-queue-toggle--tVsqhDi.js.map → work-pool-queue-toggle-Dd3mOecD.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool._workPoolName-Ba0XSN4m.js → work-pool._workPoolName-Dxf0Y-lV.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool._workPoolName-Ba0XSN4m.js.map → work-pool._workPoolName-Dxf0Y-lV.js.map} +1 -1
- prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-B0Y9VwYX.js +2 -0
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CeYLESXS.js.map → work-pool_._workPoolName.edit-B0Y9VwYX.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js → work-pool_._workPoolName.queue._workQueueName-ZHSn4vVg.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js.map → work-pool_._workPoolName.queue._workQueueName-ZHSn4vVg.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-queue-icon-text-DnQAtUi_.js → work-queue-icon-text-GE7b8Ro1.js} +2 -2
- prefect/server/ui-v2/assets/{work-queue-icon-text-DnQAtUi_.js.map → work-queue-icon-text-GE7b8Ro1.js.map} +1 -1
- prefect/server/ui-v2/assets/{zod-cc-7bk3x.js → zod-CjGf5GIv.js} +2 -2
- prefect/server/ui-v2/assets/{zod-cc-7bk3x.js.map → zod-CjGf5GIv.js.map} +1 -1
- prefect/server/ui-v2/index.html +6 -6
- prefect/server/utilities/subscriptions.py +25 -8
- prefect/testing/fixtures.py +31 -1
- {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/METADATA +2 -2
- {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/RECORD +235 -235
- prefect/server/ui-v2/assets/automation._id-Bm1T3_NO.js +0 -2
- prefect/server/ui-v2/assets/block-type-logo-ox5VqJuy.js +0 -2
- prefect/server/ui-v2/assets/create-CiMo25er.js +0 -2
- prefect/server/ui-v2/assets/create-Da7OBOa5.js +0 -2
- prefect/server/ui-v2/assets/cronstrue-CeanGOEE.js +0 -2
- prefect/server/ui-v2/assets/cronstrue-CeanGOEE.js.map +0 -1
- prefect/server/ui-v2/assets/deployment-action-header-AamGn0qI.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.duplicate-DFjSeYn4.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.edit-5-mFOphJ.js +0 -2
- prefect/server/ui-v2/assets/flow-run._id-Caq--9Lr.js +0 -2
- prefect/server/ui-v2/assets/flow-run._id-DiA0_X5m.js +0 -2
- prefect/server/ui-v2/assets/index-BCKNs_w7.js +0 -2
- prefect/server/ui-v2/assets/index-BZqccBpn.js.map +0 -1
- prefect/server/ui-v2/assets/index-BijfHkUE.js +0 -2
- prefect/server/ui-v2/assets/index-CUJoNEgb.js +0 -2
- prefect/server/ui-v2/assets/index-CqvGvZOq.js +0 -2
- prefect/server/ui-v2/assets/schema-form-DqRLX--T.js +0 -2
- prefect/server/ui-v2/assets/schema-form-DqRLX--T.js.map +0 -1
- prefect/server/ui-v2/assets/task-run._id-CiVsXKpy.js +0 -2
- prefect/server/ui-v2/assets/task-runs-pagination-DGjxL4DO.js +0 -2
- prefect/server/ui-v2/assets/use-quick-run-uAasMmAv.js +0 -2
- prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-CeYLESXS.js +0 -2
- {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/WHEEL +0 -0
- {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/entry_points.txt +0 -0
- {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/licenses/LICENSE +0 -0
prefect/server/ui-v2/assets/{vendor-tanstack-CLpbOGYv.js.map → vendor-tanstack-CWDKYA_B.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendor-tanstack-CLpbOGYv.js","sources":["../../node_modules/react/cjs/react-jsx-runtime.production.js","../../node_modules/react/jsx-runtime.js","../../node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/@tanstack/query-core/build/modern/thenable.js","../../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../node_modules/@tanstack/react-query/build/modern/suspense.js","../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../node_modules/@tanstack/react-query/build/modern/useQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseInfiniteQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseQueries.js","../../node_modules/@tanstack/react-query/build/modern/queryOptions.js","../../node_modules/@tanstack/react-query/build/modern/infiniteQueryOptions.js","../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../node_modules/@tanstack/store/dist/esm/scheduler.js","../../node_modules/@tanstack/store/dist/esm/types.js","../../node_modules/@tanstack/store/dist/esm/store.js","../../node_modules/@tanstack/history/dist/esm/index.js","../../node_modules/@tanstack/router-core/dist/esm/isServer/client.js","../../node_modules/@tanstack/router-core/dist/esm/utils/batch.js","../../node_modules/@tanstack/router-core/dist/esm/utils.js","../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../node_modules/@tanstack/router-core/dist/esm/lru-cache.js","../../node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js","../../node_modules/@tanstack/router-core/dist/esm/path.js","../../node_modules/@tanstack/router-core/dist/esm/not-found.js","../../node_modules/@tanstack/router-core/dist/esm/scroll-restoration.js","../../node_modules/@tanstack/router-core/dist/esm/qss.js","../../node_modules/@tanstack/router-core/dist/esm/searchParams.js","../../node_modules/@tanstack/router-core/dist/esm/root.js","../../node_modules/@tanstack/router-core/dist/esm/redirect.js","../../node_modules/@tanstack/router-core/dist/esm/load-matches.js","../../node_modules/@tanstack/router-core/dist/esm/rewrite.js","../../node_modules/@tanstack/router-core/dist/esm/router.js","../../node_modules/@tanstack/router-core/dist/esm/defer.js","../../node_modules/@tanstack/router-core/dist/esm/link.js","../../node_modules/@tanstack/router-core/dist/esm/route.js","../../node_modules/@tanstack/react-router/dist/esm/utils.js","../../node_modules/@tanstack/react-router/dist/esm/awaited.js","../../node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js","../../node_modules/@tanstack/react-router/dist/esm/ClientOnly.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/@tanstack/react-store/dist/esm/index.js","../../node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../node_modules/@tanstack/react-router/dist/esm/matchContext.js","../../node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../node_modules/@tanstack/react-router/dist/esm/useParams.js","../../node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../node_modules/@tanstack/react-router/dist/esm/useNavigate.js","../../node_modules/@tanstack/react-router/dist/esm/link.js","../../node_modules/@tanstack/react-router/dist/esm/route.js","../../node_modules/@tanstack/react-router/dist/esm/fileRoute.js","../../node_modules/@tanstack/react-router/dist/esm/lazyRouteComponent.js","../../node_modules/@tanstack/react-router/dist/esm/Transitioner.js","../../node_modules/@tanstack/react-router/dist/esm/not-found.js","../../node_modules/@tanstack/react-router/dist/esm/SafeFragment.js","../../node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js","../../node_modules/@tanstack/react-router/dist/esm/scroll-restoration.js","../../node_modules/@tanstack/react-router/dist/esm/Match.js","../../node_modules/@tanstack/react-router/dist/esm/Matches.js","../../node_modules/@tanstack/react-router/dist/esm/router.js","../../node_modules/@tanstack/react-router/dist/esm/RouterProvider.js","../../node_modules/@tanstack/table-core/build/lib/index.mjs","../../node_modules/@tanstack/react-table/build/lib/index.mjs","../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../node_modules/@tanstack/react-virtual/dist/esm/index.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support ReturnType<typeof setTimeout>, which is infeasible.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/removable.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = timeoutManager.setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n timeoutManager.clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/infiniteQueryBehavior.ts\nimport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn\n} from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n addConsumeAwareSignal(\n object,\n () => context.signal,\n () => cancelled = true\n );\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n const page = await queryFn(queryFnContext);\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options) {\n super.setOptions({\n ...options,\n behavior: infiniteQueryBehavior()\n });\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts) {\n const queryObserver = new QueryObserver(client, opts);\n if (shouldSuspend(opts, result)) {\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n } else if (willFetch(result, isRestoring)) {\n void fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useSuspenseQuery.ts\nimport { QueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: void 0\n },\n QueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseQuery\n};\n//# sourceMappingURL=useSuspenseQuery.js.map","\"use client\";\n\n// src/useSuspenseInfiniteQuery.ts\nimport { InfiniteQueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseInfiniteQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseInfiniteQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError\n },\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseInfiniteQuery\n};\n//# sourceMappingURL=useSuspenseInfiniteQuery.js.map","\"use client\";\n\n// src/useSuspenseQueries.ts\nimport { skipToken } from \"@tanstack/query-core\";\nimport { useQueries } from \"./useQueries.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQueries(options, queryClient) {\n return useQueries(\n {\n ...options,\n queries: options.queries.map((query) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (query.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQueries\");\n }\n }\n return {\n ...query,\n suspense: true,\n throwOnError: defaultThrowOnError,\n enabled: true,\n placeholderData: void 0\n };\n })\n },\n queryClient\n );\n}\nexport {\n useSuspenseQueries\n};\n//# sourceMappingURL=useSuspenseQueries.js.map","// src/queryOptions.ts\nfunction queryOptions(options) {\n return options;\n}\nexport {\n queryOptions\n};\n//# sourceMappingURL=queryOptions.js.map","// src/infiniteQueryOptions.ts\nfunction infiniteQueryOptions(options) {\n return options;\n}\nexport {\n infiniteQueryOptions\n};\n//# sourceMappingURL=infiniteQueryOptions.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","const __storeToDerived = /* @__PURE__ */ new WeakMap();\nconst __derivedToStore = /* @__PURE__ */ new WeakMap();\nconst __depsThatHaveWrittenThisTick = {\n current: []\n};\nlet __isFlushing = false;\nlet __batchDepth = 0;\nconst __pendingUpdates = /* @__PURE__ */ new Set();\nconst __initialBatchValues = /* @__PURE__ */ new Map();\nfunction __flush_internals(relatedVals) {\n for (const derived of relatedVals) {\n if (__depsThatHaveWrittenThisTick.current.includes(derived)) {\n continue;\n }\n __depsThatHaveWrittenThisTick.current.push(derived);\n derived.recompute();\n const stores = __derivedToStore.get(derived);\n if (stores) {\n for (const store of stores) {\n const relatedLinkedDerivedVals = __storeToDerived.get(store);\n if (!(relatedLinkedDerivedVals == null ? void 0 : relatedLinkedDerivedVals.length)) continue;\n __flush_internals(relatedLinkedDerivedVals);\n }\n }\n }\n}\nfunction __notifyListeners(store) {\n const value = {\n prevVal: store.prevState,\n currentVal: store.state\n };\n for (const listener of store.listeners) {\n listener(value);\n }\n}\nfunction __notifyDerivedListeners(derived) {\n const value = {\n prevVal: derived.prevState,\n currentVal: derived.state\n };\n for (const listener of derived.listeners) {\n listener(value);\n }\n}\nfunction __flush(store) {\n if (__batchDepth > 0 && !__initialBatchValues.has(store)) {\n __initialBatchValues.set(store, store.prevState);\n }\n __pendingUpdates.add(store);\n if (__batchDepth > 0) return;\n if (__isFlushing) return;\n try {\n __isFlushing = true;\n while (__pendingUpdates.size > 0) {\n const stores = Array.from(__pendingUpdates);\n __pendingUpdates.clear();\n for (const store2 of stores) {\n const prevState = __initialBatchValues.get(store2) ?? store2.prevState;\n store2.prevState = prevState;\n __notifyListeners(store2);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n __depsThatHaveWrittenThisTick.current.push(store2);\n __flush_internals(derivedVals);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n for (const derived of derivedVals) {\n __notifyDerivedListeners(derived);\n }\n }\n }\n } finally {\n __isFlushing = false;\n __depsThatHaveWrittenThisTick.current = [];\n __initialBatchValues.clear();\n }\n}\nfunction batch(fn) {\n __batchDepth++;\n try {\n fn();\n } finally {\n __batchDepth--;\n if (__batchDepth === 0) {\n const pendingUpdateToFlush = __pendingUpdates.values().next().value;\n if (pendingUpdateToFlush) {\n __flush(pendingUpdateToFlush);\n }\n }\n }\n}\nexport {\n __depsThatHaveWrittenThisTick,\n __derivedToStore,\n __flush,\n __storeToDerived,\n batch\n};\n//# sourceMappingURL=scheduler.js.map\n","function isUpdaterFunction(updater) {\n return typeof updater === \"function\";\n}\nexport {\n isUpdaterFunction\n};\n//# sourceMappingURL=types.js.map\n","import { __flush } from \"./scheduler.js\";\nimport { isUpdaterFunction } from \"./types.js\";\nclass Store {\n constructor(initialState, options) {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = (listener) => {\n var _a, _b;\n this.listeners.add(listener);\n const unsub = (_b = (_a = this.options) == null ? void 0 : _a.onSubscribe) == null ? void 0 : _b.call(_a, listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub == null ? void 0 : unsub();\n };\n };\n this.prevState = initialState;\n this.state = initialState;\n this.options = options;\n }\n setState(updater) {\n var _a, _b, _c;\n this.prevState = this.state;\n if ((_a = this.options) == null ? void 0 : _a.updateFn) {\n this.state = this.options.updateFn(this.prevState)(updater);\n } else {\n if (isUpdaterFunction(updater)) {\n this.state = updater(this.prevState);\n } else {\n this.state = updater;\n }\n }\n (_c = (_b = this.options) == null ? void 0 : _b.onUpdate) == null ? void 0 : _c.call(_b);\n __flush(this);\n }\n}\nexport {\n Store\n};\n//# sourceMappingURL=store.js.map\n","const stateIndexKey = \"__TSR_index\";\nconst popStateEvent = \"popstate\";\nconst beforeUnloadEvent = \"beforeunload\";\nfunction createHistory(opts) {\n let location = opts.getLocation();\n const subscribers = /* @__PURE__ */ new Set();\n const notify = (action) => {\n location = opts.getLocation();\n subscribers.forEach((subscriber) => subscriber({ location, action }));\n };\n const handleIndexChange = (action) => {\n if (opts.notifyOnIndexChange ?? true) notify(action);\n else location = opts.getLocation();\n };\n const tryNavigation = async ({\n task,\n navigateOpts,\n ...actionInfo\n }) => {\n const ignoreBlocker = navigateOpts?.ignoreBlocker ?? false;\n if (ignoreBlocker) {\n task();\n return;\n }\n const blockers = opts.getBlockers?.() ?? [];\n const isPushOrReplace = actionInfo.type === \"PUSH\" || actionInfo.type === \"REPLACE\";\n if (typeof document !== \"undefined\" && blockers.length && isPushOrReplace) {\n for (const blocker of blockers) {\n const nextLocation = parseHref(actionInfo.path, actionInfo.state);\n const isBlocked = await blocker.blockerFn({\n currentLocation: location,\n nextLocation,\n action: actionInfo.type\n });\n if (isBlocked) {\n opts.onBlocked?.();\n return;\n }\n }\n }\n task();\n };\n return {\n get location() {\n return location;\n },\n get length() {\n return opts.getLength();\n },\n subscribers,\n subscribe: (cb) => {\n subscribers.add(cb);\n return () => {\n subscribers.delete(cb);\n };\n },\n push: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex + 1, state);\n tryNavigation({\n task: () => {\n opts.pushState(path, state);\n notify({ type: \"PUSH\" });\n },\n navigateOpts,\n type: \"PUSH\",\n path,\n state\n });\n },\n replace: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex, state);\n tryNavigation({\n task: () => {\n opts.replaceState(path, state);\n notify({ type: \"REPLACE\" });\n },\n navigateOpts,\n type: \"REPLACE\",\n path,\n state\n });\n },\n go: (index, navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.go(index);\n handleIndexChange({ type: \"GO\", index });\n },\n navigateOpts,\n type: \"GO\"\n });\n },\n back: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.back(navigateOpts?.ignoreBlocker ?? false);\n handleIndexChange({ type: \"BACK\" });\n },\n navigateOpts,\n type: \"BACK\"\n });\n },\n forward: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.forward(navigateOpts?.ignoreBlocker ?? false);\n handleIndexChange({ type: \"FORWARD\" });\n },\n navigateOpts,\n type: \"FORWARD\"\n });\n },\n canGoBack: () => location.state[stateIndexKey] !== 0,\n createHref: (str) => opts.createHref(str),\n block: (blocker) => {\n if (!opts.setBlockers) return () => {\n };\n const blockers = opts.getBlockers?.() ?? [];\n opts.setBlockers([...blockers, blocker]);\n return () => {\n const blockers2 = opts.getBlockers?.() ?? [];\n opts.setBlockers?.(blockers2.filter((b) => b !== blocker));\n };\n },\n flush: () => opts.flush?.(),\n destroy: () => opts.destroy?.(),\n notify\n };\n}\nfunction assignKeyAndIndex(index, state) {\n if (!state) {\n state = {};\n }\n const key = createRandomKey();\n return {\n ...state,\n key,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: key,\n [stateIndexKey]: index\n };\n}\nfunction createBrowserHistory(opts) {\n const win = opts?.window ?? (typeof document !== \"undefined\" ? window : void 0);\n const originalPushState = win.history.pushState;\n const originalReplaceState = win.history.replaceState;\n let blockers = [];\n const _getBlockers = () => blockers;\n const _setBlockers = (newBlockers) => blockers = newBlockers;\n const createHref = opts?.createHref ?? ((path) => path);\n const parseLocation = opts?.parseLocation ?? (() => parseHref(\n `${win.location.pathname}${win.location.search}${win.location.hash}`,\n win.history.state\n ));\n if (!win.history.state?.__TSR_key && !win.history.state?.key) {\n const addedKey = createRandomKey();\n win.history.replaceState(\n {\n [stateIndexKey]: 0,\n key: addedKey,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: addedKey\n },\n \"\"\n );\n }\n let currentLocation = parseLocation();\n let rollbackLocation;\n let nextPopIsGo = false;\n let ignoreNextPop = false;\n let skipBlockerNextPop = false;\n let ignoreNextBeforeUnload = false;\n const getLocation = () => currentLocation;\n let next;\n let scheduled;\n const flush = () => {\n if (!next) {\n return;\n }\n history._ignoreSubscribers = true;\n (next.isPush ? win.history.pushState : win.history.replaceState)(\n next.state,\n \"\",\n next.href\n );\n history._ignoreSubscribers = false;\n next = void 0;\n scheduled = void 0;\n rollbackLocation = void 0;\n };\n const queueHistoryAction = (type, destHref, state) => {\n const href = createHref(destHref);\n if (!scheduled) {\n rollbackLocation = currentLocation;\n }\n currentLocation = parseHref(destHref, state);\n next = {\n href,\n state,\n isPush: next?.isPush || type === \"push\"\n };\n if (!scheduled) {\n scheduled = Promise.resolve().then(() => flush());\n }\n };\n const onPushPop = (type) => {\n currentLocation = parseLocation();\n history.notify({ type });\n };\n const onPushPopEvent = async () => {\n if (ignoreNextPop) {\n ignoreNextPop = false;\n return;\n }\n const nextLocation = parseLocation();\n const delta = nextLocation.state[stateIndexKey] - currentLocation.state[stateIndexKey];\n const isForward = delta === 1;\n const isBack = delta === -1;\n const isGo = !isForward && !isBack || nextPopIsGo;\n nextPopIsGo = false;\n const action = isGo ? \"GO\" : isBack ? \"BACK\" : \"FORWARD\";\n const notify = isGo ? {\n type: \"GO\",\n index: delta\n } : {\n type: isBack ? \"BACK\" : \"FORWARD\"\n };\n if (skipBlockerNextPop) {\n skipBlockerNextPop = false;\n } else {\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const isBlocked = await blocker.blockerFn({\n currentLocation,\n nextLocation,\n action\n });\n if (isBlocked) {\n ignoreNextPop = true;\n win.history.go(1);\n history.notify(notify);\n return;\n }\n }\n }\n }\n currentLocation = parseLocation();\n history.notify(notify);\n };\n const onBeforeUnload = (e) => {\n if (ignoreNextBeforeUnload) {\n ignoreNextBeforeUnload = false;\n return;\n }\n let shouldBlock = false;\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const shouldHaveBeforeUnload = blocker.enableBeforeUnload ?? true;\n if (shouldHaveBeforeUnload === true) {\n shouldBlock = true;\n break;\n }\n if (typeof shouldHaveBeforeUnload === \"function\" && shouldHaveBeforeUnload() === true) {\n shouldBlock = true;\n break;\n }\n }\n }\n if (shouldBlock) {\n e.preventDefault();\n return e.returnValue = \"\";\n }\n return;\n };\n const history = createHistory({\n getLocation,\n getLength: () => win.history.length,\n pushState: (href, state) => queueHistoryAction(\"push\", href, state),\n replaceState: (href, state) => queueHistoryAction(\"replace\", href, state),\n back: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n return win.history.back();\n },\n forward: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n win.history.forward();\n },\n go: (n) => {\n nextPopIsGo = true;\n win.history.go(n);\n },\n createHref: (href) => createHref(href),\n flush,\n destroy: () => {\n win.history.pushState = originalPushState;\n win.history.replaceState = originalReplaceState;\n win.removeEventListener(beforeUnloadEvent, onBeforeUnload, {\n capture: true\n });\n win.removeEventListener(popStateEvent, onPushPopEvent);\n },\n onBlocked: () => {\n if (rollbackLocation && currentLocation !== rollbackLocation) {\n currentLocation = rollbackLocation;\n }\n },\n getBlockers: _getBlockers,\n setBlockers: _setBlockers,\n notifyOnIndexChange: false\n });\n win.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });\n win.addEventListener(popStateEvent, onPushPopEvent);\n win.history.pushState = function(...args) {\n const res = originalPushState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"PUSH\");\n return res;\n };\n win.history.replaceState = function(...args) {\n const res = originalReplaceState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"REPLACE\");\n return res;\n };\n return history;\n}\nfunction createHashHistory(opts) {\n const win = opts?.window ?? (typeof document !== \"undefined\" ? window : void 0);\n return createBrowserHistory({\n window: win,\n parseLocation: () => {\n const hashSplit = win.location.hash.split(\"#\").slice(1);\n const pathPart = hashSplit[0] ?? \"/\";\n const searchPart = win.location.search;\n const hashEntries = hashSplit.slice(1);\n const hashPart = hashEntries.length === 0 ? \"\" : `#${hashEntries.join(\"#\")}`;\n const hashHref = `${pathPart}${searchPart}${hashPart}`;\n return parseHref(hashHref, win.history.state);\n },\n createHref: (href) => `${win.location.pathname}${win.location.search}#${href}`\n });\n}\nfunction createMemoryHistory(opts = {\n initialEntries: [\"/\"]\n}) {\n const entries = opts.initialEntries;\n let index = opts.initialIndex ? Math.min(Math.max(opts.initialIndex, 0), entries.length - 1) : entries.length - 1;\n const states = entries.map(\n (_entry, index2) => assignKeyAndIndex(index2, void 0)\n );\n const getLocation = () => parseHref(entries[index], states[index]);\n let blockers = [];\n const _getBlockers = () => blockers;\n const _setBlockers = (newBlockers) => blockers = newBlockers;\n return createHistory({\n getLocation,\n getLength: () => entries.length,\n pushState: (path, state) => {\n if (index < entries.length - 1) {\n entries.splice(index + 1);\n states.splice(index + 1);\n }\n states.push(state);\n entries.push(path);\n index = Math.max(entries.length - 1, 0);\n },\n replaceState: (path, state) => {\n states[index] = state;\n entries[index] = path;\n },\n back: () => {\n index = Math.max(index - 1, 0);\n },\n forward: () => {\n index = Math.min(index + 1, entries.length - 1);\n },\n go: (n) => {\n index = Math.min(Math.max(index + n, 0), entries.length - 1);\n },\n createHref: (path) => path,\n getBlockers: _getBlockers,\n setBlockers: _setBlockers\n });\n}\nfunction sanitizePath(path) {\n let sanitized = path.replace(/[\\x00-\\x1f\\x7f]/g, \"\");\n if (sanitized.startsWith(\"//\")) {\n sanitized = \"/\" + sanitized.replace(/^\\/+/, \"\");\n }\n return sanitized;\n}\nfunction parseHref(href, state) {\n const sanitizedHref = sanitizePath(href);\n const hashIndex = sanitizedHref.indexOf(\"#\");\n const searchIndex = sanitizedHref.indexOf(\"?\");\n const addedKey = createRandomKey();\n return {\n href: sanitizedHref,\n pathname: sanitizedHref.substring(\n 0,\n hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : sanitizedHref.length\n ),\n hash: hashIndex > -1 ? sanitizedHref.substring(hashIndex) : \"\",\n search: searchIndex > -1 ? sanitizedHref.slice(\n searchIndex,\n hashIndex === -1 ? void 0 : hashIndex\n ) : \"\",\n state: state || { [stateIndexKey]: 0, key: addedKey, __TSR_key: addedKey }\n };\n}\nfunction createRandomKey() {\n return (Math.random() + 1).toString(36).substring(7);\n}\nexport {\n createBrowserHistory,\n createHashHistory,\n createHistory,\n createMemoryHistory,\n parseHref\n};\n//# sourceMappingURL=index.js.map\n","const isServer = false;\nexport {\n isServer\n};\n//# sourceMappingURL=client.js.map\n","import { batch as batch$1 } from \"@tanstack/store\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nfunction batch(fn) {\n if (isServer) {\n return fn();\n }\n let result;\n batch$1(() => {\n result = fn();\n });\n return result;\n}\nexport {\n batch\n};\n//# sourceMappingURL=batch.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nfunction isFunction(d) {\n return typeof d === \"function\";\n}\nfunction functionalUpdate(updater, previous) {\n if (isFunction(updater)) {\n return updater(previous);\n }\n return updater;\n}\nconst hasOwn = Object.prototype.hasOwnProperty;\nconst isEnumerable = Object.prototype.propertyIsEnumerable;\nfunction replaceEqualDeep(prev, _next, _depth = 0) {\n if (isServer) {\n return _next;\n }\n if (prev === _next) {\n return prev;\n }\n if (_depth > 500) return _next;\n const next = _next;\n const array = isPlainArray(prev) && isPlainArray(next);\n if (!array && !(isPlainObject(prev) && isPlainObject(next))) return next;\n const prevItems = array ? prev : getEnumerableOwnKeys(prev);\n if (!prevItems) return next;\n const nextItems = array ? next : getEnumerableOwnKeys(next);\n if (!nextItems) return next;\n const prevSize = prevItems.length;\n const nextSize = nextItems.length;\n const copy = array ? new Array(nextSize) : {};\n let equalItems = 0;\n for (let i = 0; i < nextSize; i++) {\n const key = array ? i : nextItems[i];\n const p = prev[key];\n const n = next[key];\n if (p === n) {\n copy[key] = p;\n if (array ? i < prevSize : hasOwn.call(prev, key)) equalItems++;\n continue;\n }\n if (p === null || n === null || typeof p !== \"object\" || typeof n !== \"object\") {\n copy[key] = n;\n continue;\n }\n const v = replaceEqualDeep(p, n, _depth + 1);\n copy[key] = v;\n if (v === p) equalItems++;\n }\n return prevSize === nextSize && equalItems === prevSize ? prev : copy;\n}\nfunction getEnumerableOwnKeys(o) {\n const names = Object.getOwnPropertyNames(o);\n for (const name of names) {\n if (!isEnumerable.call(o, name)) return false;\n }\n const symbols = Object.getOwnPropertySymbols(o);\n if (symbols.length === 0) return names;\n const keys = names;\n for (const symbol of symbols) {\n if (!isEnumerable.call(o, symbol)) return false;\n keys.push(symbol);\n }\n return keys;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction deepEqual(a, b, opts) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n for (let i = 0, l = a.length; i < l; i++) {\n if (!deepEqual(a[i], b[i], opts)) return false;\n }\n return true;\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n const ignoreUndefined = opts?.ignoreUndefined ?? true;\n if (opts?.partial) {\n for (const k in b) {\n if (!ignoreUndefined || b[k] !== void 0) {\n if (!deepEqual(a[k], b[k], opts)) return false;\n }\n }\n return true;\n }\n let aCount = 0;\n if (!ignoreUndefined) {\n aCount = Object.keys(a).length;\n } else {\n for (const k in a) {\n if (a[k] !== void 0) aCount++;\n }\n }\n let bCount = 0;\n for (const k in b) {\n if (!ignoreUndefined || b[k] !== void 0) {\n bCount++;\n if (bCount > aCount || !deepEqual(a[k], b[k], opts)) return false;\n }\n }\n return aCount === bCount;\n }\n return false;\n}\nfunction createControlledPromise(onResolve) {\n let resolveLoadPromise;\n let rejectLoadPromise;\n const controlledPromise = new Promise((resolve, reject) => {\n resolveLoadPromise = resolve;\n rejectLoadPromise = reject;\n });\n controlledPromise.status = \"pending\";\n controlledPromise.resolve = (value) => {\n controlledPromise.status = \"resolved\";\n controlledPromise.value = value;\n resolveLoadPromise(value);\n onResolve?.(value);\n };\n controlledPromise.reject = (e) => {\n controlledPromise.status = \"rejected\";\n rejectLoadPromise(e);\n };\n return controlledPromise;\n}\nfunction isModuleNotFoundError(error) {\n if (typeof error?.message !== \"string\") return false;\n return error.message.startsWith(\"Failed to fetch dynamically imported module\") || error.message.startsWith(\"error loading dynamically imported module\") || error.message.startsWith(\"Importing a module script failed\");\n}\nfunction isPromise(value) {\n return Boolean(\n value && typeof value === \"object\" && typeof value.then === \"function\"\n );\n}\nfunction findLast(array, predicate) {\n for (let i = array.length - 1; i >= 0; i--) {\n const item = array[i];\n if (predicate(item)) return item;\n }\n return void 0;\n}\nfunction sanitizePathSegment(segment) {\n return segment.replace(/[\\x00-\\x1f\\x7f]/g, \"\");\n}\nfunction decodeSegment(segment) {\n let decoded;\n try {\n decoded = decodeURI(segment);\n } catch {\n decoded = segment.replaceAll(/%[0-9A-F]{2}/gi, (match) => {\n try {\n return decodeURI(match);\n } catch {\n return match;\n }\n });\n }\n return sanitizePathSegment(decoded);\n}\nconst SAFE_URL_PROTOCOLS = [\"http:\", \"https:\", \"mailto:\", \"tel:\"];\nfunction isDangerousProtocol(url) {\n if (!url) return false;\n try {\n const parsed = new URL(url);\n return !SAFE_URL_PROTOCOLS.includes(parsed.protocol);\n } catch {\n return false;\n }\n}\nconst HTML_ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst HTML_ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(str) {\n return str.replace(HTML_ESCAPE_REGEX, (match) => HTML_ESCAPE_LOOKUP[match]);\n}\nfunction decodePath(path, decodeIgnore) {\n if (!path) return path;\n if (!/[%\\\\\\x00-\\x1f\\x7f]/.test(path) && !path.startsWith(\"//\")) {\n return path;\n }\n const re = decodeIgnore ? new RegExp(`${decodeIgnore.join(\"|\")}`, \"gi\") : /%25|%5C/gi;\n let cursor = 0;\n let result = \"\";\n let match;\n while (null !== (match = re.exec(path))) {\n result += decodeSegment(path.slice(cursor, match.index)) + match[0];\n cursor = re.lastIndex;\n }\n result = result + decodeSegment(cursor ? path.slice(cursor) : path);\n if (result.startsWith(\"//\")) {\n result = \"/\" + result.replace(/^\\/+/, \"\");\n }\n return result;\n}\nfunction encodeNonAscii(path) {\n if (!/[^\\u0000-\\u007F]/.test(path)) return path;\n return path.replace(/[^\\u0000-\\u007F]/gu, encodeURIComponent);\n}\nfunction buildDevStylesUrl(basepath, routeIds) {\n const trimmedBasepath = basepath.replace(/^\\/+|\\/+$/g, \"\");\n const normalizedBasepath = trimmedBasepath === \"\" ? \"\" : `/${trimmedBasepath}`;\n return `${normalizedBasepath}/@tanstack-start/styles.css?routes=${encodeURIComponent(routeIds.join(\",\"))}`;\n}\nexport {\n SAFE_URL_PROTOCOLS,\n buildDevStylesUrl,\n createControlledPromise,\n decodePath,\n deepEqual,\n encodeNonAscii,\n escapeHtml,\n findLast,\n functionalUpdate,\n isDangerousProtocol,\n isModuleNotFoundError,\n isPlainArray,\n isPlainObject,\n isPromise,\n last,\n replaceEqualDeep\n};\n//# sourceMappingURL=utils.js.map\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","function createLRUCache(max) {\n const cache = /* @__PURE__ */ new Map();\n let oldest;\n let newest;\n const touch = (entry) => {\n if (!entry.next) return;\n if (!entry.prev) {\n entry.next.prev = void 0;\n oldest = entry.next;\n entry.next = void 0;\n if (newest) {\n entry.prev = newest;\n newest.next = entry;\n }\n } else {\n entry.prev.next = entry.next;\n entry.next.prev = entry.prev;\n entry.next = void 0;\n if (newest) {\n newest.next = entry;\n entry.prev = newest;\n }\n }\n newest = entry;\n };\n return {\n get(key) {\n const entry = cache.get(key);\n if (!entry) return void 0;\n touch(entry);\n return entry.value;\n },\n set(key, value) {\n if (cache.size >= max && oldest) {\n const toDelete = oldest;\n cache.delete(toDelete.key);\n if (toDelete.next) {\n oldest = toDelete.next;\n toDelete.next.prev = void 0;\n }\n if (toDelete === newest) {\n newest = void 0;\n }\n }\n const existing = cache.get(key);\n if (existing) {\n existing.value = value;\n touch(existing);\n } else {\n const entry = { key, value, prev: newest };\n if (newest) newest.next = entry;\n newest = entry;\n if (!oldest) oldest = entry;\n cache.set(key, entry);\n }\n },\n clear() {\n cache.clear();\n oldest = void 0;\n newest = void 0;\n }\n };\n}\nexport {\n createLRUCache\n};\n//# sourceMappingURL=lru-cache.js.map\n","import invariant from \"tiny-invariant\";\nimport { createLRUCache } from \"./lru-cache.js\";\nimport { last } from \"./utils.js\";\nconst SEGMENT_TYPE_PATHNAME = 0;\nconst SEGMENT_TYPE_PARAM = 1;\nconst SEGMENT_TYPE_WILDCARD = 2;\nconst SEGMENT_TYPE_OPTIONAL_PARAM = 3;\nconst SEGMENT_TYPE_INDEX = 4;\nconst SEGMENT_TYPE_PATHLESS = 5;\nfunction getOpenAndCloseBraces(part) {\n const openBrace = part.indexOf(\"{\");\n if (openBrace === -1) return null;\n const closeBrace = part.indexOf(\"}\", openBrace);\n if (closeBrace === -1) return null;\n const afterOpen = openBrace + 1;\n if (afterOpen >= part.length) return null;\n return [openBrace, closeBrace];\n}\nfunction parseSegment(path, start, output = new Uint16Array(6)) {\n const next = path.indexOf(\"/\", start);\n const end = next === -1 ? path.length : next;\n const part = path.substring(start, end);\n if (!part || !part.includes(\"$\")) {\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n if (part === \"$\") {\n const total = path.length;\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start;\n output[2] = start;\n output[3] = total;\n output[4] = total;\n output[5] = total;\n return output;\n }\n if (part.charCodeAt(0) === 36) {\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start;\n output[2] = start + 1;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n const braces = getOpenAndCloseBraces(part);\n if (braces) {\n const [openBrace, closeBrace] = braces;\n const firstChar = part.charCodeAt(openBrace + 1);\n if (firstChar === 45) {\n if (openBrace + 2 < part.length && part.charCodeAt(openBrace + 2) === 36) {\n const paramStart = openBrace + 3;\n const paramEnd = closeBrace;\n if (paramStart < paramEnd) {\n output[0] = SEGMENT_TYPE_OPTIONAL_PARAM;\n output[1] = start + openBrace;\n output[2] = start + paramStart;\n output[3] = start + paramEnd;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n } else if (firstChar === 36) {\n const dollarPos = openBrace + 1;\n const afterDollar = openBrace + 2;\n if (afterDollar === closeBrace) {\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start + openBrace;\n output[2] = start + dollarPos;\n output[3] = start + afterDollar;\n output[4] = start + closeBrace + 1;\n output[5] = path.length;\n return output;\n }\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start + openBrace;\n output[2] = start + afterDollar;\n output[3] = start + closeBrace;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n}\nfunction parseSegments(defaultCaseSensitive, data, route, start, node, depth, onRoute) {\n onRoute?.(route);\n let cursor = start;\n {\n const path = route.fullPath ?? route.from;\n const length = path.length;\n const caseSensitive = route.options?.caseSensitive ?? defaultCaseSensitive;\n const skipOnParamError = !!(route.options?.params?.parse && route.options?.skipRouteOnParseError?.params);\n while (cursor < length) {\n const segment = parseSegment(path, cursor, data);\n let nextNode;\n const start2 = cursor;\n const end = segment[5];\n cursor = end + 1;\n depth++;\n const kind = segment[0];\n switch (kind) {\n case SEGMENT_TYPE_PATHNAME: {\n const value = path.substring(segment[2], segment[3]);\n if (caseSensitive) {\n const existingNode = node.static?.get(value);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.static ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.static.set(value, next);\n }\n } else {\n const name = value.toLowerCase();\n const existingNode = node.staticInsensitive?.get(name);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.staticInsensitive ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.staticInsensitive.set(name, next);\n }\n }\n break;\n }\n case SEGMENT_TYPE_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.dynamic?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.depth = depth;\n next.parent = node;\n node.dynamic ??= [];\n node.dynamic.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_OPTIONAL_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.optional?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_OPTIONAL_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.optional ??= [];\n node.optional.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_WILDCARD: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const next = createDynamicNode(\n SEGMENT_TYPE_WILDCARD,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.wildcard ??= [];\n node.wildcard.push(next);\n }\n }\n node = nextNode;\n }\n if (skipOnParamError && route.children && !route.isRoot && route.id && route.id.charCodeAt(route.id.lastIndexOf(\"/\") + 1) === 95) {\n const pathlessNode = createStaticNode(\n route.fullPath ?? route.from\n );\n pathlessNode.kind = SEGMENT_TYPE_PATHLESS;\n pathlessNode.parent = node;\n depth++;\n pathlessNode.depth = depth;\n node.pathless ??= [];\n node.pathless.push(pathlessNode);\n node = pathlessNode;\n }\n const isLeaf = (route.path || !route.children) && !route.isRoot;\n if (isLeaf && path.endsWith(\"/\")) {\n const indexNode = createStaticNode(\n route.fullPath ?? route.from\n );\n indexNode.kind = SEGMENT_TYPE_INDEX;\n indexNode.parent = node;\n depth++;\n indexNode.depth = depth;\n node.index = indexNode;\n node = indexNode;\n }\n node.parse = route.options?.params?.parse ?? null;\n node.skipOnParamError = skipOnParamError;\n node.parsingPriority = route.options?.skipRouteOnParseError?.priority ?? 0;\n if (isLeaf && !node.route) {\n node.route = route;\n node.fullPath = route.fullPath ?? route.from;\n }\n }\n if (route.children)\n for (const child of route.children) {\n parseSegments(\n defaultCaseSensitive,\n data,\n child,\n cursor,\n node,\n depth,\n onRoute\n );\n }\n}\nfunction sortDynamic(a, b) {\n if (a.skipOnParamError && !b.skipOnParamError) return -1;\n if (!a.skipOnParamError && b.skipOnParamError) return 1;\n if (a.skipOnParamError && b.skipOnParamError && (a.parsingPriority || b.parsingPriority))\n return b.parsingPriority - a.parsingPriority;\n if (a.prefix && b.prefix && a.prefix !== b.prefix) {\n if (a.prefix.startsWith(b.prefix)) return -1;\n if (b.prefix.startsWith(a.prefix)) return 1;\n }\n if (a.suffix && b.suffix && a.suffix !== b.suffix) {\n if (a.suffix.endsWith(b.suffix)) return -1;\n if (b.suffix.endsWith(a.suffix)) return 1;\n }\n if (a.prefix && !b.prefix) return -1;\n if (!a.prefix && b.prefix) return 1;\n if (a.suffix && !b.suffix) return -1;\n if (!a.suffix && b.suffix) return 1;\n if (a.caseSensitive && !b.caseSensitive) return -1;\n if (!a.caseSensitive && b.caseSensitive) return 1;\n return 0;\n}\nfunction sortTreeNodes(node) {\n if (node.pathless) {\n for (const child of node.pathless) {\n sortTreeNodes(child);\n }\n }\n if (node.static) {\n for (const child of node.static.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.staticInsensitive) {\n for (const child of node.staticInsensitive.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.dynamic?.length) {\n node.dynamic.sort(sortDynamic);\n for (const child of node.dynamic) {\n sortTreeNodes(child);\n }\n }\n if (node.optional?.length) {\n node.optional.sort(sortDynamic);\n for (const child of node.optional) {\n sortTreeNodes(child);\n }\n }\n if (node.wildcard?.length) {\n node.wildcard.sort(sortDynamic);\n for (const child of node.wildcard) {\n sortTreeNodes(child);\n }\n }\n}\nfunction createStaticNode(fullPath) {\n return {\n kind: SEGMENT_TYPE_PATHNAME,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0\n };\n}\nfunction createDynamicNode(kind, fullPath, caseSensitive, prefix, suffix) {\n return {\n kind,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0,\n caseSensitive,\n prefix,\n suffix\n };\n}\nfunction processRouteMasks(routeList, processedTree) {\n const segmentTree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n for (const route of routeList) {\n parseSegments(false, data, route, 1, segmentTree, 0);\n }\n sortTreeNodes(segmentTree);\n processedTree.masksTree = segmentTree;\n processedTree.flatCache = createLRUCache(1e3);\n}\nfunction findFlatMatch(path, processedTree) {\n path ||= \"/\";\n const cached = processedTree.flatCache.get(path);\n if (cached) return cached;\n const result = findMatch(path, processedTree.masksTree);\n processedTree.flatCache.set(path, result);\n return result;\n}\nfunction findSingleMatch(from, caseSensitive, fuzzy, path, processedTree) {\n from ||= \"/\";\n path ||= \"/\";\n const key = caseSensitive ? `case\\0${from}` : from;\n let tree = processedTree.singleCache.get(key);\n if (!tree) {\n tree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n parseSegments(caseSensitive, data, { from }, 1, tree, 0);\n processedTree.singleCache.set(key, tree);\n }\n return findMatch(path, tree, fuzzy);\n}\nfunction findRouteMatch(path, processedTree, fuzzy = false) {\n const key = fuzzy ? path : `nofuzz\\0${path}`;\n const cached = processedTree.matchCache.get(key);\n if (cached !== void 0) return cached;\n path ||= \"/\";\n let result;\n try {\n result = findMatch(\n path,\n processedTree.segmentTree,\n fuzzy\n );\n } catch (err) {\n if (err instanceof URIError) {\n result = null;\n } else {\n throw err;\n }\n }\n if (result) result.branch = buildRouteBranch(result.route);\n processedTree.matchCache.set(key, result);\n return result;\n}\nfunction trimPathRight(path) {\n return path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\nfunction processRouteTree(routeTree, caseSensitive = false, initRoute) {\n const segmentTree = createStaticNode(routeTree.fullPath);\n const data = new Uint16Array(6);\n const routesById = {};\n const routesByPath = {};\n let index = 0;\n parseSegments(caseSensitive, data, routeTree, 1, segmentTree, 0, (route) => {\n initRoute?.(route, index);\n invariant(\n !(route.id in routesById),\n `Duplicate routes found with id: ${String(route.id)}`\n );\n routesById[route.id] = route;\n if (index !== 0 && route.path) {\n const trimmedFullPath = trimPathRight(route.fullPath);\n if (!routesByPath[trimmedFullPath] || route.fullPath.endsWith(\"/\")) {\n routesByPath[trimmedFullPath] = route;\n }\n }\n index++;\n });\n sortTreeNodes(segmentTree);\n const processedTree = {\n segmentTree,\n singleCache: createLRUCache(1e3),\n matchCache: createLRUCache(1e3),\n flatCache: null,\n masksTree: null\n };\n return {\n processedTree,\n routesById,\n routesByPath\n };\n}\nfunction findMatch(path, segmentTree, fuzzy = false) {\n const parts = path.split(\"/\");\n const leaf = getNodeMatch(path, parts, segmentTree, fuzzy);\n if (!leaf) return null;\n const [rawParams] = extractParams(path, parts, leaf);\n return {\n route: leaf.node.route,\n rawParams,\n parsedParams: leaf.parsedParams\n };\n}\nfunction extractParams(path, parts, leaf) {\n const list = buildBranch(leaf.node);\n let nodeParts = null;\n const rawParams = {};\n let partIndex = leaf.extract?.part ?? 0;\n let nodeIndex = leaf.extract?.node ?? 0;\n let pathIndex = leaf.extract?.path ?? 0;\n let segmentCount = leaf.extract?.segment ?? 0;\n for (; nodeIndex < list.length; partIndex++, nodeIndex++, pathIndex++, segmentCount++) {\n const node = list[nodeIndex];\n if (node.kind === SEGMENT_TYPE_INDEX) break;\n if (node.kind === SEGMENT_TYPE_PATHLESS) {\n segmentCount--;\n partIndex--;\n pathIndex--;\n continue;\n }\n const part = parts[partIndex];\n const currentPathIndex = pathIndex;\n if (part) pathIndex += part.length;\n if (node.kind === SEGMENT_TYPE_PARAM) {\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const isCurlyBraced = nodePart.charCodeAt(preLength) === 123;\n if (isCurlyBraced) {\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 2,\n nodePart.length - sufLength - 1\n );\n const value = part.substring(preLength, part.length - sufLength);\n rawParams[name] = decodeURIComponent(value);\n } else {\n const name = nodePart.substring(1);\n rawParams[name] = decodeURIComponent(part);\n }\n } else if (node.kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n if (leaf.skipped & 1 << nodeIndex) {\n partIndex--;\n pathIndex = currentPathIndex - 1;\n continue;\n }\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 3,\n nodePart.length - sufLength - 1\n );\n const value = node.suffix || node.prefix ? part.substring(preLength, part.length - sufLength) : part;\n if (value) rawParams[name] = decodeURIComponent(value);\n } else if (node.kind === SEGMENT_TYPE_WILDCARD) {\n const n = node;\n const value = path.substring(\n currentPathIndex + (n.prefix?.length ?? 0),\n path.length - (n.suffix?.length ?? 0)\n );\n const splat = decodeURIComponent(value);\n rawParams[\"*\"] = splat;\n rawParams._splat = splat;\n break;\n }\n }\n if (leaf.rawParams) Object.assign(rawParams, leaf.rawParams);\n return [\n rawParams,\n {\n part: partIndex,\n node: nodeIndex,\n path: pathIndex,\n segment: segmentCount\n }\n ];\n}\nfunction buildRouteBranch(route) {\n const list = [route];\n while (route.parentRoute) {\n route = route.parentRoute;\n list.push(route);\n }\n list.reverse();\n return list;\n}\nfunction buildBranch(node) {\n const list = Array(node.depth + 1);\n do {\n list[node.depth] = node;\n node = node.parent;\n } while (node);\n return list;\n}\nfunction getNodeMatch(path, parts, segmentTree, fuzzy) {\n if (path === \"/\" && segmentTree.index)\n return { node: segmentTree.index, skipped: 0 };\n const trailingSlash = !last(parts);\n const pathIsIndex = trailingSlash && path !== \"/\";\n const partsLength = parts.length - (trailingSlash ? 1 : 0);\n const stack = [\n {\n node: segmentTree,\n index: 1,\n skipped: 0,\n depth: 1,\n statics: 1,\n dynamics: 0,\n optionals: 0\n }\n ];\n let wildcardMatch = null;\n let bestFuzzy = null;\n let bestMatch = null;\n while (stack.length) {\n const frame = stack.pop();\n const { node, index, skipped, depth, statics, dynamics, optionals } = frame;\n let { extract, rawParams, parsedParams } = frame;\n if (node.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame);\n if (!result) continue;\n rawParams = frame.rawParams;\n extract = frame.extract;\n parsedParams = frame.parsedParams;\n }\n if (fuzzy && node.route && node.kind !== SEGMENT_TYPE_INDEX && isFrameMoreSpecific(bestFuzzy, frame)) {\n bestFuzzy = frame;\n }\n const isBeyondPath = index === partsLength;\n if (isBeyondPath) {\n if (node.route && !pathIsIndex && isFrameMoreSpecific(bestMatch, frame)) {\n bestMatch = frame;\n }\n if (!node.optional && !node.wildcard && !node.index && !node.pathless)\n continue;\n }\n const part = isBeyondPath ? void 0 : parts[index];\n let lowerPart;\n if (isBeyondPath && node.index) {\n const indexFrame = {\n node: node.index,\n index,\n skipped,\n depth: depth + 1,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n let indexValid = true;\n if (node.index.skipOnParamError) {\n const result = validateMatchParams(path, parts, indexFrame);\n if (!result) indexValid = false;\n }\n if (indexValid) {\n if (statics === partsLength && !dynamics && !optionals && !skipped) {\n return indexFrame;\n }\n if (isFrameMoreSpecific(bestMatch, indexFrame)) {\n bestMatch = indexFrame;\n }\n }\n }\n if (node.wildcard && isFrameMoreSpecific(wildcardMatch, frame)) {\n for (const segment of node.wildcard) {\n const { prefix, suffix } = segment;\n if (prefix) {\n if (isBeyondPath) continue;\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (!casePart.startsWith(prefix)) continue;\n }\n if (suffix) {\n if (isBeyondPath) continue;\n const end = parts.slice(index).join(\"/\").slice(-suffix.length);\n const casePart = segment.caseSensitive ? end : end.toLowerCase();\n if (casePart !== suffix) continue;\n }\n const frame2 = {\n node: segment,\n index: partsLength,\n skipped,\n depth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n if (segment.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame2);\n if (!result) continue;\n }\n wildcardMatch = frame2;\n break;\n }\n }\n if (node.optional) {\n const nextSkipped = skipped | 1 << depth;\n const nextDepth = depth + 1;\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n stack.push({\n node: segment,\n index,\n skipped: nextSkipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n if (!isBeyondPath) {\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals: optionals + 1,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (!isBeyondPath && node.dynamic && part) {\n for (let i = node.dynamic.length - 1; i >= 0; i--) {\n const segment = node.dynamic[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics,\n dynamics: dynamics + 1,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.staticInsensitive) {\n const match = node.staticInsensitive.get(\n lowerPart ??= part.toLowerCase()\n );\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.static) {\n const match = node.static.get(part);\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (node.pathless) {\n const nextDepth = depth + 1;\n for (let i = node.pathless.length - 1; i >= 0; i--) {\n const segment = node.pathless[i];\n stack.push({\n node: segment,\n index,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (bestMatch && wildcardMatch) {\n return isFrameMoreSpecific(wildcardMatch, bestMatch) ? bestMatch : wildcardMatch;\n }\n if (bestMatch) return bestMatch;\n if (wildcardMatch) return wildcardMatch;\n if (fuzzy && bestFuzzy) {\n let sliceIndex = bestFuzzy.index;\n for (let i = 0; i < bestFuzzy.index; i++) {\n sliceIndex += parts[i].length;\n }\n const splat = sliceIndex === path.length ? \"/\" : path.slice(sliceIndex);\n bestFuzzy.rawParams ??= {};\n bestFuzzy.rawParams[\"**\"] = decodeURIComponent(splat);\n return bestFuzzy;\n }\n return null;\n}\nfunction validateMatchParams(path, parts, frame) {\n try {\n const [rawParams, state] = extractParams(path, parts, frame);\n frame.rawParams = rawParams;\n frame.extract = state;\n const parsed = frame.node.parse(rawParams);\n frame.parsedParams = Object.assign({}, frame.parsedParams, parsed);\n return true;\n } catch {\n return null;\n }\n}\nfunction isFrameMoreSpecific(prev, next) {\n if (!prev) return true;\n return next.statics > prev.statics || next.statics === prev.statics && (next.dynamics > prev.dynamics || next.dynamics === prev.dynamics && (next.optionals > prev.optionals || next.optionals === prev.optionals && ((next.node.kind === SEGMENT_TYPE_INDEX) > (prev.node.kind === SEGMENT_TYPE_INDEX) || next.node.kind === SEGMENT_TYPE_INDEX === (prev.node.kind === SEGMENT_TYPE_INDEX) && next.depth > prev.depth)));\n}\nexport {\n SEGMENT_TYPE_OPTIONAL_PARAM,\n SEGMENT_TYPE_PARAM,\n SEGMENT_TYPE_PATHNAME,\n SEGMENT_TYPE_WILDCARD,\n findFlatMatch,\n findRouteMatch,\n findSingleMatch,\n parseSegment,\n processRouteMasks,\n processRouteTree,\n trimPathRight\n};\n//# sourceMappingURL=new-process-route-tree.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nimport { last } from \"./utils.js\";\nimport { parseSegment, SEGMENT_TYPE_PATHNAME, SEGMENT_TYPE_WILDCARD, SEGMENT_TYPE_PARAM, SEGMENT_TYPE_OPTIONAL_PARAM } from \"./new-process-route-tree.js\";\nfunction joinPaths(paths) {\n return cleanPath(\n paths.filter((val) => {\n return val !== void 0;\n }).join(\"/\")\n );\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n const len = path.length;\n return len > 1 && path[len - 1] === \"/\" ? path.replace(/\\/{1,}$/, \"\") : path;\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if (value?.endsWith(\"/\") && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction resolvePath({\n base,\n to,\n trailingSlash = \"never\",\n cache\n}) {\n const isAbsolute = to.startsWith(\"/\");\n const isBase = !isAbsolute && to === \".\";\n let key;\n if (cache) {\n key = isAbsolute ? to : isBase ? base : base + \"\\0\" + to;\n const cached = cache.get(key);\n if (cached) return cached;\n }\n let baseSegments;\n if (isBase) {\n baseSegments = base.split(\"/\");\n } else if (isAbsolute) {\n baseSegments = to.split(\"/\");\n } else {\n baseSegments = base.split(\"/\");\n while (baseSegments.length > 1 && last(baseSegments) === \"\") {\n baseSegments.pop();\n }\n const toSegments = to.split(\"/\");\n for (let index = 0, length = toSegments.length; index < length; index++) {\n const value = toSegments[index];\n if (value === \"\") {\n if (!index) {\n baseSegments = [value];\n } else if (index === length - 1) {\n baseSegments.push(value);\n } else ;\n } else if (value === \"..\") {\n baseSegments.pop();\n } else if (value === \".\") ;\n else {\n baseSegments.push(value);\n }\n }\n }\n if (baseSegments.length > 1) {\n if (last(baseSegments) === \"\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push(\"\");\n }\n }\n let segment;\n let joined = \"\";\n for (let i = 0; i < baseSegments.length; i++) {\n if (i > 0) joined += \"/\";\n const part = baseSegments[i];\n if (!part) continue;\n segment = parseSegment(part, 0, segment);\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += part;\n continue;\n }\n const end = segment[5];\n const prefix = part.substring(0, segment[1]);\n const suffix = part.substring(segment[4], end);\n const value = part.substring(segment[2], segment[3]);\n if (kind === SEGMENT_TYPE_PARAM) {\n joined += prefix || suffix ? `${prefix}{$${value}}${suffix}` : `$${value}`;\n } else if (kind === SEGMENT_TYPE_WILDCARD) {\n joined += prefix || suffix ? `${prefix}{$}${suffix}` : \"$\";\n } else {\n joined += `${prefix}{-$${value}}${suffix}`;\n }\n }\n joined = cleanPath(joined);\n const result = joined || \"/\";\n if (key && cache) cache.set(key, result);\n return result;\n}\nfunction compileDecodeCharMap(pathParamsAllowedCharacters) {\n const charMap = new Map(\n pathParamsAllowedCharacters.map((char) => [encodeURIComponent(char), char])\n );\n const pattern = Array.from(charMap.keys()).map((key) => key.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(pattern, \"g\");\n return (encoded) => encoded.replace(regex, (match) => charMap.get(match) ?? match);\n}\nfunction encodeParam(key, params, decoder) {\n const value = params[key];\n if (typeof value !== \"string\") return value;\n if (key === \"_splat\") {\n return encodeURI(value);\n } else {\n return encodePathParam(value, decoder);\n }\n}\nfunction interpolatePath({\n path,\n params,\n decoder,\n server\n}) {\n let isMissingParams = false;\n const usedParams = {};\n if (!path || path === \"/\")\n return { interpolatedPath: \"/\", usedParams, isMissingParams };\n if (!path.includes(\"$\"))\n return { interpolatedPath: path, usedParams, isMissingParams };\n if (isServer ?? server) {\n if (path.indexOf(\"{\") === -1) {\n const length2 = path.length;\n let cursor2 = 0;\n let joined2 = \"\";\n while (cursor2 < length2) {\n while (cursor2 < length2 && path.charCodeAt(cursor2) === 47) cursor2++;\n if (cursor2 >= length2) break;\n const start = cursor2;\n let end = path.indexOf(\"/\", cursor2);\n if (end === -1) end = length2;\n cursor2 = end;\n const part = path.substring(start, end);\n if (!part) continue;\n if (part.charCodeAt(0) === 36) {\n if (part.length === 1) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n if (!splat) {\n isMissingParams = true;\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined2 += \"/\" + value;\n } else {\n const key = part.substring(1);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined2 += \"/\" + value;\n }\n } else {\n joined2 += \"/\" + part;\n }\n }\n if (path.endsWith(\"/\")) joined2 += \"/\";\n const interpolatedPath2 = joined2 || \"/\";\n return { usedParams, interpolatedPath: interpolatedPath2, isMissingParams };\n }\n }\n const length = path.length;\n let cursor = 0;\n let segment;\n let joined = \"\";\n while (cursor < length) {\n const start = cursor;\n segment = parseSegment(path, start, segment);\n const end = segment[5];\n cursor = end + 1;\n if (start === end) continue;\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += \"/\" + path.substring(start, end);\n continue;\n }\n if (kind === SEGMENT_TYPE_WILDCARD) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n if (!splat) {\n isMissingParams = true;\n if (prefix || suffix) {\n joined += \"/\" + prefix + suffix;\n }\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n const valueRaw = params[key];\n if (valueRaw == null) continue;\n usedParams[key] = valueRaw;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n }\n if (path.endsWith(\"/\")) joined += \"/\";\n const interpolatedPath = joined || \"/\";\n return { usedParams, interpolatedPath, isMissingParams };\n}\nfunction encodePathParam(value, decoder) {\n const encoded = encodeURIComponent(value);\n return decoder?.(encoded) ?? encoded;\n}\nexport {\n cleanPath,\n compileDecodeCharMap,\n exactPathTest,\n interpolatePath,\n joinPaths,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","function notFound(options = {}) {\n options.isNotFound = true;\n if (options.throw) throw options;\n return options;\n}\nfunction isNotFound(obj) {\n return !!obj?.isNotFound;\n}\nexport {\n isNotFound,\n notFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nimport { functionalUpdate } from \"./utils.js\";\nfunction getSafeSessionStorage() {\n try {\n if (typeof window !== \"undefined\" && typeof window.sessionStorage === \"object\") {\n return window.sessionStorage;\n }\n } catch {\n }\n return void 0;\n}\nconst storageKey = \"tsr-scroll-restoration-v1_3\";\nconst throttle = (fn, wait) => {\n let timeout;\n return (...args) => {\n if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n timeout = null;\n }, wait);\n }\n };\n};\nfunction createScrollRestorationCache() {\n const safeSessionStorage = getSafeSessionStorage();\n if (!safeSessionStorage) {\n return null;\n }\n const persistedState = safeSessionStorage.getItem(storageKey);\n let state = persistedState ? JSON.parse(persistedState) : {};\n return {\n state,\n // This setter is simply to make sure that we set the sessionStorage right\n // after the state is updated. It doesn't necessarily need to be a functional\n // update.\n set: (updater) => {\n state = functionalUpdate(updater, state) || state;\n try {\n safeSessionStorage.setItem(storageKey, JSON.stringify(state));\n } catch {\n console.warn(\n \"[ts-router] Could not persist scroll restoration state to sessionStorage.\"\n );\n }\n }\n };\n}\nconst scrollRestorationCache = createScrollRestorationCache();\nconst defaultGetScrollRestorationKey = (location) => {\n return location.state.__TSR_key || location.href;\n};\nfunction getCssSelector(el) {\n const path = [];\n let parent;\n while (parent = el.parentNode) {\n path.push(\n `${el.tagName}:nth-child(${Array.prototype.indexOf.call(parent.children, el) + 1})`\n );\n el = parent;\n }\n return `${path.reverse().join(\" > \")}`.toLowerCase();\n}\nlet ignoreScroll = false;\nfunction restoreScroll({\n storageKey: storageKey2,\n key,\n behavior,\n shouldScrollRestoration,\n scrollToTopSelectors,\n location\n}) {\n let byKey;\n try {\n byKey = JSON.parse(sessionStorage.getItem(storageKey2) || \"{}\");\n } catch (error) {\n console.error(error);\n return;\n }\n const resolvedKey = key || window.history.state?.__TSR_key;\n const elementEntries = byKey[resolvedKey];\n ignoreScroll = true;\n scroll: {\n if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {\n for (const elementSelector in elementEntries) {\n const entry = elementEntries[elementSelector];\n if (elementSelector === \"window\") {\n window.scrollTo({\n top: entry.scrollY,\n left: entry.scrollX,\n behavior\n });\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n element.scrollLeft = entry.scrollX;\n element.scrollTop = entry.scrollY;\n }\n }\n }\n break scroll;\n }\n const hash = (location ?? window.location).hash.split(\"#\", 2)[1];\n if (hash) {\n const hashScrollIntoViewOptions = window.history.state?.__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions) {\n const el = document.getElementById(hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n break scroll;\n }\n const scrollOptions = { top: 0, left: 0, behavior };\n window.scrollTo(scrollOptions);\n if (scrollToTopSelectors) {\n for (const selector of scrollToTopSelectors) {\n if (selector === \"window\") continue;\n const element = typeof selector === \"function\" ? selector() : document.querySelector(selector);\n if (element) element.scrollTo(scrollOptions);\n }\n }\n }\n ignoreScroll = false;\n}\nfunction setupScrollRestoration(router, force) {\n if (!scrollRestorationCache && !(isServer ?? router.isServer)) {\n return;\n }\n const shouldScrollRestoration = force ?? router.options.scrollRestoration ?? false;\n if (shouldScrollRestoration) {\n router.isScrollRestoring = true;\n }\n if ((isServer ?? router.isServer) || router.isScrollRestorationSetup || !scrollRestorationCache) {\n return;\n }\n router.isScrollRestorationSetup = true;\n ignoreScroll = false;\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n window.history.scrollRestoration = \"manual\";\n const onScroll = (event) => {\n if (ignoreScroll || !router.isScrollRestoring) {\n return;\n }\n let elementSelector = \"\";\n if (event.target === document || event.target === window) {\n elementSelector = \"window\";\n } else {\n const attrId = event.target.getAttribute(\n \"data-scroll-restoration-id\"\n );\n if (attrId) {\n elementSelector = `[data-scroll-restoration-id=\"${attrId}\"]`;\n } else {\n elementSelector = getCssSelector(event.target);\n }\n }\n const restoreKey = getKey(router.state.location);\n scrollRestorationCache.set((state) => {\n const keyEntry = state[restoreKey] ||= {};\n const elementEntry = keyEntry[elementSelector] ||= {};\n if (elementSelector === \"window\") {\n elementEntry.scrollX = window.scrollX || 0;\n elementEntry.scrollY = window.scrollY || 0;\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n elementEntry.scrollX = element.scrollLeft || 0;\n elementEntry.scrollY = element.scrollTop || 0;\n }\n }\n return state;\n });\n };\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"scroll\", throttle(onScroll, 100), true);\n }\n router.subscribe(\"onRendered\", (event) => {\n const cacheKey = getKey(event.toLocation);\n if (!router.resetNextScroll) {\n router.resetNextScroll = true;\n return;\n }\n if (typeof router.options.scrollRestoration === \"function\") {\n const shouldRestore = router.options.scrollRestoration({\n location: router.latestLocation\n });\n if (!shouldRestore) {\n return;\n }\n }\n restoreScroll({\n storageKey,\n key: cacheKey,\n behavior: router.options.scrollRestorationBehavior,\n shouldScrollRestoration: router.isScrollRestoring,\n scrollToTopSelectors: router.options.scrollToTopSelectors,\n location: router.history.location\n });\n if (router.isScrollRestoring) {\n scrollRestorationCache.set((state) => {\n state[cacheKey] ||= {};\n return state;\n });\n }\n });\n}\nfunction handleHashScroll(router) {\n if (typeof document !== \"undefined\" && document.querySelector) {\n const hashScrollIntoViewOptions = router.state.location.state.__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions && router.state.location.hash !== \"\") {\n const el = document.getElementById(router.state.location.hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n }\n}\nexport {\n defaultGetScrollRestorationKey,\n getCssSelector,\n handleHashScroll,\n restoreScroll,\n scrollRestorationCache,\n setupScrollRestoration,\n storageKey\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","function encode(obj, stringify = String) {\n const result = new URLSearchParams();\n for (const key in obj) {\n const val = obj[key];\n if (val !== void 0) {\n result.set(key, stringify(val));\n }\n }\n return result.toString();\n}\nfunction toValue(str) {\n if (!str) return \"\";\n if (str === \"false\") return false;\n if (str === \"true\") return true;\n return +str * 0 === 0 && +str + \"\" === str ? +str : str;\n}\nfunction decode(str) {\n const searchParams = new URLSearchParams(str);\n const result = {};\n for (const [key, value] of searchParams.entries()) {\n const previousValue = result[key];\n if (previousValue == null) {\n result[key] = toValue(value);\n } else if (Array.isArray(previousValue)) {\n previousValue.push(toValue(value));\n } else {\n result[key] = [previousValue, toValue(value)];\n }\n }\n return result;\n}\nexport {\n decode,\n encode\n};\n//# sourceMappingURL=qss.js.map\n","import { decode, encode } from \"./qss.js\";\nconst defaultParseSearch = parseSearchWith(JSON.parse);\nconst defaultStringifySearch = stringifySearchWith(\n JSON.stringify,\n JSON.parse\n);\nfunction parseSearchWith(parser) {\n return (searchStr) => {\n if (searchStr[0] === \"?\") {\n searchStr = searchStr.substring(1);\n }\n const query = decode(searchStr);\n for (const key in query) {\n const value = query[key];\n if (typeof value === \"string\") {\n try {\n query[key] = parser(value);\n } catch (_err) {\n }\n }\n }\n return query;\n };\n}\nfunction stringifySearchWith(stringify, parser) {\n const hasParser = typeof parser === \"function\";\n function stringifyValue(val) {\n if (typeof val === \"object\" && val !== null) {\n try {\n return stringify(val);\n } catch (_err) {\n }\n } else if (hasParser && typeof val === \"string\") {\n try {\n parser(val);\n return stringify(val);\n } catch (_err) {\n }\n }\n return val;\n }\n return (search) => {\n const searchStr = encode(search, stringifyValue);\n return searchStr ? `?${searchStr}` : \"\";\n };\n}\nexport {\n defaultParseSearch,\n defaultStringifySearch,\n parseSearchWith,\n stringifySearchWith\n};\n//# sourceMappingURL=searchParams.js.map\n","const rootRouteId = \"__root__\";\nexport {\n rootRouteId\n};\n//# sourceMappingURL=root.js.map\n","import { isDangerousProtocol, SAFE_URL_PROTOCOLS } from \"./utils.js\";\nfunction redirect(opts) {\n opts.statusCode = opts.statusCode || opts.code || 307;\n if (!opts._builtLocation && typeof opts.href === \"string\" && isDangerousProtocol(opts.href)) {\n throw new Error(\n `Redirect blocked: unsafe protocol in href \"${opts.href}\". Only ${SAFE_URL_PROTOCOLS.join(\", \")} protocols are allowed.`\n );\n }\n if (!opts._builtLocation && !opts.reloadDocument && typeof opts.href === \"string\") {\n try {\n new URL(opts.href);\n opts.reloadDocument = true;\n } catch {\n }\n }\n const headers = new Headers(opts.headers);\n if (opts.href && headers.get(\"Location\") === null) {\n headers.set(\"Location\", opts.href);\n }\n const response = new Response(null, {\n status: opts.statusCode,\n headers\n });\n response.options = opts;\n if (opts.throw) {\n throw response;\n }\n return response;\n}\nfunction isRedirect(obj) {\n return obj instanceof Response && !!obj.options;\n}\nfunction isResolvedRedirect(obj) {\n return isRedirect(obj) && !!obj.options.href;\n}\nfunction parseRedirect(obj) {\n if (obj !== null && typeof obj === \"object\" && obj.isSerializedRedirect) {\n return redirect(obj);\n }\n return void 0;\n}\nexport {\n isRedirect,\n isResolvedRedirect,\n parseRedirect,\n redirect\n};\n//# sourceMappingURL=redirect.js.map\n","import invariant from \"tiny-invariant\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { batch } from \"./utils/batch.js\";\nimport { isPromise, createControlledPromise } from \"./utils.js\";\nimport { isNotFound } from \"./not-found.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { isRedirect } from \"./redirect.js\";\nconst triggerOnReady = (inner) => {\n if (!inner.rendered) {\n inner.rendered = true;\n return inner.onReady?.();\n }\n};\nconst resolvePreload = (inner, matchId) => {\n return !!(inner.preload && !inner.router.state.matches.some((d) => d.id === matchId));\n};\nconst buildMatchContext = (inner, index, includeCurrentMatch = true) => {\n const context = {\n ...inner.router.options.context ?? {}\n };\n const end = includeCurrentMatch ? index : index - 1;\n for (let i = 0; i <= end; i++) {\n const innerMatch = inner.matches[i];\n if (!innerMatch) continue;\n const m = inner.router.getMatch(innerMatch.id);\n if (!m) continue;\n Object.assign(context, m.__routeContext, m.__beforeLoadContext);\n }\n return context;\n};\nconst _handleNotFound = (inner, err) => {\n const routeCursor = inner.router.routesById[err.routeId ?? \"\"] ?? inner.router.routeTree;\n if (!routeCursor.options.notFoundComponent && inner.router.options?.defaultNotFoundComponent) {\n routeCursor.options.notFoundComponent = inner.router.options.defaultNotFoundComponent;\n }\n invariant(\n routeCursor.options.notFoundComponent,\n \"No notFoundComponent found. Please set a notFoundComponent on your route or provide a defaultNotFoundComponent to the router.\"\n );\n const matchForRoute = inner.matches.find((m) => m.routeId === routeCursor.id);\n invariant(matchForRoute, \"Could not find match for route: \" + routeCursor.id);\n inner.updateMatch(matchForRoute.id, (prev) => ({\n ...prev,\n status: \"notFound\",\n error: err,\n isFetching: false\n }));\n if (err.routerCode === \"BEFORE_LOAD\" && routeCursor.parentRoute) {\n err.routeId = routeCursor.parentRoute.id;\n _handleNotFound(inner, err);\n }\n};\nconst handleRedirectAndNotFound = (inner, match, err) => {\n if (!isRedirect(err) && !isNotFound(err)) return;\n if (isRedirect(err) && err.redirectHandled && !err.options.reloadDocument) {\n throw err;\n }\n if (match) {\n match._nonReactive.beforeLoadPromise?.resolve();\n match._nonReactive.loaderPromise?.resolve();\n match._nonReactive.beforeLoadPromise = void 0;\n match._nonReactive.loaderPromise = void 0;\n const status = isRedirect(err) ? \"redirected\" : \"notFound\";\n match._nonReactive.error = err;\n inner.updateMatch(match.id, (prev) => ({\n ...prev,\n status,\n context: buildMatchContext(inner, match.index),\n isFetching: false,\n error: err\n }));\n if (isNotFound(err) && !err.routeId) {\n err.routeId = match.routeId;\n }\n match._nonReactive.loadPromise?.resolve();\n }\n if (isRedirect(err)) {\n inner.rendered = true;\n err.options._fromLocation = inner.location;\n err.redirectHandled = true;\n err = inner.router.resolveRedirect(err);\n throw err;\n } else {\n _handleNotFound(inner, err);\n throw err;\n }\n};\nconst shouldSkipLoader = (inner, matchId) => {\n const match = inner.router.getMatch(matchId);\n if (!(isServer ?? inner.router.isServer) && match._nonReactive.dehydrated) {\n return true;\n }\n if ((isServer ?? inner.router.isServer) && match.ssr === false) {\n return true;\n }\n return false;\n};\nconst handleSerialError = (inner, index, err, routerCode) => {\n const { id: matchId, routeId } = inner.matches[index];\n const route = inner.router.looseRoutesById[routeId];\n if (err instanceof Promise) {\n throw err;\n }\n err.routerCode = routerCode;\n inner.firstBadMatchIndex ??= index;\n handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err);\n try {\n route.options.onError?.(err);\n } catch (errorHandlerErr) {\n err = errorHandlerErr;\n handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err);\n }\n inner.updateMatch(matchId, (prev) => {\n prev._nonReactive.beforeLoadPromise?.resolve();\n prev._nonReactive.beforeLoadPromise = void 0;\n prev._nonReactive.loadPromise?.resolve();\n return {\n ...prev,\n error: err,\n status: \"error\",\n isFetching: false,\n updatedAt: Date.now(),\n abortController: new AbortController()\n };\n });\n};\nconst isBeforeLoadSsr = (inner, matchId, index, route) => {\n const existingMatch = inner.router.getMatch(matchId);\n const parentMatchId = inner.matches[index - 1]?.id;\n const parentMatch = parentMatchId ? inner.router.getMatch(parentMatchId) : void 0;\n if (inner.router.isShell()) {\n existingMatch.ssr = route.id === rootRouteId;\n return;\n }\n if (parentMatch?.ssr === false) {\n existingMatch.ssr = false;\n return;\n }\n const parentOverride = (tempSsr2) => {\n if (tempSsr2 === true && parentMatch?.ssr === \"data-only\") {\n return \"data-only\";\n }\n return tempSsr2;\n };\n const defaultSsr = inner.router.options.defaultSsr ?? true;\n if (route.options.ssr === void 0) {\n existingMatch.ssr = parentOverride(defaultSsr);\n return;\n }\n if (typeof route.options.ssr !== \"function\") {\n existingMatch.ssr = parentOverride(route.options.ssr);\n return;\n }\n const { search, params } = existingMatch;\n const ssrFnContext = {\n search: makeMaybe(search, existingMatch.searchError),\n params: makeMaybe(params, existingMatch.paramsError),\n location: inner.location,\n matches: inner.matches.map((match) => ({\n index: match.index,\n pathname: match.pathname,\n fullPath: match.fullPath,\n staticData: match.staticData,\n id: match.id,\n routeId: match.routeId,\n search: makeMaybe(match.search, match.searchError),\n params: makeMaybe(match.params, match.paramsError),\n ssr: match.ssr\n }))\n };\n const tempSsr = route.options.ssr(ssrFnContext);\n if (isPromise(tempSsr)) {\n return tempSsr.then((ssr) => {\n existingMatch.ssr = parentOverride(ssr ?? defaultSsr);\n });\n }\n existingMatch.ssr = parentOverride(tempSsr ?? defaultSsr);\n return;\n};\nconst setupPendingTimeout = (inner, matchId, route, match) => {\n if (match._nonReactive.pendingTimeout !== void 0) return;\n const pendingMs = route.options.pendingMs ?? inner.router.options.defaultPendingMs;\n const shouldPending = !!(inner.onReady && !(isServer ?? inner.router.isServer) && !resolvePreload(inner, matchId) && (route.options.loader || route.options.beforeLoad || routeNeedsPreload(route)) && typeof pendingMs === \"number\" && pendingMs !== Infinity && (route.options.pendingComponent ?? inner.router.options?.defaultPendingComponent));\n if (shouldPending) {\n const pendingTimeout = setTimeout(() => {\n triggerOnReady(inner);\n }, pendingMs);\n match._nonReactive.pendingTimeout = pendingTimeout;\n }\n};\nconst preBeforeLoadSetup = (inner, matchId, route) => {\n const existingMatch = inner.router.getMatch(matchId);\n if (!existingMatch._nonReactive.beforeLoadPromise && !existingMatch._nonReactive.loaderPromise)\n return;\n setupPendingTimeout(inner, matchId, route, existingMatch);\n const then = () => {\n const match = inner.router.getMatch(matchId);\n if (match.preload && (match.status === \"redirected\" || match.status === \"notFound\")) {\n handleRedirectAndNotFound(inner, match, match.error);\n }\n };\n return existingMatch._nonReactive.beforeLoadPromise ? existingMatch._nonReactive.beforeLoadPromise.then(then) : then();\n};\nconst executeBeforeLoad = (inner, matchId, index, route) => {\n const match = inner.router.getMatch(matchId);\n const prevLoadPromise = match._nonReactive.loadPromise;\n match._nonReactive.loadPromise = createControlledPromise(() => {\n prevLoadPromise?.resolve();\n });\n const { paramsError, searchError } = match;\n if (paramsError) {\n handleSerialError(inner, index, paramsError, \"PARSE_PARAMS\");\n }\n if (searchError) {\n handleSerialError(inner, index, searchError, \"VALIDATE_SEARCH\");\n }\n setupPendingTimeout(inner, matchId, route, match);\n const abortController = new AbortController();\n let isPending = false;\n const pending = () => {\n if (isPending) return;\n isPending = true;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"beforeLoad\",\n fetchCount: prev.fetchCount + 1,\n abortController\n // Note: We intentionally don't update context here.\n // Context should only be updated after beforeLoad resolves to avoid\n // components seeing incomplete context during async beforeLoad execution.\n }));\n };\n const resolve = () => {\n match._nonReactive.beforeLoadPromise?.resolve();\n match._nonReactive.beforeLoadPromise = void 0;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: false\n }));\n };\n if (!route.options.beforeLoad) {\n batch(() => {\n pending();\n resolve();\n });\n return;\n }\n match._nonReactive.beforeLoadPromise = createControlledPromise();\n const context = {\n ...buildMatchContext(inner, index, false),\n ...match.__routeContext\n };\n const { search, params, cause } = match;\n const preload = resolvePreload(inner, matchId);\n const beforeLoadFnContext = {\n search,\n abortController,\n params,\n preload,\n context,\n location: inner.location,\n navigate: (opts) => inner.router.navigate({\n ...opts,\n _fromLocation: inner.location\n }),\n buildLocation: inner.router.buildLocation,\n cause: preload ? \"preload\" : cause,\n matches: inner.matches,\n ...inner.router.options.additionalContext\n };\n const updateContext = (beforeLoadContext2) => {\n if (beforeLoadContext2 === void 0) {\n batch(() => {\n pending();\n resolve();\n });\n return;\n }\n if (isRedirect(beforeLoadContext2) || isNotFound(beforeLoadContext2)) {\n pending();\n handleSerialError(inner, index, beforeLoadContext2, \"BEFORE_LOAD\");\n }\n batch(() => {\n pending();\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n __beforeLoadContext: beforeLoadContext2\n }));\n resolve();\n });\n };\n let beforeLoadContext;\n try {\n beforeLoadContext = route.options.beforeLoad(beforeLoadFnContext);\n if (isPromise(beforeLoadContext)) {\n pending();\n return beforeLoadContext.catch((err) => {\n handleSerialError(inner, index, err, \"BEFORE_LOAD\");\n }).then(updateContext);\n }\n } catch (err) {\n pending();\n handleSerialError(inner, index, err, \"BEFORE_LOAD\");\n }\n updateContext(beforeLoadContext);\n return;\n};\nconst handleBeforeLoad = (inner, index) => {\n const { id: matchId, routeId } = inner.matches[index];\n const route = inner.router.looseRoutesById[routeId];\n const serverSsr = () => {\n if (isServer ?? inner.router.isServer) {\n const maybePromise = isBeforeLoadSsr(inner, matchId, index, route);\n if (isPromise(maybePromise)) return maybePromise.then(queueExecution);\n }\n return queueExecution();\n };\n const execute = () => executeBeforeLoad(inner, matchId, index, route);\n const queueExecution = () => {\n if (shouldSkipLoader(inner, matchId)) return;\n const result = preBeforeLoadSetup(inner, matchId, route);\n return isPromise(result) ? result.then(execute) : execute();\n };\n return serverSsr();\n};\nconst executeHead = (inner, matchId, route) => {\n const match = inner.router.getMatch(matchId);\n if (!match) {\n return;\n }\n if (!route.options.head && !route.options.scripts && !route.options.headers) {\n return;\n }\n const assetContext = {\n ssr: inner.router.options.ssr,\n matches: inner.matches,\n match,\n params: match.params,\n loaderData: match.loaderData\n };\n return Promise.all([\n route.options.head?.(assetContext),\n route.options.scripts?.(assetContext),\n route.options.headers?.(assetContext)\n ]).then(([headFnContent, scripts, headers]) => {\n const meta = headFnContent?.meta;\n const links = headFnContent?.links;\n const headScripts = headFnContent?.scripts;\n const styles = headFnContent?.styles;\n return {\n meta,\n links,\n headScripts,\n headers,\n scripts,\n styles\n };\n });\n};\nconst getLoaderContext = (inner, matchId, index, route) => {\n const parentMatchPromise = inner.matchPromises[index - 1];\n const { params, loaderDeps, abortController, cause } = inner.router.getMatch(matchId);\n const context = buildMatchContext(inner, index);\n const preload = resolvePreload(inner, matchId);\n return {\n params,\n deps: loaderDeps,\n preload: !!preload,\n parentMatchPromise,\n abortController,\n context,\n location: inner.location,\n navigate: (opts) => inner.router.navigate({\n ...opts,\n _fromLocation: inner.location\n }),\n cause: preload ? \"preload\" : cause,\n route,\n ...inner.router.options.additionalContext\n };\n};\nconst runLoader = async (inner, matchId, index, route) => {\n try {\n const match = inner.router.getMatch(matchId);\n try {\n if (!(isServer ?? inner.router.isServer) || match.ssr === true) {\n loadRouteChunk(route);\n }\n const loaderResult = route.options.loader?.(\n getLoaderContext(inner, matchId, index, route)\n );\n const loaderResultIsPromise = route.options.loader && isPromise(loaderResult);\n const willLoadSomething = !!(loaderResultIsPromise || route._lazyPromise || route._componentsPromise || route.options.head || route.options.scripts || route.options.headers || match._nonReactive.minPendingPromise);\n if (willLoadSomething) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"loader\"\n }));\n }\n if (route.options.loader) {\n const loaderData = loaderResultIsPromise ? await loaderResult : loaderResult;\n handleRedirectAndNotFound(\n inner,\n inner.router.getMatch(matchId),\n loaderData\n );\n if (loaderData !== void 0) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n loaderData\n }));\n }\n }\n if (route._lazyPromise) await route._lazyPromise;\n const pendingPromise = match._nonReactive.minPendingPromise;\n if (pendingPromise) await pendingPromise;\n if (route._componentsPromise) await route._componentsPromise;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n error: void 0,\n context: buildMatchContext(inner, index),\n status: \"success\",\n isFetching: false,\n updatedAt: Date.now()\n }));\n } catch (e) {\n let error = e;\n if (error?.name === \"AbortError\") {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n status: prev.status === \"pending\" ? \"success\" : prev.status,\n isFetching: false,\n context: buildMatchContext(inner, index)\n }));\n return;\n }\n const pendingPromise = match._nonReactive.minPendingPromise;\n if (pendingPromise) await pendingPromise;\n if (isNotFound(e)) {\n await route.options.notFoundComponent?.preload?.();\n }\n handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), e);\n try {\n route.options.onError?.(e);\n } catch (onErrorError) {\n error = onErrorError;\n handleRedirectAndNotFound(\n inner,\n inner.router.getMatch(matchId),\n onErrorError\n );\n }\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n error,\n context: buildMatchContext(inner, index),\n status: \"error\",\n isFetching: false\n }));\n }\n } catch (err) {\n const match = inner.router.getMatch(matchId);\n if (match) {\n match._nonReactive.loaderPromise = void 0;\n }\n handleRedirectAndNotFound(inner, match, err);\n }\n};\nconst loadRouteMatch = async (inner, index) => {\n const { id: matchId, routeId } = inner.matches[index];\n let loaderShouldRunAsync = false;\n let loaderIsRunningAsync = false;\n const route = inner.router.looseRoutesById[routeId];\n if (shouldSkipLoader(inner, matchId)) {\n if (isServer ?? inner.router.isServer) {\n return inner.router.getMatch(matchId);\n }\n } else {\n const prevMatch = inner.router.getMatch(matchId);\n if (prevMatch._nonReactive.loaderPromise) {\n if (prevMatch.status === \"success\" && !inner.sync && !prevMatch.preload) {\n return prevMatch;\n }\n await prevMatch._nonReactive.loaderPromise;\n const match2 = inner.router.getMatch(matchId);\n const error = match2._nonReactive.error || match2.error;\n if (error) {\n handleRedirectAndNotFound(inner, match2, error);\n }\n } else {\n const age = Date.now() - prevMatch.updatedAt;\n const preload = resolvePreload(inner, matchId);\n const staleAge = preload ? route.options.preloadStaleTime ?? inner.router.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? inner.router.options.defaultStaleTime ?? 0;\n const shouldReloadOption = route.options.shouldReload;\n const shouldReload = typeof shouldReloadOption === \"function\" ? shouldReloadOption(getLoaderContext(inner, matchId, index, route)) : shouldReloadOption;\n const nextPreload = !!preload && !inner.router.state.matches.some((d) => d.id === matchId);\n const match2 = inner.router.getMatch(matchId);\n match2._nonReactive.loaderPromise = createControlledPromise();\n if (nextPreload !== match2.preload) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n preload: nextPreload\n }));\n }\n const { status, invalid } = match2;\n loaderShouldRunAsync = status === \"success\" && (invalid || (shouldReload ?? age > staleAge));\n if (preload && route.options.preload === false) ;\n else if (loaderShouldRunAsync && !inner.sync) {\n loaderIsRunningAsync = true;\n (async () => {\n try {\n await runLoader(inner, matchId, index, route);\n const match3 = inner.router.getMatch(matchId);\n match3._nonReactive.loaderPromise?.resolve();\n match3._nonReactive.loadPromise?.resolve();\n match3._nonReactive.loaderPromise = void 0;\n } catch (err) {\n if (isRedirect(err)) {\n await inner.router.navigate(err.options);\n }\n }\n })();\n } else if (status !== \"success\" || loaderShouldRunAsync && inner.sync) {\n await runLoader(inner, matchId, index, route);\n }\n }\n }\n const match = inner.router.getMatch(matchId);\n if (!loaderIsRunningAsync) {\n match._nonReactive.loaderPromise?.resolve();\n match._nonReactive.loadPromise?.resolve();\n }\n clearTimeout(match._nonReactive.pendingTimeout);\n match._nonReactive.pendingTimeout = void 0;\n if (!loaderIsRunningAsync) match._nonReactive.loaderPromise = void 0;\n match._nonReactive.dehydrated = void 0;\n const nextIsFetching = loaderIsRunningAsync ? match.isFetching : false;\n if (nextIsFetching !== match.isFetching || match.invalid !== false) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: nextIsFetching,\n invalid: false\n }));\n return inner.router.getMatch(matchId);\n } else {\n return match;\n }\n};\nasync function loadMatches(arg) {\n const inner = Object.assign(arg, {\n matchPromises: []\n });\n if (!(isServer ?? inner.router.isServer) && inner.router.state.matches.some((d) => d._forcePending)) {\n triggerOnReady(inner);\n }\n try {\n for (let i = 0; i < inner.matches.length; i++) {\n const beforeLoad = handleBeforeLoad(inner, i);\n if (isPromise(beforeLoad)) await beforeLoad;\n }\n const max = inner.firstBadMatchIndex ?? inner.matches.length;\n for (let i = 0; i < max; i++) {\n inner.matchPromises.push(loadRouteMatch(inner, i));\n }\n const results = await Promise.allSettled(inner.matchPromises);\n const failures = results.filter(\n (result) => result.status === \"rejected\"\n ).map((result) => result.reason);\n let firstNotFound;\n for (const err of failures) {\n if (isRedirect(err)) {\n throw err;\n }\n if (!firstNotFound && isNotFound(err)) {\n firstNotFound = err;\n }\n }\n for (const match of inner.matches) {\n const { id: matchId, routeId } = match;\n const route = inner.router.looseRoutesById[routeId];\n try {\n const headResult = executeHead(inner, matchId, route);\n if (headResult) {\n const head = await headResult;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n ...head\n }));\n }\n } catch (err) {\n console.error(`Error executing head for route ${routeId}:`, err);\n }\n }\n if (firstNotFound) {\n throw firstNotFound;\n }\n const readyPromise = triggerOnReady(inner);\n if (isPromise(readyPromise)) await readyPromise;\n } catch (err) {\n if (isNotFound(err) && !inner.preload) {\n const readyPromise = triggerOnReady(inner);\n if (isPromise(readyPromise)) await readyPromise;\n throw err;\n }\n if (isRedirect(err)) {\n throw err;\n }\n }\n return inner.matches;\n}\nasync function loadRouteChunk(route) {\n if (!route._lazyLoaded && route._lazyPromise === void 0) {\n if (route.lazyFn) {\n route._lazyPromise = route.lazyFn().then((lazyRoute) => {\n const { id: _id, ...options } = lazyRoute.options;\n Object.assign(route.options, options);\n route._lazyLoaded = true;\n route._lazyPromise = void 0;\n });\n } else {\n route._lazyLoaded = true;\n }\n }\n if (!route._componentsLoaded && route._componentsPromise === void 0) {\n const loadComponents = () => {\n const preloads = [];\n for (const type of componentTypes) {\n const preload = route.options[type]?.preload;\n if (preload) preloads.push(preload());\n }\n if (preloads.length)\n return Promise.all(preloads).then(() => {\n route._componentsLoaded = true;\n route._componentsPromise = void 0;\n });\n route._componentsLoaded = true;\n route._componentsPromise = void 0;\n return;\n };\n route._componentsPromise = route._lazyPromise ? route._lazyPromise.then(loadComponents) : loadComponents();\n }\n return route._componentsPromise;\n}\nfunction makeMaybe(value, error) {\n if (error) {\n return { status: \"error\", error };\n }\n return { status: \"success\", value };\n}\nfunction routeNeedsPreload(route) {\n for (const componentType of componentTypes) {\n if (route.options[componentType]?.preload) {\n return true;\n }\n }\n return false;\n}\nconst componentTypes = [\n \"component\",\n \"errorComponent\",\n \"pendingComponent\",\n \"notFoundComponent\"\n];\nexport {\n componentTypes,\n loadMatches,\n loadRouteChunk,\n routeNeedsPreload\n};\n//# sourceMappingURL=load-matches.js.map\n","import { trimPath, joinPaths } from \"./path.js\";\nfunction composeRewrites(rewrites) {\n return {\n input: ({ url }) => {\n for (const rewrite of rewrites) {\n url = executeRewriteInput(rewrite, url);\n }\n return url;\n },\n output: ({ url }) => {\n for (let i = rewrites.length - 1; i >= 0; i--) {\n url = executeRewriteOutput(rewrites[i], url);\n }\n return url;\n }\n };\n}\nfunction rewriteBasepath(opts) {\n const trimmedBasepath = trimPath(opts.basepath);\n const normalizedBasepath = `/${trimmedBasepath}`;\n const normalizedBasepathWithSlash = `${normalizedBasepath}/`;\n const checkBasepath = opts.caseSensitive ? normalizedBasepath : normalizedBasepath.toLowerCase();\n const checkBasepathWithSlash = opts.caseSensitive ? normalizedBasepathWithSlash : normalizedBasepathWithSlash.toLowerCase();\n return {\n input: ({ url }) => {\n const pathname = opts.caseSensitive ? url.pathname : url.pathname.toLowerCase();\n if (pathname === checkBasepath) {\n url.pathname = \"/\";\n } else if (pathname.startsWith(checkBasepathWithSlash)) {\n url.pathname = url.pathname.slice(normalizedBasepath.length);\n }\n return url;\n },\n output: ({ url }) => {\n url.pathname = joinPaths([\"/\", trimmedBasepath, url.pathname]);\n return url;\n }\n };\n}\nfunction executeRewriteInput(rewrite, url) {\n const res = rewrite?.input?.({ url });\n if (res) {\n if (typeof res === \"string\") {\n return new URL(res);\n } else if (res instanceof URL) {\n return res;\n }\n }\n return url;\n}\nfunction executeRewriteOutput(rewrite, url) {\n const res = rewrite?.output?.({ url });\n if (res) {\n if (typeof res === \"string\") {\n return new URL(res);\n } else if (res instanceof URL) {\n return res;\n }\n }\n return url;\n}\nexport {\n composeRewrites,\n executeRewriteInput,\n executeRewriteOutput,\n rewriteBasepath\n};\n//# sourceMappingURL=rewrite.js.map\n","import { Store } from \"@tanstack/store\";\nimport { createBrowserHistory, parseHref } from \"@tanstack/history\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { batch } from \"./utils/batch.js\";\nimport { createControlledPromise, isDangerousProtocol, deepEqual, replaceEqualDeep, last, decodePath, functionalUpdate, findLast, encodeNonAscii } from \"./utils.js\";\nimport { processRouteTree, processRouteMasks, findSingleMatch, findRouteMatch, findFlatMatch } from \"./new-process-route-tree.js\";\nimport { compileDecodeCharMap, trimPath, resolvePath, cleanPath, trimPathRight, interpolatePath } from \"./path.js\";\nimport { createLRUCache } from \"./lru-cache.js\";\nimport { isNotFound } from \"./not-found.js\";\nimport { setupScrollRestoration } from \"./scroll-restoration.js\";\nimport { defaultParseSearch, defaultStringifySearch } from \"./searchParams.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { redirect, isRedirect } from \"./redirect.js\";\nimport { loadMatches, loadRouteChunk, routeNeedsPreload } from \"./load-matches.js\";\nimport { rewriteBasepath, composeRewrites, executeRewriteInput, executeRewriteOutput } from \"./rewrite.js\";\nfunction defaultSerializeError(err) {\n if (err instanceof Error) {\n const obj = {\n name: err.name,\n message: err.message\n };\n if (process.env.NODE_ENV === \"development\") {\n obj.stack = err.stack;\n }\n return obj;\n }\n return {\n data: err\n };\n}\nconst trailingSlashOptions = {\n always: \"always\",\n never: \"never\",\n preserve: \"preserve\"\n};\nfunction getLocationChangeInfo(routerState) {\n const fromLocation = routerState.resolvedLocation;\n const toLocation = routerState.location;\n const pathChanged = fromLocation?.pathname !== toLocation.pathname;\n const hrefChanged = fromLocation?.href !== toLocation.href;\n const hashChanged = fromLocation?.hash !== toLocation.hash;\n return { fromLocation, toLocation, pathChanged, hrefChanged, hashChanged };\n}\nfunction createServerStore(initialState) {\n const store = {\n state: initialState,\n setState: (updater) => {\n store.state = updater(store.state);\n }\n };\n return store;\n}\nclass RouterCore {\n /**\n * @deprecated Use the `createRouter` function instead\n */\n constructor(options) {\n this.tempLocationKey = `${Math.round(\n Math.random() * 1e7\n )}`;\n this.resetNextScroll = true;\n this.shouldViewTransition = void 0;\n this.isViewTransitionTypesSupported = void 0;\n this.subscribers = /* @__PURE__ */ new Set();\n this.isScrollRestoring = false;\n this.isScrollRestorationSetup = false;\n this.startTransition = (fn) => fn();\n this.update = (newOptions) => {\n if (newOptions.notFoundRoute) {\n console.warn(\n \"The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.\"\n );\n }\n const prevOptions = this.options;\n const prevBasepath = this.basepath ?? prevOptions?.basepath ?? \"/\";\n const basepathWasUnset = this.basepath === void 0;\n const prevRewriteOption = prevOptions?.rewrite;\n this.options = {\n ...prevOptions,\n ...newOptions\n };\n this.isServer = this.options.isServer ?? typeof document === \"undefined\";\n if (this.options.pathParamsAllowedCharacters)\n this.pathParamsDecoder = compileDecodeCharMap(\n this.options.pathParamsAllowedCharacters\n );\n if (!this.history || this.options.history && this.options.history !== this.history) {\n if (!this.options.history) {\n if (!(isServer ?? this.isServer)) {\n this.history = createBrowserHistory();\n }\n } else {\n this.history = this.options.history;\n }\n }\n this.origin = this.options.origin;\n if (!this.origin) {\n if (!(isServer ?? this.isServer) && window?.origin && window.origin !== \"null\") {\n this.origin = window.origin;\n } else {\n this.origin = \"http://localhost\";\n }\n }\n if (this.history) {\n this.updateLatestLocation();\n }\n if (this.options.routeTree !== this.routeTree) {\n this.routeTree = this.options.routeTree;\n let processRouteTreeResult;\n if ((isServer ?? this.isServer) && globalThis.__TSR_CACHE__ && globalThis.__TSR_CACHE__.routeTree === this.routeTree) {\n const cached = globalThis.__TSR_CACHE__;\n this.resolvePathCache = cached.resolvePathCache;\n processRouteTreeResult = cached.processRouteTreeResult;\n } else {\n this.resolvePathCache = createLRUCache(1e3);\n processRouteTreeResult = this.buildRouteTree();\n if ((isServer ?? this.isServer) && globalThis.__TSR_CACHE__ === void 0) {\n globalThis.__TSR_CACHE__ = {\n routeTree: this.routeTree,\n processRouteTreeResult,\n resolvePathCache: this.resolvePathCache\n };\n }\n }\n this.setRoutes(processRouteTreeResult);\n }\n if (!this.__store && this.latestLocation) {\n if (isServer ?? this.isServer) {\n this.__store = createServerStore(\n getInitialRouterState(this.latestLocation)\n );\n } else {\n this.__store = new Store(getInitialRouterState(this.latestLocation), {\n onUpdate: () => {\n this.__store.state = {\n ...this.state,\n cachedMatches: this.state.cachedMatches.filter(\n (d) => ![\"redirected\"].includes(d.status)\n )\n };\n }\n });\n setupScrollRestoration(this);\n }\n }\n let needsLocationUpdate = false;\n const nextBasepath = this.options.basepath ?? \"/\";\n const nextRewriteOption = this.options.rewrite;\n const basepathChanged = basepathWasUnset || prevBasepath !== nextBasepath;\n const rewriteChanged = prevRewriteOption !== nextRewriteOption;\n if (basepathChanged || rewriteChanged) {\n this.basepath = nextBasepath;\n const rewrites = [];\n const trimmed = trimPath(nextBasepath);\n if (trimmed && trimmed !== \"/\") {\n rewrites.push(\n rewriteBasepath({\n basepath: nextBasepath\n })\n );\n }\n if (nextRewriteOption) {\n rewrites.push(nextRewriteOption);\n }\n this.rewrite = rewrites.length === 0 ? void 0 : rewrites.length === 1 ? rewrites[0] : composeRewrites(rewrites);\n if (this.history) {\n this.updateLatestLocation();\n }\n needsLocationUpdate = true;\n }\n if (needsLocationUpdate && this.__store) {\n this.__store.state = {\n ...this.state,\n location: this.latestLocation\n };\n }\n if (typeof window !== \"undefined\" && \"CSS\" in window && typeof window.CSS?.supports === \"function\") {\n this.isViewTransitionTypesSupported = window.CSS.supports(\n \"selector(:active-view-transition-type(a)\"\n );\n }\n };\n this.updateLatestLocation = () => {\n this.latestLocation = this.parseLocation(\n this.history.location,\n this.latestLocation\n );\n };\n this.buildRouteTree = () => {\n const result = processRouteTree(\n this.routeTree,\n this.options.caseSensitive,\n (route, i) => {\n route.init({\n originalIndex: i\n });\n }\n );\n if (this.options.routeMasks) {\n processRouteMasks(this.options.routeMasks, result.processedTree);\n }\n return result;\n };\n this.subscribe = (eventType, fn) => {\n const listener = {\n eventType,\n fn\n };\n this.subscribers.add(listener);\n return () => {\n this.subscribers.delete(listener);\n };\n };\n this.emit = (routerEvent) => {\n this.subscribers.forEach((listener) => {\n if (listener.eventType === routerEvent.type) {\n listener.fn(routerEvent);\n }\n });\n };\n this.parseLocation = (locationToParse, previousLocation) => {\n const parse = ({\n href,\n state\n }) => {\n const fullUrl = new URL(href, this.origin);\n const url = executeRewriteInput(this.rewrite, fullUrl);\n const parsedSearch = this.options.parseSearch(url.search);\n const searchStr = this.options.stringifySearch(parsedSearch);\n url.search = searchStr;\n const fullPath = url.href.replace(url.origin, \"\");\n return {\n href: fullPath,\n publicHref: href,\n pathname: decodePath(url.pathname),\n external: !!this.rewrite && url.origin !== this.origin,\n searchStr,\n search: replaceEqualDeep(previousLocation?.search, parsedSearch),\n hash: decodePath(url.hash.split(\"#\").reverse()[0] ?? \"\"),\n state: replaceEqualDeep(previousLocation?.state, state)\n };\n };\n const location = parse(locationToParse);\n const { __tempLocation, __tempKey } = location.state;\n if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {\n const parsedTempLocation = parse(__tempLocation);\n parsedTempLocation.state.key = location.state.key;\n parsedTempLocation.state.__TSR_key = location.state.__TSR_key;\n delete parsedTempLocation.state.__tempLocation;\n return {\n ...parsedTempLocation,\n maskedLocation: location\n };\n }\n return location;\n };\n this.resolvePathWithBase = (from, path) => {\n const resolvedPath = resolvePath({\n base: from,\n to: cleanPath(path),\n trailingSlash: this.options.trailingSlash,\n cache: this.resolvePathCache\n });\n return resolvedPath;\n };\n this.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => {\n if (typeof pathnameOrNext === \"string\") {\n return this.matchRoutesInternal(\n {\n pathname: pathnameOrNext,\n search: locationSearchOrOpts\n },\n opts\n );\n }\n return this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts);\n };\n this.getMatchedRoutes = (pathname) => {\n return getMatchedRoutes({\n pathname,\n routesById: this.routesById,\n processedTree: this.processedTree\n });\n };\n this.cancelMatch = (id) => {\n const match = this.getMatch(id);\n if (!match) return;\n match.abortController.abort();\n clearTimeout(match._nonReactive.pendingTimeout);\n match._nonReactive.pendingTimeout = void 0;\n };\n this.cancelMatches = () => {\n const currentPendingMatches = this.state.matches.filter(\n (match) => match.status === \"pending\"\n );\n const currentLoadingMatches = this.state.matches.filter(\n (match) => match.isFetching === \"loader\"\n );\n const matchesToCancelArray = /* @__PURE__ */ new Set([\n ...this.state.pendingMatches ?? [],\n ...currentPendingMatches,\n ...currentLoadingMatches\n ]);\n matchesToCancelArray.forEach((match) => {\n this.cancelMatch(match.id);\n });\n };\n this.buildLocation = (opts) => {\n const build = (dest = {}) => {\n const currentLocation = dest._fromLocation || this.pendingBuiltLocation || this.latestLocation;\n const lightweightResult = this.matchRoutesLightweight(currentLocation);\n if (dest.from && process.env.NODE_ENV !== \"production\" && dest._isNavigate) {\n const allFromMatches = this.getMatchedRoutes(dest.from).matchedRoutes;\n const matchedFrom = findLast(lightweightResult.matchedRoutes, (d) => {\n return comparePaths(d.fullPath, dest.from);\n });\n const matchedCurrent = findLast(allFromMatches, (d) => {\n return comparePaths(d.fullPath, lightweightResult.fullPath);\n });\n if (!matchedFrom && !matchedCurrent) {\n console.warn(`Could not find match for from: ${dest.from}`);\n }\n }\n const defaultedFromPath = dest.unsafeRelative === \"path\" ? currentLocation.pathname : dest.from ?? lightweightResult.fullPath;\n const fromPath = this.resolvePathWithBase(defaultedFromPath, \".\");\n const fromSearch = lightweightResult.search;\n const fromParams = { ...lightweightResult.params };\n const nextTo = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, \".\");\n const nextParams = dest.params === false || dest.params === null ? {} : (dest.params ?? true) === true ? fromParams : Object.assign(\n fromParams,\n functionalUpdate(dest.params, fromParams)\n );\n const interpolatedNextTo = interpolatePath({\n path: nextTo,\n params: nextParams,\n decoder: this.pathParamsDecoder,\n server: this.isServer\n }).interpolatedPath;\n const destMatchResult = this.getMatchedRoutes(interpolatedNextTo);\n let destRoutes = destMatchResult.matchedRoutes;\n const isGlobalNotFound = destMatchResult.foundRoute ? destMatchResult.foundRoute.path !== \"/\" && destMatchResult.routeParams[\"**\"] : trimPathRight(interpolatedNextTo);\n if (isGlobalNotFound && this.options.notFoundRoute) {\n destRoutes = [...destRoutes, this.options.notFoundRoute];\n }\n let changedParams = false;\n if (Object.keys(nextParams).length > 0) {\n for (const route of destRoutes) {\n const fn = route.options.params?.stringify ?? route.options.stringifyParams;\n if (fn) {\n changedParams = true;\n Object.assign(nextParams, fn(nextParams));\n }\n }\n }\n const nextPathname = opts.leaveParams ? (\n // Use the original template path for interpolation\n // This preserves the original parameter syntax including optional parameters\n nextTo\n ) : decodePath(\n !changedParams ? interpolatedNextTo : interpolatePath({\n path: nextTo,\n params: nextParams,\n decoder: this.pathParamsDecoder,\n server: this.isServer\n }).interpolatedPath\n );\n let nextSearch = fromSearch;\n if (opts._includeValidateSearch && this.options.search?.strict) {\n const validatedSearch = {};\n destRoutes.forEach((route) => {\n if (route.options.validateSearch) {\n try {\n Object.assign(\n validatedSearch,\n validateSearch(route.options.validateSearch, {\n ...validatedSearch,\n ...nextSearch\n })\n );\n } catch {\n }\n }\n });\n nextSearch = validatedSearch;\n }\n nextSearch = applySearchMiddleware({\n search: nextSearch,\n dest,\n destRoutes,\n _includeValidateSearch: opts._includeValidateSearch\n });\n nextSearch = replaceEqualDeep(fromSearch, nextSearch);\n const searchStr = this.options.stringifySearch(nextSearch);\n const hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0;\n const hashStr = hash ? `#${hash}` : \"\";\n let nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {};\n nextState = replaceEqualDeep(currentLocation.state, nextState);\n const fullPath = `${nextPathname}${searchStr}${hashStr}`;\n let href;\n let publicHref;\n let external = false;\n if (this.rewrite) {\n const url = new URL(fullPath, this.origin);\n const rewrittenUrl = executeRewriteOutput(this.rewrite, url);\n href = url.href.replace(url.origin, \"\");\n if (rewrittenUrl.origin !== this.origin) {\n publicHref = rewrittenUrl.href;\n external = true;\n } else {\n publicHref = rewrittenUrl.pathname + rewrittenUrl.search + rewrittenUrl.hash;\n }\n } else {\n href = encodeNonAscii(fullPath);\n publicHref = href;\n }\n return {\n publicHref,\n href,\n pathname: nextPathname,\n search: nextSearch,\n searchStr,\n state: nextState,\n hash: hash ?? \"\",\n external,\n unmaskOnReload: dest.unmaskOnReload\n };\n };\n const buildWithMatches = (dest = {}, maskedDest) => {\n const next = build(dest);\n let maskedNext = maskedDest ? build(maskedDest) : void 0;\n if (!maskedNext) {\n const params = {};\n if (this.options.routeMasks) {\n const match = findFlatMatch(\n next.pathname,\n this.processedTree\n );\n if (match) {\n Object.assign(params, match.rawParams);\n const {\n from: _from,\n params: maskParams,\n ...maskProps\n } = match.route;\n const nextParams = maskParams === false || maskParams === null ? {} : (maskParams ?? true) === true ? params : Object.assign(params, functionalUpdate(maskParams, params));\n maskedDest = {\n from: opts.from,\n ...maskProps,\n params: nextParams\n };\n maskedNext = build(maskedDest);\n }\n }\n }\n if (maskedNext) {\n next.maskedLocation = maskedNext;\n }\n return next;\n };\n if (opts.mask) {\n return buildWithMatches(opts, {\n from: opts.from,\n ...opts.mask\n });\n }\n return buildWithMatches(opts);\n };\n this.commitLocation = async ({\n viewTransition,\n ignoreBlocker,\n ...next\n }) => {\n const isSameState = () => {\n const ignoredProps = [\n \"key\",\n // TODO: Remove in v2 - use __TSR_key instead\n \"__TSR_key\",\n \"__TSR_index\",\n \"__hashScrollIntoViewOptions\"\n ];\n ignoredProps.forEach((prop) => {\n next.state[prop] = this.latestLocation.state[prop];\n });\n const isEqual = deepEqual(next.state, this.latestLocation.state);\n ignoredProps.forEach((prop) => {\n delete next.state[prop];\n });\n return isEqual;\n };\n const isSameUrl = trimPathRight(this.latestLocation.href) === trimPathRight(next.href);\n const previousCommitPromise = this.commitLocationPromise;\n this.commitLocationPromise = createControlledPromise(() => {\n previousCommitPromise?.resolve();\n });\n if (isSameUrl && isSameState()) {\n this.load();\n } else {\n let {\n // eslint-disable-next-line prefer-const\n maskedLocation,\n // eslint-disable-next-line prefer-const\n hashScrollIntoView,\n ...nextHistory\n } = next;\n if (maskedLocation) {\n nextHistory = {\n ...maskedLocation,\n state: {\n ...maskedLocation.state,\n __tempKey: void 0,\n __tempLocation: {\n ...nextHistory,\n search: nextHistory.searchStr,\n state: {\n ...nextHistory.state,\n __tempKey: void 0,\n __tempLocation: void 0,\n __TSR_key: void 0,\n key: void 0\n // TODO: Remove in v2 - use __TSR_key instead\n }\n }\n }\n };\n if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) {\n nextHistory.state.__tempKey = this.tempLocationKey;\n }\n }\n nextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true;\n this.shouldViewTransition = viewTransition;\n this.history[next.replace ? \"replace\" : \"push\"](\n nextHistory.publicHref,\n nextHistory.state,\n { ignoreBlocker }\n );\n }\n this.resetNextScroll = next.resetScroll ?? true;\n if (!this.history.subscribers.size) {\n this.load();\n }\n return this.commitLocationPromise;\n };\n this.buildAndCommitLocation = ({\n replace,\n resetScroll,\n hashScrollIntoView,\n viewTransition,\n ignoreBlocker,\n href,\n ...rest\n } = {}) => {\n if (href) {\n const currentIndex = this.history.location.state.__TSR_index;\n const parsed = parseHref(href, {\n __TSR_index: replace ? currentIndex : currentIndex + 1\n });\n const hrefUrl = new URL(parsed.pathname, this.origin);\n const rewrittenUrl = executeRewriteInput(this.rewrite, hrefUrl);\n rest.to = rewrittenUrl.pathname;\n rest.search = this.options.parseSearch(parsed.search);\n rest.hash = parsed.hash.slice(1);\n }\n const location = this.buildLocation({\n ...rest,\n _includeValidateSearch: true\n });\n this.pendingBuiltLocation = location;\n const commitPromise = this.commitLocation({\n ...location,\n viewTransition,\n replace,\n resetScroll,\n hashScrollIntoView,\n ignoreBlocker\n });\n Promise.resolve().then(() => {\n if (this.pendingBuiltLocation === location) {\n this.pendingBuiltLocation = void 0;\n }\n });\n return commitPromise;\n };\n this.navigate = async ({\n to,\n reloadDocument,\n href,\n publicHref,\n ...rest\n }) => {\n let hrefIsUrl = false;\n if (href) {\n try {\n new URL(`${href}`);\n hrefIsUrl = true;\n } catch {\n }\n }\n if (hrefIsUrl && !reloadDocument) {\n reloadDocument = true;\n }\n if (reloadDocument) {\n if (to !== void 0 || !href) {\n const location = this.buildLocation({ to, ...rest });\n href = href ?? location.publicHref;\n publicHref = publicHref ?? location.publicHref;\n }\n const reloadHref = !hrefIsUrl && publicHref ? publicHref : href;\n if (isDangerousProtocol(reloadHref)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n `Blocked navigation to dangerous protocol: ${reloadHref}`\n );\n }\n return Promise.resolve();\n }\n if (!rest.ignoreBlocker) {\n const historyWithBlockers = this.history;\n const blockers = historyWithBlockers.getBlockers?.() ?? [];\n for (const blocker of blockers) {\n if (blocker?.blockerFn) {\n const shouldBlock = await blocker.blockerFn({\n currentLocation: this.latestLocation,\n nextLocation: this.latestLocation,\n // External URLs don't have a next location in our router\n action: \"PUSH\"\n });\n if (shouldBlock) {\n return Promise.resolve();\n }\n }\n }\n }\n if (rest.replace) {\n window.location.replace(reloadHref);\n } else {\n window.location.href = reloadHref;\n }\n return Promise.resolve();\n }\n return this.buildAndCommitLocation({\n ...rest,\n href,\n to,\n _isNavigate: true\n });\n };\n this.beforeLoad = () => {\n this.cancelMatches();\n this.updateLatestLocation();\n if (isServer ?? this.isServer) {\n const nextLocation = this.buildLocation({\n to: this.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n if (this.latestLocation.publicHref !== nextLocation.publicHref) {\n const href = this.getParsedLocationHref(nextLocation);\n if (nextLocation.external) {\n throw redirect({ href });\n } else {\n throw redirect({ href, _builtLocation: nextLocation });\n }\n }\n }\n const pendingMatches = this.matchRoutes(this.latestLocation);\n this.__store.setState((s) => ({\n ...s,\n status: \"pending\",\n statusCode: 200,\n isLoading: true,\n location: this.latestLocation,\n pendingMatches,\n // If a cached moved to pendingMatches, remove it from cachedMatches\n cachedMatches: s.cachedMatches.filter(\n (d) => !pendingMatches.some((e) => e.id === d.id)\n )\n }));\n };\n this.load = async (opts) => {\n let redirect2;\n let notFound;\n let loadPromise;\n loadPromise = new Promise((resolve) => {\n this.startTransition(async () => {\n try {\n this.beforeLoad();\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n if (!this.state.redirect) {\n this.emit({\n type: \"onBeforeNavigate\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n }\n this.emit({\n type: \"onBeforeLoad\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n await loadMatches({\n router: this,\n sync: opts?.sync,\n matches: this.state.pendingMatches,\n location: next,\n updateMatch: this.updateMatch,\n // eslint-disable-next-line @typescript-eslint/require-await\n onReady: async () => {\n this.startTransition(() => {\n this.startViewTransition(async () => {\n let exitingMatches = [];\n let enteringMatches = [];\n let stayingMatches = [];\n batch(() => {\n this.__store.setState((s) => {\n const previousMatches = s.matches;\n const newMatches = s.pendingMatches || s.matches;\n exitingMatches = previousMatches.filter(\n (match) => !newMatches.some((d) => d.id === match.id)\n );\n enteringMatches = newMatches.filter(\n (match) => !previousMatches.some((d) => d.id === match.id)\n );\n stayingMatches = newMatches.filter(\n (match) => previousMatches.some((d) => d.id === match.id)\n );\n return {\n ...s,\n isLoading: false,\n loadedAt: Date.now(),\n matches: newMatches,\n pendingMatches: void 0,\n /**\n * When committing new matches, cache any exiting matches that are still usable.\n * Routes that resolved with `status: 'error'` or `status: 'notFound'` are\n * deliberately excluded from `cachedMatches` so that subsequent invalidations\n * or reloads re-run their loaders instead of reusing the failed/not-found data.\n */\n cachedMatches: [\n ...s.cachedMatches,\n ...exitingMatches.filter(\n (d) => d.status !== \"error\" && d.status !== \"notFound\"\n )\n ]\n };\n });\n this.clearExpiredCache();\n });\n [\n [exitingMatches, \"onLeave\"],\n [enteringMatches, \"onEnter\"],\n [stayingMatches, \"onStay\"]\n ].forEach(([matches, hook]) => {\n matches.forEach((match) => {\n this.looseRoutesById[match.routeId].options[hook]?.(\n match\n );\n });\n });\n });\n });\n }\n });\n } catch (err) {\n if (isRedirect(err)) {\n redirect2 = err;\n if (!(isServer ?? this.isServer)) {\n this.navigate({\n ...redirect2.options,\n replace: true,\n ignoreBlocker: true\n });\n }\n } else if (isNotFound(err)) {\n notFound = err;\n }\n this.__store.setState((s) => ({\n ...s,\n statusCode: redirect2 ? redirect2.status : notFound ? 404 : s.matches.some((d) => d.status === \"error\") ? 500 : 200,\n redirect: redirect2\n }));\n }\n if (this.latestLoadPromise === loadPromise) {\n this.commitLocationPromise?.resolve();\n this.latestLoadPromise = void 0;\n this.commitLocationPromise = void 0;\n }\n resolve();\n });\n });\n this.latestLoadPromise = loadPromise;\n await loadPromise;\n while (this.latestLoadPromise && loadPromise !== this.latestLoadPromise) {\n await this.latestLoadPromise;\n }\n let newStatusCode = void 0;\n if (this.hasNotFoundMatch()) {\n newStatusCode = 404;\n } else if (this.__store.state.matches.some((d) => d.status === \"error\")) {\n newStatusCode = 500;\n }\n if (newStatusCode !== void 0) {\n this.__store.setState((s) => ({\n ...s,\n statusCode: newStatusCode\n }));\n }\n };\n this.startViewTransition = (fn) => {\n const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition;\n this.shouldViewTransition = void 0;\n if (shouldViewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document && typeof document.startViewTransition === \"function\") {\n let startViewTransitionParams;\n if (typeof shouldViewTransition === \"object\" && this.isViewTransitionTypesSupported) {\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n const resolvedViewTransitionTypes = typeof shouldViewTransition.types === \"function\" ? shouldViewTransition.types(\n getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n ) : shouldViewTransition.types;\n if (resolvedViewTransitionTypes === false) {\n fn();\n return;\n }\n startViewTransitionParams = {\n update: fn,\n types: resolvedViewTransitionTypes\n };\n } else {\n startViewTransitionParams = fn;\n }\n document.startViewTransition(startViewTransitionParams);\n } else {\n fn();\n }\n };\n this.updateMatch = (id, updater) => {\n this.startTransition(() => {\n const matchesKey = this.state.pendingMatches?.some((d) => d.id === id) ? \"pendingMatches\" : this.state.matches.some((d) => d.id === id) ? \"matches\" : this.state.cachedMatches.some((d) => d.id === id) ? \"cachedMatches\" : \"\";\n if (matchesKey) {\n this.__store.setState((s) => ({\n ...s,\n [matchesKey]: s[matchesKey]?.map(\n (d) => d.id === id ? updater(d) : d\n )\n }));\n }\n });\n };\n this.getMatch = (matchId) => {\n const findFn = (d) => d.id === matchId;\n return this.state.cachedMatches.find(findFn) ?? this.state.pendingMatches?.find(findFn) ?? this.state.matches.find(findFn);\n };\n this.invalidate = (opts) => {\n const invalidate = (d) => {\n if (opts?.filter?.(d) ?? true) {\n return {\n ...d,\n invalid: true,\n ...opts?.forcePending || d.status === \"error\" || d.status === \"notFound\" ? { status: \"pending\", error: void 0 } : void 0\n };\n }\n return d;\n };\n this.__store.setState((s) => ({\n ...s,\n matches: s.matches.map(invalidate),\n cachedMatches: s.cachedMatches.map(invalidate),\n pendingMatches: s.pendingMatches?.map(invalidate)\n }));\n this.shouldViewTransition = false;\n return this.load({ sync: opts?.sync });\n };\n this.getParsedLocationHref = (location) => {\n return location.publicHref || \"/\";\n };\n this.resolveRedirect = (redirect2) => {\n const locationHeader = redirect2.headers.get(\"Location\");\n if (!redirect2.options.href || redirect2.options._builtLocation) {\n const location = redirect2.options._builtLocation ?? this.buildLocation(redirect2.options);\n const href = this.getParsedLocationHref(location);\n redirect2.options.href = href;\n redirect2.headers.set(\"Location\", href);\n } else if (locationHeader) {\n try {\n const url = new URL(locationHeader);\n if (this.origin && url.origin === this.origin) {\n const href = url.pathname + url.search + url.hash;\n redirect2.options.href = href;\n redirect2.headers.set(\"Location\", href);\n }\n } catch {\n }\n }\n if (!redirect2.headers.get(\"Location\")) {\n redirect2.headers.set(\"Location\", redirect2.options.href);\n }\n return redirect2;\n };\n this.clearCache = (opts) => {\n const filter = opts?.filter;\n if (filter !== void 0) {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: s.cachedMatches.filter(\n (m) => !filter(m)\n )\n };\n });\n } else {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: []\n };\n });\n }\n };\n this.clearExpiredCache = () => {\n const filter = (d) => {\n const route = this.looseRoutesById[d.routeId];\n if (!route.options.loader) {\n return true;\n }\n const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3;\n const isError = d.status === \"error\";\n if (isError) return true;\n const gcEligible = Date.now() - d.updatedAt >= gcTime;\n return gcEligible;\n };\n this.clearCache({ filter });\n };\n this.loadRouteChunk = loadRouteChunk;\n this.preloadRoute = async (opts) => {\n const next = this.buildLocation(opts);\n let matches = this.matchRoutes(next, {\n throwOnError: true,\n preload: true,\n dest: opts\n });\n const activeMatchIds = new Set(\n [...this.state.matches, ...this.state.pendingMatches ?? []].map(\n (d) => d.id\n )\n );\n const loadedMatchIds = /* @__PURE__ */ new Set([\n ...activeMatchIds,\n ...this.state.cachedMatches.map((d) => d.id)\n ]);\n batch(() => {\n matches.forEach((match) => {\n if (!loadedMatchIds.has(match.id)) {\n this.__store.setState((s) => ({\n ...s,\n cachedMatches: [...s.cachedMatches, match]\n }));\n }\n });\n });\n try {\n matches = await loadMatches({\n router: this,\n matches,\n location: next,\n preload: true,\n updateMatch: (id, updater) => {\n if (activeMatchIds.has(id)) {\n matches = matches.map((d) => d.id === id ? updater(d) : d);\n } else {\n this.updateMatch(id, updater);\n }\n }\n });\n return matches;\n } catch (err) {\n if (isRedirect(err)) {\n if (err.options.reloadDocument) {\n return void 0;\n }\n return await this.preloadRoute({\n ...err.options,\n _fromLocation: next\n });\n }\n if (!isNotFound(err)) {\n console.error(err);\n }\n return void 0;\n }\n };\n this.matchRoute = (location, opts) => {\n const matchLocation = {\n ...location,\n to: location.to ? this.resolvePathWithBase(\n location.from || \"\",\n location.to\n ) : void 0,\n params: location.params || {},\n leaveParams: true\n };\n const next = this.buildLocation(matchLocation);\n if (opts?.pending && this.state.status !== \"pending\") {\n return false;\n }\n const pending = opts?.pending === void 0 ? !this.state.isLoading : opts.pending;\n const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation || this.state.location;\n const match = findSingleMatch(\n next.pathname,\n opts?.caseSensitive ?? false,\n opts?.fuzzy ?? false,\n baseLocation.pathname,\n this.processedTree\n );\n if (!match) {\n return false;\n }\n if (location.params) {\n if (!deepEqual(match.rawParams, location.params, { partial: true })) {\n return false;\n }\n }\n if (opts?.includeSearch ?? true) {\n return deepEqual(baseLocation.search, next.search, { partial: true }) ? match.rawParams : false;\n }\n return match.rawParams;\n };\n this.hasNotFoundMatch = () => {\n return this.__store.state.matches.some(\n (d) => d.status === \"notFound\" || d.globalNotFound\n );\n };\n this.update({\n defaultPreloadDelay: 50,\n defaultPendingMs: 1e3,\n defaultPendingMinMs: 500,\n context: void 0,\n ...options,\n caseSensitive: options.caseSensitive ?? false,\n notFoundMode: options.notFoundMode ?? \"fuzzy\",\n stringifySearch: options.stringifySearch ?? defaultStringifySearch,\n parseSearch: options.parseSearch ?? defaultParseSearch\n });\n if (typeof document !== \"undefined\") {\n self.__TSR_ROUTER__ = this;\n }\n }\n isShell() {\n return !!this.options.isShell;\n }\n isPrerendering() {\n return !!this.options.isPrerendering;\n }\n get state() {\n return this.__store.state;\n }\n setRoutes({\n routesById,\n routesByPath,\n processedTree\n }) {\n this.routesById = routesById;\n this.routesByPath = routesByPath;\n this.processedTree = processedTree;\n const notFoundRoute = this.options.notFoundRoute;\n if (notFoundRoute) {\n notFoundRoute.init({\n originalIndex: 99999999999\n });\n this.routesById[notFoundRoute.id] = notFoundRoute;\n }\n }\n get looseRoutesById() {\n return this.routesById;\n }\n matchRoutesInternal(next, opts) {\n const matchedRoutesResult = this.getMatchedRoutes(next.pathname);\n const { foundRoute, routeParams, parsedParams } = matchedRoutesResult;\n let { matchedRoutes } = matchedRoutesResult;\n let isGlobalNotFound = false;\n if (\n // If we found a route, and it's not an index route and we have left over path\n foundRoute ? foundRoute.path !== \"/\" && routeParams[\"**\"] : (\n // Or if we didn't find a route and we have left over path\n trimPathRight(next.pathname)\n )\n ) {\n if (this.options.notFoundRoute) {\n matchedRoutes = [...matchedRoutes, this.options.notFoundRoute];\n } else {\n isGlobalNotFound = true;\n }\n }\n const globalNotFoundRouteId = isGlobalNotFound ? findGlobalNotFoundRouteId(this.options.notFoundMode, matchedRoutes) : void 0;\n const matches = [];\n const getParentContext = (parentMatch) => {\n const parentMatchId = parentMatch?.id;\n const parentContext = !parentMatchId ? this.options.context ?? void 0 : parentMatch.context ?? this.options.context ?? void 0;\n return parentContext;\n };\n matchedRoutes.forEach((route, index) => {\n const parentMatch = matches[index - 1];\n const [preMatchSearch, strictMatchSearch, searchError] = (() => {\n const parentSearch = parentMatch?.search ?? next.search;\n const parentStrictSearch = parentMatch?._strictSearch ?? void 0;\n try {\n const strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? void 0;\n return [\n {\n ...parentSearch,\n ...strictSearch\n },\n { ...parentStrictSearch, ...strictSearch },\n void 0\n ];\n } catch (err) {\n let searchParamError = err;\n if (!(err instanceof SearchParamError)) {\n searchParamError = new SearchParamError(err.message, {\n cause: err\n });\n }\n if (opts?.throwOnError) {\n throw searchParamError;\n }\n return [parentSearch, {}, searchParamError];\n }\n })();\n const loaderDeps = route.options.loaderDeps?.({\n search: preMatchSearch\n }) ?? \"\";\n const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : \"\";\n const { interpolatedPath, usedParams } = interpolatePath({\n path: route.fullPath,\n params: routeParams,\n decoder: this.pathParamsDecoder,\n server: this.isServer\n });\n const matchId = (\n // route.id for disambiguation\n route.id + // interpolatedPath for param changes\n interpolatedPath + // explicit deps\n loaderDepsHash\n );\n const existingMatch = this.getMatch(matchId);\n const previousMatch = this.state.matches.find(\n (d) => d.routeId === route.id\n );\n const strictParams = existingMatch?._strictParams ?? usedParams;\n let paramsError = void 0;\n if (!existingMatch) {\n try {\n extractStrictParams(route, usedParams, parsedParams, strictParams);\n } catch (err) {\n if (isNotFound(err) || isRedirect(err)) {\n paramsError = err;\n } else {\n paramsError = new PathParamError(err.message, {\n cause: err\n });\n }\n if (opts?.throwOnError) {\n throw paramsError;\n }\n }\n }\n Object.assign(routeParams, strictParams);\n const cause = previousMatch ? \"stay\" : \"enter\";\n let match;\n if (existingMatch) {\n match = {\n ...existingMatch,\n cause,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: strictParams,\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : replaceEqualDeep(existingMatch.search, preMatchSearch),\n _strictSearch: strictMatchSearch\n };\n } else {\n const status = route.options.loader || route.options.beforeLoad || route.lazyFn || routeNeedsPreload(route) ? \"pending\" : \"success\";\n match = {\n id: matchId,\n ssr: isServer ?? this.isServer ? void 0 : route.options.ssr,\n index,\n routeId: route.id,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: strictParams,\n pathname: interpolatedPath,\n updatedAt: Date.now(),\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch,\n _strictSearch: strictMatchSearch,\n searchError: void 0,\n status,\n isFetching: false,\n error: void 0,\n paramsError,\n __routeContext: void 0,\n _nonReactive: {\n loadPromise: createControlledPromise()\n },\n __beforeLoadContext: void 0,\n context: {},\n abortController: new AbortController(),\n fetchCount: 0,\n cause,\n loaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps,\n invalid: false,\n preload: false,\n links: void 0,\n scripts: void 0,\n headScripts: void 0,\n meta: void 0,\n staticData: route.options.staticData || {},\n fullPath: route.fullPath\n };\n }\n if (!opts?.preload) {\n match.globalNotFound = globalNotFoundRouteId === route.id;\n }\n match.searchError = searchError;\n const parentContext = getParentContext(parentMatch);\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n matches.push(match);\n });\n matches.forEach((match, index) => {\n const route = this.looseRoutesById[match.routeId];\n const existingMatch = this.getMatch(match.id);\n if (!existingMatch) {\n const parentMatch = matches[index - 1];\n const parentContext = getParentContext(parentMatch);\n if (route.options.context) {\n const contextFnContext = {\n deps: match.loaderDeps,\n params: match.params,\n context: parentContext ?? {},\n location: next,\n navigate: (opts2) => this.navigate({ ...opts2, _fromLocation: next }),\n buildLocation: this.buildLocation,\n cause: match.cause,\n abortController: match.abortController,\n preload: !!match.preload,\n matches\n };\n match.__routeContext = route.options.context(contextFnContext) ?? void 0;\n }\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n }\n });\n return matches;\n }\n /**\n * Lightweight route matching for buildLocation.\n * Only computes fullPath, accumulated search, and params - skipping expensive\n * operations like AbortController, ControlledPromise, loaderDeps, and full match objects.\n */\n matchRoutesLightweight(location) {\n const { matchedRoutes, routeParams, parsedParams } = this.getMatchedRoutes(\n location.pathname\n );\n const lastRoute = last(matchedRoutes);\n const accumulatedSearch = { ...location.search };\n for (const route of matchedRoutes) {\n try {\n Object.assign(\n accumulatedSearch,\n validateSearch(route.options.validateSearch, accumulatedSearch)\n );\n } catch {\n }\n }\n const lastStateMatch = last(this.state.matches);\n const canReuseParams = lastStateMatch && lastStateMatch.routeId === lastRoute.id && location.pathname === this.state.location.pathname;\n let params;\n if (canReuseParams) {\n params = lastStateMatch.params;\n } else {\n const strictParams = { ...routeParams };\n for (const route of matchedRoutes) {\n try {\n extractStrictParams(\n route,\n routeParams,\n parsedParams ?? {},\n strictParams\n );\n } catch {\n }\n }\n params = strictParams;\n }\n return {\n matchedRoutes,\n fullPath: lastRoute.fullPath,\n search: accumulatedSearch,\n params\n };\n }\n}\nclass SearchParamError extends Error {\n}\nclass PathParamError extends Error {\n}\nconst normalize = (str) => str.endsWith(\"/\") && str.length > 1 ? str.slice(0, -1) : str;\nfunction comparePaths(a, b) {\n return normalize(a) === normalize(b);\n}\nfunction lazyFn(fn, key) {\n return async (...args) => {\n const imported = await fn();\n return imported[key || \"default\"](...args);\n };\n}\nfunction getInitialRouterState(location) {\n return {\n loadedAt: 0,\n isLoading: false,\n isTransitioning: false,\n status: \"idle\",\n resolvedLocation: void 0,\n location,\n matches: [],\n pendingMatches: [],\n cachedMatches: [],\n statusCode: 200\n };\n}\nfunction validateSearch(validateSearch2, input) {\n if (validateSearch2 == null) return {};\n if (\"~standard\" in validateSearch2) {\n const result = validateSearch2[\"~standard\"].validate(input);\n if (result instanceof Promise)\n throw new SearchParamError(\"Async validation not supported\");\n if (result.issues)\n throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), {\n cause: result\n });\n return result.value;\n }\n if (\"parse\" in validateSearch2) {\n return validateSearch2.parse(input);\n }\n if (typeof validateSearch2 === \"function\") {\n return validateSearch2(input);\n }\n return {};\n}\nfunction getMatchedRoutes({\n pathname,\n routesById,\n processedTree\n}) {\n const routeParams = {};\n const trimmedPath = trimPathRight(pathname);\n let foundRoute = void 0;\n let parsedParams = void 0;\n const match = findRouteMatch(trimmedPath, processedTree, true);\n if (match) {\n foundRoute = match.route;\n Object.assign(routeParams, match.rawParams);\n parsedParams = Object.assign({}, match.parsedParams);\n }\n const matchedRoutes = match?.branch || [routesById[rootRouteId]];\n return { matchedRoutes, routeParams, foundRoute, parsedParams };\n}\nfunction applySearchMiddleware({\n search,\n dest,\n destRoutes,\n _includeValidateSearch\n}) {\n const middleware = buildMiddlewareChain(destRoutes);\n return middleware(search, dest, _includeValidateSearch ?? false);\n}\nfunction buildMiddlewareChain(destRoutes) {\n const context = {\n dest: null,\n _includeValidateSearch: false,\n middlewares: []\n };\n for (const route of destRoutes) {\n if (\"search\" in route.options) {\n if (route.options.search?.middlewares) {\n context.middlewares.push(...route.options.search.middlewares);\n }\n } else if (route.options.preSearchFilters || route.options.postSearchFilters) {\n const legacyMiddleware = ({ search, next }) => {\n let nextSearch = search;\n if (\"preSearchFilters\" in route.options && route.options.preSearchFilters) {\n nextSearch = route.options.preSearchFilters.reduce(\n (prev, next2) => next2(prev),\n search\n );\n }\n const result = next(nextSearch);\n if (\"postSearchFilters\" in route.options && route.options.postSearchFilters) {\n return route.options.postSearchFilters.reduce(\n (prev, next2) => next2(prev),\n result\n );\n }\n return result;\n };\n context.middlewares.push(legacyMiddleware);\n }\n if (route.options.validateSearch) {\n const validate = ({ search, next }) => {\n const result = next(search);\n if (!context._includeValidateSearch) return result;\n try {\n const validatedSearch = {\n ...result,\n ...validateSearch(route.options.validateSearch, result) ?? void 0\n };\n return validatedSearch;\n } catch {\n return result;\n }\n };\n context.middlewares.push(validate);\n }\n }\n const final = ({ search }) => {\n const dest = context.dest;\n if (!dest.search) {\n return {};\n }\n if (dest.search === true) {\n return search;\n }\n return functionalUpdate(dest.search, search);\n };\n context.middlewares.push(final);\n const applyNext = (index, currentSearch, middlewares) => {\n if (index >= middlewares.length) {\n return currentSearch;\n }\n const middleware = middlewares[index];\n const next = (newSearch) => {\n return applyNext(index + 1, newSearch, middlewares);\n };\n return middleware({ search: currentSearch, next });\n };\n return function middleware(search, dest, _includeValidateSearch) {\n context.dest = dest;\n context._includeValidateSearch = _includeValidateSearch;\n return applyNext(0, search, context.middlewares);\n };\n}\nfunction findGlobalNotFoundRouteId(notFoundMode, routes) {\n if (notFoundMode !== \"root\") {\n for (let i = routes.length - 1; i >= 0; i--) {\n const route = routes[i];\n if (route.children) {\n return route.id;\n }\n }\n }\n return rootRouteId;\n}\nfunction extractStrictParams(route, referenceParams, parsedParams, accumulatedParams) {\n const parseParams = route.options.params?.parse ?? route.options.parseParams;\n if (parseParams) {\n if (route.options.skipRouteOnParseError) {\n for (const key in referenceParams) {\n if (key in parsedParams) {\n accumulatedParams[key] = parsedParams[key];\n }\n }\n } else {\n const result = parseParams(accumulatedParams);\n Object.assign(accumulatedParams, result);\n }\n }\n}\nexport {\n PathParamError,\n RouterCore,\n SearchParamError,\n defaultSerializeError,\n getInitialRouterState,\n getLocationChangeInfo,\n getMatchedRoutes,\n lazyFn,\n trailingSlashOptions\n};\n//# sourceMappingURL=router.js.map\n","import { defaultSerializeError } from \"./router.js\";\nconst TSR_DEFERRED_PROMISE = /* @__PURE__ */ Symbol.for(\"TSR_DEFERRED_PROMISE\");\nfunction defer(_promise, options) {\n const promise = _promise;\n if (promise[TSR_DEFERRED_PROMISE]) {\n return promise;\n }\n promise[TSR_DEFERRED_PROMISE] = { status: \"pending\" };\n promise.then((data) => {\n promise[TSR_DEFERRED_PROMISE].status = \"success\";\n promise[TSR_DEFERRED_PROMISE].data = data;\n }).catch((error) => {\n promise[TSR_DEFERRED_PROMISE].status = \"error\";\n promise[TSR_DEFERRED_PROMISE].error = {\n data: (options?.serializeError ?? defaultSerializeError)(error),\n __isServerError: true\n };\n });\n return promise;\n}\nexport {\n TSR_DEFERRED_PROMISE,\n defer\n};\n//# sourceMappingURL=defer.js.map\n","const preloadWarning = \"Error preloading route! ☝️\";\nexport {\n preloadWarning\n};\n//# sourceMappingURL=link.js.map\n","import invariant from \"tiny-invariant\";\nimport { trimPathLeft, joinPaths, trimPathRight } from \"./path.js\";\nimport { notFound } from \"./not-found.js\";\nimport { redirect } from \"./redirect.js\";\nimport { rootRouteId } from \"./root.js\";\nclass BaseRoute {\n constructor(options) {\n this.init = (opts) => {\n this.originalIndex = opts.originalIndex;\n const options2 = this.options;\n const isRoot = !options2?.path && !options2?.id;\n this.parentRoute = this.options.getParentRoute?.();\n if (isRoot) {\n this._path = rootRouteId;\n } else if (!this.parentRoute) {\n invariant(\n false,\n `Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.`\n );\n }\n let path = isRoot ? rootRouteId : options2?.path;\n if (path && path !== \"/\") {\n path = trimPathLeft(path);\n }\n const customId = options2?.id || path;\n let id = isRoot ? rootRouteId : joinPaths([\n this.parentRoute.id === rootRouteId ? \"\" : this.parentRoute.id,\n customId\n ]);\n if (path === rootRouteId) {\n path = \"/\";\n }\n if (id !== rootRouteId) {\n id = joinPaths([\"/\", id]);\n }\n const fullPath = id === rootRouteId ? \"/\" : joinPaths([this.parentRoute.fullPath, path]);\n this._path = path;\n this._id = id;\n this._fullPath = fullPath;\n this._to = trimPathRight(fullPath);\n };\n this.addChildren = (children) => {\n return this._addFileChildren(children);\n };\n this._addFileChildren = (children) => {\n if (Array.isArray(children)) {\n this.children = children;\n }\n if (typeof children === \"object\" && children !== null) {\n this.children = Object.values(children);\n }\n return this;\n };\n this._addFileTypes = () => {\n return this;\n };\n this.updateLoader = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.update = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.lazy = (lazyFn) => {\n this.lazyFn = lazyFn;\n return this;\n };\n this.redirect = (opts) => redirect({ from: this.fullPath, ...opts });\n this.options = options || {};\n this.isRoot = !options?.getParentRoute;\n if (options?.id && options?.path) {\n throw new Error(`Route cannot have both an 'id' and a 'path' option.`);\n }\n }\n get to() {\n return this._to;\n }\n get id() {\n return this._id;\n }\n get path() {\n return this._path;\n }\n get fullPath() {\n return this._fullPath;\n }\n}\nclass BaseRouteApi {\n constructor({ id }) {\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.redirect = (opts) => redirect({ from: this.id, ...opts });\n this.id = id;\n }\n}\nclass BaseRootRoute extends BaseRoute {\n constructor(options) {\n super(options);\n }\n}\nexport {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi\n};\n//# sourceMappingURL=route.js.map\n","import * as React from \"react\";\nconst REACT_USE = \"use\";\nconst reactUse = React[REACT_USE];\nfunction useStableCallback(fn) {\n const fnRef = React.useRef(fn);\n fnRef.current = fn;\n const ref = React.useRef((...args) => fnRef.current(...args));\n return ref.current;\n}\nconst useLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction usePrevious(value) {\n const ref = React.useRef({\n value,\n prev: null\n });\n const current = ref.current.value;\n if (value !== current) {\n ref.current = {\n value,\n prev: current\n };\n }\n return ref.current.prev;\n}\nfunction useIntersectionObserver(ref, callback, intersectionObserverOptions = {}, options = {}) {\n React.useEffect(() => {\n if (!ref.current || options.disabled || typeof IntersectionObserver !== \"function\") {\n return;\n }\n const observer = new IntersectionObserver(([entry]) => {\n callback(entry);\n }, intersectionObserverOptions);\n observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }, [callback, intersectionObserverOptions, options.disabled, ref]);\n}\nfunction useForwardedRef(ref) {\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => innerRef.current, []);\n return innerRef;\n}\nexport {\n reactUse,\n useForwardedRef,\n useIntersectionObserver,\n useLayoutEffect,\n usePrevious,\n useStableCallback\n};\n//# sourceMappingURL=utils.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { defer, TSR_DEFERRED_PROMISE } from \"@tanstack/router-core\";\nimport { reactUse } from \"./utils.js\";\nfunction useAwaited({ promise: _promise }) {\n if (reactUse) {\n const data = reactUse(_promise);\n return data;\n }\n const promise = defer(_promise);\n if (promise[TSR_DEFERRED_PROMISE].status === \"pending\") {\n throw promise;\n }\n if (promise[TSR_DEFERRED_PROMISE].status === \"error\") {\n throw promise[TSR_DEFERRED_PROMISE].error;\n }\n return promise[TSR_DEFERRED_PROMISE].data;\n}\nfunction Await(props) {\n const inner = /* @__PURE__ */ jsx(AwaitInner, { ...props });\n if (props.fallback) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: props.fallback, children: inner });\n }\n return inner;\n}\nfunction AwaitInner(props) {\n const data = useAwaited(props);\n return props.children(data);\n}\nexport {\n Await,\n useAwaited\n};\n//# sourceMappingURL=awaited.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nfunction CatchBoundary(props) {\n const errorComponent = props.errorComponent ?? ErrorComponent;\n return /* @__PURE__ */ jsx(\n CatchBoundaryImpl,\n {\n getResetKey: props.getResetKey,\n onCatch: props.onCatch,\n children: ({ error, reset }) => {\n if (error) {\n return React.createElement(errorComponent, {\n error,\n reset\n });\n }\n return props.children;\n }\n }\n );\n}\nclass CatchBoundaryImpl extends React.Component {\n constructor() {\n super(...arguments);\n this.state = { error: null };\n }\n static getDerivedStateFromProps(props) {\n return { resetKey: props.getResetKey() };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n reset() {\n this.setState({ error: null });\n }\n componentDidUpdate(prevProps, prevState) {\n if (prevState.error && prevState.resetKey !== this.state.resetKey) {\n this.reset();\n }\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.onCatch) {\n this.props.onCatch(error, errorInfo);\n }\n }\n render() {\n return this.props.children({\n error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error,\n reset: () => {\n this.reset();\n }\n });\n }\n}\nfunction ErrorComponent({ error }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== \"production\");\n return /* @__PURE__ */ jsxs(\"div\", { style: { padding: \".5rem\", maxWidth: \"100%\" }, children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: \".5rem\" }, children: [\n /* @__PURE__ */ jsx(\"strong\", { style: { fontSize: \"1rem\" }, children: \"Something went wrong!\" }),\n /* @__PURE__ */ jsx(\n \"button\",\n {\n style: {\n appearance: \"none\",\n fontSize: \".6em\",\n border: \"1px solid currentColor\",\n padding: \".1rem .2rem\",\n fontWeight: \"bold\",\n borderRadius: \".25rem\"\n },\n onClick: () => setShow((d) => !d),\n children: show ? \"Hide Error\" : \"Show Error\"\n }\n )\n ] }),\n /* @__PURE__ */ jsx(\"div\", { style: { height: \".25rem\" } }),\n show ? /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\n \"pre\",\n {\n style: {\n fontSize: \".7em\",\n border: \"1px solid red\",\n borderRadius: \".25rem\",\n padding: \".3rem\",\n color: \"red\",\n overflow: \"auto\"\n },\n children: error.message ? /* @__PURE__ */ jsx(\"code\", { children: error.message }) : null\n }\n ) }) : null\n ] });\n}\nexport {\n CatchBoundary,\n ErrorComponent\n};\n//# sourceMappingURL=CatchBoundary.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport React__default from \"react\";\nfunction ClientOnly({ children, fallback = null }) {\n return useHydrated() ? /* @__PURE__ */ jsx(React__default.Fragment, { children }) : /* @__PURE__ */ jsx(React__default.Fragment, { children: fallback });\n}\nfunction useHydrated() {\n return React__default.useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n ClientOnly,\n useHydrated\n};\n//# sourceMappingURL=ClientOnly.js.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d, options = {}) {\n const equal = options.equal ?? shallow;\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n equal\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = getOwnKeys(objA);\n if (keysA.length !== getOwnKeys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction getOwnKeys(obj) {\n return Object.keys(obj).concat(\n Object.getOwnPropertySymbols(obj)\n );\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nconst routerContext = React.createContext(null);\nfunction getRouterContext() {\n if (typeof document === \"undefined\") {\n return routerContext;\n }\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__;\n }\n window.__TSR_ROUTER_CONTEXT__ = routerContext;\n return routerContext;\n}\nexport {\n getRouterContext\n};\n//# sourceMappingURL=routerContext.js.map\n","import * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction useRouter(opts) {\n const value = React.useContext(getRouterContext());\n warning(\n !((opts?.warn ?? true) && !value),\n \"useRouter must be used inside a <RouterProvider> component!\"\n );\n return value;\n}\nexport {\n useRouter\n};\n//# sourceMappingURL=useRouter.js.map\n","import { useStore } from \"@tanstack/react-store\";\nimport { useRef } from \"react\";\nimport { replaceEqualDeep } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useRouterState(opts) {\n const contextRouter = useRouter({\n warn: opts?.router === void 0\n });\n const router = opts?.router || contextRouter;\n const _isServer = isServer ?? router.isServer;\n if (_isServer) {\n const state = router.state;\n return opts?.select ? opts.select(state) : state;\n }\n const previousResult = (\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useRef(void 0)\n );\n return useStore(router.__store, (state) => {\n if (opts?.select) {\n if (opts.structuralSharing ?? router.options.defaultStructuralSharing) {\n const newSlice = replaceEqualDeep(\n previousResult.current,\n opts.select(state)\n );\n previousResult.current = newSlice;\n return newSlice;\n }\n return opts.select(state);\n }\n return state;\n });\n}\nexport {\n useRouterState\n};\n//# sourceMappingURL=useRouterState.js.map\n","import * as React from \"react\";\nconst matchContext = React.createContext(void 0);\nconst dummyMatchContext = React.createContext(\n void 0\n);\nexport {\n dummyMatchContext,\n matchContext\n};\n//# sourceMappingURL=matchContext.js.map\n","import * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { dummyMatchContext, matchContext } from \"./matchContext.js\";\nfunction useMatch(opts) {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext\n );\n const matchSelection = useRouterState({\n select: (state) => {\n const match = state.matches.find(\n (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId\n );\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`\n );\n if (match === void 0) {\n return void 0;\n }\n return opts.select ? opts.select(match) : match;\n },\n structuralSharing: opts.structuralSharing\n });\n return matchSelection;\n}\nexport {\n useMatch\n};\n//# sourceMappingURL=useMatch.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderData(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (s) => {\n return opts.select ? opts.select(s.loaderData) : s.loaderData;\n }\n });\n}\nexport {\n useLoaderData\n};\n//# sourceMappingURL=useLoaderData.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderDeps(opts) {\n const { select, ...rest } = opts;\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps;\n }\n });\n}\nexport {\n useLoaderDeps\n};\n//# sourceMappingURL=useLoaderDeps.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useParams(opts) {\n return useMatch({\n from: opts.from,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n strict: opts.strict,\n select: (match) => {\n const params = opts.strict === false ? match.params : match._strictParams;\n return opts.select ? opts.select(params) : params;\n }\n });\n}\nexport {\n useParams\n};\n//# sourceMappingURL=useParams.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useSearch(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n select: (match) => {\n return opts.select ? opts.select(match.search) : match.search;\n }\n });\n}\nexport {\n useSearch\n};\n//# sourceMappingURL=useSearch.js.map\n","import * as React from \"react\";\nimport { useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useNavigate(_defaultOpts) {\n const router = useRouter();\n return React.useCallback(\n (options) => {\n return router.navigate({\n ...options,\n from: options.from ?? _defaultOpts?.from\n });\n },\n [_defaultOpts?.from, router]\n );\n}\nfunction Navigate(props) {\n const router = useRouter();\n const navigate = useNavigate();\n const previousPropsRef = React.useRef(null);\n useLayoutEffect(() => {\n if (previousPropsRef.current !== props) {\n navigate(props);\n previousPropsRef.current = props;\n }\n }, [router, props, navigate]);\n return null;\n}\nexport {\n Navigate,\n useNavigate\n};\n//# sourceMappingURL=useNavigate.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { isDangerousProtocol, exactPathTest, removeTrailingSlash, deepEqual, functionalUpdate, preloadWarning } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useForwardedRef, useIntersectionObserver } from \"./utils.js\";\nimport { useHydrated } from \"./ClientOnly.js\";\nfunction useLinkProps(options, forwardedRef) {\n const router = useRouter();\n const innerRef = useForwardedRef(forwardedRef);\n const _isServer = isServer ?? router.isServer;\n const {\n // custom props\n activeProps,\n inactiveProps,\n activeOptions,\n to,\n preload: userPreload,\n preloadDelay: userPreloadDelay,\n hashScrollIntoView,\n replace,\n startTransition,\n resetScroll,\n viewTransition,\n // element props\n children,\n target,\n disabled,\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ignoreBlocker,\n // prevent these from being returned\n params: _params,\n search: _search,\n hash: _hash,\n state: _state,\n mask: _mask,\n reloadDocument: _reloadDocument,\n unsafeRelative: _unsafeRelative,\n from: _from,\n _fromLocation,\n ...propsSafeToSpread\n } = options;\n if (_isServer) {\n const safeInternal = isSafeInternal(to);\n if (typeof to === \"string\" && !safeInternal && // Quick checks to avoid `new URL` in common internal-like cases\n to.indexOf(\":\") > -1) {\n try {\n new URL(to);\n if (isDangerousProtocol(to)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`Blocked Link with dangerous protocol: ${to}`);\n }\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: void 0,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className }\n };\n }\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: to,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className }\n };\n } catch {\n }\n }\n const next2 = router.buildLocation({ ...options, from: options.from });\n const hrefOptionPublicHref2 = next2.maskedLocation ? next2.maskedLocation.publicHref : next2.publicHref;\n const hrefOptionExternal2 = next2.maskedLocation ? next2.maskedLocation.external : next2.external;\n const hrefOption2 = getHrefOption(\n hrefOptionPublicHref2,\n hrefOptionExternal2,\n router.history,\n disabled\n );\n const externalLink2 = (() => {\n if (hrefOption2?.external) {\n if (isDangerousProtocol(hrefOption2.href)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n `Blocked Link with dangerous protocol: ${hrefOption2.href}`\n );\n }\n return void 0;\n }\n return hrefOption2.href;\n }\n if (safeInternal) return void 0;\n if (typeof to === \"string\" && to.indexOf(\":\") > -1) {\n try {\n new URL(to);\n if (isDangerousProtocol(to)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`Blocked Link with dangerous protocol: ${to}`);\n }\n return void 0;\n }\n return to;\n } catch {\n }\n }\n return void 0;\n })();\n const isActive2 = (() => {\n if (externalLink2) return false;\n const currentLocation = router.state.location;\n const exact = activeOptions?.exact ?? false;\n if (exact) {\n const testExact = exactPathTest(\n currentLocation.pathname,\n next2.pathname,\n router.basepath\n );\n if (!testExact) {\n return false;\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n currentLocation.pathname,\n router.basepath\n );\n const nextPathSplit = removeTrailingSlash(\n next2.pathname,\n router.basepath\n );\n const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\");\n if (!pathIsFuzzyEqual) {\n return false;\n }\n }\n const includeSearch = activeOptions?.includeSearch ?? true;\n if (includeSearch) {\n if (currentLocation.search !== next2.search) {\n const currentSearchEmpty = !currentLocation.search || typeof currentLocation.search === \"object\" && Object.keys(currentLocation.search).length === 0;\n const nextSearchEmpty = !next2.search || typeof next2.search === \"object\" && Object.keys(next2.search).length === 0;\n if (!(currentSearchEmpty && nextSearchEmpty)) {\n const searchTest = deepEqual(currentLocation.search, next2.search, {\n partial: !exact,\n ignoreUndefined: !activeOptions?.explicitUndefined\n });\n if (!searchTest) {\n return false;\n }\n }\n }\n }\n if (activeOptions?.includeHash) {\n return false;\n }\n return true;\n })();\n if (externalLink2) {\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: externalLink2,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className }\n };\n }\n const resolvedActiveProps2 = isActive2 ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n const resolvedInactiveProps2 = isActive2 ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n const resolvedStyle2 = (() => {\n const baseStyle = style;\n const activeStyle = resolvedActiveProps2.style;\n const inactiveStyle = resolvedInactiveProps2.style;\n if (!baseStyle && !activeStyle && !inactiveStyle) {\n return void 0;\n }\n if (baseStyle && !activeStyle && !inactiveStyle) {\n return baseStyle;\n }\n if (!baseStyle && activeStyle && !inactiveStyle) {\n return activeStyle;\n }\n if (!baseStyle && !activeStyle && inactiveStyle) {\n return inactiveStyle;\n }\n return {\n ...baseStyle,\n ...activeStyle,\n ...inactiveStyle\n };\n })();\n const resolvedClassName2 = (() => {\n const baseClassName = className;\n const activeClassName = resolvedActiveProps2.className;\n const inactiveClassName = resolvedInactiveProps2.className;\n if (!baseClassName && !activeClassName && !inactiveClassName) {\n return \"\";\n }\n let out = \"\";\n if (baseClassName) {\n out = baseClassName;\n }\n if (activeClassName) {\n out = out ? `${out} ${activeClassName}` : activeClassName;\n }\n if (inactiveClassName) {\n out = out ? `${out} ${inactiveClassName}` : inactiveClassName;\n }\n return out;\n })();\n return {\n ...propsSafeToSpread,\n ...resolvedActiveProps2,\n ...resolvedInactiveProps2,\n href: hrefOption2?.href,\n ref: innerRef,\n disabled: !!disabled,\n target,\n ...resolvedStyle2 && { style: resolvedStyle2 },\n ...resolvedClassName2 && { className: resolvedClassName2 },\n ...disabled && STATIC_DISABLED_PROPS,\n ...isActive2 && STATIC_ACTIVE_PROPS\n };\n }\n const isHydrated = useHydrated();\n const currentSearch = useRouterState({\n select: (s) => s.location.search,\n structuralSharing: true\n });\n const from = options.from;\n const _options = React.useMemo(\n () => {\n return { ...options, from };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n router,\n currentSearch,\n from,\n options._fromLocation,\n options.hash,\n options.to,\n options.search,\n options.params,\n options.state,\n options.mask,\n options.unsafeRelative\n ]\n );\n const next = React.useMemo(\n () => router.buildLocation({ ..._options }),\n [router, _options]\n );\n const hrefOptionPublicHref = next.maskedLocation ? next.maskedLocation.publicHref : next.publicHref;\n const hrefOptionExternal = next.maskedLocation ? next.maskedLocation.external : next.external;\n const hrefOption = React.useMemo(\n () => getHrefOption(\n hrefOptionPublicHref,\n hrefOptionExternal,\n router.history,\n disabled\n ),\n [disabled, hrefOptionExternal, hrefOptionPublicHref, router.history]\n );\n const externalLink = React.useMemo(() => {\n if (hrefOption?.external) {\n if (isDangerousProtocol(hrefOption.href)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n `Blocked Link with dangerous protocol: ${hrefOption.href}`\n );\n }\n return void 0;\n }\n return hrefOption.href;\n }\n const safeInternal = isSafeInternal(to);\n if (safeInternal) return void 0;\n if (typeof to !== \"string\" || to.indexOf(\":\") === -1) return void 0;\n try {\n new URL(to);\n if (isDangerousProtocol(to)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`Blocked Link with dangerous protocol: ${to}`);\n }\n return void 0;\n }\n return to;\n } catch {\n }\n return void 0;\n }, [to, hrefOption]);\n const isActive = useRouterState({\n select: (s) => {\n if (externalLink) return false;\n if (activeOptions?.exact) {\n const testExact = exactPathTest(\n s.location.pathname,\n next.pathname,\n router.basepath\n );\n if (!testExact) {\n return false;\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n s.location.pathname,\n router.basepath\n );\n const nextPathSplit = removeTrailingSlash(\n next.pathname,\n router.basepath\n );\n const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\");\n if (!pathIsFuzzyEqual) {\n return false;\n }\n }\n if (activeOptions?.includeSearch ?? true) {\n const searchTest = deepEqual(s.location.search, next.search, {\n partial: !activeOptions?.exact,\n ignoreUndefined: !activeOptions?.explicitUndefined\n });\n if (!searchTest) {\n return false;\n }\n }\n if (activeOptions?.includeHash) {\n return isHydrated && s.location.hash === next.hash;\n }\n return true;\n }\n });\n const resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n const resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n const resolvedClassName = [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className\n ].filter(Boolean).join(\" \");\n const resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style\n };\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const hasRenderFetched = React.useRef(false);\n const preload = options.reloadDocument || externalLink ? false : userPreload ?? router.options.defaultPreload;\n const preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0;\n const doPreload = React.useCallback(() => {\n router.preloadRoute({ ..._options }).catch((err) => {\n console.warn(err);\n console.warn(preloadWarning);\n });\n }, [router, _options]);\n const preloadViewportIoCallback = React.useCallback(\n (entry) => {\n if (entry?.isIntersecting) {\n doPreload();\n }\n },\n [doPreload]\n );\n useIntersectionObserver(\n innerRef,\n preloadViewportIoCallback,\n intersectionObserverOptions,\n { disabled: !!disabled || !(preload === \"viewport\") }\n );\n React.useEffect(() => {\n if (hasRenderFetched.current) {\n return;\n }\n if (!disabled && preload === \"render\") {\n doPreload();\n hasRenderFetched.current = true;\n }\n }, [disabled, doPreload, preload]);\n const handleClick = (e) => {\n const elementTarget = e.currentTarget.getAttribute(\"target\");\n const effectiveTarget = target !== void 0 ? target : elementTarget;\n if (!disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!effectiveTarget || effectiveTarget === \"_self\") && e.button === 0) {\n e.preventDefault();\n flushSync(() => {\n setIsTransitioning(true);\n });\n const unsub = router.subscribe(\"onResolved\", () => {\n unsub();\n setIsTransitioning(false);\n });\n router.navigate({\n ..._options,\n replace,\n resetScroll,\n hashScrollIntoView,\n startTransition,\n viewTransition,\n ignoreBlocker\n });\n }\n };\n if (externalLink) {\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: externalLink,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className },\n ...onClick && { onClick },\n ...onFocus && { onFocus },\n ...onMouseEnter && { onMouseEnter },\n ...onMouseLeave && { onMouseLeave },\n ...onTouchStart && { onTouchStart }\n };\n }\n const handleFocus = (_) => {\n if (disabled) return;\n if (preload) {\n doPreload();\n }\n };\n const handleTouchStart = handleFocus;\n const handleEnter = (e) => {\n if (disabled || !preload) return;\n if (!preloadDelay) {\n doPreload();\n } else {\n const eventTarget = e.target;\n if (timeoutMap.has(eventTarget)) {\n return;\n }\n const id = setTimeout(() => {\n timeoutMap.delete(eventTarget);\n doPreload();\n }, preloadDelay);\n timeoutMap.set(eventTarget, id);\n }\n };\n const handleLeave = (e) => {\n if (disabled || !preload || !preloadDelay) return;\n const eventTarget = e.target;\n const id = timeoutMap.get(eventTarget);\n if (id) {\n clearTimeout(id);\n timeoutMap.delete(eventTarget);\n }\n };\n return {\n ...propsSafeToSpread,\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n href: hrefOption?.href,\n ref: innerRef,\n onClick: composeHandlers([onClick, handleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n disabled: !!disabled,\n target,\n ...resolvedStyle && { style: resolvedStyle },\n ...resolvedClassName && { className: resolvedClassName },\n ...disabled && STATIC_DISABLED_PROPS,\n ...isActive && STATIC_ACTIVE_PROPS,\n ...isHydrated && isTransitioning && STATIC_TRANSITIONING_PROPS\n };\n}\nconst STATIC_EMPTY_OBJECT = {};\nconst STATIC_ACTIVE_OBJECT = { className: \"active\" };\nconst STATIC_DISABLED_PROPS = { role: \"link\", \"aria-disabled\": true };\nconst STATIC_ACTIVE_PROPS = { \"data-status\": \"active\", \"aria-current\": \"page\" };\nconst STATIC_TRANSITIONING_PROPS = { \"data-transitioning\": \"transitioning\" };\nconst timeoutMap = /* @__PURE__ */ new WeakMap();\nconst intersectionObserverOptions = {\n rootMargin: \"100px\"\n};\nconst composeHandlers = (handlers) => (e) => {\n for (const handler of handlers) {\n if (!handler) continue;\n if (e.defaultPrevented) return;\n handler(e);\n }\n};\nfunction getHrefOption(publicHref, external, history, disabled) {\n if (disabled) return void 0;\n if (external) {\n return { href: publicHref, external: true };\n }\n return {\n href: history.createHref(publicHref) || \"/\",\n external: false\n };\n}\nfunction isSafeInternal(to) {\n if (typeof to !== \"string\") return false;\n const zero = to.charCodeAt(0);\n if (zero === 47) return to.charCodeAt(1) !== 47;\n return zero === 46;\n}\nfunction createLink(Comp) {\n return React.forwardRef(function CreatedLink(props, ref) {\n return /* @__PURE__ */ jsx(Link, { ...props, _asChild: Comp, ref });\n });\n}\nconst Link = React.forwardRef(\n (props, ref) => {\n const { _asChild, ...rest } = props;\n const { type: _type, ...linkProps } = useLinkProps(rest, ref);\n const children = typeof rest.children === \"function\" ? rest.children({\n isActive: linkProps[\"data-status\"] === \"active\"\n }) : rest.children;\n if (!_asChild) {\n const { disabled: _, ...rest2 } = linkProps;\n return React.createElement(\"a\", rest2, children);\n }\n return React.createElement(_asChild, linkProps, children);\n }\n);\nfunction isCtrlEvent(e) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n}\nconst linkOptions = (options) => {\n return options;\n};\nexport {\n Link,\n createLink,\n linkOptions,\n useLinkProps\n};\n//# sourceMappingURL=link.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { BaseRouteApi, notFound, BaseRoute, BaseRootRoute } from \"@tanstack/router-core\";\nimport React__default from \"react\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Link } from \"./link.js\";\nfunction getRouteApi(id) {\n return new RouteApi({ id });\n}\nclass RouteApi extends BaseRouteApi {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }) {\n super({ id });\n this.useMatch = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n structuralSharing: opts?.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n from: this.id,\n select: (d) => opts?.select ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.id].fullPath });\n };\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.Link = React__default.forwardRef((props, ref) => {\n const router = useRouter();\n const fullPath = router.routesById[this.id].fullPath;\n return /* @__PURE__ */ jsx(Link, { ref, from: fullPath, ...props });\n });\n }\n}\nclass Route extends BaseRoute {\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n structuralSharing: opts?.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => opts?.select ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = /* @__PURE__ */ Symbol.for(\"react.memo\");\n }\n}\nfunction createRoute(options) {\n return new Route(\n // TODO: Help us TypeChris, you're our only hope!\n options\n );\n}\nfunction createRootRouteWithContext() {\n return (options) => {\n return createRootRoute(options);\n };\n}\nconst rootRouteWithContext = createRootRouteWithContext;\nclass RootRoute extends BaseRootRoute {\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n structuralSharing: opts?.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => opts?.select ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = /* @__PURE__ */ Symbol.for(\"react.memo\");\n }\n}\nfunction createRootRoute(options) {\n return new RootRoute(options);\n}\nfunction createRouteMask(opts) {\n return opts;\n}\nclass NotFoundRoute extends Route {\n constructor(options) {\n super({\n ...options,\n id: \"404\"\n });\n }\n}\nexport {\n NotFoundRoute,\n RootRoute,\n Route,\n RouteApi,\n createRootRoute,\n createRootRouteWithContext,\n createRoute,\n createRouteMask,\n getRouteApi,\n rootRouteWithContext\n};\n//# sourceMappingURL=route.js.map\n","import warning from \"tiny-warning\";\nimport { createRoute } from \"./route.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useRouter } from \"./useRouter.js\";\nfunction createFileRoute(path) {\n if (typeof path === \"object\") {\n return new FileRoute(path, {\n silent: true\n }).createRoute(path);\n }\n return new FileRoute(path, {\n silent: true\n }).createRoute;\n}\nclass FileRoute {\n constructor(path, _opts) {\n this.path = path;\n this.createRoute = (options) => {\n warning(\n this.silent,\n \"FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.\"\n );\n const route = createRoute(options);\n route.isRoot = false;\n return route;\n };\n this.silent = _opts?.silent;\n }\n}\nfunction FileRouteLoader(_path) {\n warning(\n false,\n `FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the the main route file, inside the \\`createFileRoute('/path/to/file')(options)\\` options`\n );\n return (loaderFn) => loaderFn;\n}\nclass LazyRoute {\n constructor(opts) {\n this.useMatch = (opts2) => {\n return useMatch({\n select: opts2?.select,\n from: this.options.id,\n structuralSharing: opts2?.structuralSharing\n });\n };\n this.useRouteContext = (opts2) => {\n return useMatch({\n from: this.options.id,\n select: (d) => opts2?.select ? opts2.select(d.context) : d.context\n });\n };\n this.useSearch = (opts2) => {\n return useSearch({\n select: opts2?.select,\n structuralSharing: opts2?.structuralSharing,\n from: this.options.id\n });\n };\n this.useParams = (opts2) => {\n return useParams({\n select: opts2?.select,\n structuralSharing: opts2?.structuralSharing,\n from: this.options.id\n });\n };\n this.useLoaderDeps = (opts2) => {\n return useLoaderDeps({ ...opts2, from: this.options.id });\n };\n this.useLoaderData = (opts2) => {\n return useLoaderData({ ...opts2, from: this.options.id });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.options.id].fullPath });\n };\n this.options = opts;\n this.$$typeof = /* @__PURE__ */ Symbol.for(\"react.memo\");\n }\n}\nfunction createLazyRoute(id) {\n return (opts) => {\n return new LazyRoute({\n id,\n ...opts\n });\n };\n}\nfunction createLazyFileRoute(id) {\n if (typeof id === \"object\") {\n return new LazyRoute(id);\n }\n return (opts) => new LazyRoute({ id, ...opts });\n}\nexport {\n FileRoute,\n FileRouteLoader,\n LazyRoute,\n createFileRoute,\n createLazyFileRoute,\n createLazyRoute\n};\n//# sourceMappingURL=fileRoute.js.map\n","import * as React from \"react\";\nimport { isModuleNotFoundError } from \"@tanstack/router-core\";\nimport { reactUse } from \"./utils.js\";\nfunction lazyRouteComponent(importer, exportName) {\n let loadPromise;\n let comp;\n let error;\n let reload;\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer().then((res) => {\n loadPromise = void 0;\n comp = res[exportName ?? \"default\"];\n }).catch((err) => {\n error = err;\n if (isModuleNotFoundError(error)) {\n if (error instanceof Error && typeof window !== \"undefined\" && typeof sessionStorage !== \"undefined\") {\n const storageKey = `tanstack_router_reload:${error.message}`;\n if (!sessionStorage.getItem(storageKey)) {\n sessionStorage.setItem(storageKey, \"1\");\n reload = true;\n }\n }\n }\n });\n }\n return loadPromise;\n };\n const lazyComp = function Lazy(props) {\n if (reload) {\n window.location.reload();\n throw new Promise(() => {\n });\n }\n if (error) {\n throw error;\n }\n if (!comp) {\n if (reactUse) {\n reactUse(load());\n } else {\n throw load();\n }\n }\n return React.createElement(comp, props);\n };\n lazyComp.preload = load;\n return lazyComp;\n}\nexport {\n lazyRouteComponent\n};\n//# sourceMappingURL=lazyRouteComponent.js.map\n","import * as React from \"react\";\nimport { trimPathRight, getLocationChangeInfo, handleHashScroll } from \"@tanstack/router-core\";\nimport { usePrevious, useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction Transitioner() {\n const router = useRouter();\n const mountLoadForRouter = React.useRef({ router, mounted: false });\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const { hasPendingMatches, isLoading } = useRouterState({\n select: (s) => ({\n isLoading: s.isLoading,\n hasPendingMatches: s.matches.some((d) => d.status === \"pending\")\n }),\n structuralSharing: true\n });\n const previousIsLoading = usePrevious(isLoading);\n const isAnyPending = isLoading || isTransitioning || hasPendingMatches;\n const previousIsAnyPending = usePrevious(isAnyPending);\n const isPagePending = isLoading || hasPendingMatches;\n const previousIsPagePending = usePrevious(isPagePending);\n router.startTransition = (fn) => {\n setIsTransitioning(true);\n React.startTransition(() => {\n fn();\n setIsTransitioning(false);\n });\n };\n React.useEffect(() => {\n const unsub = router.history.subscribe(router.load);\n const nextLocation = router.buildLocation({\n to: router.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n if (trimPathRight(router.latestLocation.publicHref) !== trimPathRight(nextLocation.publicHref)) {\n router.commitLocation({ ...nextLocation, replace: true });\n }\n return () => {\n unsub();\n };\n }, [router, router.history]);\n useLayoutEffect(() => {\n if (\n // if we are hydrating from SSR, loading is triggered in ssr-client\n typeof window !== \"undefined\" && router.ssr || mountLoadForRouter.current.router === router && mountLoadForRouter.current.mounted\n ) {\n return;\n }\n mountLoadForRouter.current = { router, mounted: true };\n const tryLoad = async () => {\n try {\n await router.load();\n } catch (err) {\n console.error(err);\n }\n };\n tryLoad();\n }, [router]);\n useLayoutEffect(() => {\n if (previousIsLoading && !isLoading) {\n router.emit({\n type: \"onLoad\",\n // When the new URL has committed, when the new matches have been loaded into state.matches\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [previousIsLoading, router, isLoading]);\n useLayoutEffect(() => {\n if (previousIsPagePending && !isPagePending) {\n router.emit({\n type: \"onBeforeRouteMount\",\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [isPagePending, previousIsPagePending, router]);\n useLayoutEffect(() => {\n if (previousIsAnyPending && !isAnyPending) {\n const changeInfo = getLocationChangeInfo(router.state);\n router.emit({\n type: \"onResolved\",\n ...changeInfo\n });\n router.__store.setState((s) => ({\n ...s,\n status: \"idle\",\n resolvedLocation: s.location\n }));\n if (changeInfo.hrefChanged) {\n handleHashScroll(router);\n }\n }\n }, [isAnyPending, previousIsAnyPending, router]);\n return null;\n}\nexport {\n Transitioner\n};\n//# sourceMappingURL=Transitioner.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { isNotFound } from \"@tanstack/router-core\";\nimport { CatchBoundary } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction CatchNotFound(props) {\n const resetKey = useRouterState({\n select: (s) => `not-found-${s.location.pathname}-${s.status}`\n });\n return /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n onCatch: (error, errorInfo) => {\n if (isNotFound(error)) {\n props.onCatch?.(error, errorInfo);\n } else {\n throw error;\n }\n },\n errorComponent: ({ error }) => {\n if (isNotFound(error)) {\n return props.fallback?.(error);\n } else {\n throw error;\n }\n },\n children: props.children\n }\n );\n}\nfunction DefaultGlobalNotFound() {\n return /* @__PURE__ */ jsx(\"p\", { children: \"Not Found\" });\n}\nexport {\n CatchNotFound,\n DefaultGlobalNotFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nfunction SafeFragment(props) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n}\nexport {\n SafeFragment\n};\n//# sourceMappingURL=SafeFragment.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport warning from \"tiny-warning\";\nimport { DefaultGlobalNotFound } from \"./not-found.js\";\nfunction renderRouteNotFound(router, route, data) {\n if (!route.options.notFoundComponent) {\n if (router.options.defaultNotFoundComponent) {\n return /* @__PURE__ */ jsx(router.options.defaultNotFoundComponent, { ...data });\n }\n if (process.env.NODE_ENV === \"development\") {\n warning(\n route.options.notFoundComponent,\n `A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<p>Not Found</p>)`\n );\n }\n return /* @__PURE__ */ jsx(DefaultGlobalNotFound, {});\n }\n return /* @__PURE__ */ jsx(route.options.notFoundComponent, { ...data });\n}\nexport {\n renderRouteNotFound\n};\n//# sourceMappingURL=renderRouteNotFound.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { defaultGetScrollRestorationKey, restoreScroll, escapeHtml, storageKey } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useRouter } from \"./useRouter.js\";\nimport { ScriptOnce } from \"./ScriptOnce.js\";\nfunction ScrollRestoration() {\n const router = useRouter();\n if (!router.isScrollRestoring || !(isServer ?? router.isServer)) {\n return null;\n }\n if (typeof router.options.scrollRestoration === \"function\") {\n const shouldRestore = router.options.scrollRestoration({\n location: router.latestLocation\n });\n if (!shouldRestore) {\n return null;\n }\n }\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n const userKey = getKey(router.latestLocation);\n const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;\n const restoreScrollOptions = {\n storageKey,\n shouldScrollRestoration: true\n };\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey;\n }\n return /* @__PURE__ */ jsx(\n ScriptOnce,\n {\n children: `(${restoreScroll.toString()})(${escapeHtml(JSON.stringify(restoreScrollOptions))})`\n }\n );\n}\nexport {\n ScrollRestoration\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","import { jsxs, jsx, Fragment } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\nimport { isNotFound, rootRouteId, createControlledPromise, isRedirect, getLocationChangeInfo } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { CatchNotFound } from \"./not-found.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nimport { renderRouteNotFound } from \"./renderRouteNotFound.js\";\nimport { ScrollRestoration } from \"./scroll-restoration.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nconst Match = React.memo(function MatchImpl({\n matchId\n}) {\n const router = useRouter();\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === matchId);\n invariant(\n match,\n `Could not find match for matchId \"${matchId}\". Please file an issue!`\n );\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending\n };\n },\n structuralSharing: true\n });\n const route = router.routesById[matchState.routeId];\n const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent;\n const pendingElement = PendingComponent ? /* @__PURE__ */ jsx(PendingComponent, {}) : null;\n const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent;\n const routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch;\n const routeNotFoundComponent = route.isRoot ? (\n // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n route.options.notFoundComponent ?? router.options.notFoundRoute?.options.component\n ) : route.options.notFoundComponent;\n const resolvedNoSsr = matchState.ssr === false || matchState.ssr === \"data-only\";\n const ResolvedSuspenseBoundary = (\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route.isRoot || route.options.wrapInSuspense || resolvedNoSsr) && (route.options.wrapInSuspense ?? PendingComponent ?? (route.options.errorComponent?.preload || resolvedNoSsr)) ? React.Suspense : SafeFragment\n );\n const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment;\n const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment;\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === matchId);\n return s.matches[index - 1]?.routeId;\n }\n });\n const ShellComponent = route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment;\n return /* @__PURE__ */ jsxs(ShellComponent, { children: [\n /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsx(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ jsx(\n ResolvedCatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: routeErrorComponent || ErrorComponent,\n onCatch: (error, errorInfo) => {\n if (isNotFound(error)) throw error;\n warning(false, `Error in route match: ${matchId}`);\n routeOnCatch?.(error, errorInfo);\n },\n children: /* @__PURE__ */ jsx(\n ResolvedNotFoundBoundary,\n {\n fallback: (error) => {\n if (!routeNotFoundComponent || error.routeId && error.routeId !== matchState.routeId || !error.routeId && !route.isRoot)\n throw error;\n return React.createElement(routeNotFoundComponent, error);\n },\n children: resolvedNoSsr || matchState._displayPending ? /* @__PURE__ */ jsx(ClientOnly, { fallback: pendingElement, children: /* @__PURE__ */ jsx(MatchInner, { matchId }) }) : /* @__PURE__ */ jsx(MatchInner, { matchId })\n }\n )\n }\n ) }) }),\n parentRouteId === rootRouteId && router.options.scrollRestoration ? /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(OnRendered, {}),\n /* @__PURE__ */ jsx(ScrollRestoration, {})\n ] }) : null\n ] });\n});\nfunction OnRendered() {\n const router = useRouter();\n const prevLocationRef = React.useRef(\n void 0\n );\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n suppressHydrationWarning: true,\n ref: (el) => {\n if (el && (prevLocationRef.current === void 0 || prevLocationRef.current.href !== router.latestLocation.href)) {\n router.emit({\n type: \"onRendered\",\n ...getLocationChangeInfo(router.state)\n });\n prevLocationRef.current = router.latestLocation;\n }\n }\n },\n router.latestLocation.state.__TSR_key\n );\n}\nconst MatchInner = React.memo(function MatchInnerImpl({\n matchId\n}) {\n const router = useRouter();\n const { match, key, routeId } = useRouterState({\n select: (s) => {\n const match2 = s.matches.find((d) => d.id === matchId);\n const routeId2 = match2.routeId;\n const remountFn = router.routesById[routeId2].options.remountDeps ?? router.options.defaultRemountDeps;\n const remountDeps = remountFn?.({\n routeId: routeId2,\n loaderDeps: match2.loaderDeps,\n params: match2._strictParams,\n search: match2._strictSearch\n });\n const key2 = remountDeps ? JSON.stringify(remountDeps) : void 0;\n return {\n key: key2,\n routeId: routeId2,\n match: {\n id: match2.id,\n status: match2.status,\n error: match2.error,\n invalid: match2.invalid,\n _forcePending: match2._forcePending,\n _displayPending: match2._displayPending\n }\n };\n },\n structuralSharing: true\n });\n const route = router.routesById[routeId];\n const out = React.useMemo(() => {\n const Comp = route.options.component ?? router.options.defaultComponent;\n if (Comp) {\n return /* @__PURE__ */ jsx(Comp, {}, key);\n }\n return /* @__PURE__ */ jsx(Outlet, {});\n }, [key, route.options.component, router.options.defaultComponent]);\n if (match._displayPending) {\n throw router.getMatch(match.id)?._nonReactive.displayPendingPromise;\n }\n if (match._forcePending) {\n throw router.getMatch(match.id)?._nonReactive.minPendingPromise;\n }\n if (match.status === \"pending\") {\n const pendingMinMs = route.options.pendingMinMs ?? router.options.defaultPendingMinMs;\n if (pendingMinMs) {\n const routerMatch = router.getMatch(match.id);\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n if (!(isServer ?? router.isServer)) {\n const minPendingPromise = createControlledPromise();\n routerMatch._nonReactive.minPendingPromise = minPendingPromise;\n setTimeout(() => {\n minPendingPromise.resolve();\n routerMatch._nonReactive.minPendingPromise = void 0;\n }, pendingMinMs);\n }\n }\n }\n throw router.getMatch(match.id)?._nonReactive.loadPromise;\n }\n if (match.status === \"notFound\") {\n invariant(isNotFound(match.error), \"Expected a notFound error\");\n return renderRouteNotFound(router, route, match.error);\n }\n if (match.status === \"redirected\") {\n invariant(isRedirect(match.error), \"Expected a redirect error\");\n throw router.getMatch(match.id)?._nonReactive.loadPromise;\n }\n if (match.status === \"error\") {\n if (isServer ?? router.isServer) {\n const RouteErrorComponent = (route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent;\n return /* @__PURE__ */ jsx(\n RouteErrorComponent,\n {\n error: match.error,\n reset: void 0,\n info: {\n componentStack: \"\"\n }\n }\n );\n }\n throw match.error;\n }\n return out;\n});\nconst Outlet = React.memo(function OutletImpl() {\n const router = useRouter();\n const matchId = React.useContext(matchContext);\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId)?.routeId\n });\n const route = router.routesById[routeId];\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches;\n const parentMatch = matches.find((d) => d.id === matchId);\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId}\"`\n );\n return parentMatch.globalNotFound;\n }\n });\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches;\n const index = matches.findIndex((d) => d.id === matchId);\n return matches[index + 1]?.id;\n }\n });\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n if (parentGlobalNotFound) {\n return renderRouteNotFound(router, route, void 0);\n }\n if (!childMatchId) {\n return null;\n }\n const nextMatch = /* @__PURE__ */ jsx(Match, { matchId: childMatchId });\n if (routeId === rootRouteId) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: pendingElement, children: nextMatch });\n }\n return nextMatch;\n});\nexport {\n Match,\n MatchInner,\n Outlet\n};\n//# sourceMappingURL=Match.js.map\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { rootRouteId } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Transitioner } from \"./Transitioner.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { Match } from \"./Match.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nfunction Matches() {\n const router = useRouter();\n const rootRoute = router.routesById[rootRouteId];\n const PendingComponent = rootRoute.options.pendingComponent ?? router.options.defaultPendingComponent;\n const pendingElement = PendingComponent ? /* @__PURE__ */ jsx(PendingComponent, {}) : null;\n const ResolvedSuspense = (isServer ?? router.isServer) || typeof document !== \"undefined\" && router.ssr ? SafeFragment : React.Suspense;\n const inner = /* @__PURE__ */ jsxs(ResolvedSuspense, { fallback: pendingElement, children: [\n !(isServer ?? router.isServer) && /* @__PURE__ */ jsx(Transitioner, {}),\n /* @__PURE__ */ jsx(MatchesInner, {})\n ] });\n return router.options.InnerWrap ? /* @__PURE__ */ jsx(router.options.InnerWrap, { children: inner }) : inner;\n}\nfunction MatchesInner() {\n const router = useRouter();\n const matchId = useRouterState({\n select: (s) => {\n return s.matches[0]?.id;\n }\n });\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const matchComponent = matchId ? /* @__PURE__ */ jsx(Match, { matchId }) : null;\n return /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: ErrorComponent,\n onCatch: (error) => {\n warning(\n false,\n `The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`\n );\n warning(false, error.message || error.toString());\n },\n children: matchComponent\n }\n ) });\n}\nfunction useMatchRoute() {\n const router = useRouter();\n useRouterState({\n select: (s) => [s.location.href, s.resolvedLocation?.href, s.status],\n structuralSharing: true\n });\n return React.useCallback(\n (opts) => {\n const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n return router.matchRoute(rest, {\n pending,\n caseSensitive,\n fuzzy,\n includeSearch\n });\n },\n [router]\n );\n}\nfunction MatchRoute(props) {\n const matchRoute = useMatchRoute();\n const params = matchRoute(props);\n if (typeof props.children === \"function\") {\n return props.children(params);\n }\n return params ? props.children : null;\n}\nfunction useMatches(opts) {\n return useRouterState({\n select: (state) => {\n const matches = state.matches;\n return opts?.select ? opts.select(matches) : matches;\n },\n structuralSharing: opts?.structuralSharing\n });\n}\nfunction useParentMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n 0,\n matches.findIndex((d) => d.id === contextMatchId)\n );\n return opts?.select ? opts.select(matches) : matches;\n },\n structuralSharing: opts?.structuralSharing\n });\n}\nfunction useChildMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n matches.findIndex((d) => d.id === contextMatchId) + 1\n );\n return opts?.select ? opts.select(matches) : matches;\n },\n structuralSharing: opts?.structuralSharing\n });\n}\nexport {\n MatchRoute,\n Matches,\n useChildMatches,\n useMatchRoute,\n useMatches,\n useParentMatches\n};\n//# sourceMappingURL=Matches.js.map\n","import { RouterCore } from \"@tanstack/router-core\";\nimport { createFileRoute, createLazyFileRoute } from \"./fileRoute.js\";\nconst createRouter = (options) => {\n return new Router(options);\n};\nclass Router extends RouterCore {\n constructor(options) {\n super(options);\n }\n}\nif (typeof globalThis !== \"undefined\") {\n globalThis.createFileRoute = createFileRoute;\n globalThis.createLazyFileRoute = createLazyFileRoute;\n} else if (typeof window !== \"undefined\") {\n window.createFileRoute = createFileRoute;\n window.createLazyFileRoute = createLazyFileRoute;\n}\nexport {\n Router,\n createRouter\n};\n//# sourceMappingURL=router.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Matches } from \"./Matches.js\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction RouterContextProvider({\n router,\n children,\n ...rest\n}) {\n if (Object.keys(rest).length > 0) {\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest.context\n }\n });\n }\n const routerContext = getRouterContext();\n const provider = /* @__PURE__ */ jsx(routerContext.Provider, { value: router, children });\n if (router.options.Wrap) {\n return /* @__PURE__ */ jsx(router.options.Wrap, { children: provider });\n }\n return provider;\n}\nfunction RouterProvider({ router, ...rest }) {\n return /* @__PURE__ */ jsx(RouterContextProvider, { router, ...rest, children: /* @__PURE__ */ jsx(Matches, {}) });\n}\nexport {\n RouterContextProvider,\n RouterProvider\n};\n//# sourceMappingURL=RouterProvider.js.map\n","/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\nfunction safelyAccessDocument(_document) {\n return _document || (typeof document !== 'undefined' ? document : null);\n}\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = safelyAccessDocument(_contextDocument);\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n","/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a, _b, _c;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.currentScrollToIndex = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n this._measureElement(entry.target, entry);\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n })\n );\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled, lanes }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMeasuredCacheIndexes = [];\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.currentScrollToIndex = index;\n let attempts = 0;\n const maxAttempts = 10;\n const tryScroll = (currentAlign) => {\n if (!this.targetWindow) return;\n const offsetInfo = this.getOffsetForIndex(index, currentAlign);\n if (!offsetInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n const [offset, align] = offsetInfo;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.targetWindow.requestAnimationFrame(() => {\n const verify = () => {\n if (this.currentScrollToIndex !== index) return;\n const currentOffset = this.getScrollOffset();\n const afterInfo = this.getOffsetForIndex(index, align);\n if (!afterInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n if (!approxEqual(afterInfo[0], currentOffset)) {\n scheduleRetry(align);\n }\n };\n if (this.isDynamicMode()) {\n this.targetWindow.requestAnimationFrame(verify);\n } else {\n verify();\n }\n });\n };\n const scheduleRetry = (align) => {\n if (!this.targetWindow) return;\n if (this.currentScrollToIndex !== index) return;\n attempts++;\n if (attempts < maxAttempts) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"Schedule retry\", attempts, maxAttempts);\n }\n this.targetWindow.requestAnimationFrame(() => tryScroll(align));\n } else {\n console.warn(\n `Failed to scroll to index ${index} after ${maxAttempts} attempts.`\n );\n }\n };\n tryScroll(initialAlign);\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n}) {\n const lastIndex = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(\n 0,\n lastIndex,\n getOffset,\n scrollOffset\n );\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n ...options\n}) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","jsxRuntimeModule","require$$0","Subscribable","listener","defaultTimeoutProvider","callback","delay","timeoutId","intervalId","TimeoutManager","#provider","#providerCalled","provider","timeoutManager","systemSetTimeoutZero","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","a","b","hasOwn","replaceEqualDeep","depth","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","i","aItem","bItem","v","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","keepPreviousData","previousData","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","params","addConsumeAwareSignal","object","getSignal","onCancelled","consumed","signal","FocusManager","#focused","#cleanup","#setup","onFocus","setup","focused","isFocused","focusManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","fn","notifyManager","OnlineManager","#online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","isRetryCancelled","continueFn","isResolved","cancel","cancelOptions","error","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","#gcTimeout","newGcTime","Query","#initialState","#revertState","#cache","#client","#retryer","#defaultOptions","#abortSignalConsumed","getDefaultState","defaultState","successState","newData","#dispatch","state","setStateOptions","promise","observer","x","abortController","addSignalProperty","fetchFn","queryFn","queryFnContext","queryFnContext2","context","context2","action","reducer","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","QueryObserver","client","#selectError","#currentThenable","#currentQuery","#currentQueryInitialState","#currentResult","#currentResultState","#currentResultOptions","#selectFn","#selectResult","#lastQueryWithDefinedData","#staleTimeoutId","#refetchIntervalId","#currentRefetchInterval","#trackedProps","shouldFetchOnMount","#executeFetch","#updateTimers","shouldFetchOn","#clearStaleTimeout","#clearRefetchInterval","prevOptions","prevQuery","#updateQuery","mounted","shouldFetchOptionally","#updateStaleTimeout","nextRefetchInterval","#computeRefetchInterval","#updateRefetchInterval","shouldAssignObserverCurrentProperties","onPropTracked","target","defaultedOptions","nextInterval","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","skipSelect","placeholderData","selectError","isFetching","isPending","isError","isLoading","nextResult","isStale","hasResultData","isErrorWithoutData","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","#notify","notifyOptions","shouldLoadOnMount","field","optimisticResult","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","currentPage","cancelled","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","hasNextPage","hasPreviousPage","InfiniteQueryObserver","parentResult","isRefetching","isRefetchError","fetchDirection","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","Mutation","#observers","#mutationCache","variables","onContinue","mutationFnContext","restored","isPaused","e","MutationCache","#mutations","#scopes","#mutationId","scope","scopeFor","scopedMutations","index","firstPendingMutation","m","defaultedFilters","event","pausedMutations","MutationObserver","#currentMutation","#mutateOptions","#updateResult","onMutateResult","difference","array1","array2","excludeSet","replaceAt","QueriesObserver","#result","#queries","#options","#combinedResult","#lastCombine","#lastResult","#lastQueryHashes","#observerMatches","queries","#onUpdate","prevObservers","newObserverMatches","#findMatchingObservers","match","newObservers","newResult","hasLengthChange","hasIndexChange","hasStructuralChange","hasResultChange","prev","combine","matches","queryHashes","r","#combineResult","#trackResult","observerResult","accessedProp","lastHashes","queryHashesChanged","hash","prevObserversMap","previousObservers","observers","previousResult","newTracked","QueryCache","queryHash","queryInMap","QueryClient","#queryCache","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","cachedData","queryCache","defaultedCancelOptions","promises","defaults","queryDefault","QueryClientContext","React.createContext","useQueryClient","queryClient","React.useContext","QueryClientProvider","children","React.useEffect","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","suspense","defaultThrowOnError","_error","ensureSuspenseTimers","clamp","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useQueries","defaultedQueries","React.useMemo","opts","queryOptions","React.useState","getCombinedResult","trackResult","shouldSubscribe","React.useSyncExternalStore","React.useCallback","onStoreChange","suspensePromises","queryObserver","firstSingleResultWhichShouldThrow","useBaseQuery","Observer","isNewCacheEntry","unsubscribe","useQuery","useSuspenseQuery","useSuspenseInfiniteQuery","useSuspenseQueries","infiniteQueryOptions","useMutation","mutate","mutateOptions","__storeToDerived","__derivedToStore","__depsThatHaveWrittenThisTick","__isFlushing","__batchDepth","__pendingUpdates","__initialBatchValues","__flush_internals","relatedVals","derived","stores","store","relatedLinkedDerivedVals","__notifyListeners","__notifyDerivedListeners","__flush","store2","prevState","derivedVals","batch","pendingUpdateToFlush","isUpdaterFunction","Store","initialState","_a","_b","unsub","_c","stateIndexKey","popStateEvent","beforeUnloadEvent","createHistory","location","subscribers","notify","subscriber","handleIndexChange","tryNavigation","task","navigateOpts","actionInfo","blockers","isPushOrReplace","blocker","nextLocation","parseHref","cb","path","currentIndex","assignKeyAndIndex","str","blockers2","createRandomKey","createBrowserHistory","win","originalPushState","originalReplaceState","_getBlockers","_setBlockers","newBlockers","createHref","parseLocation","addedKey","currentLocation","rollbackLocation","nextPopIsGo","ignoreNextPop","skipBlockerNextPop","ignoreNextBeforeUnload","getLocation","next","scheduled","history","queueHistoryAction","destHref","href","onPushPop","onPushPopEvent","delta","isForward","isBack","isGo","onBeforeUnload","shouldBlock","shouldHaveBeforeUnload","ignoreBlocker","n","res","sanitizePath","sanitized","sanitizedHref","hashIndex","searchIndex","batch$1","last","arr","isFunction","d","isEnumerable","_next","_depth","prevItems","getEnumerableOwnKeys","nextItems","prevSize","nextSize","p","names","name","symbols","keys","symbol","deepEqual","l","ignoreUndefined","k","aCount","bCount","createControlledPromise","onResolve","resolveLoadPromise","rejectLoadPromise","controlledPromise","isModuleNotFoundError","isPromise","sanitizePathSegment","segment","decodeSegment","decoded","SAFE_URL_PROTOCOLS","isDangerousProtocol","url","parsed","decodePath","decodeIgnore","re","cursor","encodeNonAscii","prefix","invariant","condition","message","createLRUCache","cache","oldest","newest","touch","entry","toDelete","existing","SEGMENT_TYPE_PATHNAME","SEGMENT_TYPE_PARAM","SEGMENT_TYPE_WILDCARD","SEGMENT_TYPE_OPTIONAL_PARAM","SEGMENT_TYPE_INDEX","SEGMENT_TYPE_PATHLESS","getOpenAndCloseBraces","part","openBrace","closeBrace","parseSegment","start","output","end","total","braces","firstChar","paramStart","paramEnd","dollarPos","afterDollar","parseSegments","defaultCaseSensitive","route","node","onRoute","length","caseSensitive","skipOnParamError","nextNode","start2","existingNode","createStaticNode","prefix_raw","suffix_raw","actuallyCaseSensitive","suffix","s","createDynamicNode","pathlessNode","isLeaf","indexNode","child","sortDynamic","sortTreeNodes","fullPath","kind","processRouteMasks","routeList","processedTree","segmentTree","findFlatMatch","cached","findMatch","findSingleMatch","from","fuzzy","tree","findRouteMatch","err","buildRouteBranch","trimPathRight","processRouteTree","routeTree","initRoute","routesById","routesByPath","trimmedFullPath","parts","leaf","getNodeMatch","rawParams","extractParams","list","buildBranch","nodeParts","partIndex","nodeIndex","pathIndex","segmentCount","currentPathIndex","nodePart","preLength","sufLength","splat","trailingSlash","pathIsIndex","partsLength","stack","wildcardMatch","bestFuzzy","bestMatch","frame","skipped","statics","dynamics","optionals","extract","parsedParams","validateMatchParams","isFrameMoreSpecific","isBeyondPath","lowerPart","indexFrame","indexValid","frame2","nextSkipped","nextDepth","casePart","sliceIndex","joinPaths","paths","cleanPath","trimPathLeft","len","trimPath","removeTrailingSlash","basepath","exactPathTest","pathName1","pathName2","resolvePath","base","to","isAbsolute","isBase","baseSegments","toSegments","joined","compileDecodeCharMap","pathParamsAllowedCharacters","charMap","char","pattern","regex","encoded","encodeParam","decoder","encodePathParam","interpolatePath","server","isMissingParams","usedParams","valueRaw","notFound","isNotFound","obj","getSafeSessionStorage","storageKey","throttle","wait","createScrollRestorationCache","safeSessionStorage","persistedState","scrollRestorationCache","defaultGetScrollRestorationKey","getCssSelector","el","parent","ignoreScroll","restoreScroll","storageKey2","behavior","shouldScrollRestoration","scrollToTopSelectors","byKey","resolvedKey","elementEntries","scroll","elementSelector","element","hashScrollIntoViewOptions","scrollOptions","selector","setupScrollRestoration","router","force","getKey","onScroll","attrId","restoreKey","keyEntry","elementEntry","cacheKey","handleHashScroll","encode","stringify","toValue","decode","searchParams","previousValue","defaultParseSearch","parseSearchWith","defaultStringifySearch","stringifySearchWith","parser","searchStr","hasParser","stringifyValue","search","rootRouteId","redirect","headers","response","isRedirect","triggerOnReady","inner","resolvePreload","matchId","buildMatchContext","includeCurrentMatch","innerMatch","_handleNotFound","routeCursor","matchForRoute","handleRedirectAndNotFound","shouldSkipLoader","handleSerialError","routerCode","routeId","errorHandlerErr","setupPendingTimeout","pendingMs","routeNeedsPreload","pendingTimeout","preBeforeLoadSetup","existingMatch","then","executeBeforeLoad","prevLoadPromise","paramsError","searchError","cause","preload","beforeLoadFnContext","updateContext","beforeLoadContext2","beforeLoadContext","handleBeforeLoad","serverSsr","queueExecution","execute","executeHead","assetContext","headFnContent","scripts","meta","links","headScripts","styles","getLoaderContext","parentMatchPromise","loaderDeps","runLoader","loadRouteChunk","loaderResult","loaderResultIsPromise","loaderData","pendingPromise","onErrorError","loadRouteMatch","loaderShouldRunAsync","loaderIsRunningAsync","prevMatch","match2","age","staleAge","shouldReloadOption","shouldReload","nextPreload","invalid","match3","nextIsFetching","loadMatches","arg","beforeLoad","failures","firstNotFound","headResult","head","readyPromise","lazyRoute","_id","loadComponents","preloads","componentTypes","componentType","composeRewrites","rewrites","rewrite","executeRewriteInput","executeRewriteOutput","rewriteBasepath","trimmedBasepath","normalizedBasepath","normalizedBasepathWithSlash","checkBasepath","checkBasepathWithSlash","pathname","defaultSerializeError","getLocationChangeInfo","routerState","fromLocation","toLocation","pathChanged","hrefChanged","hashChanged","RouterCore","newOptions","prevBasepath","basepathWasUnset","prevRewriteOption","processRouteTreeResult","getInitialRouterState","needsLocationUpdate","nextBasepath","nextRewriteOption","trimmed","eventType","routerEvent","locationToParse","previousLocation","parse","fullUrl","parsedSearch","__tempLocation","__tempKey","parsedTempLocation","pathnameOrNext","locationSearchOrOpts","getMatchedRoutes","id","currentPendingMatches","currentLoadingMatches","build","dest","lightweightResult","defaultedFromPath","fromPath","fromSearch","fromParams","nextTo","nextParams","interpolatedNextTo","destMatchResult","destRoutes","changedParams","nextPathname","nextSearch","validatedSearch","validateSearch","applySearchMiddleware","hashStr","nextState","publicHref","external","rewrittenUrl","buildWithMatches","maskedDest","maskedNext","_from","maskParams","maskProps","viewTransition","isSameState","ignoredProps","prop","isEqual","isSameUrl","previousCommitPromise","maskedLocation","hashScrollIntoView","nextHistory","replace","resetScroll","rest","hrefUrl","commitPromise","reloadDocument","hrefIsUrl","reloadHref","pendingMatches","redirect2","loadPromise","prevLocation","exitingMatches","enteringMatches","stayingMatches","previousMatches","newMatches","hook","newStatusCode","shouldViewTransition","startViewTransitionParams","resolvedViewTransitionTypes","matchesKey","findFn","invalidate","locationHeader","filter","gcTime","activeMatchIds","loadedMatchIds","matchLocation","baseLocation","notFoundRoute","matchedRoutesResult","foundRoute","routeParams","matchedRoutes","isGlobalNotFound","globalNotFoundRouteId","findGlobalNotFoundRouteId","getParentContext","parentMatch","preMatchSearch","strictMatchSearch","parentSearch","parentStrictSearch","strictSearch","searchParamError","SearchParamError","loaderDepsHash","interpolatedPath","previousMatch","strictParams","extractStrictParams","PathParamError","parentContext","contextFnContext","opts2","lastRoute","accumulatedSearch","lastStateMatch","canReuseParams","validateSearch2","trimmedPath","_includeValidateSearch","buildMiddlewareChain","legacyMiddleware","next2","validate","final","applyNext","currentSearch","middlewares","middleware","newSearch","notFoundMode","routes","referenceParams","accumulatedParams","parseParams","TSR_DEFERRED_PROMISE","defer","_promise","preloadWarning","BaseRoute","options2","isRoot","customId","lazyFn","BaseRouteApi","BaseRootRoute","REACT_USE","reactUse","React","useLayoutEffect","React.useLayoutEffect","usePrevious","ref","React.useRef","current","useIntersectionObserver","intersectionObserverOptions","useForwardedRef","innerRef","React.useImperativeHandle","useAwaited","Await","props","AwaitInner","React.Suspense","CatchBoundary","errorComponent","ErrorComponent","CatchBoundaryImpl","reset","React.createElement","React.Component","prevProps","errorInfo","show","setShow","jsxs","ClientOnly","fallback","useHydrated","React__default","subscribe","is","y","objectIs","useState","useEffect","useDebugValue","useSyncExternalStore$2","getSnapshot","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","shimModule","require$$1","useSyncExternalStore","useRef","useMemo","withSelector_production","getServerSnapshot","instRef","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","withSelectorModule","useStore","equal","shallow","useSyncExternalStoreWithSelector","objA","objB","keysA","getOwnKeys","routerContext","getRouterContext","useRouter","useRouterState","contextRouter","newSlice","matchContext","dummyMatchContext","useMatch","nearestMatchId","useLoaderData","useLoaderDeps","select","useParams","useSearch","useNavigate","_defaultOpts","Navigate","navigate","previousPropsRef","useLinkProps","forwardedRef","activeProps","inactiveProps","activeOptions","userPreload","userPreloadDelay","startTransition","disabled","style","className","onClick","onMouseEnter","onMouseLeave","onTouchStart","_params","_search","_hash","_state","_mask","_reloadDocument","_unsafeRelative","_fromLocation","propsSafeToSpread","isHydrated","_options","hrefOptionPublicHref","hrefOptionExternal","hrefOption","getHrefOption","externalLink","isSafeInternal","currentPathSplit","nextPathSplit","resolvedActiveProps","STATIC_ACTIVE_OBJECT","STATIC_EMPTY_OBJECT","resolvedInactiveProps","resolvedClassName","resolvedStyle","isTransitioning","setIsTransitioning","hasRenderFetched","preloadDelay","doPreload","preloadViewportIoCallback","handleClick","elementTarget","effectiveTarget","isCtrlEvent","flushSync","handleFocus","handleTouchStart","handleEnter","eventTarget","timeoutMap","handleLeave","composeHandlers","STATIC_DISABLED_PROPS","STATIC_ACTIVE_PROPS","STATIC_TRANSITIONING_PROPS","handlers","handler","zero","createLink","Comp","React.forwardRef","Link","_asChild","_type","linkProps","rest2","getRouteApi","RouteApi","Route","createRoute","createRootRouteWithContext","createRootRoute","RootRoute","createFileRoute","FileRoute","_opts","LazyRoute","createLazyFileRoute","lazyRouteComponent","importer","exportName","comp","reload","load","lazyComp","Transitioner","mountLoadForRouter","hasPendingMatches","previousIsLoading","isAnyPending","previousIsAnyPending","isPagePending","previousIsPagePending","React.startTransition","changeInfo","CatchNotFound","resetKey","DefaultGlobalNotFound","SafeFragment","Fragment","renderRouteNotFound","ScrollRestoration","Match","React.memo","matchState","PendingComponent","pendingElement","routeErrorComponent","routeOnCatch","routeNotFoundComponent","resolvedNoSsr","ResolvedSuspenseBoundary","ResolvedCatchBoundary","ResolvedNotFoundBoundary","parentRouteId","ShellComponent","MatchInner","OnRendered","prevLocationRef","routeId2","remountDeps","out","Outlet","pendingMinMs","routerMatch","minPendingPromise","parentGlobalNotFound","childMatchId","nextMatch","Matches","ResolvedSuspense","MatchesInner","matchComponent","createRouter","Router","RouterContextProvider","RouterProvider","createColumnHelper","accessor","column","makeStateUpdater","instance","old","isNumberArray","flattenBy","getChildren","flat","recurse","subArr","memo","getDeps","deps","depArgs","depTime","newDeps","dep","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","num","getMemoOptions","tableOptions","debugLevel","onChange","_tableOptions$debugAl","createCell","table","row","columnId","getRenderValue","_cell$getValue","cell","feature","createColumn","columnDef","_ref","_resolvedColumnDef$id","resolvedColumnDef","accessorKey","accessorFn","originalRow","_result","_column$columns","orderColumns","_column$columns2","leafColumns","debug","createHeader","_options$id","header","leafHeaders","recurseHeader","h","Headers","allColumns","left","right","_left$map$filter","_right$map$filter","leftColumns","rightColumns","centerColumns","buildHeaderGroups","_left$map$filter2","orderedLeafColumns","_right$map$filter2","headerGroups","headerGroup","flatHeaders","_header$subHeaders","_header$subHeaders2","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","createHeaderGroup","headersToGroup","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","isPlaceholder","bottomHeaders","recurseHeadersForSpans","colSpan","rowSpan","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","createRow","original","rowIndex","subRows","parentId","_row$getValue","parentRows","currentRow","parentRow","allCells","acc","ColumnFaceting","includesString","filterValue","_filterValue$toString","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","rowValue","unsafeMin","unsafeMax","parsedMin","parsedMax","temp","filterFns","ColumnFiltering","firstRow","_table$options$filter","_table$options$filter2","_column$columnDef$ena","_table$options$enable","_table$options$enable2","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","filterFn","previousFilter","newFilter","shouldAutoRemoveFilter","_old$filter","newFilterObj","_old$map","_table","updateFn","_functionalUpdate","_table$initialState$c","_table$initialState","sum","_leafRows","childRows","extent","mean","leafRows","count","median","values","mid","nums","unique","uniqueCount","_columnId","aggregationFns","ColumnGrouping","_toString","_props$getValue","_table$getState$group","_table$getState$group2","canGroup","_table$options$aggreg","_table$options$aggreg2","_table$initialState$g","_row$subRows","grouping","groupedColumnMode","nonGroupingColumns","col","g","ColumnOrdering","position","_getVisibleLeafColumns","_columns$","_columns","columnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","foundIndex","getDefaultColumnPinningState","ColumnPinning","columnIds","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","_d$columnDef$enablePi","leafColumnIds","isLeft","isRight","leftAndRight","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","safelyAccessDocument","_document","defaultColumnSizing","getDefaultColumnSizingInfoState","ColumnSizing","_column$columnDef$min","_column$columnDef$max","columnSize","_ref2","_header$column$getSiz","prevSiblingHeader","_contextDocument","canResize","isTouchStartEvent","startSize","columnSizingStart","clientX","newColumnSizing","updateOffset","clientXPos","_old$startOffset","_old$startSize","deltaDirection","deltaOffset","deltaPercentage","_ref3","headerSize","onMove","onEnd","contextDocument","mouseEvents","touchEvents","_e$touches$","passiveIfSupported","passiveEventSupported","_table$initialState$c2","_table$getHeaderGroup","_table$getHeaderGroup2","_table$getLeftHeaderG","_table$getLeftHeaderG2","_table$getCenterHeade","_table$getCenterHeade2","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","ColumnVisibility","childColumns","c","cells","makeVisibleColumnsMethod","getColumns","_value","_target","GlobalFaceting","GlobalFiltering","_table$getCoreRowMode","_table$options$getCol","globalFilterFn","RowExpanding","registered","queued","_table$options$autoRe","expanded","_table$initialState$e","splitId","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","_table$options$getRow","isFullyExpanded","canExpand","defaultPageIndex","defaultPageSize","getDefaultPaginationState","RowPagination","safeUpdater","_table$initialState$p","pageIndex","maxPageIndex","_table$initialState$p2","_table$initialState$p3","_table$initialState2","pageSize","topRowIndex","_table$options$pageCo","newPageCount","pageCount","pageOptions","_table$options$pageCo2","_table$options$rowCou","getDefaultRowPinningState","RowPinning","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","enableRowPinning","enablePinning","top","bottom","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","_ref5","_table$initialState$r","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","allRows","topPinnedRowIds","bottomPinnedRowIds","topAndBottom","RowSelection","rowSelection","preGroupedFlatRows","resolvedValue","mutateRowIsSelected","rowModel","selectRowsFn","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","_table$getState$rowSe","totalSelected","isSelected","_opts$selectChildren","selectedRowIds","isRowSelected","isSubRowSelected","_table$options$enable3","canSelect","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","rows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","alphanumeric","rowA","rowB","compareAlphanumeric","toString","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","basic","aStr","bStr","aa","bb","an","bn","combo","sortingFns","RowSorting","firstRows","isString","_table$options$sortin","_table$options$sortin2","desc","multi","nextSortingOrder","hasManualValue","existingSorting","existingIndex","newSorting","sortAction","nextDesc","_table$options$maxMul","_column$columnDef$sor","firstSortDirection","isSorted","_column$columnDef$ena2","_table$getState$sorti","columnSort","_table$getState$sorti2","_table$getState$sorti3","canSort","_table$initialState$s","builtInFeatures","createTable","_options$_features","_options$initialState","_features","defaultOptions","mergeOptions","_feature$getInitialSt","queuedTimeout","coreInstance","searchAll","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","columnDefs","recurseColumns","groupingColumnDef","flatColumns","getCoreRowModel","accessRows","originalRows","_row$originalSubRows","expandRows","expandedRows","handleRow","getPaginationRowModel","pagination","flatRows","rowsById","pageStart","pageEnd","paginatedRowModel","getSortedRowModel","sorting","sortingState","sortedFlatRows","availableSorting","sort","_table$getColumn","columnInfoById","sortEntry","sortData","sortedData","_sortEntry$desc","columnInfo","sortUndefined","isDesc","sortInt","aValue","bValue","aUndefined","bUndefined","flexRender","isReactComponent","component","isClassComponent","isExoticComponent","proto","useReactTable","resolvedOptions","tableRef","setState","isInitial","memoizedFunction","notUndefined","msg","approxEqual","debounce","targetWindow","ms","getRect","offsetWidth","offsetHeight","defaultKeyExtractor","defaultRangeExtractor","range","observeElementRect","rect","width","height","entries","box","addEventListenerOptions","supportsScrollend","observeElementOffset","offset","createHandler","isScrolling","horizontal","isRtl","endHandler","registerScrollendEvent","measureElement","elementScroll","adjustments","toOffset","Virtualizer","_ro","get","sync","scrollElement","measurements","furthestMeasurementsFound","furthestMeasurements","measurement","previousFurthestMeasurement","paddingStart","scrollMargin","getItemKey","lanes","itemSizeCache","laneLastIndex","cachedLane","lane","prevIndex","prevInLane","furthestMeasurement","measuredSize","size","outerSize","scrollOffset","calculateRange","startIndex","endIndex","rangeExtractor","overscan","attributeName","indexStr","prevNode","itemSize","indexes","virtualItems","findNearestBinarySearch","doc","align","maxOffset","initialAlign","attempts","maxAttempts","tryScroll","currentAlign","offsetInfo","verify","currentOffset","afterInfo","scheduleRetry","endByLane","low","high","getCurrentValue","middle","currentValue","getOffset","endPerLane","pos","startPerLane","useIsomorphicLayoutEffect","useVirtualizerBase","useFlushSync","rerender","React.useReducer","instance2","useVirtualizer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94]}
|
|
1
|
+
{"version":3,"file":"vendor-tanstack-CWDKYA_B.js","sources":["../../node_modules/react/cjs/react-jsx-runtime.production.js","../../node_modules/react/jsx-runtime.js","../../node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/@tanstack/query-core/build/modern/timeoutManager.js","../../node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/@tanstack/query-core/build/modern/thenable.js","../../node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/@tanstack/query-core/build/modern/queriesObserver.js","../../node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../../node_modules/@tanstack/react-query/build/modern/IsRestoringProvider.js","../../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../../node_modules/@tanstack/react-query/build/modern/suspense.js","../../node_modules/@tanstack/react-query/build/modern/useQueries.js","../../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../../node_modules/@tanstack/react-query/build/modern/useQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseInfiniteQuery.js","../../node_modules/@tanstack/react-query/build/modern/useSuspenseQueries.js","../../node_modules/@tanstack/react-query/build/modern/queryOptions.js","../../node_modules/@tanstack/react-query/build/modern/infiniteQueryOptions.js","../../node_modules/@tanstack/react-query/build/modern/useMutation.js","../../node_modules/@tanstack/store/dist/esm/scheduler.js","../../node_modules/@tanstack/store/dist/esm/types.js","../../node_modules/@tanstack/store/dist/esm/store.js","../../node_modules/@tanstack/history/dist/esm/index.js","../../node_modules/@tanstack/router-core/dist/esm/isServer/client.js","../../node_modules/@tanstack/router-core/dist/esm/utils/batch.js","../../node_modules/@tanstack/router-core/dist/esm/utils.js","../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../node_modules/@tanstack/router-core/dist/esm/lru-cache.js","../../node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js","../../node_modules/@tanstack/router-core/dist/esm/path.js","../../node_modules/@tanstack/router-core/dist/esm/not-found.js","../../node_modules/@tanstack/router-core/dist/esm/scroll-restoration.js","../../node_modules/@tanstack/router-core/dist/esm/qss.js","../../node_modules/@tanstack/router-core/dist/esm/searchParams.js","../../node_modules/@tanstack/router-core/dist/esm/root.js","../../node_modules/@tanstack/router-core/dist/esm/redirect.js","../../node_modules/@tanstack/router-core/dist/esm/load-matches.js","../../node_modules/@tanstack/router-core/dist/esm/rewrite.js","../../node_modules/@tanstack/router-core/dist/esm/router.js","../../node_modules/@tanstack/router-core/dist/esm/defer.js","../../node_modules/@tanstack/router-core/dist/esm/link.js","../../node_modules/@tanstack/router-core/dist/esm/route.js","../../node_modules/@tanstack/react-router/dist/esm/utils.js","../../node_modules/@tanstack/react-router/dist/esm/awaited.js","../../node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js","../../node_modules/@tanstack/react-router/dist/esm/ClientOnly.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../node_modules/use-sync-external-store/shim/with-selector.js","../../node_modules/@tanstack/react-store/dist/esm/index.js","../../node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../node_modules/@tanstack/react-router/dist/esm/matchContext.js","../../node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../node_modules/@tanstack/react-router/dist/esm/useParams.js","../../node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../node_modules/@tanstack/react-router/dist/esm/useNavigate.js","../../node_modules/@tanstack/react-router/dist/esm/link.js","../../node_modules/@tanstack/react-router/dist/esm/route.js","../../node_modules/@tanstack/react-router/dist/esm/fileRoute.js","../../node_modules/@tanstack/react-router/dist/esm/lazyRouteComponent.js","../../node_modules/@tanstack/react-router/dist/esm/Transitioner.js","../../node_modules/@tanstack/react-router/dist/esm/not-found.js","../../node_modules/@tanstack/react-router/dist/esm/SafeFragment.js","../../node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js","../../node_modules/@tanstack/react-router/dist/esm/scroll-restoration.js","../../node_modules/@tanstack/react-router/dist/esm/Match.js","../../node_modules/@tanstack/react-router/dist/esm/Matches.js","../../node_modules/@tanstack/react-router/dist/esm/router.js","../../node_modules/@tanstack/react-router/dist/esm/RouterProvider.js","../../node_modules/@tanstack/table-core/build/lib/index.mjs","../../node_modules/@tanstack/react-table/build/lib/index.mjs","../../node_modules/@tanstack/virtual-core/dist/esm/utils.js","../../node_modules/@tanstack/virtual-core/dist/esm/index.js","../../node_modules/@tanstack/react-virtual/dist/esm/index.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// src/subscribable.ts\nvar Subscribable = class {\n constructor() {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n subscribe(listener) {\n this.listeners.add(listener);\n this.onSubscribe();\n return () => {\n this.listeners.delete(listener);\n this.onUnsubscribe();\n };\n }\n hasListeners() {\n return this.listeners.size > 0;\n }\n onSubscribe() {\n }\n onUnsubscribe() {\n }\n};\nexport {\n Subscribable\n};\n//# sourceMappingURL=subscribable.js.map","// src/timeoutManager.ts\nvar defaultTimeoutProvider = {\n // We need the wrapper function syntax below instead of direct references to\n // global setTimeout etc.\n //\n // BAD: `setTimeout: setTimeout`\n // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`\n //\n // If we use direct references here, then anything that wants to spy on or\n // replace the global setTimeout (like tests) won't work since we'll already\n // have a hard reference to the original implementation at the time when this\n // file was imported.\n setTimeout: (callback, delay) => setTimeout(callback, delay),\n clearTimeout: (timeoutId) => clearTimeout(timeoutId),\n setInterval: (callback, delay) => setInterval(callback, delay),\n clearInterval: (intervalId) => clearInterval(intervalId)\n};\nvar TimeoutManager = class {\n // We cannot have TimeoutManager<T> as we must instantiate it with a concrete\n // type at app boot; and if we leave that type, then any new timer provider\n // would need to support ReturnType<typeof setTimeout>, which is infeasible.\n //\n // We settle for type safety for the TimeoutProvider type, and accept that\n // this class is unsafe internally to allow for extension.\n #provider = defaultTimeoutProvider;\n #providerCalled = false;\n setTimeoutProvider(provider) {\n if (process.env.NODE_ENV !== \"production\") {\n if (this.#providerCalled && provider !== this.#provider) {\n console.error(\n `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,\n { previous: this.#provider, provider }\n );\n }\n }\n this.#provider = provider;\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = false;\n }\n }\n setTimeout(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setTimeout(callback, delay);\n }\n clearTimeout(timeoutId) {\n this.#provider.clearTimeout(timeoutId);\n }\n setInterval(callback, delay) {\n if (process.env.NODE_ENV !== \"production\") {\n this.#providerCalled = true;\n }\n return this.#provider.setInterval(callback, delay);\n }\n clearInterval(intervalId) {\n this.#provider.clearInterval(intervalId);\n }\n};\nvar timeoutManager = new TimeoutManager();\nfunction systemSetTimeoutZero(callback) {\n setTimeout(callback, 0);\n}\nexport {\n TimeoutManager,\n defaultTimeoutProvider,\n systemSetTimeoutZero,\n timeoutManager\n};\n//# sourceMappingURL=timeoutManager.js.map","// src/utils.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar isServer = typeof window === \"undefined\" || \"Deno\" in globalThis;\nfunction noop() {\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === \"function\" ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === \"number\" && value >= 0 && value !== Infinity;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction resolveStaleTime(staleTime, query) {\n return typeof staleTime === \"function\" ? staleTime(query) : staleTime;\n}\nfunction resolveEnabled(enabled, query) {\n return typeof enabled === \"function\" ? enabled(query) : enabled;\n}\nfunction matchQuery(filters, query) {\n const {\n type = \"all\",\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n if (queryKey) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n if (type !== \"all\") {\n const isActive = query.isActive();\n if (type === \"active\" && !isActive) {\n return false;\n }\n if (type === \"inactive\" && isActive) {\n return false;\n }\n }\n if (typeof stale === \"boolean\" && query.isStale() !== stale) {\n return false;\n }\n if (fetchStatus && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n if (predicate && !predicate(query)) {\n return false;\n }\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const { exact, status, predicate, mutationKey } = filters;\n if (mutationKey) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n if (exact) {\n if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n if (status && mutation.state.status !== status) {\n return false;\n }\n if (predicate && !predicate(mutation)) {\n return false;\n }\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = options?.queryKeyHashFn || hashKey;\n return hashFn(queryKey);\n}\nfunction hashKey(queryKey) {\n return JSON.stringify(\n queryKey,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val\n );\n}\nfunction partialMatchKey(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (a && b && typeof a === \"object\" && typeof b === \"object\") {\n return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));\n }\n return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(a, b, depth = 0) {\n if (a === b) {\n return a;\n }\n if (depth > 500) return b;\n const array = isPlainArray(a) && isPlainArray(b);\n if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;\n const aItems = array ? a : Object.keys(a);\n const aSize = aItems.length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? new Array(bSize) : {};\n let equalItems = 0;\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n const aItem = a[key];\n const bItem = b[key];\n if (aItem === bItem) {\n copy[key] = aItem;\n if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;\n continue;\n }\n if (aItem === null || bItem === null || typeof aItem !== \"object\" || typeof bItem !== \"object\") {\n copy[key] = bItem;\n continue;\n }\n const v = replaceEqualDeep(aItem, bItem, depth + 1);\n copy[key] = v;\n if (v === aItem) equalItems++;\n }\n return aSize === bSize && equalItems === aSize ? a : copy;\n}\nfunction shallowEqualObjects(a, b) {\n if (!b || Object.keys(a).length !== Object.keys(b).length) {\n return false;\n }\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (ctor === void 0) {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n if (Object.getPrototypeOf(o) !== Object.prototype) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction sleep(timeout) {\n return new Promise((resolve) => {\n timeoutManager.setTimeout(resolve, timeout);\n });\n}\nfunction replaceData(prevData, data, options) {\n if (typeof options.structuralSharing === \"function\") {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n if (process.env.NODE_ENV !== \"production\") {\n try {\n return replaceEqualDeep(prevData, data);\n } catch (error) {\n console.error(\n `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`\n );\n throw error;\n }\n }\n return replaceEqualDeep(prevData, data);\n }\n return data;\n}\nfunction keepPreviousData(previousData) {\n return previousData;\n}\nfunction addToEnd(items, item, max = 0) {\n const newItems = [...items, item];\n return max && newItems.length > max ? newItems.slice(1) : newItems;\n}\nfunction addToStart(items, item, max = 0) {\n const newItems = [item, ...items];\n return max && newItems.length > max ? newItems.slice(0, -1) : newItems;\n}\nvar skipToken = /* @__PURE__ */ Symbol();\nfunction ensureQueryFn(options, fetchOptions) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\n `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`\n );\n }\n }\n if (!options.queryFn && fetchOptions?.initialPromise) {\n return () => fetchOptions.initialPromise;\n }\n if (!options.queryFn || options.queryFn === skipToken) {\n return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));\n }\n return options.queryFn;\n}\nfunction shouldThrowError(throwOnError, params) {\n if (typeof throwOnError === \"function\") {\n return throwOnError(...params);\n }\n return !!throwOnError;\n}\nfunction addConsumeAwareSignal(object, getSignal, onCancelled) {\n let consumed = false;\n let signal;\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n signal ??= getSignal();\n if (consumed) {\n return signal;\n }\n consumed = true;\n if (signal.aborted) {\n onCancelled();\n } else {\n signal.addEventListener(\"abort\", onCancelled, { once: true });\n }\n return signal;\n }\n });\n return object;\n}\nexport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn,\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n isPlainArray,\n isPlainObject,\n isServer,\n isValidTimeout,\n keepPreviousData,\n matchMutation,\n matchQuery,\n noop,\n partialMatchKey,\n replaceData,\n replaceEqualDeep,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n shouldThrowError,\n skipToken,\n sleep,\n timeUntilStale\n};\n//# sourceMappingURL=utils.js.map","// src/focusManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar FocusManager = class extends Subscribable {\n #focused;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onFocus) => {\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus();\n window.addEventListener(\"visibilitychange\", listener, false);\n return () => {\n window.removeEventListener(\"visibilitychange\", listener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup((focused) => {\n if (typeof focused === \"boolean\") {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n setFocused(focused) {\n const changed = this.#focused !== focused;\n if (changed) {\n this.#focused = focused;\n this.onFocus();\n }\n }\n onFocus() {\n const isFocused = this.isFocused();\n this.listeners.forEach((listener) => {\n listener(isFocused);\n });\n }\n isFocused() {\n if (typeof this.#focused === \"boolean\") {\n return this.#focused;\n }\n return globalThis.document?.visibilityState !== \"hidden\";\n }\n};\nvar focusManager = new FocusManager();\nexport {\n FocusManager,\n focusManager\n};\n//# sourceMappingURL=focusManager.js.map","// src/thenable.ts\nimport { noop } from \"./utils.js\";\nfunction pendingThenable() {\n let resolve;\n let reject;\n const thenable = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n thenable.status = \"pending\";\n thenable.catch(() => {\n });\n function finalize(data) {\n Object.assign(thenable, data);\n delete thenable.resolve;\n delete thenable.reject;\n }\n thenable.resolve = (value) => {\n finalize({\n status: \"fulfilled\",\n value\n });\n resolve(value);\n };\n thenable.reject = (reason) => {\n finalize({\n status: \"rejected\",\n reason\n });\n reject(reason);\n };\n return thenable;\n}\nfunction tryResolveSync(promise) {\n let data;\n promise.then((result) => {\n data = result;\n return result;\n }, noop)?.catch(noop);\n if (data !== void 0) {\n return { data };\n }\n return void 0;\n}\nexport {\n pendingThenable,\n tryResolveSync\n};\n//# sourceMappingURL=thenable.js.map","// src/notifyManager.ts\nimport { systemSetTimeoutZero } from \"./timeoutManager.js\";\nvar defaultScheduler = systemSetTimeoutZero;\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n let notifyFn = (callback) => {\n callback();\n };\n let batchNotifyFn = (callback) => {\n callback();\n };\n let scheduleFn = defaultScheduler;\n const schedule = (callback) => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleFn(() => {\n notifyFn(callback);\n });\n }\n };\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n if (originalQueue.length) {\n scheduleFn(() => {\n batchNotifyFn(() => {\n originalQueue.forEach((callback) => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n return {\n batch: (callback) => {\n let result;\n transactions++;\n try {\n result = callback();\n } finally {\n transactions--;\n if (!transactions) {\n flush();\n }\n }\n return result;\n },\n /**\n * All calls to the wrapped function will be batched.\n */\n batchCalls: (callback) => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n },\n schedule,\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n setNotifyFunction: (fn) => {\n notifyFn = fn;\n },\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n setBatchNotifyFunction: (fn) => {\n batchNotifyFn = fn;\n },\n setScheduler: (fn) => {\n scheduleFn = fn;\n }\n };\n}\nvar notifyManager = createNotifyManager();\nexport {\n createNotifyManager,\n defaultScheduler,\n notifyManager\n};\n//# sourceMappingURL=notifyManager.js.map","// src/onlineManager.ts\nimport { Subscribable } from \"./subscribable.js\";\nimport { isServer } from \"./utils.js\";\nvar OnlineManager = class extends Subscribable {\n #online = true;\n #cleanup;\n #setup;\n constructor() {\n super();\n this.#setup = (onOnline) => {\n if (!isServer && window.addEventListener) {\n const onlineListener = () => onOnline(true);\n const offlineListener = () => onOnline(false);\n window.addEventListener(\"online\", onlineListener, false);\n window.addEventListener(\"offline\", offlineListener, false);\n return () => {\n window.removeEventListener(\"online\", onlineListener);\n window.removeEventListener(\"offline\", offlineListener);\n };\n }\n return;\n };\n }\n onSubscribe() {\n if (!this.#cleanup) {\n this.setEventListener(this.#setup);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#cleanup?.();\n this.#cleanup = void 0;\n }\n }\n setEventListener(setup) {\n this.#setup = setup;\n this.#cleanup?.();\n this.#cleanup = setup(this.setOnline.bind(this));\n }\n setOnline(online) {\n const changed = this.#online !== online;\n if (changed) {\n this.#online = online;\n this.listeners.forEach((listener) => {\n listener(online);\n });\n }\n }\n isOnline() {\n return this.#online;\n }\n};\nvar onlineManager = new OnlineManager();\nexport {\n OnlineManager,\n onlineManager\n};\n//# sourceMappingURL=onlineManager.js.map","// src/retryer.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport { isServer, sleep } from \"./utils.js\";\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1e3 * 2 ** failureCount, 3e4);\n}\nfunction canFetch(networkMode) {\n return (networkMode ?? \"online\") === \"online\" ? onlineManager.isOnline() : true;\n}\nvar CancelledError = class extends Error {\n constructor(options) {\n super(\"CancelledError\");\n this.revert = options?.revert;\n this.silent = options?.silent;\n }\n};\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let continueFn;\n const thenable = pendingThenable();\n const isResolved = () => thenable.status !== \"pending\";\n const cancel = (cancelOptions) => {\n if (!isResolved()) {\n const error = new CancelledError(cancelOptions);\n reject(error);\n config.onCancel?.(error);\n }\n };\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n const canContinue = () => focusManager.isFocused() && (config.networkMode === \"always\" || onlineManager.isOnline()) && config.canRun();\n const canStart = () => canFetch(config.networkMode) && config.canRun();\n const resolve = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.resolve(value);\n }\n };\n const reject = (value) => {\n if (!isResolved()) {\n continueFn?.();\n thenable.reject(value);\n }\n };\n const pause = () => {\n return new Promise((continueResolve) => {\n continueFn = (value) => {\n if (isResolved() || canContinue()) {\n continueResolve(value);\n }\n };\n config.onPause?.();\n }).then(() => {\n continueFn = void 0;\n if (!isResolved()) {\n config.onContinue?.();\n }\n });\n };\n const run = () => {\n if (isResolved()) {\n return;\n }\n let promiseOrValue;\n const initialPromise = failureCount === 0 ? config.initialPromise : void 0;\n try {\n promiseOrValue = initialPromise ?? config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n Promise.resolve(promiseOrValue).then(resolve).catch((error) => {\n if (isResolved()) {\n return;\n }\n const retry = config.retry ?? (isServer ? 0 : 3);\n const retryDelay = config.retryDelay ?? defaultRetryDelay;\n const delay = typeof retryDelay === \"function\" ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === \"number\" && failureCount < retry || typeof retry === \"function\" && retry(failureCount, error);\n if (isRetryCancelled || !shouldRetry) {\n reject(error);\n return;\n }\n failureCount++;\n config.onFail?.(failureCount, error);\n sleep(delay).then(() => {\n return canContinue() ? void 0 : pause();\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n };\n return {\n promise: thenable,\n status: () => thenable.status,\n cancel,\n continue: () => {\n continueFn?.();\n return thenable;\n },\n cancelRetry,\n continueRetry,\n canStart,\n start: () => {\n if (canStart()) {\n run();\n } else {\n pause().then(run);\n }\n return thenable;\n }\n };\n}\nexport {\n CancelledError,\n canFetch,\n createRetryer,\n isCancelledError\n};\n//# sourceMappingURL=retryer.js.map","// src/removable.ts\nimport { timeoutManager } from \"./timeoutManager.js\";\nimport { isServer, isValidTimeout } from \"./utils.js\";\nvar Removable = class {\n #gcTimeout;\n destroy() {\n this.clearGcTimeout();\n }\n scheduleGc() {\n this.clearGcTimeout();\n if (isValidTimeout(this.gcTime)) {\n this.#gcTimeout = timeoutManager.setTimeout(() => {\n this.optionalRemove();\n }, this.gcTime);\n }\n }\n updateGcTime(newGcTime) {\n this.gcTime = Math.max(\n this.gcTime || 0,\n newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)\n );\n }\n clearGcTimeout() {\n if (this.#gcTimeout) {\n timeoutManager.clearTimeout(this.#gcTimeout);\n this.#gcTimeout = void 0;\n }\n }\n};\nexport {\n Removable\n};\n//# sourceMappingURL=removable.js.map","// src/query.ts\nimport {\n ensureQueryFn,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n skipToken,\n timeUntilStale\n} from \"./utils.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { CancelledError, canFetch, createRetryer } from \"./retryer.js\";\nimport { Removable } from \"./removable.js\";\nvar Query = class extends Removable {\n #initialState;\n #revertState;\n #cache;\n #client;\n #retryer;\n #defaultOptions;\n #abortSignalConsumed;\n constructor(config) {\n super();\n this.#abortSignalConsumed = false;\n this.#defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.#client = config.client;\n this.#cache = this.#client.getQueryCache();\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.#initialState = getDefaultState(this.options);\n this.state = config.state ?? this.#initialState;\n this.scheduleGc();\n }\n get meta() {\n return this.options.meta;\n }\n get promise() {\n return this.#retryer?.promise;\n }\n setOptions(options) {\n this.options = { ...this.#defaultOptions, ...options };\n this.updateGcTime(this.options.gcTime);\n if (this.state && this.state.data === void 0) {\n const defaultState = getDefaultState(this.options);\n if (defaultState.data !== void 0) {\n this.setState(\n successState(defaultState.data, defaultState.dataUpdatedAt)\n );\n this.#initialState = defaultState;\n }\n }\n }\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === \"idle\") {\n this.#cache.remove(this);\n }\n }\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options);\n this.#dispatch({\n data,\n type: \"success\",\n dataUpdatedAt: options?.updatedAt,\n manual: options?.manual\n });\n return data;\n }\n setState(state, setStateOptions) {\n this.#dispatch({ type: \"setState\", state, setStateOptions });\n }\n cancel(options) {\n const promise = this.#retryer?.promise;\n this.#retryer?.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n destroy() {\n super.destroy();\n this.cancel({ silent: true });\n }\n reset() {\n this.destroy();\n this.setState(this.#initialState);\n }\n isActive() {\n return this.observers.some(\n (observer) => resolveEnabled(observer.options.enabled, this) !== false\n );\n }\n isDisabled() {\n if (this.getObserversCount() > 0) {\n return !this.isActive();\n }\n return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;\n }\n isStatic() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => resolveStaleTime(observer.options.staleTime, this) === \"static\"\n );\n }\n return false;\n }\n isStale() {\n if (this.getObserversCount() > 0) {\n return this.observers.some(\n (observer) => observer.getCurrentResult().isStale\n );\n }\n return this.state.data === void 0 || this.state.isInvalidated;\n }\n isStaleByTime(staleTime = 0) {\n if (this.state.data === void 0) {\n return true;\n }\n if (staleTime === \"static\") {\n return false;\n }\n if (this.state.isInvalidated) {\n return true;\n }\n return !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n onFocus() {\n const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n onOnline() {\n const observer = this.observers.find((x) => x.shouldFetchOnReconnect());\n observer?.refetch({ cancelRefetch: false });\n this.#retryer?.continue();\n }\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer);\n this.clearGcTimeout();\n this.#cache.notify({ type: \"observerAdded\", query: this, observer });\n }\n }\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter((x) => x !== observer);\n if (!this.observers.length) {\n if (this.#retryer) {\n if (this.#abortSignalConsumed) {\n this.#retryer.cancel({ revert: true });\n } else {\n this.#retryer.cancelRetry();\n }\n }\n this.scheduleGc();\n }\n this.#cache.notify({ type: \"observerRemoved\", query: this, observer });\n }\n }\n getObserversCount() {\n return this.observers.length;\n }\n invalidate() {\n if (!this.state.isInvalidated) {\n this.#dispatch({ type: \"invalidate\" });\n }\n }\n async fetch(options, fetchOptions) {\n if (this.state.fetchStatus !== \"idle\" && // If the promise in the retryer is already rejected, we have to definitely\n // re-start the fetch; there is a chance that the query is still in a\n // pending state when that happens\n this.#retryer?.status() !== \"rejected\") {\n if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {\n this.cancel({ silent: true });\n } else if (this.#retryer) {\n this.#retryer.continueRetry();\n return this.#retryer.promise;\n }\n }\n if (options) {\n this.setOptions(options);\n }\n if (!this.options.queryFn) {\n const observer = this.observers.find((x) => x.options.queryFn);\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n if (process.env.NODE_ENV !== \"production\") {\n if (!Array.isArray(this.options.queryKey)) {\n console.error(\n `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`\n );\n }\n }\n const abortController = new AbortController();\n const addSignalProperty = (object) => {\n Object.defineProperty(object, \"signal\", {\n enumerable: true,\n get: () => {\n this.#abortSignalConsumed = true;\n return abortController.signal;\n }\n });\n };\n const fetchFn = () => {\n const queryFn = ensureQueryFn(this.options, fetchOptions);\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: this.#client,\n queryKey: this.queryKey,\n meta: this.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n this.#abortSignalConsumed = false;\n if (this.options.persister) {\n return this.options.persister(\n queryFn,\n queryFnContext,\n this\n );\n }\n return queryFn(queryFnContext);\n };\n const createFetchContext = () => {\n const context2 = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n client: this.#client,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context2);\n return context2;\n };\n const context = createFetchContext();\n this.options.behavior?.onFetch(context, this);\n this.#revertState = this.state;\n if (this.state.fetchStatus === \"idle\" || this.state.fetchMeta !== context.fetchOptions?.meta) {\n this.#dispatch({ type: \"fetch\", meta: context.fetchOptions?.meta });\n }\n this.#retryer = createRetryer({\n initialPromise: fetchOptions?.initialPromise,\n fn: context.fetchFn,\n onCancel: (error) => {\n if (error instanceof CancelledError && error.revert) {\n this.setState({\n ...this.#revertState,\n fetchStatus: \"idle\"\n });\n }\n abortController.abort();\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode,\n canRun: () => true\n });\n try {\n const data = await this.#retryer.start();\n if (data === void 0) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\n `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`\n );\n }\n throw new Error(`${this.queryHash} data is undefined`);\n }\n this.setData(data);\n this.#cache.config.onSuccess?.(data, this);\n this.#cache.config.onSettled?.(\n data,\n this.state.error,\n this\n );\n return data;\n } catch (error) {\n if (error instanceof CancelledError) {\n if (error.silent) {\n return this.#retryer.promise;\n } else if (error.revert) {\n if (this.state.data === void 0) {\n throw error;\n }\n return this.state.data;\n }\n }\n this.#dispatch({\n type: \"error\",\n error\n });\n this.#cache.config.onError?.(\n error,\n this\n );\n this.#cache.config.onSettled?.(\n this.state.data,\n error,\n this\n );\n throw error;\n } finally {\n this.scheduleGc();\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n fetchStatus: \"paused\"\n };\n case \"continue\":\n return {\n ...state,\n fetchStatus: \"fetching\"\n };\n case \"fetch\":\n return {\n ...state,\n ...fetchState(state.data, this.options),\n fetchMeta: action.meta ?? null\n };\n case \"success\":\n const newState = {\n ...state,\n ...successState(action.data, action.dataUpdatedAt),\n dataUpdateCount: state.dataUpdateCount + 1,\n ...!action.manual && {\n fetchStatus: \"idle\",\n fetchFailureCount: 0,\n fetchFailureReason: null\n }\n };\n this.#revertState = action.manual ? newState : void 0;\n return newState;\n case \"error\":\n const error = action.error;\n return {\n ...state,\n error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: \"idle\",\n status: \"error\",\n // flag existing data as invalidated if we get a background error\n // note that \"no data\" always means stale so we can set unconditionally here\n isInvalidated: true\n };\n case \"invalidate\":\n return {\n ...state,\n isInvalidated: true\n };\n case \"setState\":\n return {\n ...state,\n ...action.state\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach((observer) => {\n observer.onQueryUpdate();\n });\n this.#cache.notify({ query: this, type: \"updated\", action });\n });\n }\n};\nfunction fetchState(data, options) {\n return {\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchStatus: canFetch(options.networkMode) ? \"fetching\" : \"paused\",\n ...data === void 0 && {\n error: null,\n status: \"pending\"\n }\n };\n}\nfunction successState(data, dataUpdatedAt) {\n return {\n data,\n dataUpdatedAt: dataUpdatedAt ?? Date.now(),\n error: null,\n isInvalidated: false,\n status: \"success\"\n };\n}\nfunction getDefaultState(options) {\n const data = typeof options.initialData === \"function\" ? options.initialData() : options.initialData;\n const hasData = data !== void 0;\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === \"function\" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? \"success\" : \"pending\",\n fetchStatus: \"idle\"\n };\n}\nexport {\n Query,\n fetchState\n};\n//# sourceMappingURL=query.js.map","// src/queryObserver.ts\nimport { focusManager } from \"./focusManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { fetchState } from \"./query.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { pendingThenable } from \"./thenable.js\";\nimport {\n isServer,\n isValidTimeout,\n noop,\n replaceData,\n resolveEnabled,\n resolveStaleTime,\n shallowEqualObjects,\n timeUntilStale\n} from \"./utils.js\";\nimport { timeoutManager } from \"./timeoutManager.js\";\nvar QueryObserver = class extends Subscribable {\n constructor(client, options) {\n super();\n this.options = options;\n this.#client = client;\n this.#selectError = null;\n this.#currentThenable = pendingThenable();\n this.bindMethods();\n this.setOptions(options);\n }\n #client;\n #currentQuery = void 0;\n #currentQueryInitialState = void 0;\n #currentResult = void 0;\n #currentResultState;\n #currentResultOptions;\n #currentThenable;\n #selectError;\n #selectFn;\n #selectResult;\n // This property keeps track of the last query with defined data.\n // It will be used to pass the previous data and query to the placeholder function between renders.\n #lastQueryWithDefinedData;\n #staleTimeoutId;\n #refetchIntervalId;\n #currentRefetchInterval;\n #trackedProps = /* @__PURE__ */ new Set();\n bindMethods() {\n this.refetch = this.refetch.bind(this);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#currentQuery.addObserver(this);\n if (shouldFetchOnMount(this.#currentQuery, this.options)) {\n this.#executeFetch();\n } else {\n this.updateResult();\n }\n this.#updateTimers();\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n shouldFetchOnReconnect() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnReconnect\n );\n }\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(\n this.#currentQuery,\n this.options,\n this.options.refetchOnWindowFocus\n );\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#clearStaleTimeout();\n this.#clearRefetchInterval();\n this.#currentQuery.removeObserver(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n const prevQuery = this.#currentQuery;\n this.options = this.#client.defaultQueryOptions(options);\n if (this.options.enabled !== void 0 && typeof this.options.enabled !== \"boolean\" && typeof this.options.enabled !== \"function\" && typeof resolveEnabled(this.options.enabled, this.#currentQuery) !== \"boolean\") {\n throw new Error(\n \"Expected enabled to be a boolean or a callback that returns a boolean\"\n );\n }\n this.#updateQuery();\n this.#currentQuery.setOptions(this.options);\n if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getQueryCache().notify({\n type: \"observerOptionsUpdated\",\n query: this.#currentQuery,\n observer: this\n });\n }\n const mounted = this.hasListeners();\n if (mounted && shouldFetchOptionally(\n this.#currentQuery,\n prevQuery,\n this.options,\n prevOptions\n )) {\n this.#executeFetch();\n }\n this.updateResult();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || resolveStaleTime(this.options.staleTime, this.#currentQuery) !== resolveStaleTime(prevOptions.staleTime, this.#currentQuery))) {\n this.#updateStaleTimeout();\n }\n const nextRefetchInterval = this.#computeRefetchInterval();\n if (mounted && (this.#currentQuery !== prevQuery || resolveEnabled(this.options.enabled, this.#currentQuery) !== resolveEnabled(prevOptions.enabled, this.#currentQuery) || nextRefetchInterval !== this.#currentRefetchInterval)) {\n this.#updateRefetchInterval(nextRefetchInterval);\n }\n }\n getOptimisticResult(options) {\n const query = this.#client.getQueryCache().build(this.#client, options);\n const result = this.createResult(query, options);\n if (shouldAssignObserverCurrentProperties(this, result)) {\n this.#currentResult = result;\n this.#currentResultOptions = this.options;\n this.#currentResultState = this.#currentQuery.state;\n }\n return result;\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n trackResult(result, onPropTracked) {\n return new Proxy(result, {\n get: (target, key) => {\n this.trackProp(key);\n onPropTracked?.(key);\n if (key === \"promise\") {\n this.trackProp(\"data\");\n if (!this.options.experimental_prefetchInRender && this.#currentThenable.status === \"pending\") {\n this.#currentThenable.reject(\n new Error(\n \"experimental_prefetchInRender feature flag is not enabled\"\n )\n );\n }\n }\n return Reflect.get(target, key);\n }\n });\n }\n trackProp(key) {\n this.#trackedProps.add(key);\n }\n getCurrentQuery() {\n return this.#currentQuery;\n }\n refetch({ ...options } = {}) {\n return this.fetch({\n ...options\n });\n }\n fetchOptimistic(options) {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n fetch(fetchOptions) {\n return this.#executeFetch({\n ...fetchOptions,\n cancelRefetch: fetchOptions.cancelRefetch ?? true\n }).then(() => {\n this.updateResult();\n return this.#currentResult;\n });\n }\n #executeFetch(fetchOptions) {\n this.#updateQuery();\n let promise = this.#currentQuery.fetch(\n this.options,\n fetchOptions\n );\n if (!fetchOptions?.throwOnError) {\n promise = promise.catch(noop);\n }\n return promise;\n }\n #updateStaleTimeout() {\n this.#clearStaleTimeout();\n const staleTime = resolveStaleTime(\n this.options.staleTime,\n this.#currentQuery\n );\n if (isServer || this.#currentResult.isStale || !isValidTimeout(staleTime)) {\n return;\n }\n const time = timeUntilStale(this.#currentResult.dataUpdatedAt, staleTime);\n const timeout = time + 1;\n this.#staleTimeoutId = timeoutManager.setTimeout(() => {\n if (!this.#currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n #computeRefetchInterval() {\n return (typeof this.options.refetchInterval === \"function\" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;\n }\n #updateRefetchInterval(nextInterval) {\n this.#clearRefetchInterval();\n this.#currentRefetchInterval = nextInterval;\n if (isServer || resolveEnabled(this.options.enabled, this.#currentQuery) === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {\n return;\n }\n this.#refetchIntervalId = timeoutManager.setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.#executeFetch();\n }\n }, this.#currentRefetchInterval);\n }\n #updateTimers() {\n this.#updateStaleTimeout();\n this.#updateRefetchInterval(this.#computeRefetchInterval());\n }\n #clearStaleTimeout() {\n if (this.#staleTimeoutId) {\n timeoutManager.clearTimeout(this.#staleTimeoutId);\n this.#staleTimeoutId = void 0;\n }\n }\n #clearRefetchInterval() {\n if (this.#refetchIntervalId) {\n timeoutManager.clearInterval(this.#refetchIntervalId);\n this.#refetchIntervalId = void 0;\n }\n }\n createResult(query, options) {\n const prevQuery = this.#currentQuery;\n const prevOptions = this.options;\n const prevResult = this.#currentResult;\n const prevResultState = this.#currentResultState;\n const prevResultOptions = this.#currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;\n const { state } = query;\n let newState = { ...state };\n let isPlaceholderData = false;\n let data;\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n if (fetchOnMount || fetchOptionally) {\n newState = {\n ...newState,\n ...fetchState(state.data, query.options)\n };\n }\n if (options._optimisticResults === \"isRestoring\") {\n newState.fetchStatus = \"idle\";\n }\n }\n let { error, errorUpdatedAt, status } = newState;\n data = newState.data;\n let skipSelect = false;\n if (options.placeholderData !== void 0 && data === void 0 && status === \"pending\") {\n let placeholderData;\n if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {\n placeholderData = prevResult.data;\n skipSelect = true;\n } else {\n placeholderData = typeof options.placeholderData === \"function\" ? options.placeholderData(\n this.#lastQueryWithDefinedData?.state.data,\n this.#lastQueryWithDefinedData\n ) : options.placeholderData;\n }\n if (placeholderData !== void 0) {\n status = \"success\";\n data = replaceData(\n prevResult?.data,\n placeholderData,\n options\n );\n isPlaceholderData = true;\n }\n }\n if (options.select && data !== void 0 && !skipSelect) {\n if (prevResult && data === prevResultState?.data && options.select === this.#selectFn) {\n data = this.#selectResult;\n } else {\n try {\n this.#selectFn = options.select;\n data = options.select(data);\n data = replaceData(prevResult?.data, data, options);\n this.#selectResult = data;\n this.#selectError = null;\n } catch (selectError) {\n this.#selectError = selectError;\n }\n }\n }\n if (this.#selectError) {\n error = this.#selectError;\n data = this.#selectResult;\n errorUpdatedAt = Date.now();\n status = \"error\";\n }\n const isFetching = newState.fetchStatus === \"fetching\";\n const isPending = status === \"pending\";\n const isError = status === \"error\";\n const isLoading = isPending && isFetching;\n const hasData = data !== void 0;\n const result = {\n status,\n fetchStatus: newState.fetchStatus,\n isPending,\n isSuccess: status === \"success\",\n isError,\n isInitialLoading: isLoading,\n isLoading,\n data,\n dataUpdatedAt: newState.dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: newState.fetchFailureCount,\n failureReason: newState.fetchFailureReason,\n errorUpdateCount: newState.errorUpdateCount,\n isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,\n isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isPending,\n isLoadingError: isError && !hasData,\n isPaused: newState.fetchStatus === \"paused\",\n isPlaceholderData,\n isRefetchError: isError && hasData,\n isStale: isStale(query, options),\n refetch: this.refetch,\n promise: this.#currentThenable,\n isEnabled: resolveEnabled(options.enabled, query) !== false\n };\n const nextResult = result;\n if (this.options.experimental_prefetchInRender) {\n const hasResultData = nextResult.data !== void 0;\n const isErrorWithoutData = nextResult.status === \"error\" && !hasResultData;\n const finalizeThenableIfPossible = (thenable) => {\n if (isErrorWithoutData) {\n thenable.reject(nextResult.error);\n } else if (hasResultData) {\n thenable.resolve(nextResult.data);\n }\n };\n const recreateThenable = () => {\n const pending = this.#currentThenable = nextResult.promise = pendingThenable();\n finalizeThenableIfPossible(pending);\n };\n const prevThenable = this.#currentThenable;\n switch (prevThenable.status) {\n case \"pending\":\n if (query.queryHash === prevQuery.queryHash) {\n finalizeThenableIfPossible(prevThenable);\n }\n break;\n case \"fulfilled\":\n if (isErrorWithoutData || nextResult.data !== prevThenable.value) {\n recreateThenable();\n }\n break;\n case \"rejected\":\n if (!isErrorWithoutData || nextResult.error !== prevThenable.reason) {\n recreateThenable();\n }\n break;\n }\n }\n return nextResult;\n }\n updateResult() {\n const prevResult = this.#currentResult;\n const nextResult = this.createResult(this.#currentQuery, this.options);\n this.#currentResultState = this.#currentQuery.state;\n this.#currentResultOptions = this.options;\n if (this.#currentResultState.data !== void 0) {\n this.#lastQueryWithDefinedData = this.#currentQuery;\n }\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n this.#currentResult = nextResult;\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n const { notifyOnChangeProps } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === \"function\" ? notifyOnChangeProps() : notifyOnChangeProps;\n if (notifyOnChangePropsValue === \"all\" || !notifyOnChangePropsValue && !this.#trackedProps.size) {\n return true;\n }\n const includedProps = new Set(\n notifyOnChangePropsValue ?? this.#trackedProps\n );\n if (this.options.throwOnError) {\n includedProps.add(\"error\");\n }\n return Object.keys(this.#currentResult).some((key) => {\n const typedKey = key;\n const changed = this.#currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n this.#notify({ listeners: shouldNotifyListeners() });\n }\n #updateQuery() {\n const query = this.#client.getQueryCache().build(this.#client, this.options);\n if (query === this.#currentQuery) {\n return;\n }\n const prevQuery = this.#currentQuery;\n this.#currentQuery = query;\n this.#currentQueryInitialState = query.state;\n if (this.hasListeners()) {\n prevQuery?.removeObserver(this);\n query.addObserver(this);\n }\n }\n onQueryUpdate() {\n this.updateResult();\n if (this.hasListeners()) {\n this.#updateTimers();\n }\n }\n #notify(notifyOptions) {\n notifyManager.batch(() => {\n if (notifyOptions.listeners) {\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n }\n this.#client.getQueryCache().notify({\n query: this.#currentQuery,\n type: \"observerResultsUpdated\"\n });\n });\n }\n};\nfunction shouldLoadOnMount(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.state.data === void 0 && !(query.state.status === \"error\" && options.retryOnMount === false);\n}\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\nfunction shouldFetchOn(query, options, field) {\n if (resolveEnabled(options.enabled, query) !== false && resolveStaleTime(options.staleTime, query) !== \"static\") {\n const value = typeof field === \"function\" ? field(query) : field;\n return value === \"always\" || value !== false && isStale(query, options);\n }\n return false;\n}\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return (query !== prevQuery || resolveEnabled(prevOptions.enabled, query) === false) && (!options.suspense || query.state.status !== \"error\") && isStale(query, options);\n}\nfunction isStale(query, options) {\n return resolveEnabled(options.enabled, query) !== false && query.isStaleByTime(resolveStaleTime(options.staleTime, query));\n}\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult) {\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n }\n return false;\n}\nexport {\n QueryObserver\n};\n//# sourceMappingURL=queryObserver.js.map","// src/infiniteQueryBehavior.ts\nimport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn\n} from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n addConsumeAwareSignal(\n object,\n () => context.signal,\n () => cancelled = true\n );\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n const page = await queryFn(queryFnContext);\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map","// src/infiniteQueryObserver.ts\nimport { QueryObserver } from \"./queryObserver.js\";\nimport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n} from \"./infiniteQueryBehavior.js\";\nvar InfiniteQueryObserver = class extends QueryObserver {\n constructor(client, options) {\n super(client, options);\n }\n bindMethods() {\n super.bindMethods();\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n }\n setOptions(options) {\n super.setOptions({\n ...options,\n behavior: infiniteQueryBehavior()\n });\n }\n getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return super.getOptimisticResult(options);\n }\n fetchNextPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"forward\" }\n }\n });\n }\n fetchPreviousPage(options) {\n return this.fetch({\n ...options,\n meta: {\n fetchMore: { direction: \"backward\" }\n }\n });\n }\n createResult(query, options) {\n const { state } = query;\n const parentResult = super.createResult(query, options);\n const { isFetching, isRefetching, isError, isRefetchError } = parentResult;\n const fetchDirection = state.fetchMeta?.fetchMore?.direction;\n const isFetchNextPageError = isError && fetchDirection === \"forward\";\n const isFetchingNextPage = isFetching && fetchDirection === \"forward\";\n const isFetchPreviousPageError = isError && fetchDirection === \"backward\";\n const isFetchingPreviousPage = isFetching && fetchDirection === \"backward\";\n const result = {\n ...parentResult,\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, state.data),\n hasPreviousPage: hasPreviousPage(options, state.data),\n isFetchNextPageError,\n isFetchingNextPage,\n isFetchPreviousPageError,\n isFetchingPreviousPage,\n isRefetchError: isRefetchError && !isFetchNextPageError && !isFetchPreviousPageError,\n isRefetching: isRefetching && !isFetchingNextPage && !isFetchingPreviousPage\n };\n return result;\n }\n};\nexport {\n InfiniteQueryObserver\n};\n//# sourceMappingURL=infiniteQueryObserver.js.map","// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const onMutateResult = this.#currentResult.context;\n const context = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n if (action?.type === \"success\") {\n try {\n this.#mutateOptions.onSuccess?.(\n action.data,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n action.data,\n null,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n } else if (action?.type === \"error\") {\n try {\n this.#mutateOptions.onError?.(\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n onMutateResult,\n context\n );\n } catch (e) {\n void Promise.reject(e);\n }\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep, shallowEqualObjects } from \"./utils.js\";\nfunction difference(array1, array2) {\n const excludeSet = new Set(array2);\n return array1.filter((x) => !excludeSet.has(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n #client;\n #result;\n #queries;\n #options;\n #observers;\n #combinedResult;\n #lastCombine;\n #lastResult;\n #lastQueryHashes;\n #observerMatches = [];\n constructor(client, queries, options) {\n super();\n this.#client = client;\n this.#options = options;\n this.#queries = [];\n this.#observers = [];\n this.#result = [];\n this.setQueries(queries);\n }\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.#observers.forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n }\n onUnsubscribe() {\n if (!this.listeners.size) {\n this.destroy();\n }\n }\n destroy() {\n this.listeners = /* @__PURE__ */ new Set();\n this.#observers.forEach((observer) => {\n observer.destroy();\n });\n }\n setQueries(queries, options) {\n this.#queries = queries;\n this.#options = options;\n if (process.env.NODE_ENV !== \"production\") {\n const queryHashes = queries.map(\n (query) => this.#client.defaultQueryOptions(query).queryHash\n );\n if (new Set(queryHashes).size !== queryHashes.length) {\n console.warn(\n \"[QueriesObserver]: Duplicate Queries found. This might result in unexpected behavior.\"\n );\n }\n }\n notifyManager.batch(() => {\n const prevObservers = this.#observers;\n const newObserverMatches = this.#findMatchingObservers(this.#queries);\n newObserverMatches.forEach(\n (match) => match.observer.setOptions(match.defaultedQueryOptions)\n );\n const newObservers = newObserverMatches.map((match) => match.observer);\n const newResult = newObservers.map(\n (observer) => observer.getCurrentResult()\n );\n const hasLengthChange = prevObservers.length !== newObservers.length;\n const hasIndexChange = newObservers.some(\n (observer, index) => observer !== prevObservers[index]\n );\n const hasStructuralChange = hasLengthChange || hasIndexChange;\n const hasResultChange = hasStructuralChange ? true : newResult.some((result, index) => {\n const prev = this.#result[index];\n return !prev || !shallowEqualObjects(result, prev);\n });\n if (!hasStructuralChange && !hasResultChange) return;\n if (hasStructuralChange) {\n this.#observerMatches = newObserverMatches;\n this.#observers = newObservers;\n }\n this.#result = newResult;\n if (!this.hasListeners()) return;\n if (hasStructuralChange) {\n difference(prevObservers, newObservers).forEach((observer) => {\n observer.destroy();\n });\n difference(newObservers, prevObservers).forEach((observer) => {\n observer.subscribe((result) => {\n this.#onUpdate(observer, result);\n });\n });\n }\n this.#notify();\n });\n }\n getCurrentResult() {\n return this.#result;\n }\n getQueries() {\n return this.#observers.map((observer) => observer.getCurrentQuery());\n }\n getObservers() {\n return this.#observers;\n }\n getOptimisticResult(queries, combine) {\n const matches = this.#findMatchingObservers(queries);\n const result = matches.map(\n (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n );\n const queryHashes = matches.map(\n (match) => match.defaultedQueryOptions.queryHash\n );\n return [\n result,\n (r) => {\n return this.#combineResult(r ?? result, combine, queryHashes);\n },\n () => {\n return this.#trackResult(result, matches);\n }\n ];\n }\n #trackResult(result, matches) {\n return matches.map((match, index) => {\n const observerResult = result[index];\n return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n matches.forEach((m) => {\n m.observer.trackProp(accessedProp);\n });\n }) : observerResult;\n });\n }\n #combineResult(input, combine, queryHashes) {\n if (combine) {\n const lastHashes = this.#lastQueryHashes;\n const queryHashesChanged = queryHashes !== void 0 && lastHashes !== void 0 && (lastHashes.length !== queryHashes.length || queryHashes.some((hash, i) => hash !== lastHashes[i]));\n if (!this.#combinedResult || this.#result !== this.#lastResult || queryHashesChanged || combine !== this.#lastCombine) {\n this.#lastCombine = combine;\n this.#lastResult = this.#result;\n if (queryHashes !== void 0) {\n this.#lastQueryHashes = queryHashes;\n }\n this.#combinedResult = replaceEqualDeep(\n this.#combinedResult,\n combine(input)\n );\n }\n return this.#combinedResult;\n }\n return input;\n }\n #findMatchingObservers(queries) {\n const prevObserversMap = /* @__PURE__ */ new Map();\n this.#observers.forEach((observer) => {\n const key = observer.options.queryHash;\n if (!key) return;\n const previousObservers = prevObserversMap.get(key);\n if (previousObservers) {\n previousObservers.push(observer);\n } else {\n prevObserversMap.set(key, [observer]);\n }\n });\n const observers = [];\n queries.forEach((options) => {\n const defaultedOptions = this.#client.defaultQueryOptions(options);\n const match = prevObserversMap.get(defaultedOptions.queryHash)?.shift();\n const observer = match ?? new QueryObserver(this.#client, defaultedOptions);\n observers.push({\n defaultedQueryOptions: defaultedOptions,\n observer\n });\n });\n return observers;\n }\n #onUpdate(observer, result) {\n const index = this.#observers.indexOf(observer);\n if (index !== -1) {\n this.#result = replaceAt(this.#result, index, result);\n this.#notify();\n }\n }\n #notify() {\n if (this.hasListeners()) {\n const previousResult = this.#combinedResult;\n const newTracked = this.#trackResult(this.#result, this.#observerMatches);\n const newResult = this.#combineResult(newTracked, this.#options?.combine);\n if (previousResult !== newResult) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(this.#result);\n });\n });\n }\n }\n }\n};\nexport {\n QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","\"use client\";\n\n// src/QueryClientProvider.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar QueryClientContext = React.createContext(\n void 0\n);\nvar useQueryClient = (queryClient) => {\n const client = React.useContext(QueryClientContext);\n if (queryClient) {\n return queryClient;\n }\n if (!client) {\n throw new Error(\"No QueryClient set, use QueryClientProvider to set one\");\n }\n return client;\n};\nvar QueryClientProvider = ({\n client,\n children\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n return /* @__PURE__ */ jsx(QueryClientContext.Provider, { value: client, children });\n};\nexport {\n QueryClientContext,\n QueryClientProvider,\n useQueryClient\n};\n//# sourceMappingURL=QueryClientProvider.js.map","\"use client\";\n\n// src/IsRestoringProvider.ts\nimport * as React from \"react\";\nvar IsRestoringContext = React.createContext(false);\nvar useIsRestoring = () => React.useContext(IsRestoringContext);\nvar IsRestoringProvider = IsRestoringContext.Provider;\nexport {\n IsRestoringProvider,\n useIsRestoring\n};\n//# sourceMappingURL=IsRestoringProvider.js.map","\"use client\";\n\n// src/QueryErrorResetBoundary.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\nvar QueryErrorResetBoundaryContext = React.createContext(createValue());\nvar useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext);\nvar QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /* @__PURE__ */ jsx(QueryErrorResetBoundaryContext.Provider, { value, children: typeof children === \"function\" ? children(value) : children });\n};\nexport {\n QueryErrorResetBoundary,\n useQueryErrorResetBoundary\n};\n//# sourceMappingURL=QueryErrorResetBoundary.js.map","\"use client\";\n\n// src/errorBoundaryUtils.ts\nimport * as React from \"react\";\nimport { shouldThrowError } from \"@tanstack/query-core\";\nvar ensurePreventErrorBoundaryRetry = (options, errorResetBoundary, query) => {\n const throwOnError = query?.state.error && typeof options.throwOnError === \"function\" ? shouldThrowError(options.throwOnError, [query.state.error, query]) : options.throwOnError;\n if (options.suspense || options.experimental_prefetchInRender || throwOnError) {\n if (!errorResetBoundary.isReset()) {\n options.retryOnMount = false;\n }\n }\n};\nvar useClearResetErrorBoundary = (errorResetBoundary) => {\n React.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n};\nvar getHasError = ({\n result,\n errorResetBoundary,\n throwOnError,\n query,\n suspense\n}) => {\n return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && (suspense && result.data === void 0 || shouldThrowError(throwOnError, [result.error, query]));\n};\nexport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n};\n//# sourceMappingURL=errorBoundaryUtils.js.map","// src/suspense.ts\nvar defaultThrowOnError = (_error, query) => query.state.data === void 0;\nvar ensureSuspenseTimers = (defaultedOptions) => {\n if (defaultedOptions.suspense) {\n const MIN_SUSPENSE_TIME_MS = 1e3;\n const clamp = (value) => value === \"static\" ? value : Math.max(value ?? MIN_SUSPENSE_TIME_MS, MIN_SUSPENSE_TIME_MS);\n const originalStaleTime = defaultedOptions.staleTime;\n defaultedOptions.staleTime = typeof originalStaleTime === \"function\" ? (...args) => clamp(originalStaleTime(...args)) : clamp(originalStaleTime);\n if (typeof defaultedOptions.gcTime === \"number\") {\n defaultedOptions.gcTime = Math.max(\n defaultedOptions.gcTime,\n MIN_SUSPENSE_TIME_MS\n );\n }\n }\n};\nvar willFetch = (result, isRestoring) => result.isLoading && result.isFetching && !isRestoring;\nvar shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;\nvar fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {\n errorResetBoundary.clearReset();\n});\nexport {\n defaultThrowOnError,\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n};\n//# sourceMappingURL=suspense.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n QueriesObserver,\n QueryObserver,\n noop,\n notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useQueries({\n queries,\n ...options\n}, queryClient) {\n const client = useQueryClient(queryClient);\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedQueries = React.useMemo(\n () => queries.map((opts) => {\n const defaultedOptions = client.defaultQueryOptions(\n opts\n );\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n return defaultedOptions;\n }),\n [queries, client, isRestoring]\n );\n defaultedQueries.forEach((queryOptions) => {\n ensureSuspenseTimers(queryOptions);\n const query = client.getQueryCache().get(queryOptions.queryHash);\n ensurePreventErrorBoundaryRetry(queryOptions, errorResetBoundary, query);\n });\n useClearResetErrorBoundary(errorResetBoundary);\n const [observer] = React.useState(\n () => new QueriesObserver(\n client,\n defaultedQueries,\n options\n )\n );\n const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n defaultedQueries,\n options.combine\n );\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop,\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setQueries(\n defaultedQueries,\n options\n );\n }, [defaultedQueries, options, observer]);\n const shouldAtLeastOneSuspend = optimisticResult.some(\n (result, index) => shouldSuspend(defaultedQueries[index], result)\n );\n const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n const opts = defaultedQueries[index];\n if (opts) {\n const queryObserver = new QueryObserver(client, opts);\n if (shouldSuspend(opts, result)) {\n return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n } else if (willFetch(result, isRestoring)) {\n void fetchOptimistic(opts, queryObserver, errorResetBoundary);\n }\n }\n return [];\n }) : [];\n if (suspensePromises.length > 0) {\n throw Promise.all(suspensePromises);\n }\n const firstSingleResultWhichShouldThrow = optimisticResult.find(\n (result, index) => {\n const query = defaultedQueries[index];\n return query && getHasError({\n result,\n errorResetBoundary,\n throwOnError: query.throwOnError,\n query: client.getQueryCache().get(query.queryHash),\n suspense: query.suspense\n });\n }\n );\n if (firstSingleResultWhichShouldThrow?.error) {\n throw firstSingleResultWhichShouldThrow.error;\n }\n return getCombinedResult(trackResult());\n}\nexport {\n useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// src/useBaseQuery.ts\nimport * as React from \"react\";\nimport { isServer, noop, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n ensurePreventErrorBoundaryRetry,\n getHasError,\n useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport { useIsRestoring } from \"./IsRestoringProvider.js\";\nimport {\n ensureSuspenseTimers,\n fetchOptimistic,\n shouldSuspend,\n willFetch\n} from \"./suspense.js\";\nfunction useBaseQuery(options, Observer, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof options !== \"object\" || Array.isArray(options)) {\n throw new Error(\n 'Bad argument type. Starting with v5, only the \"Object\" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'\n );\n }\n }\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const client = useQueryClient(queryClient);\n const defaultedOptions = client.defaultQueryOptions(options);\n client.getDefaultOptions().queries?._experimental_beforeQuery?.(\n defaultedOptions\n );\n const query = client.getQueryCache().get(defaultedOptions.queryHash);\n if (process.env.NODE_ENV !== \"production\") {\n if (!defaultedOptions.queryFn) {\n console.error(\n `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`\n );\n }\n }\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n ensureSuspenseTimers(defaultedOptions);\n ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary, query);\n useClearResetErrorBoundary(errorResetBoundary);\n const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);\n const [observer] = React.useState(\n () => new Observer(\n client,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n const shouldSubscribe = !isRestoring && options.subscribed !== false;\n React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => {\n const unsubscribe = shouldSubscribe ? observer.subscribe(notifyManager.batchCalls(onStoreChange)) : noop;\n observer.updateResult();\n return unsubscribe;\n },\n [observer, shouldSubscribe]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React.useEffect(() => {\n observer.setOptions(defaultedOptions);\n }, [defaultedOptions, observer]);\n if (shouldSuspend(defaultedOptions, result)) {\n throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);\n }\n if (getHasError({\n result,\n errorResetBoundary,\n throwOnError: defaultedOptions.throwOnError,\n query,\n suspense: defaultedOptions.suspense\n })) {\n throw result.error;\n }\n ;\n client.getDefaultOptions().queries?._experimental_afterQuery?.(\n defaultedOptions,\n result\n );\n if (defaultedOptions.experimental_prefetchInRender && !isServer && willFetch(result, isRestoring)) {\n const promise = isNewCacheEntry ? (\n // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted\n fetchOptimistic(defaultedOptions, observer, errorResetBoundary)\n ) : (\n // subscribe to the \"cache promise\" so that we can finalize the currentThenable once data comes in\n query?.promise\n );\n promise?.catch(noop).finally(() => {\n observer.updateResult();\n });\n }\n return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;\n}\nexport {\n useBaseQuery\n};\n//# sourceMappingURL=useBaseQuery.js.map","\"use client\";\n\n// src/useQuery.ts\nimport { QueryObserver } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nfunction useQuery(options, queryClient) {\n return useBaseQuery(options, QueryObserver, queryClient);\n}\nexport {\n useQuery\n};\n//# sourceMappingURL=useQuery.js.map","\"use client\";\n\n// src/useSuspenseQuery.ts\nimport { QueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError,\n placeholderData: void 0\n },\n QueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseQuery\n};\n//# sourceMappingURL=useSuspenseQuery.js.map","\"use client\";\n\n// src/useSuspenseInfiniteQuery.ts\nimport { InfiniteQueryObserver, skipToken } from \"@tanstack/query-core\";\nimport { useBaseQuery } from \"./useBaseQuery.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseInfiniteQuery(options, queryClient) {\n if (process.env.NODE_ENV !== \"production\") {\n if (options.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseInfiniteQuery\");\n }\n }\n return useBaseQuery(\n {\n ...options,\n enabled: true,\n suspense: true,\n throwOnError: defaultThrowOnError\n },\n InfiniteQueryObserver,\n queryClient\n );\n}\nexport {\n useSuspenseInfiniteQuery\n};\n//# sourceMappingURL=useSuspenseInfiniteQuery.js.map","\"use client\";\n\n// src/useSuspenseQueries.ts\nimport { skipToken } from \"@tanstack/query-core\";\nimport { useQueries } from \"./useQueries.js\";\nimport { defaultThrowOnError } from \"./suspense.js\";\nfunction useSuspenseQueries(options, queryClient) {\n return useQueries(\n {\n ...options,\n queries: options.queries.map((query) => {\n if (process.env.NODE_ENV !== \"production\") {\n if (query.queryFn === skipToken) {\n console.error(\"skipToken is not allowed for useSuspenseQueries\");\n }\n }\n return {\n ...query,\n suspense: true,\n throwOnError: defaultThrowOnError,\n enabled: true,\n placeholderData: void 0\n };\n })\n },\n queryClient\n );\n}\nexport {\n useSuspenseQueries\n};\n//# sourceMappingURL=useSuspenseQueries.js.map","// src/queryOptions.ts\nfunction queryOptions(options) {\n return options;\n}\nexport {\n queryOptions\n};\n//# sourceMappingURL=queryOptions.js.map","// src/infiniteQueryOptions.ts\nfunction infiniteQueryOptions(options) {\n return options;\n}\nexport {\n infiniteQueryOptions\n};\n//# sourceMappingURL=infiniteQueryOptions.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport {\n MutationObserver,\n noop,\n notifyManager,\n shouldThrowError\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","const __storeToDerived = /* @__PURE__ */ new WeakMap();\nconst __derivedToStore = /* @__PURE__ */ new WeakMap();\nconst __depsThatHaveWrittenThisTick = {\n current: []\n};\nlet __isFlushing = false;\nlet __batchDepth = 0;\nconst __pendingUpdates = /* @__PURE__ */ new Set();\nconst __initialBatchValues = /* @__PURE__ */ new Map();\nfunction __flush_internals(relatedVals) {\n for (const derived of relatedVals) {\n if (__depsThatHaveWrittenThisTick.current.includes(derived)) {\n continue;\n }\n __depsThatHaveWrittenThisTick.current.push(derived);\n derived.recompute();\n const stores = __derivedToStore.get(derived);\n if (stores) {\n for (const store of stores) {\n const relatedLinkedDerivedVals = __storeToDerived.get(store);\n if (!(relatedLinkedDerivedVals == null ? void 0 : relatedLinkedDerivedVals.length)) continue;\n __flush_internals(relatedLinkedDerivedVals);\n }\n }\n }\n}\nfunction __notifyListeners(store) {\n const value = {\n prevVal: store.prevState,\n currentVal: store.state\n };\n for (const listener of store.listeners) {\n listener(value);\n }\n}\nfunction __notifyDerivedListeners(derived) {\n const value = {\n prevVal: derived.prevState,\n currentVal: derived.state\n };\n for (const listener of derived.listeners) {\n listener(value);\n }\n}\nfunction __flush(store) {\n if (__batchDepth > 0 && !__initialBatchValues.has(store)) {\n __initialBatchValues.set(store, store.prevState);\n }\n __pendingUpdates.add(store);\n if (__batchDepth > 0) return;\n if (__isFlushing) return;\n try {\n __isFlushing = true;\n while (__pendingUpdates.size > 0) {\n const stores = Array.from(__pendingUpdates);\n __pendingUpdates.clear();\n for (const store2 of stores) {\n const prevState = __initialBatchValues.get(store2) ?? store2.prevState;\n store2.prevState = prevState;\n __notifyListeners(store2);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n __depsThatHaveWrittenThisTick.current.push(store2);\n __flush_internals(derivedVals);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n for (const derived of derivedVals) {\n __notifyDerivedListeners(derived);\n }\n }\n }\n } finally {\n __isFlushing = false;\n __depsThatHaveWrittenThisTick.current = [];\n __initialBatchValues.clear();\n }\n}\nfunction batch(fn) {\n __batchDepth++;\n try {\n fn();\n } finally {\n __batchDepth--;\n if (__batchDepth === 0) {\n const pendingUpdateToFlush = __pendingUpdates.values().next().value;\n if (pendingUpdateToFlush) {\n __flush(pendingUpdateToFlush);\n }\n }\n }\n}\nexport {\n __depsThatHaveWrittenThisTick,\n __derivedToStore,\n __flush,\n __storeToDerived,\n batch\n};\n//# sourceMappingURL=scheduler.js.map\n","function isUpdaterFunction(updater) {\n return typeof updater === \"function\";\n}\nexport {\n isUpdaterFunction\n};\n//# sourceMappingURL=types.js.map\n","import { __flush } from \"./scheduler.js\";\nimport { isUpdaterFunction } from \"./types.js\";\nclass Store {\n constructor(initialState, options) {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = (listener) => {\n var _a, _b;\n this.listeners.add(listener);\n const unsub = (_b = (_a = this.options) == null ? void 0 : _a.onSubscribe) == null ? void 0 : _b.call(_a, listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub == null ? void 0 : unsub();\n };\n };\n this.prevState = initialState;\n this.state = initialState;\n this.options = options;\n }\n setState(updater) {\n var _a, _b, _c;\n this.prevState = this.state;\n if ((_a = this.options) == null ? void 0 : _a.updateFn) {\n this.state = this.options.updateFn(this.prevState)(updater);\n } else {\n if (isUpdaterFunction(updater)) {\n this.state = updater(this.prevState);\n } else {\n this.state = updater;\n }\n }\n (_c = (_b = this.options) == null ? void 0 : _b.onUpdate) == null ? void 0 : _c.call(_b);\n __flush(this);\n }\n}\nexport {\n Store\n};\n//# sourceMappingURL=store.js.map\n","const stateIndexKey = \"__TSR_index\";\nconst popStateEvent = \"popstate\";\nconst beforeUnloadEvent = \"beforeunload\";\nfunction createHistory(opts) {\n let location = opts.getLocation();\n const subscribers = /* @__PURE__ */ new Set();\n const notify = (action) => {\n location = opts.getLocation();\n subscribers.forEach((subscriber) => subscriber({ location, action }));\n };\n const handleIndexChange = (action) => {\n if (opts.notifyOnIndexChange ?? true) notify(action);\n else location = opts.getLocation();\n };\n const tryNavigation = async ({\n task,\n navigateOpts,\n ...actionInfo\n }) => {\n const ignoreBlocker = navigateOpts?.ignoreBlocker ?? false;\n if (ignoreBlocker) {\n task();\n return;\n }\n const blockers = opts.getBlockers?.() ?? [];\n const isPushOrReplace = actionInfo.type === \"PUSH\" || actionInfo.type === \"REPLACE\";\n if (typeof document !== \"undefined\" && blockers.length && isPushOrReplace) {\n for (const blocker of blockers) {\n const nextLocation = parseHref(actionInfo.path, actionInfo.state);\n const isBlocked = await blocker.blockerFn({\n currentLocation: location,\n nextLocation,\n action: actionInfo.type\n });\n if (isBlocked) {\n opts.onBlocked?.();\n return;\n }\n }\n }\n task();\n };\n return {\n get location() {\n return location;\n },\n get length() {\n return opts.getLength();\n },\n subscribers,\n subscribe: (cb) => {\n subscribers.add(cb);\n return () => {\n subscribers.delete(cb);\n };\n },\n push: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex + 1, state);\n tryNavigation({\n task: () => {\n opts.pushState(path, state);\n notify({ type: \"PUSH\" });\n },\n navigateOpts,\n type: \"PUSH\",\n path,\n state\n });\n },\n replace: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex, state);\n tryNavigation({\n task: () => {\n opts.replaceState(path, state);\n notify({ type: \"REPLACE\" });\n },\n navigateOpts,\n type: \"REPLACE\",\n path,\n state\n });\n },\n go: (index, navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.go(index);\n handleIndexChange({ type: \"GO\", index });\n },\n navigateOpts,\n type: \"GO\"\n });\n },\n back: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.back(navigateOpts?.ignoreBlocker ?? false);\n handleIndexChange({ type: \"BACK\" });\n },\n navigateOpts,\n type: \"BACK\"\n });\n },\n forward: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.forward(navigateOpts?.ignoreBlocker ?? false);\n handleIndexChange({ type: \"FORWARD\" });\n },\n navigateOpts,\n type: \"FORWARD\"\n });\n },\n canGoBack: () => location.state[stateIndexKey] !== 0,\n createHref: (str) => opts.createHref(str),\n block: (blocker) => {\n if (!opts.setBlockers) return () => {\n };\n const blockers = opts.getBlockers?.() ?? [];\n opts.setBlockers([...blockers, blocker]);\n return () => {\n const blockers2 = opts.getBlockers?.() ?? [];\n opts.setBlockers?.(blockers2.filter((b) => b !== blocker));\n };\n },\n flush: () => opts.flush?.(),\n destroy: () => opts.destroy?.(),\n notify\n };\n}\nfunction assignKeyAndIndex(index, state) {\n if (!state) {\n state = {};\n }\n const key = createRandomKey();\n return {\n ...state,\n key,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: key,\n [stateIndexKey]: index\n };\n}\nfunction createBrowserHistory(opts) {\n const win = opts?.window ?? (typeof document !== \"undefined\" ? window : void 0);\n const originalPushState = win.history.pushState;\n const originalReplaceState = win.history.replaceState;\n let blockers = [];\n const _getBlockers = () => blockers;\n const _setBlockers = (newBlockers) => blockers = newBlockers;\n const createHref = opts?.createHref ?? ((path) => path);\n const parseLocation = opts?.parseLocation ?? (() => parseHref(\n `${win.location.pathname}${win.location.search}${win.location.hash}`,\n win.history.state\n ));\n if (!win.history.state?.__TSR_key && !win.history.state?.key) {\n const addedKey = createRandomKey();\n win.history.replaceState(\n {\n [stateIndexKey]: 0,\n key: addedKey,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: addedKey\n },\n \"\"\n );\n }\n let currentLocation = parseLocation();\n let rollbackLocation;\n let nextPopIsGo = false;\n let ignoreNextPop = false;\n let skipBlockerNextPop = false;\n let ignoreNextBeforeUnload = false;\n const getLocation = () => currentLocation;\n let next;\n let scheduled;\n const flush = () => {\n if (!next) {\n return;\n }\n history._ignoreSubscribers = true;\n (next.isPush ? win.history.pushState : win.history.replaceState)(\n next.state,\n \"\",\n next.href\n );\n history._ignoreSubscribers = false;\n next = void 0;\n scheduled = void 0;\n rollbackLocation = void 0;\n };\n const queueHistoryAction = (type, destHref, state) => {\n const href = createHref(destHref);\n if (!scheduled) {\n rollbackLocation = currentLocation;\n }\n currentLocation = parseHref(destHref, state);\n next = {\n href,\n state,\n isPush: next?.isPush || type === \"push\"\n };\n if (!scheduled) {\n scheduled = Promise.resolve().then(() => flush());\n }\n };\n const onPushPop = (type) => {\n currentLocation = parseLocation();\n history.notify({ type });\n };\n const onPushPopEvent = async () => {\n if (ignoreNextPop) {\n ignoreNextPop = false;\n return;\n }\n const nextLocation = parseLocation();\n const delta = nextLocation.state[stateIndexKey] - currentLocation.state[stateIndexKey];\n const isForward = delta === 1;\n const isBack = delta === -1;\n const isGo = !isForward && !isBack || nextPopIsGo;\n nextPopIsGo = false;\n const action = isGo ? \"GO\" : isBack ? \"BACK\" : \"FORWARD\";\n const notify = isGo ? {\n type: \"GO\",\n index: delta\n } : {\n type: isBack ? \"BACK\" : \"FORWARD\"\n };\n if (skipBlockerNextPop) {\n skipBlockerNextPop = false;\n } else {\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const isBlocked = await blocker.blockerFn({\n currentLocation,\n nextLocation,\n action\n });\n if (isBlocked) {\n ignoreNextPop = true;\n win.history.go(1);\n history.notify(notify);\n return;\n }\n }\n }\n }\n currentLocation = parseLocation();\n history.notify(notify);\n };\n const onBeforeUnload = (e) => {\n if (ignoreNextBeforeUnload) {\n ignoreNextBeforeUnload = false;\n return;\n }\n let shouldBlock = false;\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const shouldHaveBeforeUnload = blocker.enableBeforeUnload ?? true;\n if (shouldHaveBeforeUnload === true) {\n shouldBlock = true;\n break;\n }\n if (typeof shouldHaveBeforeUnload === \"function\" && shouldHaveBeforeUnload() === true) {\n shouldBlock = true;\n break;\n }\n }\n }\n if (shouldBlock) {\n e.preventDefault();\n return e.returnValue = \"\";\n }\n return;\n };\n const history = createHistory({\n getLocation,\n getLength: () => win.history.length,\n pushState: (href, state) => queueHistoryAction(\"push\", href, state),\n replaceState: (href, state) => queueHistoryAction(\"replace\", href, state),\n back: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n return win.history.back();\n },\n forward: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n win.history.forward();\n },\n go: (n) => {\n nextPopIsGo = true;\n win.history.go(n);\n },\n createHref: (href) => createHref(href),\n flush,\n destroy: () => {\n win.history.pushState = originalPushState;\n win.history.replaceState = originalReplaceState;\n win.removeEventListener(beforeUnloadEvent, onBeforeUnload, {\n capture: true\n });\n win.removeEventListener(popStateEvent, onPushPopEvent);\n },\n onBlocked: () => {\n if (rollbackLocation && currentLocation !== rollbackLocation) {\n currentLocation = rollbackLocation;\n }\n },\n getBlockers: _getBlockers,\n setBlockers: _setBlockers,\n notifyOnIndexChange: false\n });\n win.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });\n win.addEventListener(popStateEvent, onPushPopEvent);\n win.history.pushState = function(...args) {\n const res = originalPushState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"PUSH\");\n return res;\n };\n win.history.replaceState = function(...args) {\n const res = originalReplaceState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"REPLACE\");\n return res;\n };\n return history;\n}\nfunction createHashHistory(opts) {\n const win = opts?.window ?? (typeof document !== \"undefined\" ? window : void 0);\n return createBrowserHistory({\n window: win,\n parseLocation: () => {\n const hashSplit = win.location.hash.split(\"#\").slice(1);\n const pathPart = hashSplit[0] ?? \"/\";\n const searchPart = win.location.search;\n const hashEntries = hashSplit.slice(1);\n const hashPart = hashEntries.length === 0 ? \"\" : `#${hashEntries.join(\"#\")}`;\n const hashHref = `${pathPart}${searchPart}${hashPart}`;\n return parseHref(hashHref, win.history.state);\n },\n createHref: (href) => `${win.location.pathname}${win.location.search}#${href}`\n });\n}\nfunction createMemoryHistory(opts = {\n initialEntries: [\"/\"]\n}) {\n const entries = opts.initialEntries;\n let index = opts.initialIndex ? Math.min(Math.max(opts.initialIndex, 0), entries.length - 1) : entries.length - 1;\n const states = entries.map(\n (_entry, index2) => assignKeyAndIndex(index2, void 0)\n );\n const getLocation = () => parseHref(entries[index], states[index]);\n let blockers = [];\n const _getBlockers = () => blockers;\n const _setBlockers = (newBlockers) => blockers = newBlockers;\n return createHistory({\n getLocation,\n getLength: () => entries.length,\n pushState: (path, state) => {\n if (index < entries.length - 1) {\n entries.splice(index + 1);\n states.splice(index + 1);\n }\n states.push(state);\n entries.push(path);\n index = Math.max(entries.length - 1, 0);\n },\n replaceState: (path, state) => {\n states[index] = state;\n entries[index] = path;\n },\n back: () => {\n index = Math.max(index - 1, 0);\n },\n forward: () => {\n index = Math.min(index + 1, entries.length - 1);\n },\n go: (n) => {\n index = Math.min(Math.max(index + n, 0), entries.length - 1);\n },\n createHref: (path) => path,\n getBlockers: _getBlockers,\n setBlockers: _setBlockers\n });\n}\nfunction sanitizePath(path) {\n let sanitized = path.replace(/[\\x00-\\x1f\\x7f]/g, \"\");\n if (sanitized.startsWith(\"//\")) {\n sanitized = \"/\" + sanitized.replace(/^\\/+/, \"\");\n }\n return sanitized;\n}\nfunction parseHref(href, state) {\n const sanitizedHref = sanitizePath(href);\n const hashIndex = sanitizedHref.indexOf(\"#\");\n const searchIndex = sanitizedHref.indexOf(\"?\");\n const addedKey = createRandomKey();\n return {\n href: sanitizedHref,\n pathname: sanitizedHref.substring(\n 0,\n hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : sanitizedHref.length\n ),\n hash: hashIndex > -1 ? sanitizedHref.substring(hashIndex) : \"\",\n search: searchIndex > -1 ? sanitizedHref.slice(\n searchIndex,\n hashIndex === -1 ? void 0 : hashIndex\n ) : \"\",\n state: state || { [stateIndexKey]: 0, key: addedKey, __TSR_key: addedKey }\n };\n}\nfunction createRandomKey() {\n return (Math.random() + 1).toString(36).substring(7);\n}\nexport {\n createBrowserHistory,\n createHashHistory,\n createHistory,\n createMemoryHistory,\n parseHref\n};\n//# sourceMappingURL=index.js.map\n","const isServer = false;\nexport {\n isServer\n};\n//# sourceMappingURL=client.js.map\n","import { batch as batch$1 } from \"@tanstack/store\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nfunction batch(fn) {\n if (isServer) {\n return fn();\n }\n let result;\n batch$1(() => {\n result = fn();\n });\n return result;\n}\nexport {\n batch\n};\n//# sourceMappingURL=batch.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nfunction isFunction(d) {\n return typeof d === \"function\";\n}\nfunction functionalUpdate(updater, previous) {\n if (isFunction(updater)) {\n return updater(previous);\n }\n return updater;\n}\nconst hasOwn = Object.prototype.hasOwnProperty;\nconst isEnumerable = Object.prototype.propertyIsEnumerable;\nfunction replaceEqualDeep(prev, _next, _depth = 0) {\n if (isServer) {\n return _next;\n }\n if (prev === _next) {\n return prev;\n }\n if (_depth > 500) return _next;\n const next = _next;\n const array = isPlainArray(prev) && isPlainArray(next);\n if (!array && !(isPlainObject(prev) && isPlainObject(next))) return next;\n const prevItems = array ? prev : getEnumerableOwnKeys(prev);\n if (!prevItems) return next;\n const nextItems = array ? next : getEnumerableOwnKeys(next);\n if (!nextItems) return next;\n const prevSize = prevItems.length;\n const nextSize = nextItems.length;\n const copy = array ? new Array(nextSize) : {};\n let equalItems = 0;\n for (let i = 0; i < nextSize; i++) {\n const key = array ? i : nextItems[i];\n const p = prev[key];\n const n = next[key];\n if (p === n) {\n copy[key] = p;\n if (array ? i < prevSize : hasOwn.call(prev, key)) equalItems++;\n continue;\n }\n if (p === null || n === null || typeof p !== \"object\" || typeof n !== \"object\") {\n copy[key] = n;\n continue;\n }\n const v = replaceEqualDeep(p, n, _depth + 1);\n copy[key] = v;\n if (v === p) equalItems++;\n }\n return prevSize === nextSize && equalItems === prevSize ? prev : copy;\n}\nfunction getEnumerableOwnKeys(o) {\n const names = Object.getOwnPropertyNames(o);\n for (const name of names) {\n if (!isEnumerable.call(o, name)) return false;\n }\n const symbols = Object.getOwnPropertySymbols(o);\n if (symbols.length === 0) return names;\n const keys = names;\n for (const symbol of symbols) {\n if (!isEnumerable.call(o, symbol)) return false;\n keys.push(symbol);\n }\n return keys;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction deepEqual(a, b, opts) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n for (let i = 0, l = a.length; i < l; i++) {\n if (!deepEqual(a[i], b[i], opts)) return false;\n }\n return true;\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n const ignoreUndefined = opts?.ignoreUndefined ?? true;\n if (opts?.partial) {\n for (const k in b) {\n if (!ignoreUndefined || b[k] !== void 0) {\n if (!deepEqual(a[k], b[k], opts)) return false;\n }\n }\n return true;\n }\n let aCount = 0;\n if (!ignoreUndefined) {\n aCount = Object.keys(a).length;\n } else {\n for (const k in a) {\n if (a[k] !== void 0) aCount++;\n }\n }\n let bCount = 0;\n for (const k in b) {\n if (!ignoreUndefined || b[k] !== void 0) {\n bCount++;\n if (bCount > aCount || !deepEqual(a[k], b[k], opts)) return false;\n }\n }\n return aCount === bCount;\n }\n return false;\n}\nfunction createControlledPromise(onResolve) {\n let resolveLoadPromise;\n let rejectLoadPromise;\n const controlledPromise = new Promise((resolve, reject) => {\n resolveLoadPromise = resolve;\n rejectLoadPromise = reject;\n });\n controlledPromise.status = \"pending\";\n controlledPromise.resolve = (value) => {\n controlledPromise.status = \"resolved\";\n controlledPromise.value = value;\n resolveLoadPromise(value);\n onResolve?.(value);\n };\n controlledPromise.reject = (e) => {\n controlledPromise.status = \"rejected\";\n rejectLoadPromise(e);\n };\n return controlledPromise;\n}\nfunction isModuleNotFoundError(error) {\n if (typeof error?.message !== \"string\") return false;\n return error.message.startsWith(\"Failed to fetch dynamically imported module\") || error.message.startsWith(\"error loading dynamically imported module\") || error.message.startsWith(\"Importing a module script failed\");\n}\nfunction isPromise(value) {\n return Boolean(\n value && typeof value === \"object\" && typeof value.then === \"function\"\n );\n}\nfunction findLast(array, predicate) {\n for (let i = array.length - 1; i >= 0; i--) {\n const item = array[i];\n if (predicate(item)) return item;\n }\n return void 0;\n}\nfunction sanitizePathSegment(segment) {\n return segment.replace(/[\\x00-\\x1f\\x7f]/g, \"\");\n}\nfunction decodeSegment(segment) {\n let decoded;\n try {\n decoded = decodeURI(segment);\n } catch {\n decoded = segment.replaceAll(/%[0-9A-F]{2}/gi, (match) => {\n try {\n return decodeURI(match);\n } catch {\n return match;\n }\n });\n }\n return sanitizePathSegment(decoded);\n}\nconst SAFE_URL_PROTOCOLS = [\"http:\", \"https:\", \"mailto:\", \"tel:\"];\nfunction isDangerousProtocol(url) {\n if (!url) return false;\n try {\n const parsed = new URL(url);\n return !SAFE_URL_PROTOCOLS.includes(parsed.protocol);\n } catch {\n return false;\n }\n}\nconst HTML_ESCAPE_LOOKUP = {\n \"&\": \"\\\\u0026\",\n \">\": \"\\\\u003e\",\n \"<\": \"\\\\u003c\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n};\nconst HTML_ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(str) {\n return str.replace(HTML_ESCAPE_REGEX, (match) => HTML_ESCAPE_LOOKUP[match]);\n}\nfunction decodePath(path, decodeIgnore) {\n if (!path) return path;\n if (!/[%\\\\\\x00-\\x1f\\x7f]/.test(path) && !path.startsWith(\"//\")) {\n return path;\n }\n const re = decodeIgnore ? new RegExp(`${decodeIgnore.join(\"|\")}`, \"gi\") : /%25|%5C/gi;\n let cursor = 0;\n let result = \"\";\n let match;\n while (null !== (match = re.exec(path))) {\n result += decodeSegment(path.slice(cursor, match.index)) + match[0];\n cursor = re.lastIndex;\n }\n result = result + decodeSegment(cursor ? path.slice(cursor) : path);\n if (result.startsWith(\"//\")) {\n result = \"/\" + result.replace(/^\\/+/, \"\");\n }\n return result;\n}\nfunction encodeNonAscii(path) {\n if (!/[^\\u0000-\\u007F]/.test(path)) return path;\n return path.replace(/[^\\u0000-\\u007F]/gu, encodeURIComponent);\n}\nfunction buildDevStylesUrl(basepath, routeIds) {\n const trimmedBasepath = basepath.replace(/^\\/+|\\/+$/g, \"\");\n const normalizedBasepath = trimmedBasepath === \"\" ? \"\" : `/${trimmedBasepath}`;\n return `${normalizedBasepath}/@tanstack-start/styles.css?routes=${encodeURIComponent(routeIds.join(\",\"))}`;\n}\nexport {\n SAFE_URL_PROTOCOLS,\n buildDevStylesUrl,\n createControlledPromise,\n decodePath,\n deepEqual,\n encodeNonAscii,\n escapeHtml,\n findLast,\n functionalUpdate,\n isDangerousProtocol,\n isModuleNotFoundError,\n isPlainArray,\n isPlainObject,\n isPromise,\n last,\n replaceEqualDeep\n};\n//# sourceMappingURL=utils.js.map\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","function createLRUCache(max) {\n const cache = /* @__PURE__ */ new Map();\n let oldest;\n let newest;\n const touch = (entry) => {\n if (!entry.next) return;\n if (!entry.prev) {\n entry.next.prev = void 0;\n oldest = entry.next;\n entry.next = void 0;\n if (newest) {\n entry.prev = newest;\n newest.next = entry;\n }\n } else {\n entry.prev.next = entry.next;\n entry.next.prev = entry.prev;\n entry.next = void 0;\n if (newest) {\n newest.next = entry;\n entry.prev = newest;\n }\n }\n newest = entry;\n };\n return {\n get(key) {\n const entry = cache.get(key);\n if (!entry) return void 0;\n touch(entry);\n return entry.value;\n },\n set(key, value) {\n if (cache.size >= max && oldest) {\n const toDelete = oldest;\n cache.delete(toDelete.key);\n if (toDelete.next) {\n oldest = toDelete.next;\n toDelete.next.prev = void 0;\n }\n if (toDelete === newest) {\n newest = void 0;\n }\n }\n const existing = cache.get(key);\n if (existing) {\n existing.value = value;\n touch(existing);\n } else {\n const entry = { key, value, prev: newest };\n if (newest) newest.next = entry;\n newest = entry;\n if (!oldest) oldest = entry;\n cache.set(key, entry);\n }\n },\n clear() {\n cache.clear();\n oldest = void 0;\n newest = void 0;\n }\n };\n}\nexport {\n createLRUCache\n};\n//# sourceMappingURL=lru-cache.js.map\n","import invariant from \"tiny-invariant\";\nimport { createLRUCache } from \"./lru-cache.js\";\nimport { last } from \"./utils.js\";\nconst SEGMENT_TYPE_PATHNAME = 0;\nconst SEGMENT_TYPE_PARAM = 1;\nconst SEGMENT_TYPE_WILDCARD = 2;\nconst SEGMENT_TYPE_OPTIONAL_PARAM = 3;\nconst SEGMENT_TYPE_INDEX = 4;\nconst SEGMENT_TYPE_PATHLESS = 5;\nfunction getOpenAndCloseBraces(part) {\n const openBrace = part.indexOf(\"{\");\n if (openBrace === -1) return null;\n const closeBrace = part.indexOf(\"}\", openBrace);\n if (closeBrace === -1) return null;\n const afterOpen = openBrace + 1;\n if (afterOpen >= part.length) return null;\n return [openBrace, closeBrace];\n}\nfunction parseSegment(path, start, output = new Uint16Array(6)) {\n const next = path.indexOf(\"/\", start);\n const end = next === -1 ? path.length : next;\n const part = path.substring(start, end);\n if (!part || !part.includes(\"$\")) {\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n if (part === \"$\") {\n const total = path.length;\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start;\n output[2] = start;\n output[3] = total;\n output[4] = total;\n output[5] = total;\n return output;\n }\n if (part.charCodeAt(0) === 36) {\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start;\n output[2] = start + 1;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n }\n const braces = getOpenAndCloseBraces(part);\n if (braces) {\n const [openBrace, closeBrace] = braces;\n const firstChar = part.charCodeAt(openBrace + 1);\n if (firstChar === 45) {\n if (openBrace + 2 < part.length && part.charCodeAt(openBrace + 2) === 36) {\n const paramStart = openBrace + 3;\n const paramEnd = closeBrace;\n if (paramStart < paramEnd) {\n output[0] = SEGMENT_TYPE_OPTIONAL_PARAM;\n output[1] = start + openBrace;\n output[2] = start + paramStart;\n output[3] = start + paramEnd;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n } else if (firstChar === 36) {\n const dollarPos = openBrace + 1;\n const afterDollar = openBrace + 2;\n if (afterDollar === closeBrace) {\n output[0] = SEGMENT_TYPE_WILDCARD;\n output[1] = start + openBrace;\n output[2] = start + dollarPos;\n output[3] = start + afterDollar;\n output[4] = start + closeBrace + 1;\n output[5] = path.length;\n return output;\n }\n output[0] = SEGMENT_TYPE_PARAM;\n output[1] = start + openBrace;\n output[2] = start + afterDollar;\n output[3] = start + closeBrace;\n output[4] = start + closeBrace + 1;\n output[5] = end;\n return output;\n }\n }\n output[0] = SEGMENT_TYPE_PATHNAME;\n output[1] = start;\n output[2] = start;\n output[3] = end;\n output[4] = end;\n output[5] = end;\n return output;\n}\nfunction parseSegments(defaultCaseSensitive, data, route, start, node, depth, onRoute) {\n onRoute?.(route);\n let cursor = start;\n {\n const path = route.fullPath ?? route.from;\n const length = path.length;\n const caseSensitive = route.options?.caseSensitive ?? defaultCaseSensitive;\n const skipOnParamError = !!(route.options?.params?.parse && route.options?.skipRouteOnParseError?.params);\n while (cursor < length) {\n const segment = parseSegment(path, cursor, data);\n let nextNode;\n const start2 = cursor;\n const end = segment[5];\n cursor = end + 1;\n depth++;\n const kind = segment[0];\n switch (kind) {\n case SEGMENT_TYPE_PATHNAME: {\n const value = path.substring(segment[2], segment[3]);\n if (caseSensitive) {\n const existingNode = node.static?.get(value);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.static ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.static.set(value, next);\n }\n } else {\n const name = value.toLowerCase();\n const existingNode = node.staticInsensitive?.get(name);\n if (existingNode) {\n nextNode = existingNode;\n } else {\n node.staticInsensitive ??= /* @__PURE__ */ new Map();\n const next = createStaticNode(\n route.fullPath ?? route.from\n );\n next.parent = node;\n next.depth = depth;\n nextNode = next;\n node.staticInsensitive.set(name, next);\n }\n }\n break;\n }\n case SEGMENT_TYPE_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.dynamic?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.depth = depth;\n next.parent = node;\n node.dynamic ??= [];\n node.dynamic.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_OPTIONAL_PARAM: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const existingNode = !skipOnParamError && node.optional?.find(\n (s) => !s.skipOnParamError && s.caseSensitive === actuallyCaseSensitive && s.prefix === prefix && s.suffix === suffix\n );\n if (existingNode) {\n nextNode = existingNode;\n } else {\n const next = createDynamicNode(\n SEGMENT_TYPE_OPTIONAL_PARAM,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.optional ??= [];\n node.optional.push(next);\n }\n break;\n }\n case SEGMENT_TYPE_WILDCARD: {\n const prefix_raw = path.substring(start2, segment[1]);\n const suffix_raw = path.substring(segment[4], end);\n const actuallyCaseSensitive = caseSensitive && !!(prefix_raw || suffix_raw);\n const prefix = !prefix_raw ? void 0 : actuallyCaseSensitive ? prefix_raw : prefix_raw.toLowerCase();\n const suffix = !suffix_raw ? void 0 : actuallyCaseSensitive ? suffix_raw : suffix_raw.toLowerCase();\n const next = createDynamicNode(\n SEGMENT_TYPE_WILDCARD,\n route.fullPath ?? route.from,\n actuallyCaseSensitive,\n prefix,\n suffix\n );\n nextNode = next;\n next.parent = node;\n next.depth = depth;\n node.wildcard ??= [];\n node.wildcard.push(next);\n }\n }\n node = nextNode;\n }\n if (skipOnParamError && route.children && !route.isRoot && route.id && route.id.charCodeAt(route.id.lastIndexOf(\"/\") + 1) === 95) {\n const pathlessNode = createStaticNode(\n route.fullPath ?? route.from\n );\n pathlessNode.kind = SEGMENT_TYPE_PATHLESS;\n pathlessNode.parent = node;\n depth++;\n pathlessNode.depth = depth;\n node.pathless ??= [];\n node.pathless.push(pathlessNode);\n node = pathlessNode;\n }\n const isLeaf = (route.path || !route.children) && !route.isRoot;\n if (isLeaf && path.endsWith(\"/\")) {\n const indexNode = createStaticNode(\n route.fullPath ?? route.from\n );\n indexNode.kind = SEGMENT_TYPE_INDEX;\n indexNode.parent = node;\n depth++;\n indexNode.depth = depth;\n node.index = indexNode;\n node = indexNode;\n }\n node.parse = route.options?.params?.parse ?? null;\n node.skipOnParamError = skipOnParamError;\n node.parsingPriority = route.options?.skipRouteOnParseError?.priority ?? 0;\n if (isLeaf && !node.route) {\n node.route = route;\n node.fullPath = route.fullPath ?? route.from;\n }\n }\n if (route.children)\n for (const child of route.children) {\n parseSegments(\n defaultCaseSensitive,\n data,\n child,\n cursor,\n node,\n depth,\n onRoute\n );\n }\n}\nfunction sortDynamic(a, b) {\n if (a.skipOnParamError && !b.skipOnParamError) return -1;\n if (!a.skipOnParamError && b.skipOnParamError) return 1;\n if (a.skipOnParamError && b.skipOnParamError && (a.parsingPriority || b.parsingPriority))\n return b.parsingPriority - a.parsingPriority;\n if (a.prefix && b.prefix && a.prefix !== b.prefix) {\n if (a.prefix.startsWith(b.prefix)) return -1;\n if (b.prefix.startsWith(a.prefix)) return 1;\n }\n if (a.suffix && b.suffix && a.suffix !== b.suffix) {\n if (a.suffix.endsWith(b.suffix)) return -1;\n if (b.suffix.endsWith(a.suffix)) return 1;\n }\n if (a.prefix && !b.prefix) return -1;\n if (!a.prefix && b.prefix) return 1;\n if (a.suffix && !b.suffix) return -1;\n if (!a.suffix && b.suffix) return 1;\n if (a.caseSensitive && !b.caseSensitive) return -1;\n if (!a.caseSensitive && b.caseSensitive) return 1;\n return 0;\n}\nfunction sortTreeNodes(node) {\n if (node.pathless) {\n for (const child of node.pathless) {\n sortTreeNodes(child);\n }\n }\n if (node.static) {\n for (const child of node.static.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.staticInsensitive) {\n for (const child of node.staticInsensitive.values()) {\n sortTreeNodes(child);\n }\n }\n if (node.dynamic?.length) {\n node.dynamic.sort(sortDynamic);\n for (const child of node.dynamic) {\n sortTreeNodes(child);\n }\n }\n if (node.optional?.length) {\n node.optional.sort(sortDynamic);\n for (const child of node.optional) {\n sortTreeNodes(child);\n }\n }\n if (node.wildcard?.length) {\n node.wildcard.sort(sortDynamic);\n for (const child of node.wildcard) {\n sortTreeNodes(child);\n }\n }\n}\nfunction createStaticNode(fullPath) {\n return {\n kind: SEGMENT_TYPE_PATHNAME,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0\n };\n}\nfunction createDynamicNode(kind, fullPath, caseSensitive, prefix, suffix) {\n return {\n kind,\n depth: 0,\n pathless: null,\n index: null,\n static: null,\n staticInsensitive: null,\n dynamic: null,\n optional: null,\n wildcard: null,\n route: null,\n fullPath,\n parent: null,\n parse: null,\n skipOnParamError: false,\n parsingPriority: 0,\n caseSensitive,\n prefix,\n suffix\n };\n}\nfunction processRouteMasks(routeList, processedTree) {\n const segmentTree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n for (const route of routeList) {\n parseSegments(false, data, route, 1, segmentTree, 0);\n }\n sortTreeNodes(segmentTree);\n processedTree.masksTree = segmentTree;\n processedTree.flatCache = createLRUCache(1e3);\n}\nfunction findFlatMatch(path, processedTree) {\n path ||= \"/\";\n const cached = processedTree.flatCache.get(path);\n if (cached) return cached;\n const result = findMatch(path, processedTree.masksTree);\n processedTree.flatCache.set(path, result);\n return result;\n}\nfunction findSingleMatch(from, caseSensitive, fuzzy, path, processedTree) {\n from ||= \"/\";\n path ||= \"/\";\n const key = caseSensitive ? `case\\0${from}` : from;\n let tree = processedTree.singleCache.get(key);\n if (!tree) {\n tree = createStaticNode(\"/\");\n const data = new Uint16Array(6);\n parseSegments(caseSensitive, data, { from }, 1, tree, 0);\n processedTree.singleCache.set(key, tree);\n }\n return findMatch(path, tree, fuzzy);\n}\nfunction findRouteMatch(path, processedTree, fuzzy = false) {\n const key = fuzzy ? path : `nofuzz\\0${path}`;\n const cached = processedTree.matchCache.get(key);\n if (cached !== void 0) return cached;\n path ||= \"/\";\n let result;\n try {\n result = findMatch(\n path,\n processedTree.segmentTree,\n fuzzy\n );\n } catch (err) {\n if (err instanceof URIError) {\n result = null;\n } else {\n throw err;\n }\n }\n if (result) result.branch = buildRouteBranch(result.route);\n processedTree.matchCache.set(key, result);\n return result;\n}\nfunction trimPathRight(path) {\n return path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\nfunction processRouteTree(routeTree, caseSensitive = false, initRoute) {\n const segmentTree = createStaticNode(routeTree.fullPath);\n const data = new Uint16Array(6);\n const routesById = {};\n const routesByPath = {};\n let index = 0;\n parseSegments(caseSensitive, data, routeTree, 1, segmentTree, 0, (route) => {\n initRoute?.(route, index);\n invariant(\n !(route.id in routesById),\n `Duplicate routes found with id: ${String(route.id)}`\n );\n routesById[route.id] = route;\n if (index !== 0 && route.path) {\n const trimmedFullPath = trimPathRight(route.fullPath);\n if (!routesByPath[trimmedFullPath] || route.fullPath.endsWith(\"/\")) {\n routesByPath[trimmedFullPath] = route;\n }\n }\n index++;\n });\n sortTreeNodes(segmentTree);\n const processedTree = {\n segmentTree,\n singleCache: createLRUCache(1e3),\n matchCache: createLRUCache(1e3),\n flatCache: null,\n masksTree: null\n };\n return {\n processedTree,\n routesById,\n routesByPath\n };\n}\nfunction findMatch(path, segmentTree, fuzzy = false) {\n const parts = path.split(\"/\");\n const leaf = getNodeMatch(path, parts, segmentTree, fuzzy);\n if (!leaf) return null;\n const [rawParams] = extractParams(path, parts, leaf);\n return {\n route: leaf.node.route,\n rawParams,\n parsedParams: leaf.parsedParams\n };\n}\nfunction extractParams(path, parts, leaf) {\n const list = buildBranch(leaf.node);\n let nodeParts = null;\n const rawParams = {};\n let partIndex = leaf.extract?.part ?? 0;\n let nodeIndex = leaf.extract?.node ?? 0;\n let pathIndex = leaf.extract?.path ?? 0;\n let segmentCount = leaf.extract?.segment ?? 0;\n for (; nodeIndex < list.length; partIndex++, nodeIndex++, pathIndex++, segmentCount++) {\n const node = list[nodeIndex];\n if (node.kind === SEGMENT_TYPE_INDEX) break;\n if (node.kind === SEGMENT_TYPE_PATHLESS) {\n segmentCount--;\n partIndex--;\n pathIndex--;\n continue;\n }\n const part = parts[partIndex];\n const currentPathIndex = pathIndex;\n if (part) pathIndex += part.length;\n if (node.kind === SEGMENT_TYPE_PARAM) {\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const isCurlyBraced = nodePart.charCodeAt(preLength) === 123;\n if (isCurlyBraced) {\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 2,\n nodePart.length - sufLength - 1\n );\n const value = part.substring(preLength, part.length - sufLength);\n rawParams[name] = decodeURIComponent(value);\n } else {\n const name = nodePart.substring(1);\n rawParams[name] = decodeURIComponent(part);\n }\n } else if (node.kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n if (leaf.skipped & 1 << nodeIndex) {\n partIndex--;\n pathIndex = currentPathIndex - 1;\n continue;\n }\n nodeParts ??= leaf.node.fullPath.split(\"/\");\n const nodePart = nodeParts[segmentCount];\n const preLength = node.prefix?.length ?? 0;\n const sufLength = node.suffix?.length ?? 0;\n const name = nodePart.substring(\n preLength + 3,\n nodePart.length - sufLength - 1\n );\n const value = node.suffix || node.prefix ? part.substring(preLength, part.length - sufLength) : part;\n if (value) rawParams[name] = decodeURIComponent(value);\n } else if (node.kind === SEGMENT_TYPE_WILDCARD) {\n const n = node;\n const value = path.substring(\n currentPathIndex + (n.prefix?.length ?? 0),\n path.length - (n.suffix?.length ?? 0)\n );\n const splat = decodeURIComponent(value);\n rawParams[\"*\"] = splat;\n rawParams._splat = splat;\n break;\n }\n }\n if (leaf.rawParams) Object.assign(rawParams, leaf.rawParams);\n return [\n rawParams,\n {\n part: partIndex,\n node: nodeIndex,\n path: pathIndex,\n segment: segmentCount\n }\n ];\n}\nfunction buildRouteBranch(route) {\n const list = [route];\n while (route.parentRoute) {\n route = route.parentRoute;\n list.push(route);\n }\n list.reverse();\n return list;\n}\nfunction buildBranch(node) {\n const list = Array(node.depth + 1);\n do {\n list[node.depth] = node;\n node = node.parent;\n } while (node);\n return list;\n}\nfunction getNodeMatch(path, parts, segmentTree, fuzzy) {\n if (path === \"/\" && segmentTree.index)\n return { node: segmentTree.index, skipped: 0 };\n const trailingSlash = !last(parts);\n const pathIsIndex = trailingSlash && path !== \"/\";\n const partsLength = parts.length - (trailingSlash ? 1 : 0);\n const stack = [\n {\n node: segmentTree,\n index: 1,\n skipped: 0,\n depth: 1,\n statics: 1,\n dynamics: 0,\n optionals: 0\n }\n ];\n let wildcardMatch = null;\n let bestFuzzy = null;\n let bestMatch = null;\n while (stack.length) {\n const frame = stack.pop();\n const { node, index, skipped, depth, statics, dynamics, optionals } = frame;\n let { extract, rawParams, parsedParams } = frame;\n if (node.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame);\n if (!result) continue;\n rawParams = frame.rawParams;\n extract = frame.extract;\n parsedParams = frame.parsedParams;\n }\n if (fuzzy && node.route && node.kind !== SEGMENT_TYPE_INDEX && isFrameMoreSpecific(bestFuzzy, frame)) {\n bestFuzzy = frame;\n }\n const isBeyondPath = index === partsLength;\n if (isBeyondPath) {\n if (node.route && !pathIsIndex && isFrameMoreSpecific(bestMatch, frame)) {\n bestMatch = frame;\n }\n if (!node.optional && !node.wildcard && !node.index && !node.pathless)\n continue;\n }\n const part = isBeyondPath ? void 0 : parts[index];\n let lowerPart;\n if (isBeyondPath && node.index) {\n const indexFrame = {\n node: node.index,\n index,\n skipped,\n depth: depth + 1,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n let indexValid = true;\n if (node.index.skipOnParamError) {\n const result = validateMatchParams(path, parts, indexFrame);\n if (!result) indexValid = false;\n }\n if (indexValid) {\n if (statics === partsLength && !dynamics && !optionals && !skipped) {\n return indexFrame;\n }\n if (isFrameMoreSpecific(bestMatch, indexFrame)) {\n bestMatch = indexFrame;\n }\n }\n }\n if (node.wildcard && isFrameMoreSpecific(wildcardMatch, frame)) {\n for (const segment of node.wildcard) {\n const { prefix, suffix } = segment;\n if (prefix) {\n if (isBeyondPath) continue;\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (!casePart.startsWith(prefix)) continue;\n }\n if (suffix) {\n if (isBeyondPath) continue;\n const end = parts.slice(index).join(\"/\").slice(-suffix.length);\n const casePart = segment.caseSensitive ? end : end.toLowerCase();\n if (casePart !== suffix) continue;\n }\n const frame2 = {\n node: segment,\n index: partsLength,\n skipped,\n depth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n };\n if (segment.skipOnParamError) {\n const result = validateMatchParams(path, parts, frame2);\n if (!result) continue;\n }\n wildcardMatch = frame2;\n break;\n }\n }\n if (node.optional) {\n const nextSkipped = skipped | 1 << depth;\n const nextDepth = depth + 1;\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n stack.push({\n node: segment,\n index,\n skipped: nextSkipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n if (!isBeyondPath) {\n for (let i = node.optional.length - 1; i >= 0; i--) {\n const segment = node.optional[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals: optionals + 1,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (!isBeyondPath && node.dynamic && part) {\n for (let i = node.dynamic.length - 1; i >= 0; i--) {\n const segment = node.dynamic[i];\n const { prefix, suffix } = segment;\n if (prefix || suffix) {\n const casePart = segment.caseSensitive ? part : lowerPart ??= part.toLowerCase();\n if (prefix && !casePart.startsWith(prefix)) continue;\n if (suffix && !casePart.endsWith(suffix)) continue;\n }\n stack.push({\n node: segment,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics,\n dynamics: dynamics + 1,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.staticInsensitive) {\n const match = node.staticInsensitive.get(\n lowerPart ??= part.toLowerCase()\n );\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (!isBeyondPath && node.static) {\n const match = node.static.get(part);\n if (match) {\n stack.push({\n node: match,\n index: index + 1,\n skipped,\n depth: depth + 1,\n statics: statics + 1,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n if (node.pathless) {\n const nextDepth = depth + 1;\n for (let i = node.pathless.length - 1; i >= 0; i--) {\n const segment = node.pathless[i];\n stack.push({\n node: segment,\n index,\n skipped,\n depth: nextDepth,\n statics,\n dynamics,\n optionals,\n extract,\n rawParams,\n parsedParams\n });\n }\n }\n }\n if (bestMatch && wildcardMatch) {\n return isFrameMoreSpecific(wildcardMatch, bestMatch) ? bestMatch : wildcardMatch;\n }\n if (bestMatch) return bestMatch;\n if (wildcardMatch) return wildcardMatch;\n if (fuzzy && bestFuzzy) {\n let sliceIndex = bestFuzzy.index;\n for (let i = 0; i < bestFuzzy.index; i++) {\n sliceIndex += parts[i].length;\n }\n const splat = sliceIndex === path.length ? \"/\" : path.slice(sliceIndex);\n bestFuzzy.rawParams ??= {};\n bestFuzzy.rawParams[\"**\"] = decodeURIComponent(splat);\n return bestFuzzy;\n }\n return null;\n}\nfunction validateMatchParams(path, parts, frame) {\n try {\n const [rawParams, state] = extractParams(path, parts, frame);\n frame.rawParams = rawParams;\n frame.extract = state;\n const parsed = frame.node.parse(rawParams);\n frame.parsedParams = Object.assign({}, frame.parsedParams, parsed);\n return true;\n } catch {\n return null;\n }\n}\nfunction isFrameMoreSpecific(prev, next) {\n if (!prev) return true;\n return next.statics > prev.statics || next.statics === prev.statics && (next.dynamics > prev.dynamics || next.dynamics === prev.dynamics && (next.optionals > prev.optionals || next.optionals === prev.optionals && ((next.node.kind === SEGMENT_TYPE_INDEX) > (prev.node.kind === SEGMENT_TYPE_INDEX) || next.node.kind === SEGMENT_TYPE_INDEX === (prev.node.kind === SEGMENT_TYPE_INDEX) && next.depth > prev.depth)));\n}\nexport {\n SEGMENT_TYPE_OPTIONAL_PARAM,\n SEGMENT_TYPE_PARAM,\n SEGMENT_TYPE_PATHNAME,\n SEGMENT_TYPE_WILDCARD,\n findFlatMatch,\n findRouteMatch,\n findSingleMatch,\n parseSegment,\n processRouteMasks,\n processRouteTree,\n trimPathRight\n};\n//# sourceMappingURL=new-process-route-tree.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nimport { last } from \"./utils.js\";\nimport { parseSegment, SEGMENT_TYPE_PATHNAME, SEGMENT_TYPE_WILDCARD, SEGMENT_TYPE_PARAM, SEGMENT_TYPE_OPTIONAL_PARAM } from \"./new-process-route-tree.js\";\nfunction joinPaths(paths) {\n return cleanPath(\n paths.filter((val) => {\n return val !== void 0;\n }).join(\"/\")\n );\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n const len = path.length;\n return len > 1 && path[len - 1] === \"/\" ? path.replace(/\\/{1,}$/, \"\") : path;\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if (value?.endsWith(\"/\") && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction resolvePath({\n base,\n to,\n trailingSlash = \"never\",\n cache\n}) {\n const isAbsolute = to.startsWith(\"/\");\n const isBase = !isAbsolute && to === \".\";\n let key;\n if (cache) {\n key = isAbsolute ? to : isBase ? base : base + \"\\0\" + to;\n const cached = cache.get(key);\n if (cached) return cached;\n }\n let baseSegments;\n if (isBase) {\n baseSegments = base.split(\"/\");\n } else if (isAbsolute) {\n baseSegments = to.split(\"/\");\n } else {\n baseSegments = base.split(\"/\");\n while (baseSegments.length > 1 && last(baseSegments) === \"\") {\n baseSegments.pop();\n }\n const toSegments = to.split(\"/\");\n for (let index = 0, length = toSegments.length; index < length; index++) {\n const value = toSegments[index];\n if (value === \"\") {\n if (!index) {\n baseSegments = [value];\n } else if (index === length - 1) {\n baseSegments.push(value);\n } else ;\n } else if (value === \"..\") {\n baseSegments.pop();\n } else if (value === \".\") ;\n else {\n baseSegments.push(value);\n }\n }\n }\n if (baseSegments.length > 1) {\n if (last(baseSegments) === \"\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push(\"\");\n }\n }\n let segment;\n let joined = \"\";\n for (let i = 0; i < baseSegments.length; i++) {\n if (i > 0) joined += \"/\";\n const part = baseSegments[i];\n if (!part) continue;\n segment = parseSegment(part, 0, segment);\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += part;\n continue;\n }\n const end = segment[5];\n const prefix = part.substring(0, segment[1]);\n const suffix = part.substring(segment[4], end);\n const value = part.substring(segment[2], segment[3]);\n if (kind === SEGMENT_TYPE_PARAM) {\n joined += prefix || suffix ? `${prefix}{$${value}}${suffix}` : `$${value}`;\n } else if (kind === SEGMENT_TYPE_WILDCARD) {\n joined += prefix || suffix ? `${prefix}{$}${suffix}` : \"$\";\n } else {\n joined += `${prefix}{-$${value}}${suffix}`;\n }\n }\n joined = cleanPath(joined);\n const result = joined || \"/\";\n if (key && cache) cache.set(key, result);\n return result;\n}\nfunction compileDecodeCharMap(pathParamsAllowedCharacters) {\n const charMap = new Map(\n pathParamsAllowedCharacters.map((char) => [encodeURIComponent(char), char])\n );\n const pattern = Array.from(charMap.keys()).map((key) => key.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")).join(\"|\");\n const regex = new RegExp(pattern, \"g\");\n return (encoded) => encoded.replace(regex, (match) => charMap.get(match) ?? match);\n}\nfunction encodeParam(key, params, decoder) {\n const value = params[key];\n if (typeof value !== \"string\") return value;\n if (key === \"_splat\") {\n return encodeURI(value);\n } else {\n return encodePathParam(value, decoder);\n }\n}\nfunction interpolatePath({\n path,\n params,\n decoder,\n server\n}) {\n let isMissingParams = false;\n const usedParams = {};\n if (!path || path === \"/\")\n return { interpolatedPath: \"/\", usedParams, isMissingParams };\n if (!path.includes(\"$\"))\n return { interpolatedPath: path, usedParams, isMissingParams };\n if (isServer ?? server) {\n if (path.indexOf(\"{\") === -1) {\n const length2 = path.length;\n let cursor2 = 0;\n let joined2 = \"\";\n while (cursor2 < length2) {\n while (cursor2 < length2 && path.charCodeAt(cursor2) === 47) cursor2++;\n if (cursor2 >= length2) break;\n const start = cursor2;\n let end = path.indexOf(\"/\", cursor2);\n if (end === -1) end = length2;\n cursor2 = end;\n const part = path.substring(start, end);\n if (!part) continue;\n if (part.charCodeAt(0) === 36) {\n if (part.length === 1) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n if (!splat) {\n isMissingParams = true;\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined2 += \"/\" + value;\n } else {\n const key = part.substring(1);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined2 += \"/\" + value;\n }\n } else {\n joined2 += \"/\" + part;\n }\n }\n if (path.endsWith(\"/\")) joined2 += \"/\";\n const interpolatedPath2 = joined2 || \"/\";\n return { usedParams, interpolatedPath: interpolatedPath2, isMissingParams };\n }\n }\n const length = path.length;\n let cursor = 0;\n let segment;\n let joined = \"\";\n while (cursor < length) {\n const start = cursor;\n segment = parseSegment(path, start, segment);\n const end = segment[5];\n cursor = end + 1;\n if (start === end) continue;\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += \"/\" + path.substring(start, end);\n continue;\n }\n if (kind === SEGMENT_TYPE_WILDCARD) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n if (!splat) {\n isMissingParams = true;\n if (prefix || suffix) {\n joined += \"/\" + prefix + suffix;\n }\n continue;\n }\n const value = encodeParam(\"_splat\", params, decoder);\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"undefined\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n const valueRaw = params[key];\n if (valueRaw == null) continue;\n usedParams[key] = valueRaw;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decoder) ?? \"\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n }\n if (path.endsWith(\"/\")) joined += \"/\";\n const interpolatedPath = joined || \"/\";\n return { usedParams, interpolatedPath, isMissingParams };\n}\nfunction encodePathParam(value, decoder) {\n const encoded = encodeURIComponent(value);\n return decoder?.(encoded) ?? encoded;\n}\nexport {\n cleanPath,\n compileDecodeCharMap,\n exactPathTest,\n interpolatePath,\n joinPaths,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","function notFound(options = {}) {\n options.isNotFound = true;\n if (options.throw) throw options;\n return options;\n}\nfunction isNotFound(obj) {\n return !!obj?.isNotFound;\n}\nexport {\n isNotFound,\n notFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { isServer } from \"@tanstack/router-core/isServer\";\nimport { functionalUpdate } from \"./utils.js\";\nfunction getSafeSessionStorage() {\n try {\n if (typeof window !== \"undefined\" && typeof window.sessionStorage === \"object\") {\n return window.sessionStorage;\n }\n } catch {\n }\n return void 0;\n}\nconst storageKey = \"tsr-scroll-restoration-v1_3\";\nconst throttle = (fn, wait) => {\n let timeout;\n return (...args) => {\n if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n timeout = null;\n }, wait);\n }\n };\n};\nfunction createScrollRestorationCache() {\n const safeSessionStorage = getSafeSessionStorage();\n if (!safeSessionStorage) {\n return null;\n }\n const persistedState = safeSessionStorage.getItem(storageKey);\n let state = persistedState ? JSON.parse(persistedState) : {};\n return {\n state,\n // This setter is simply to make sure that we set the sessionStorage right\n // after the state is updated. It doesn't necessarily need to be a functional\n // update.\n set: (updater) => {\n state = functionalUpdate(updater, state) || state;\n try {\n safeSessionStorage.setItem(storageKey, JSON.stringify(state));\n } catch {\n console.warn(\n \"[ts-router] Could not persist scroll restoration state to sessionStorage.\"\n );\n }\n }\n };\n}\nconst scrollRestorationCache = createScrollRestorationCache();\nconst defaultGetScrollRestorationKey = (location) => {\n return location.state.__TSR_key || location.href;\n};\nfunction getCssSelector(el) {\n const path = [];\n let parent;\n while (parent = el.parentNode) {\n path.push(\n `${el.tagName}:nth-child(${Array.prototype.indexOf.call(parent.children, el) + 1})`\n );\n el = parent;\n }\n return `${path.reverse().join(\" > \")}`.toLowerCase();\n}\nlet ignoreScroll = false;\nfunction restoreScroll({\n storageKey: storageKey2,\n key,\n behavior,\n shouldScrollRestoration,\n scrollToTopSelectors,\n location\n}) {\n let byKey;\n try {\n byKey = JSON.parse(sessionStorage.getItem(storageKey2) || \"{}\");\n } catch (error) {\n console.error(error);\n return;\n }\n const resolvedKey = key || window.history.state?.__TSR_key;\n const elementEntries = byKey[resolvedKey];\n ignoreScroll = true;\n scroll: {\n if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {\n for (const elementSelector in elementEntries) {\n const entry = elementEntries[elementSelector];\n if (elementSelector === \"window\") {\n window.scrollTo({\n top: entry.scrollY,\n left: entry.scrollX,\n behavior\n });\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n element.scrollLeft = entry.scrollX;\n element.scrollTop = entry.scrollY;\n }\n }\n }\n break scroll;\n }\n const hash = (location ?? window.location).hash.split(\"#\", 2)[1];\n if (hash) {\n const hashScrollIntoViewOptions = window.history.state?.__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions) {\n const el = document.getElementById(hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n break scroll;\n }\n const scrollOptions = { top: 0, left: 0, behavior };\n window.scrollTo(scrollOptions);\n if (scrollToTopSelectors) {\n for (const selector of scrollToTopSelectors) {\n if (selector === \"window\") continue;\n const element = typeof selector === \"function\" ? selector() : document.querySelector(selector);\n if (element) element.scrollTo(scrollOptions);\n }\n }\n }\n ignoreScroll = false;\n}\nfunction setupScrollRestoration(router, force) {\n if (!scrollRestorationCache && !(isServer ?? router.isServer)) {\n return;\n }\n const shouldScrollRestoration = force ?? router.options.scrollRestoration ?? false;\n if (shouldScrollRestoration) {\n router.isScrollRestoring = true;\n }\n if ((isServer ?? router.isServer) || router.isScrollRestorationSetup || !scrollRestorationCache) {\n return;\n }\n router.isScrollRestorationSetup = true;\n ignoreScroll = false;\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n window.history.scrollRestoration = \"manual\";\n const onScroll = (event) => {\n if (ignoreScroll || !router.isScrollRestoring) {\n return;\n }\n let elementSelector = \"\";\n if (event.target === document || event.target === window) {\n elementSelector = \"window\";\n } else {\n const attrId = event.target.getAttribute(\n \"data-scroll-restoration-id\"\n );\n if (attrId) {\n elementSelector = `[data-scroll-restoration-id=\"${attrId}\"]`;\n } else {\n elementSelector = getCssSelector(event.target);\n }\n }\n const restoreKey = getKey(router.state.location);\n scrollRestorationCache.set((state) => {\n const keyEntry = state[restoreKey] ||= {};\n const elementEntry = keyEntry[elementSelector] ||= {};\n if (elementSelector === \"window\") {\n elementEntry.scrollX = window.scrollX || 0;\n elementEntry.scrollY = window.scrollY || 0;\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n elementEntry.scrollX = element.scrollLeft || 0;\n elementEntry.scrollY = element.scrollTop || 0;\n }\n }\n return state;\n });\n };\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"scroll\", throttle(onScroll, 100), true);\n }\n router.subscribe(\"onRendered\", (event) => {\n const cacheKey = getKey(event.toLocation);\n if (!router.resetNextScroll) {\n router.resetNextScroll = true;\n return;\n }\n if (typeof router.options.scrollRestoration === \"function\") {\n const shouldRestore = router.options.scrollRestoration({\n location: router.latestLocation\n });\n if (!shouldRestore) {\n return;\n }\n }\n restoreScroll({\n storageKey,\n key: cacheKey,\n behavior: router.options.scrollRestorationBehavior,\n shouldScrollRestoration: router.isScrollRestoring,\n scrollToTopSelectors: router.options.scrollToTopSelectors,\n location: router.history.location\n });\n if (router.isScrollRestoring) {\n scrollRestorationCache.set((state) => {\n state[cacheKey] ||= {};\n return state;\n });\n }\n });\n}\nfunction handleHashScroll(router) {\n if (typeof document !== \"undefined\" && document.querySelector) {\n const hashScrollIntoViewOptions = router.state.location.state.__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions && router.state.location.hash !== \"\") {\n const el = document.getElementById(router.state.location.hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n }\n}\nexport {\n defaultGetScrollRestorationKey,\n getCssSelector,\n handleHashScroll,\n restoreScroll,\n scrollRestorationCache,\n setupScrollRestoration,\n storageKey\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","function encode(obj, stringify = String) {\n const result = new URLSearchParams();\n for (const key in obj) {\n const val = obj[key];\n if (val !== void 0) {\n result.set(key, stringify(val));\n }\n }\n return result.toString();\n}\nfunction toValue(str) {\n if (!str) return \"\";\n if (str === \"false\") return false;\n if (str === \"true\") return true;\n return +str * 0 === 0 && +str + \"\" === str ? +str : str;\n}\nfunction decode(str) {\n const searchParams = new URLSearchParams(str);\n const result = {};\n for (const [key, value] of searchParams.entries()) {\n const previousValue = result[key];\n if (previousValue == null) {\n result[key] = toValue(value);\n } else if (Array.isArray(previousValue)) {\n previousValue.push(toValue(value));\n } else {\n result[key] = [previousValue, toValue(value)];\n }\n }\n return result;\n}\nexport {\n decode,\n encode\n};\n//# sourceMappingURL=qss.js.map\n","import { decode, encode } from \"./qss.js\";\nconst defaultParseSearch = parseSearchWith(JSON.parse);\nconst defaultStringifySearch = stringifySearchWith(\n JSON.stringify,\n JSON.parse\n);\nfunction parseSearchWith(parser) {\n return (searchStr) => {\n if (searchStr[0] === \"?\") {\n searchStr = searchStr.substring(1);\n }\n const query = decode(searchStr);\n for (const key in query) {\n const value = query[key];\n if (typeof value === \"string\") {\n try {\n query[key] = parser(value);\n } catch (_err) {\n }\n }\n }\n return query;\n };\n}\nfunction stringifySearchWith(stringify, parser) {\n const hasParser = typeof parser === \"function\";\n function stringifyValue(val) {\n if (typeof val === \"object\" && val !== null) {\n try {\n return stringify(val);\n } catch (_err) {\n }\n } else if (hasParser && typeof val === \"string\") {\n try {\n parser(val);\n return stringify(val);\n } catch (_err) {\n }\n }\n return val;\n }\n return (search) => {\n const searchStr = encode(search, stringifyValue);\n return searchStr ? `?${searchStr}` : \"\";\n };\n}\nexport {\n defaultParseSearch,\n defaultStringifySearch,\n parseSearchWith,\n stringifySearchWith\n};\n//# sourceMappingURL=searchParams.js.map\n","const rootRouteId = \"__root__\";\nexport {\n rootRouteId\n};\n//# sourceMappingURL=root.js.map\n","import { isDangerousProtocol, SAFE_URL_PROTOCOLS } from \"./utils.js\";\nfunction redirect(opts) {\n opts.statusCode = opts.statusCode || opts.code || 307;\n if (!opts._builtLocation && typeof opts.href === \"string\" && isDangerousProtocol(opts.href)) {\n throw new Error(\n `Redirect blocked: unsafe protocol in href \"${opts.href}\". Only ${SAFE_URL_PROTOCOLS.join(\", \")} protocols are allowed.`\n );\n }\n if (!opts._builtLocation && !opts.reloadDocument && typeof opts.href === \"string\") {\n try {\n new URL(opts.href);\n opts.reloadDocument = true;\n } catch {\n }\n }\n const headers = new Headers(opts.headers);\n if (opts.href && headers.get(\"Location\") === null) {\n headers.set(\"Location\", opts.href);\n }\n const response = new Response(null, {\n status: opts.statusCode,\n headers\n });\n response.options = opts;\n if (opts.throw) {\n throw response;\n }\n return response;\n}\nfunction isRedirect(obj) {\n return obj instanceof Response && !!obj.options;\n}\nfunction isResolvedRedirect(obj) {\n return isRedirect(obj) && !!obj.options.href;\n}\nfunction parseRedirect(obj) {\n if (obj !== null && typeof obj === \"object\" && obj.isSerializedRedirect) {\n return redirect(obj);\n }\n return void 0;\n}\nexport {\n isRedirect,\n isResolvedRedirect,\n parseRedirect,\n redirect\n};\n//# sourceMappingURL=redirect.js.map\n","import invariant from \"tiny-invariant\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { batch } from \"./utils/batch.js\";\nimport { isPromise, createControlledPromise } from \"./utils.js\";\nimport { isNotFound } from \"./not-found.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { isRedirect } from \"./redirect.js\";\nconst triggerOnReady = (inner) => {\n if (!inner.rendered) {\n inner.rendered = true;\n return inner.onReady?.();\n }\n};\nconst resolvePreload = (inner, matchId) => {\n return !!(inner.preload && !inner.router.state.matches.some((d) => d.id === matchId));\n};\nconst buildMatchContext = (inner, index, includeCurrentMatch = true) => {\n const context = {\n ...inner.router.options.context ?? {}\n };\n const end = includeCurrentMatch ? index : index - 1;\n for (let i = 0; i <= end; i++) {\n const innerMatch = inner.matches[i];\n if (!innerMatch) continue;\n const m = inner.router.getMatch(innerMatch.id);\n if (!m) continue;\n Object.assign(context, m.__routeContext, m.__beforeLoadContext);\n }\n return context;\n};\nconst _handleNotFound = (inner, err) => {\n const routeCursor = inner.router.routesById[err.routeId ?? \"\"] ?? inner.router.routeTree;\n if (!routeCursor.options.notFoundComponent && inner.router.options?.defaultNotFoundComponent) {\n routeCursor.options.notFoundComponent = inner.router.options.defaultNotFoundComponent;\n }\n invariant(\n routeCursor.options.notFoundComponent,\n \"No notFoundComponent found. Please set a notFoundComponent on your route or provide a defaultNotFoundComponent to the router.\"\n );\n const matchForRoute = inner.matches.find((m) => m.routeId === routeCursor.id);\n invariant(matchForRoute, \"Could not find match for route: \" + routeCursor.id);\n inner.updateMatch(matchForRoute.id, (prev) => ({\n ...prev,\n status: \"notFound\",\n error: err,\n isFetching: false\n }));\n if (err.routerCode === \"BEFORE_LOAD\" && routeCursor.parentRoute) {\n err.routeId = routeCursor.parentRoute.id;\n _handleNotFound(inner, err);\n }\n};\nconst handleRedirectAndNotFound = (inner, match, err) => {\n if (!isRedirect(err) && !isNotFound(err)) return;\n if (isRedirect(err) && err.redirectHandled && !err.options.reloadDocument) {\n throw err;\n }\n if (match) {\n match._nonReactive.beforeLoadPromise?.resolve();\n match._nonReactive.loaderPromise?.resolve();\n match._nonReactive.beforeLoadPromise = void 0;\n match._nonReactive.loaderPromise = void 0;\n const status = isRedirect(err) ? \"redirected\" : \"notFound\";\n match._nonReactive.error = err;\n inner.updateMatch(match.id, (prev) => ({\n ...prev,\n status,\n context: buildMatchContext(inner, match.index),\n isFetching: false,\n error: err\n }));\n if (isNotFound(err) && !err.routeId) {\n err.routeId = match.routeId;\n }\n match._nonReactive.loadPromise?.resolve();\n }\n if (isRedirect(err)) {\n inner.rendered = true;\n err.options._fromLocation = inner.location;\n err.redirectHandled = true;\n err = inner.router.resolveRedirect(err);\n throw err;\n } else {\n _handleNotFound(inner, err);\n throw err;\n }\n};\nconst shouldSkipLoader = (inner, matchId) => {\n const match = inner.router.getMatch(matchId);\n if (!(isServer ?? inner.router.isServer) && match._nonReactive.dehydrated) {\n return true;\n }\n if ((isServer ?? inner.router.isServer) && match.ssr === false) {\n return true;\n }\n return false;\n};\nconst handleSerialError = (inner, index, err, routerCode) => {\n const { id: matchId, routeId } = inner.matches[index];\n const route = inner.router.looseRoutesById[routeId];\n if (err instanceof Promise) {\n throw err;\n }\n err.routerCode = routerCode;\n inner.firstBadMatchIndex ??= index;\n handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err);\n try {\n route.options.onError?.(err);\n } catch (errorHandlerErr) {\n err = errorHandlerErr;\n handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), err);\n }\n inner.updateMatch(matchId, (prev) => {\n prev._nonReactive.beforeLoadPromise?.resolve();\n prev._nonReactive.beforeLoadPromise = void 0;\n prev._nonReactive.loadPromise?.resolve();\n return {\n ...prev,\n error: err,\n status: \"error\",\n isFetching: false,\n updatedAt: Date.now(),\n abortController: new AbortController()\n };\n });\n};\nconst isBeforeLoadSsr = (inner, matchId, index, route) => {\n const existingMatch = inner.router.getMatch(matchId);\n const parentMatchId = inner.matches[index - 1]?.id;\n const parentMatch = parentMatchId ? inner.router.getMatch(parentMatchId) : void 0;\n if (inner.router.isShell()) {\n existingMatch.ssr = route.id === rootRouteId;\n return;\n }\n if (parentMatch?.ssr === false) {\n existingMatch.ssr = false;\n return;\n }\n const parentOverride = (tempSsr2) => {\n if (tempSsr2 === true && parentMatch?.ssr === \"data-only\") {\n return \"data-only\";\n }\n return tempSsr2;\n };\n const defaultSsr = inner.router.options.defaultSsr ?? true;\n if (route.options.ssr === void 0) {\n existingMatch.ssr = parentOverride(defaultSsr);\n return;\n }\n if (typeof route.options.ssr !== \"function\") {\n existingMatch.ssr = parentOverride(route.options.ssr);\n return;\n }\n const { search, params } = existingMatch;\n const ssrFnContext = {\n search: makeMaybe(search, existingMatch.searchError),\n params: makeMaybe(params, existingMatch.paramsError),\n location: inner.location,\n matches: inner.matches.map((match) => ({\n index: match.index,\n pathname: match.pathname,\n fullPath: match.fullPath,\n staticData: match.staticData,\n id: match.id,\n routeId: match.routeId,\n search: makeMaybe(match.search, match.searchError),\n params: makeMaybe(match.params, match.paramsError),\n ssr: match.ssr\n }))\n };\n const tempSsr = route.options.ssr(ssrFnContext);\n if (isPromise(tempSsr)) {\n return tempSsr.then((ssr) => {\n existingMatch.ssr = parentOverride(ssr ?? defaultSsr);\n });\n }\n existingMatch.ssr = parentOverride(tempSsr ?? defaultSsr);\n return;\n};\nconst setupPendingTimeout = (inner, matchId, route, match) => {\n if (match._nonReactive.pendingTimeout !== void 0) return;\n const pendingMs = route.options.pendingMs ?? inner.router.options.defaultPendingMs;\n const shouldPending = !!(inner.onReady && !(isServer ?? inner.router.isServer) && !resolvePreload(inner, matchId) && (route.options.loader || route.options.beforeLoad || routeNeedsPreload(route)) && typeof pendingMs === \"number\" && pendingMs !== Infinity && (route.options.pendingComponent ?? inner.router.options?.defaultPendingComponent));\n if (shouldPending) {\n const pendingTimeout = setTimeout(() => {\n triggerOnReady(inner);\n }, pendingMs);\n match._nonReactive.pendingTimeout = pendingTimeout;\n }\n};\nconst preBeforeLoadSetup = (inner, matchId, route) => {\n const existingMatch = inner.router.getMatch(matchId);\n if (!existingMatch._nonReactive.beforeLoadPromise && !existingMatch._nonReactive.loaderPromise)\n return;\n setupPendingTimeout(inner, matchId, route, existingMatch);\n const then = () => {\n const match = inner.router.getMatch(matchId);\n if (match.preload && (match.status === \"redirected\" || match.status === \"notFound\")) {\n handleRedirectAndNotFound(inner, match, match.error);\n }\n };\n return existingMatch._nonReactive.beforeLoadPromise ? existingMatch._nonReactive.beforeLoadPromise.then(then) : then();\n};\nconst executeBeforeLoad = (inner, matchId, index, route) => {\n const match = inner.router.getMatch(matchId);\n const prevLoadPromise = match._nonReactive.loadPromise;\n match._nonReactive.loadPromise = createControlledPromise(() => {\n prevLoadPromise?.resolve();\n });\n const { paramsError, searchError } = match;\n if (paramsError) {\n handleSerialError(inner, index, paramsError, \"PARSE_PARAMS\");\n }\n if (searchError) {\n handleSerialError(inner, index, searchError, \"VALIDATE_SEARCH\");\n }\n setupPendingTimeout(inner, matchId, route, match);\n const abortController = new AbortController();\n let isPending = false;\n const pending = () => {\n if (isPending) return;\n isPending = true;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"beforeLoad\",\n fetchCount: prev.fetchCount + 1,\n abortController\n // Note: We intentionally don't update context here.\n // Context should only be updated after beforeLoad resolves to avoid\n // components seeing incomplete context during async beforeLoad execution.\n }));\n };\n const resolve = () => {\n match._nonReactive.beforeLoadPromise?.resolve();\n match._nonReactive.beforeLoadPromise = void 0;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: false\n }));\n };\n if (!route.options.beforeLoad) {\n batch(() => {\n pending();\n resolve();\n });\n return;\n }\n match._nonReactive.beforeLoadPromise = createControlledPromise();\n const context = {\n ...buildMatchContext(inner, index, false),\n ...match.__routeContext\n };\n const { search, params, cause } = match;\n const preload = resolvePreload(inner, matchId);\n const beforeLoadFnContext = {\n search,\n abortController,\n params,\n preload,\n context,\n location: inner.location,\n navigate: (opts) => inner.router.navigate({\n ...opts,\n _fromLocation: inner.location\n }),\n buildLocation: inner.router.buildLocation,\n cause: preload ? \"preload\" : cause,\n matches: inner.matches,\n ...inner.router.options.additionalContext\n };\n const updateContext = (beforeLoadContext2) => {\n if (beforeLoadContext2 === void 0) {\n batch(() => {\n pending();\n resolve();\n });\n return;\n }\n if (isRedirect(beforeLoadContext2) || isNotFound(beforeLoadContext2)) {\n pending();\n handleSerialError(inner, index, beforeLoadContext2, \"BEFORE_LOAD\");\n }\n batch(() => {\n pending();\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n __beforeLoadContext: beforeLoadContext2\n }));\n resolve();\n });\n };\n let beforeLoadContext;\n try {\n beforeLoadContext = route.options.beforeLoad(beforeLoadFnContext);\n if (isPromise(beforeLoadContext)) {\n pending();\n return beforeLoadContext.catch((err) => {\n handleSerialError(inner, index, err, \"BEFORE_LOAD\");\n }).then(updateContext);\n }\n } catch (err) {\n pending();\n handleSerialError(inner, index, err, \"BEFORE_LOAD\");\n }\n updateContext(beforeLoadContext);\n return;\n};\nconst handleBeforeLoad = (inner, index) => {\n const { id: matchId, routeId } = inner.matches[index];\n const route = inner.router.looseRoutesById[routeId];\n const serverSsr = () => {\n if (isServer ?? inner.router.isServer) {\n const maybePromise = isBeforeLoadSsr(inner, matchId, index, route);\n if (isPromise(maybePromise)) return maybePromise.then(queueExecution);\n }\n return queueExecution();\n };\n const execute = () => executeBeforeLoad(inner, matchId, index, route);\n const queueExecution = () => {\n if (shouldSkipLoader(inner, matchId)) return;\n const result = preBeforeLoadSetup(inner, matchId, route);\n return isPromise(result) ? result.then(execute) : execute();\n };\n return serverSsr();\n};\nconst executeHead = (inner, matchId, route) => {\n const match = inner.router.getMatch(matchId);\n if (!match) {\n return;\n }\n if (!route.options.head && !route.options.scripts && !route.options.headers) {\n return;\n }\n const assetContext = {\n ssr: inner.router.options.ssr,\n matches: inner.matches,\n match,\n params: match.params,\n loaderData: match.loaderData\n };\n return Promise.all([\n route.options.head?.(assetContext),\n route.options.scripts?.(assetContext),\n route.options.headers?.(assetContext)\n ]).then(([headFnContent, scripts, headers]) => {\n const meta = headFnContent?.meta;\n const links = headFnContent?.links;\n const headScripts = headFnContent?.scripts;\n const styles = headFnContent?.styles;\n return {\n meta,\n links,\n headScripts,\n headers,\n scripts,\n styles\n };\n });\n};\nconst getLoaderContext = (inner, matchId, index, route) => {\n const parentMatchPromise = inner.matchPromises[index - 1];\n const { params, loaderDeps, abortController, cause } = inner.router.getMatch(matchId);\n const context = buildMatchContext(inner, index);\n const preload = resolvePreload(inner, matchId);\n return {\n params,\n deps: loaderDeps,\n preload: !!preload,\n parentMatchPromise,\n abortController,\n context,\n location: inner.location,\n navigate: (opts) => inner.router.navigate({\n ...opts,\n _fromLocation: inner.location\n }),\n cause: preload ? \"preload\" : cause,\n route,\n ...inner.router.options.additionalContext\n };\n};\nconst runLoader = async (inner, matchId, index, route) => {\n try {\n const match = inner.router.getMatch(matchId);\n try {\n if (!(isServer ?? inner.router.isServer) || match.ssr === true) {\n loadRouteChunk(route);\n }\n const loaderResult = route.options.loader?.(\n getLoaderContext(inner, matchId, index, route)\n );\n const loaderResultIsPromise = route.options.loader && isPromise(loaderResult);\n const willLoadSomething = !!(loaderResultIsPromise || route._lazyPromise || route._componentsPromise || route.options.head || route.options.scripts || route.options.headers || match._nonReactive.minPendingPromise);\n if (willLoadSomething) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"loader\"\n }));\n }\n if (route.options.loader) {\n const loaderData = loaderResultIsPromise ? await loaderResult : loaderResult;\n handleRedirectAndNotFound(\n inner,\n inner.router.getMatch(matchId),\n loaderData\n );\n if (loaderData !== void 0) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n loaderData\n }));\n }\n }\n if (route._lazyPromise) await route._lazyPromise;\n const pendingPromise = match._nonReactive.minPendingPromise;\n if (pendingPromise) await pendingPromise;\n if (route._componentsPromise) await route._componentsPromise;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n error: void 0,\n context: buildMatchContext(inner, index),\n status: \"success\",\n isFetching: false,\n updatedAt: Date.now()\n }));\n } catch (e) {\n let error = e;\n if (error?.name === \"AbortError\") {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n status: prev.status === \"pending\" ? \"success\" : prev.status,\n isFetching: false,\n context: buildMatchContext(inner, index)\n }));\n return;\n }\n const pendingPromise = match._nonReactive.minPendingPromise;\n if (pendingPromise) await pendingPromise;\n if (isNotFound(e)) {\n await route.options.notFoundComponent?.preload?.();\n }\n handleRedirectAndNotFound(inner, inner.router.getMatch(matchId), e);\n try {\n route.options.onError?.(e);\n } catch (onErrorError) {\n error = onErrorError;\n handleRedirectAndNotFound(\n inner,\n inner.router.getMatch(matchId),\n onErrorError\n );\n }\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n error,\n context: buildMatchContext(inner, index),\n status: \"error\",\n isFetching: false\n }));\n }\n } catch (err) {\n const match = inner.router.getMatch(matchId);\n if (match) {\n match._nonReactive.loaderPromise = void 0;\n }\n handleRedirectAndNotFound(inner, match, err);\n }\n};\nconst loadRouteMatch = async (inner, index) => {\n const { id: matchId, routeId } = inner.matches[index];\n let loaderShouldRunAsync = false;\n let loaderIsRunningAsync = false;\n const route = inner.router.looseRoutesById[routeId];\n if (shouldSkipLoader(inner, matchId)) {\n if (isServer ?? inner.router.isServer) {\n return inner.router.getMatch(matchId);\n }\n } else {\n const prevMatch = inner.router.getMatch(matchId);\n if (prevMatch._nonReactive.loaderPromise) {\n if (prevMatch.status === \"success\" && !inner.sync && !prevMatch.preload) {\n return prevMatch;\n }\n await prevMatch._nonReactive.loaderPromise;\n const match2 = inner.router.getMatch(matchId);\n const error = match2._nonReactive.error || match2.error;\n if (error) {\n handleRedirectAndNotFound(inner, match2, error);\n }\n } else {\n const age = Date.now() - prevMatch.updatedAt;\n const preload = resolvePreload(inner, matchId);\n const staleAge = preload ? route.options.preloadStaleTime ?? inner.router.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? inner.router.options.defaultStaleTime ?? 0;\n const shouldReloadOption = route.options.shouldReload;\n const shouldReload = typeof shouldReloadOption === \"function\" ? shouldReloadOption(getLoaderContext(inner, matchId, index, route)) : shouldReloadOption;\n const nextPreload = !!preload && !inner.router.state.matches.some((d) => d.id === matchId);\n const match2 = inner.router.getMatch(matchId);\n match2._nonReactive.loaderPromise = createControlledPromise();\n if (nextPreload !== match2.preload) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n preload: nextPreload\n }));\n }\n const { status, invalid } = match2;\n loaderShouldRunAsync = status === \"success\" && (invalid || (shouldReload ?? age > staleAge));\n if (preload && route.options.preload === false) ;\n else if (loaderShouldRunAsync && !inner.sync) {\n loaderIsRunningAsync = true;\n (async () => {\n try {\n await runLoader(inner, matchId, index, route);\n const match3 = inner.router.getMatch(matchId);\n match3._nonReactive.loaderPromise?.resolve();\n match3._nonReactive.loadPromise?.resolve();\n match3._nonReactive.loaderPromise = void 0;\n } catch (err) {\n if (isRedirect(err)) {\n await inner.router.navigate(err.options);\n }\n }\n })();\n } else if (status !== \"success\" || loaderShouldRunAsync && inner.sync) {\n await runLoader(inner, matchId, index, route);\n }\n }\n }\n const match = inner.router.getMatch(matchId);\n if (!loaderIsRunningAsync) {\n match._nonReactive.loaderPromise?.resolve();\n match._nonReactive.loadPromise?.resolve();\n }\n clearTimeout(match._nonReactive.pendingTimeout);\n match._nonReactive.pendingTimeout = void 0;\n if (!loaderIsRunningAsync) match._nonReactive.loaderPromise = void 0;\n match._nonReactive.dehydrated = void 0;\n const nextIsFetching = loaderIsRunningAsync ? match.isFetching : false;\n if (nextIsFetching !== match.isFetching || match.invalid !== false) {\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: nextIsFetching,\n invalid: false\n }));\n return inner.router.getMatch(matchId);\n } else {\n return match;\n }\n};\nasync function loadMatches(arg) {\n const inner = Object.assign(arg, {\n matchPromises: []\n });\n if (!(isServer ?? inner.router.isServer) && inner.router.state.matches.some((d) => d._forcePending)) {\n triggerOnReady(inner);\n }\n try {\n for (let i = 0; i < inner.matches.length; i++) {\n const beforeLoad = handleBeforeLoad(inner, i);\n if (isPromise(beforeLoad)) await beforeLoad;\n }\n const max = inner.firstBadMatchIndex ?? inner.matches.length;\n for (let i = 0; i < max; i++) {\n inner.matchPromises.push(loadRouteMatch(inner, i));\n }\n const results = await Promise.allSettled(inner.matchPromises);\n const failures = results.filter(\n (result) => result.status === \"rejected\"\n ).map((result) => result.reason);\n let firstNotFound;\n for (const err of failures) {\n if (isRedirect(err)) {\n throw err;\n }\n if (!firstNotFound && isNotFound(err)) {\n firstNotFound = err;\n }\n }\n for (const match of inner.matches) {\n const { id: matchId, routeId } = match;\n const route = inner.router.looseRoutesById[routeId];\n try {\n const headResult = executeHead(inner, matchId, route);\n if (headResult) {\n const head = await headResult;\n inner.updateMatch(matchId, (prev) => ({\n ...prev,\n ...head\n }));\n }\n } catch (err) {\n console.error(`Error executing head for route ${routeId}:`, err);\n }\n }\n if (firstNotFound) {\n throw firstNotFound;\n }\n const readyPromise = triggerOnReady(inner);\n if (isPromise(readyPromise)) await readyPromise;\n } catch (err) {\n if (isNotFound(err) && !inner.preload) {\n const readyPromise = triggerOnReady(inner);\n if (isPromise(readyPromise)) await readyPromise;\n throw err;\n }\n if (isRedirect(err)) {\n throw err;\n }\n }\n return inner.matches;\n}\nasync function loadRouteChunk(route) {\n if (!route._lazyLoaded && route._lazyPromise === void 0) {\n if (route.lazyFn) {\n route._lazyPromise = route.lazyFn().then((lazyRoute) => {\n const { id: _id, ...options } = lazyRoute.options;\n Object.assign(route.options, options);\n route._lazyLoaded = true;\n route._lazyPromise = void 0;\n });\n } else {\n route._lazyLoaded = true;\n }\n }\n if (!route._componentsLoaded && route._componentsPromise === void 0) {\n const loadComponents = () => {\n const preloads = [];\n for (const type of componentTypes) {\n const preload = route.options[type]?.preload;\n if (preload) preloads.push(preload());\n }\n if (preloads.length)\n return Promise.all(preloads).then(() => {\n route._componentsLoaded = true;\n route._componentsPromise = void 0;\n });\n route._componentsLoaded = true;\n route._componentsPromise = void 0;\n return;\n };\n route._componentsPromise = route._lazyPromise ? route._lazyPromise.then(loadComponents) : loadComponents();\n }\n return route._componentsPromise;\n}\nfunction makeMaybe(value, error) {\n if (error) {\n return { status: \"error\", error };\n }\n return { status: \"success\", value };\n}\nfunction routeNeedsPreload(route) {\n for (const componentType of componentTypes) {\n if (route.options[componentType]?.preload) {\n return true;\n }\n }\n return false;\n}\nconst componentTypes = [\n \"component\",\n \"errorComponent\",\n \"pendingComponent\",\n \"notFoundComponent\"\n];\nexport {\n componentTypes,\n loadMatches,\n loadRouteChunk,\n routeNeedsPreload\n};\n//# sourceMappingURL=load-matches.js.map\n","import { trimPath, joinPaths } from \"./path.js\";\nfunction composeRewrites(rewrites) {\n return {\n input: ({ url }) => {\n for (const rewrite of rewrites) {\n url = executeRewriteInput(rewrite, url);\n }\n return url;\n },\n output: ({ url }) => {\n for (let i = rewrites.length - 1; i >= 0; i--) {\n url = executeRewriteOutput(rewrites[i], url);\n }\n return url;\n }\n };\n}\nfunction rewriteBasepath(opts) {\n const trimmedBasepath = trimPath(opts.basepath);\n const normalizedBasepath = `/${trimmedBasepath}`;\n const normalizedBasepathWithSlash = `${normalizedBasepath}/`;\n const checkBasepath = opts.caseSensitive ? normalizedBasepath : normalizedBasepath.toLowerCase();\n const checkBasepathWithSlash = opts.caseSensitive ? normalizedBasepathWithSlash : normalizedBasepathWithSlash.toLowerCase();\n return {\n input: ({ url }) => {\n const pathname = opts.caseSensitive ? url.pathname : url.pathname.toLowerCase();\n if (pathname === checkBasepath) {\n url.pathname = \"/\";\n } else if (pathname.startsWith(checkBasepathWithSlash)) {\n url.pathname = url.pathname.slice(normalizedBasepath.length);\n }\n return url;\n },\n output: ({ url }) => {\n url.pathname = joinPaths([\"/\", trimmedBasepath, url.pathname]);\n return url;\n }\n };\n}\nfunction executeRewriteInput(rewrite, url) {\n const res = rewrite?.input?.({ url });\n if (res) {\n if (typeof res === \"string\") {\n return new URL(res);\n } else if (res instanceof URL) {\n return res;\n }\n }\n return url;\n}\nfunction executeRewriteOutput(rewrite, url) {\n const res = rewrite?.output?.({ url });\n if (res) {\n if (typeof res === \"string\") {\n return new URL(res);\n } else if (res instanceof URL) {\n return res;\n }\n }\n return url;\n}\nexport {\n composeRewrites,\n executeRewriteInput,\n executeRewriteOutput,\n rewriteBasepath\n};\n//# sourceMappingURL=rewrite.js.map\n","import { Store } from \"@tanstack/store\";\nimport { createBrowserHistory, parseHref } from \"@tanstack/history\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { batch } from \"./utils/batch.js\";\nimport { createControlledPromise, isDangerousProtocol, deepEqual, replaceEqualDeep, last, decodePath, functionalUpdate, findLast, encodeNonAscii } from \"./utils.js\";\nimport { processRouteTree, processRouteMasks, findSingleMatch, findRouteMatch, findFlatMatch } from \"./new-process-route-tree.js\";\nimport { compileDecodeCharMap, trimPath, resolvePath, cleanPath, trimPathRight, interpolatePath } from \"./path.js\";\nimport { createLRUCache } from \"./lru-cache.js\";\nimport { isNotFound } from \"./not-found.js\";\nimport { setupScrollRestoration } from \"./scroll-restoration.js\";\nimport { defaultParseSearch, defaultStringifySearch } from \"./searchParams.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { redirect, isRedirect } from \"./redirect.js\";\nimport { loadMatches, loadRouteChunk, routeNeedsPreload } from \"./load-matches.js\";\nimport { rewriteBasepath, composeRewrites, executeRewriteInput, executeRewriteOutput } from \"./rewrite.js\";\nfunction defaultSerializeError(err) {\n if (err instanceof Error) {\n const obj = {\n name: err.name,\n message: err.message\n };\n if (process.env.NODE_ENV === \"development\") {\n obj.stack = err.stack;\n }\n return obj;\n }\n return {\n data: err\n };\n}\nconst trailingSlashOptions = {\n always: \"always\",\n never: \"never\",\n preserve: \"preserve\"\n};\nfunction getLocationChangeInfo(routerState) {\n const fromLocation = routerState.resolvedLocation;\n const toLocation = routerState.location;\n const pathChanged = fromLocation?.pathname !== toLocation.pathname;\n const hrefChanged = fromLocation?.href !== toLocation.href;\n const hashChanged = fromLocation?.hash !== toLocation.hash;\n return { fromLocation, toLocation, pathChanged, hrefChanged, hashChanged };\n}\nfunction createServerStore(initialState) {\n const store = {\n state: initialState,\n setState: (updater) => {\n store.state = updater(store.state);\n }\n };\n return store;\n}\nclass RouterCore {\n /**\n * @deprecated Use the `createRouter` function instead\n */\n constructor(options) {\n this.tempLocationKey = `${Math.round(\n Math.random() * 1e7\n )}`;\n this.resetNextScroll = true;\n this.shouldViewTransition = void 0;\n this.isViewTransitionTypesSupported = void 0;\n this.subscribers = /* @__PURE__ */ new Set();\n this.isScrollRestoring = false;\n this.isScrollRestorationSetup = false;\n this.startTransition = (fn) => fn();\n this.update = (newOptions) => {\n if (newOptions.notFoundRoute) {\n console.warn(\n \"The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.\"\n );\n }\n const prevOptions = this.options;\n const prevBasepath = this.basepath ?? prevOptions?.basepath ?? \"/\";\n const basepathWasUnset = this.basepath === void 0;\n const prevRewriteOption = prevOptions?.rewrite;\n this.options = {\n ...prevOptions,\n ...newOptions\n };\n this.isServer = this.options.isServer ?? typeof document === \"undefined\";\n if (this.options.pathParamsAllowedCharacters)\n this.pathParamsDecoder = compileDecodeCharMap(\n this.options.pathParamsAllowedCharacters\n );\n if (!this.history || this.options.history && this.options.history !== this.history) {\n if (!this.options.history) {\n if (!(isServer ?? this.isServer)) {\n this.history = createBrowserHistory();\n }\n } else {\n this.history = this.options.history;\n }\n }\n this.origin = this.options.origin;\n if (!this.origin) {\n if (!(isServer ?? this.isServer) && window?.origin && window.origin !== \"null\") {\n this.origin = window.origin;\n } else {\n this.origin = \"http://localhost\";\n }\n }\n if (this.history) {\n this.updateLatestLocation();\n }\n if (this.options.routeTree !== this.routeTree) {\n this.routeTree = this.options.routeTree;\n let processRouteTreeResult;\n if ((isServer ?? this.isServer) && globalThis.__TSR_CACHE__ && globalThis.__TSR_CACHE__.routeTree === this.routeTree) {\n const cached = globalThis.__TSR_CACHE__;\n this.resolvePathCache = cached.resolvePathCache;\n processRouteTreeResult = cached.processRouteTreeResult;\n } else {\n this.resolvePathCache = createLRUCache(1e3);\n processRouteTreeResult = this.buildRouteTree();\n if ((isServer ?? this.isServer) && globalThis.__TSR_CACHE__ === void 0) {\n globalThis.__TSR_CACHE__ = {\n routeTree: this.routeTree,\n processRouteTreeResult,\n resolvePathCache: this.resolvePathCache\n };\n }\n }\n this.setRoutes(processRouteTreeResult);\n }\n if (!this.__store && this.latestLocation) {\n if (isServer ?? this.isServer) {\n this.__store = createServerStore(\n getInitialRouterState(this.latestLocation)\n );\n } else {\n this.__store = new Store(getInitialRouterState(this.latestLocation), {\n onUpdate: () => {\n this.__store.state = {\n ...this.state,\n cachedMatches: this.state.cachedMatches.filter(\n (d) => ![\"redirected\"].includes(d.status)\n )\n };\n }\n });\n setupScrollRestoration(this);\n }\n }\n let needsLocationUpdate = false;\n const nextBasepath = this.options.basepath ?? \"/\";\n const nextRewriteOption = this.options.rewrite;\n const basepathChanged = basepathWasUnset || prevBasepath !== nextBasepath;\n const rewriteChanged = prevRewriteOption !== nextRewriteOption;\n if (basepathChanged || rewriteChanged) {\n this.basepath = nextBasepath;\n const rewrites = [];\n const trimmed = trimPath(nextBasepath);\n if (trimmed && trimmed !== \"/\") {\n rewrites.push(\n rewriteBasepath({\n basepath: nextBasepath\n })\n );\n }\n if (nextRewriteOption) {\n rewrites.push(nextRewriteOption);\n }\n this.rewrite = rewrites.length === 0 ? void 0 : rewrites.length === 1 ? rewrites[0] : composeRewrites(rewrites);\n if (this.history) {\n this.updateLatestLocation();\n }\n needsLocationUpdate = true;\n }\n if (needsLocationUpdate && this.__store) {\n this.__store.state = {\n ...this.state,\n location: this.latestLocation\n };\n }\n if (typeof window !== \"undefined\" && \"CSS\" in window && typeof window.CSS?.supports === \"function\") {\n this.isViewTransitionTypesSupported = window.CSS.supports(\n \"selector(:active-view-transition-type(a)\"\n );\n }\n };\n this.updateLatestLocation = () => {\n this.latestLocation = this.parseLocation(\n this.history.location,\n this.latestLocation\n );\n };\n this.buildRouteTree = () => {\n const result = processRouteTree(\n this.routeTree,\n this.options.caseSensitive,\n (route, i) => {\n route.init({\n originalIndex: i\n });\n }\n );\n if (this.options.routeMasks) {\n processRouteMasks(this.options.routeMasks, result.processedTree);\n }\n return result;\n };\n this.subscribe = (eventType, fn) => {\n const listener = {\n eventType,\n fn\n };\n this.subscribers.add(listener);\n return () => {\n this.subscribers.delete(listener);\n };\n };\n this.emit = (routerEvent) => {\n this.subscribers.forEach((listener) => {\n if (listener.eventType === routerEvent.type) {\n listener.fn(routerEvent);\n }\n });\n };\n this.parseLocation = (locationToParse, previousLocation) => {\n const parse = ({\n href,\n state\n }) => {\n const fullUrl = new URL(href, this.origin);\n const url = executeRewriteInput(this.rewrite, fullUrl);\n const parsedSearch = this.options.parseSearch(url.search);\n const searchStr = this.options.stringifySearch(parsedSearch);\n url.search = searchStr;\n const fullPath = url.href.replace(url.origin, \"\");\n return {\n href: fullPath,\n publicHref: href,\n pathname: decodePath(url.pathname),\n external: !!this.rewrite && url.origin !== this.origin,\n searchStr,\n search: replaceEqualDeep(previousLocation?.search, parsedSearch),\n hash: decodePath(url.hash.split(\"#\").reverse()[0] ?? \"\"),\n state: replaceEqualDeep(previousLocation?.state, state)\n };\n };\n const location = parse(locationToParse);\n const { __tempLocation, __tempKey } = location.state;\n if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {\n const parsedTempLocation = parse(__tempLocation);\n parsedTempLocation.state.key = location.state.key;\n parsedTempLocation.state.__TSR_key = location.state.__TSR_key;\n delete parsedTempLocation.state.__tempLocation;\n return {\n ...parsedTempLocation,\n maskedLocation: location\n };\n }\n return location;\n };\n this.resolvePathWithBase = (from, path) => {\n const resolvedPath = resolvePath({\n base: from,\n to: cleanPath(path),\n trailingSlash: this.options.trailingSlash,\n cache: this.resolvePathCache\n });\n return resolvedPath;\n };\n this.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => {\n if (typeof pathnameOrNext === \"string\") {\n return this.matchRoutesInternal(\n {\n pathname: pathnameOrNext,\n search: locationSearchOrOpts\n },\n opts\n );\n }\n return this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts);\n };\n this.getMatchedRoutes = (pathname) => {\n return getMatchedRoutes({\n pathname,\n routesById: this.routesById,\n processedTree: this.processedTree\n });\n };\n this.cancelMatch = (id) => {\n const match = this.getMatch(id);\n if (!match) return;\n match.abortController.abort();\n clearTimeout(match._nonReactive.pendingTimeout);\n match._nonReactive.pendingTimeout = void 0;\n };\n this.cancelMatches = () => {\n const currentPendingMatches = this.state.matches.filter(\n (match) => match.status === \"pending\"\n );\n const currentLoadingMatches = this.state.matches.filter(\n (match) => match.isFetching === \"loader\"\n );\n const matchesToCancelArray = /* @__PURE__ */ new Set([\n ...this.state.pendingMatches ?? [],\n ...currentPendingMatches,\n ...currentLoadingMatches\n ]);\n matchesToCancelArray.forEach((match) => {\n this.cancelMatch(match.id);\n });\n };\n this.buildLocation = (opts) => {\n const build = (dest = {}) => {\n const currentLocation = dest._fromLocation || this.pendingBuiltLocation || this.latestLocation;\n const lightweightResult = this.matchRoutesLightweight(currentLocation);\n if (dest.from && process.env.NODE_ENV !== \"production\" && dest._isNavigate) {\n const allFromMatches = this.getMatchedRoutes(dest.from).matchedRoutes;\n const matchedFrom = findLast(lightweightResult.matchedRoutes, (d) => {\n return comparePaths(d.fullPath, dest.from);\n });\n const matchedCurrent = findLast(allFromMatches, (d) => {\n return comparePaths(d.fullPath, lightweightResult.fullPath);\n });\n if (!matchedFrom && !matchedCurrent) {\n console.warn(`Could not find match for from: ${dest.from}`);\n }\n }\n const defaultedFromPath = dest.unsafeRelative === \"path\" ? currentLocation.pathname : dest.from ?? lightweightResult.fullPath;\n const fromPath = this.resolvePathWithBase(defaultedFromPath, \".\");\n const fromSearch = lightweightResult.search;\n const fromParams = { ...lightweightResult.params };\n const nextTo = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, \".\");\n const nextParams = dest.params === false || dest.params === null ? {} : (dest.params ?? true) === true ? fromParams : Object.assign(\n fromParams,\n functionalUpdate(dest.params, fromParams)\n );\n const interpolatedNextTo = interpolatePath({\n path: nextTo,\n params: nextParams,\n decoder: this.pathParamsDecoder,\n server: this.isServer\n }).interpolatedPath;\n const destMatchResult = this.getMatchedRoutes(interpolatedNextTo);\n let destRoutes = destMatchResult.matchedRoutes;\n const isGlobalNotFound = destMatchResult.foundRoute ? destMatchResult.foundRoute.path !== \"/\" && destMatchResult.routeParams[\"**\"] : trimPathRight(interpolatedNextTo);\n if (isGlobalNotFound && this.options.notFoundRoute) {\n destRoutes = [...destRoutes, this.options.notFoundRoute];\n }\n let changedParams = false;\n if (Object.keys(nextParams).length > 0) {\n for (const route of destRoutes) {\n const fn = route.options.params?.stringify ?? route.options.stringifyParams;\n if (fn) {\n changedParams = true;\n Object.assign(nextParams, fn(nextParams));\n }\n }\n }\n const nextPathname = opts.leaveParams ? (\n // Use the original template path for interpolation\n // This preserves the original parameter syntax including optional parameters\n nextTo\n ) : decodePath(\n !changedParams ? interpolatedNextTo : interpolatePath({\n path: nextTo,\n params: nextParams,\n decoder: this.pathParamsDecoder,\n server: this.isServer\n }).interpolatedPath\n );\n let nextSearch = fromSearch;\n if (opts._includeValidateSearch && this.options.search?.strict) {\n const validatedSearch = {};\n destRoutes.forEach((route) => {\n if (route.options.validateSearch) {\n try {\n Object.assign(\n validatedSearch,\n validateSearch(route.options.validateSearch, {\n ...validatedSearch,\n ...nextSearch\n })\n );\n } catch {\n }\n }\n });\n nextSearch = validatedSearch;\n }\n nextSearch = applySearchMiddleware({\n search: nextSearch,\n dest,\n destRoutes,\n _includeValidateSearch: opts._includeValidateSearch\n });\n nextSearch = replaceEqualDeep(fromSearch, nextSearch);\n const searchStr = this.options.stringifySearch(nextSearch);\n const hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0;\n const hashStr = hash ? `#${hash}` : \"\";\n let nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {};\n nextState = replaceEqualDeep(currentLocation.state, nextState);\n const fullPath = `${nextPathname}${searchStr}${hashStr}`;\n let href;\n let publicHref;\n let external = false;\n if (this.rewrite) {\n const url = new URL(fullPath, this.origin);\n const rewrittenUrl = executeRewriteOutput(this.rewrite, url);\n href = url.href.replace(url.origin, \"\");\n if (rewrittenUrl.origin !== this.origin) {\n publicHref = rewrittenUrl.href;\n external = true;\n } else {\n publicHref = rewrittenUrl.pathname + rewrittenUrl.search + rewrittenUrl.hash;\n }\n } else {\n href = encodeNonAscii(fullPath);\n publicHref = href;\n }\n return {\n publicHref,\n href,\n pathname: nextPathname,\n search: nextSearch,\n searchStr,\n state: nextState,\n hash: hash ?? \"\",\n external,\n unmaskOnReload: dest.unmaskOnReload\n };\n };\n const buildWithMatches = (dest = {}, maskedDest) => {\n const next = build(dest);\n let maskedNext = maskedDest ? build(maskedDest) : void 0;\n if (!maskedNext) {\n const params = {};\n if (this.options.routeMasks) {\n const match = findFlatMatch(\n next.pathname,\n this.processedTree\n );\n if (match) {\n Object.assign(params, match.rawParams);\n const {\n from: _from,\n params: maskParams,\n ...maskProps\n } = match.route;\n const nextParams = maskParams === false || maskParams === null ? {} : (maskParams ?? true) === true ? params : Object.assign(params, functionalUpdate(maskParams, params));\n maskedDest = {\n from: opts.from,\n ...maskProps,\n params: nextParams\n };\n maskedNext = build(maskedDest);\n }\n }\n }\n if (maskedNext) {\n next.maskedLocation = maskedNext;\n }\n return next;\n };\n if (opts.mask) {\n return buildWithMatches(opts, {\n from: opts.from,\n ...opts.mask\n });\n }\n return buildWithMatches(opts);\n };\n this.commitLocation = async ({\n viewTransition,\n ignoreBlocker,\n ...next\n }) => {\n const isSameState = () => {\n const ignoredProps = [\n \"key\",\n // TODO: Remove in v2 - use __TSR_key instead\n \"__TSR_key\",\n \"__TSR_index\",\n \"__hashScrollIntoViewOptions\"\n ];\n ignoredProps.forEach((prop) => {\n next.state[prop] = this.latestLocation.state[prop];\n });\n const isEqual = deepEqual(next.state, this.latestLocation.state);\n ignoredProps.forEach((prop) => {\n delete next.state[prop];\n });\n return isEqual;\n };\n const isSameUrl = trimPathRight(this.latestLocation.href) === trimPathRight(next.href);\n const previousCommitPromise = this.commitLocationPromise;\n this.commitLocationPromise = createControlledPromise(() => {\n previousCommitPromise?.resolve();\n });\n if (isSameUrl && isSameState()) {\n this.load();\n } else {\n let {\n // eslint-disable-next-line prefer-const\n maskedLocation,\n // eslint-disable-next-line prefer-const\n hashScrollIntoView,\n ...nextHistory\n } = next;\n if (maskedLocation) {\n nextHistory = {\n ...maskedLocation,\n state: {\n ...maskedLocation.state,\n __tempKey: void 0,\n __tempLocation: {\n ...nextHistory,\n search: nextHistory.searchStr,\n state: {\n ...nextHistory.state,\n __tempKey: void 0,\n __tempLocation: void 0,\n __TSR_key: void 0,\n key: void 0\n // TODO: Remove in v2 - use __TSR_key instead\n }\n }\n }\n };\n if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) {\n nextHistory.state.__tempKey = this.tempLocationKey;\n }\n }\n nextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true;\n this.shouldViewTransition = viewTransition;\n this.history[next.replace ? \"replace\" : \"push\"](\n nextHistory.publicHref,\n nextHistory.state,\n { ignoreBlocker }\n );\n }\n this.resetNextScroll = next.resetScroll ?? true;\n if (!this.history.subscribers.size) {\n this.load();\n }\n return this.commitLocationPromise;\n };\n this.buildAndCommitLocation = ({\n replace,\n resetScroll,\n hashScrollIntoView,\n viewTransition,\n ignoreBlocker,\n href,\n ...rest\n } = {}) => {\n if (href) {\n const currentIndex = this.history.location.state.__TSR_index;\n const parsed = parseHref(href, {\n __TSR_index: replace ? currentIndex : currentIndex + 1\n });\n const hrefUrl = new URL(parsed.pathname, this.origin);\n const rewrittenUrl = executeRewriteInput(this.rewrite, hrefUrl);\n rest.to = rewrittenUrl.pathname;\n rest.search = this.options.parseSearch(parsed.search);\n rest.hash = parsed.hash.slice(1);\n }\n const location = this.buildLocation({\n ...rest,\n _includeValidateSearch: true\n });\n this.pendingBuiltLocation = location;\n const commitPromise = this.commitLocation({\n ...location,\n viewTransition,\n replace,\n resetScroll,\n hashScrollIntoView,\n ignoreBlocker\n });\n Promise.resolve().then(() => {\n if (this.pendingBuiltLocation === location) {\n this.pendingBuiltLocation = void 0;\n }\n });\n return commitPromise;\n };\n this.navigate = async ({\n to,\n reloadDocument,\n href,\n publicHref,\n ...rest\n }) => {\n let hrefIsUrl = false;\n if (href) {\n try {\n new URL(`${href}`);\n hrefIsUrl = true;\n } catch {\n }\n }\n if (hrefIsUrl && !reloadDocument) {\n reloadDocument = true;\n }\n if (reloadDocument) {\n if (to !== void 0 || !href) {\n const location = this.buildLocation({ to, ...rest });\n href = href ?? location.publicHref;\n publicHref = publicHref ?? location.publicHref;\n }\n const reloadHref = !hrefIsUrl && publicHref ? publicHref : href;\n if (isDangerousProtocol(reloadHref)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n `Blocked navigation to dangerous protocol: ${reloadHref}`\n );\n }\n return Promise.resolve();\n }\n if (!rest.ignoreBlocker) {\n const historyWithBlockers = this.history;\n const blockers = historyWithBlockers.getBlockers?.() ?? [];\n for (const blocker of blockers) {\n if (blocker?.blockerFn) {\n const shouldBlock = await blocker.blockerFn({\n currentLocation: this.latestLocation,\n nextLocation: this.latestLocation,\n // External URLs don't have a next location in our router\n action: \"PUSH\"\n });\n if (shouldBlock) {\n return Promise.resolve();\n }\n }\n }\n }\n if (rest.replace) {\n window.location.replace(reloadHref);\n } else {\n window.location.href = reloadHref;\n }\n return Promise.resolve();\n }\n return this.buildAndCommitLocation({\n ...rest,\n href,\n to,\n _isNavigate: true\n });\n };\n this.beforeLoad = () => {\n this.cancelMatches();\n this.updateLatestLocation();\n if (isServer ?? this.isServer) {\n const nextLocation = this.buildLocation({\n to: this.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n if (this.latestLocation.publicHref !== nextLocation.publicHref) {\n const href = this.getParsedLocationHref(nextLocation);\n if (nextLocation.external) {\n throw redirect({ href });\n } else {\n throw redirect({ href, _builtLocation: nextLocation });\n }\n }\n }\n const pendingMatches = this.matchRoutes(this.latestLocation);\n this.__store.setState((s) => ({\n ...s,\n status: \"pending\",\n statusCode: 200,\n isLoading: true,\n location: this.latestLocation,\n pendingMatches,\n // If a cached moved to pendingMatches, remove it from cachedMatches\n cachedMatches: s.cachedMatches.filter(\n (d) => !pendingMatches.some((e) => e.id === d.id)\n )\n }));\n };\n this.load = async (opts) => {\n let redirect2;\n let notFound;\n let loadPromise;\n loadPromise = new Promise((resolve) => {\n this.startTransition(async () => {\n try {\n this.beforeLoad();\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n if (!this.state.redirect) {\n this.emit({\n type: \"onBeforeNavigate\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n }\n this.emit({\n type: \"onBeforeLoad\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n await loadMatches({\n router: this,\n sync: opts?.sync,\n matches: this.state.pendingMatches,\n location: next,\n updateMatch: this.updateMatch,\n // eslint-disable-next-line @typescript-eslint/require-await\n onReady: async () => {\n this.startTransition(() => {\n this.startViewTransition(async () => {\n let exitingMatches = [];\n let enteringMatches = [];\n let stayingMatches = [];\n batch(() => {\n this.__store.setState((s) => {\n const previousMatches = s.matches;\n const newMatches = s.pendingMatches || s.matches;\n exitingMatches = previousMatches.filter(\n (match) => !newMatches.some((d) => d.id === match.id)\n );\n enteringMatches = newMatches.filter(\n (match) => !previousMatches.some((d) => d.id === match.id)\n );\n stayingMatches = newMatches.filter(\n (match) => previousMatches.some((d) => d.id === match.id)\n );\n return {\n ...s,\n isLoading: false,\n loadedAt: Date.now(),\n matches: newMatches,\n pendingMatches: void 0,\n /**\n * When committing new matches, cache any exiting matches that are still usable.\n * Routes that resolved with `status: 'error'` or `status: 'notFound'` are\n * deliberately excluded from `cachedMatches` so that subsequent invalidations\n * or reloads re-run their loaders instead of reusing the failed/not-found data.\n */\n cachedMatches: [\n ...s.cachedMatches,\n ...exitingMatches.filter(\n (d) => d.status !== \"error\" && d.status !== \"notFound\"\n )\n ]\n };\n });\n this.clearExpiredCache();\n });\n [\n [exitingMatches, \"onLeave\"],\n [enteringMatches, \"onEnter\"],\n [stayingMatches, \"onStay\"]\n ].forEach(([matches, hook]) => {\n matches.forEach((match) => {\n this.looseRoutesById[match.routeId].options[hook]?.(\n match\n );\n });\n });\n });\n });\n }\n });\n } catch (err) {\n if (isRedirect(err)) {\n redirect2 = err;\n if (!(isServer ?? this.isServer)) {\n this.navigate({\n ...redirect2.options,\n replace: true,\n ignoreBlocker: true\n });\n }\n } else if (isNotFound(err)) {\n notFound = err;\n }\n this.__store.setState((s) => ({\n ...s,\n statusCode: redirect2 ? redirect2.status : notFound ? 404 : s.matches.some((d) => d.status === \"error\") ? 500 : 200,\n redirect: redirect2\n }));\n }\n if (this.latestLoadPromise === loadPromise) {\n this.commitLocationPromise?.resolve();\n this.latestLoadPromise = void 0;\n this.commitLocationPromise = void 0;\n }\n resolve();\n });\n });\n this.latestLoadPromise = loadPromise;\n await loadPromise;\n while (this.latestLoadPromise && loadPromise !== this.latestLoadPromise) {\n await this.latestLoadPromise;\n }\n let newStatusCode = void 0;\n if (this.hasNotFoundMatch()) {\n newStatusCode = 404;\n } else if (this.__store.state.matches.some((d) => d.status === \"error\")) {\n newStatusCode = 500;\n }\n if (newStatusCode !== void 0) {\n this.__store.setState((s) => ({\n ...s,\n statusCode: newStatusCode\n }));\n }\n };\n this.startViewTransition = (fn) => {\n const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition;\n this.shouldViewTransition = void 0;\n if (shouldViewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document && typeof document.startViewTransition === \"function\") {\n let startViewTransitionParams;\n if (typeof shouldViewTransition === \"object\" && this.isViewTransitionTypesSupported) {\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n const resolvedViewTransitionTypes = typeof shouldViewTransition.types === \"function\" ? shouldViewTransition.types(\n getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n ) : shouldViewTransition.types;\n if (resolvedViewTransitionTypes === false) {\n fn();\n return;\n }\n startViewTransitionParams = {\n update: fn,\n types: resolvedViewTransitionTypes\n };\n } else {\n startViewTransitionParams = fn;\n }\n document.startViewTransition(startViewTransitionParams);\n } else {\n fn();\n }\n };\n this.updateMatch = (id, updater) => {\n this.startTransition(() => {\n const matchesKey = this.state.pendingMatches?.some((d) => d.id === id) ? \"pendingMatches\" : this.state.matches.some((d) => d.id === id) ? \"matches\" : this.state.cachedMatches.some((d) => d.id === id) ? \"cachedMatches\" : \"\";\n if (matchesKey) {\n this.__store.setState((s) => ({\n ...s,\n [matchesKey]: s[matchesKey]?.map(\n (d) => d.id === id ? updater(d) : d\n )\n }));\n }\n });\n };\n this.getMatch = (matchId) => {\n const findFn = (d) => d.id === matchId;\n return this.state.cachedMatches.find(findFn) ?? this.state.pendingMatches?.find(findFn) ?? this.state.matches.find(findFn);\n };\n this.invalidate = (opts) => {\n const invalidate = (d) => {\n if (opts?.filter?.(d) ?? true) {\n return {\n ...d,\n invalid: true,\n ...opts?.forcePending || d.status === \"error\" || d.status === \"notFound\" ? { status: \"pending\", error: void 0 } : void 0\n };\n }\n return d;\n };\n this.__store.setState((s) => ({\n ...s,\n matches: s.matches.map(invalidate),\n cachedMatches: s.cachedMatches.map(invalidate),\n pendingMatches: s.pendingMatches?.map(invalidate)\n }));\n this.shouldViewTransition = false;\n return this.load({ sync: opts?.sync });\n };\n this.getParsedLocationHref = (location) => {\n return location.publicHref || \"/\";\n };\n this.resolveRedirect = (redirect2) => {\n const locationHeader = redirect2.headers.get(\"Location\");\n if (!redirect2.options.href || redirect2.options._builtLocation) {\n const location = redirect2.options._builtLocation ?? this.buildLocation(redirect2.options);\n const href = this.getParsedLocationHref(location);\n redirect2.options.href = href;\n redirect2.headers.set(\"Location\", href);\n } else if (locationHeader) {\n try {\n const url = new URL(locationHeader);\n if (this.origin && url.origin === this.origin) {\n const href = url.pathname + url.search + url.hash;\n redirect2.options.href = href;\n redirect2.headers.set(\"Location\", href);\n }\n } catch {\n }\n }\n if (!redirect2.headers.get(\"Location\")) {\n redirect2.headers.set(\"Location\", redirect2.options.href);\n }\n return redirect2;\n };\n this.clearCache = (opts) => {\n const filter = opts?.filter;\n if (filter !== void 0) {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: s.cachedMatches.filter(\n (m) => !filter(m)\n )\n };\n });\n } else {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: []\n };\n });\n }\n };\n this.clearExpiredCache = () => {\n const filter = (d) => {\n const route = this.looseRoutesById[d.routeId];\n if (!route.options.loader) {\n return true;\n }\n const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3;\n const isError = d.status === \"error\";\n if (isError) return true;\n const gcEligible = Date.now() - d.updatedAt >= gcTime;\n return gcEligible;\n };\n this.clearCache({ filter });\n };\n this.loadRouteChunk = loadRouteChunk;\n this.preloadRoute = async (opts) => {\n const next = this.buildLocation(opts);\n let matches = this.matchRoutes(next, {\n throwOnError: true,\n preload: true,\n dest: opts\n });\n const activeMatchIds = new Set(\n [...this.state.matches, ...this.state.pendingMatches ?? []].map(\n (d) => d.id\n )\n );\n const loadedMatchIds = /* @__PURE__ */ new Set([\n ...activeMatchIds,\n ...this.state.cachedMatches.map((d) => d.id)\n ]);\n batch(() => {\n matches.forEach((match) => {\n if (!loadedMatchIds.has(match.id)) {\n this.__store.setState((s) => ({\n ...s,\n cachedMatches: [...s.cachedMatches, match]\n }));\n }\n });\n });\n try {\n matches = await loadMatches({\n router: this,\n matches,\n location: next,\n preload: true,\n updateMatch: (id, updater) => {\n if (activeMatchIds.has(id)) {\n matches = matches.map((d) => d.id === id ? updater(d) : d);\n } else {\n this.updateMatch(id, updater);\n }\n }\n });\n return matches;\n } catch (err) {\n if (isRedirect(err)) {\n if (err.options.reloadDocument) {\n return void 0;\n }\n return await this.preloadRoute({\n ...err.options,\n _fromLocation: next\n });\n }\n if (!isNotFound(err)) {\n console.error(err);\n }\n return void 0;\n }\n };\n this.matchRoute = (location, opts) => {\n const matchLocation = {\n ...location,\n to: location.to ? this.resolvePathWithBase(\n location.from || \"\",\n location.to\n ) : void 0,\n params: location.params || {},\n leaveParams: true\n };\n const next = this.buildLocation(matchLocation);\n if (opts?.pending && this.state.status !== \"pending\") {\n return false;\n }\n const pending = opts?.pending === void 0 ? !this.state.isLoading : opts.pending;\n const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation || this.state.location;\n const match = findSingleMatch(\n next.pathname,\n opts?.caseSensitive ?? false,\n opts?.fuzzy ?? false,\n baseLocation.pathname,\n this.processedTree\n );\n if (!match) {\n return false;\n }\n if (location.params) {\n if (!deepEqual(match.rawParams, location.params, { partial: true })) {\n return false;\n }\n }\n if (opts?.includeSearch ?? true) {\n return deepEqual(baseLocation.search, next.search, { partial: true }) ? match.rawParams : false;\n }\n return match.rawParams;\n };\n this.hasNotFoundMatch = () => {\n return this.__store.state.matches.some(\n (d) => d.status === \"notFound\" || d.globalNotFound\n );\n };\n this.update({\n defaultPreloadDelay: 50,\n defaultPendingMs: 1e3,\n defaultPendingMinMs: 500,\n context: void 0,\n ...options,\n caseSensitive: options.caseSensitive ?? false,\n notFoundMode: options.notFoundMode ?? \"fuzzy\",\n stringifySearch: options.stringifySearch ?? defaultStringifySearch,\n parseSearch: options.parseSearch ?? defaultParseSearch\n });\n if (typeof document !== \"undefined\") {\n self.__TSR_ROUTER__ = this;\n }\n }\n isShell() {\n return !!this.options.isShell;\n }\n isPrerendering() {\n return !!this.options.isPrerendering;\n }\n get state() {\n return this.__store.state;\n }\n setRoutes({\n routesById,\n routesByPath,\n processedTree\n }) {\n this.routesById = routesById;\n this.routesByPath = routesByPath;\n this.processedTree = processedTree;\n const notFoundRoute = this.options.notFoundRoute;\n if (notFoundRoute) {\n notFoundRoute.init({\n originalIndex: 99999999999\n });\n this.routesById[notFoundRoute.id] = notFoundRoute;\n }\n }\n get looseRoutesById() {\n return this.routesById;\n }\n matchRoutesInternal(next, opts) {\n const matchedRoutesResult = this.getMatchedRoutes(next.pathname);\n const { foundRoute, routeParams, parsedParams } = matchedRoutesResult;\n let { matchedRoutes } = matchedRoutesResult;\n let isGlobalNotFound = false;\n if (\n // If we found a route, and it's not an index route and we have left over path\n foundRoute ? foundRoute.path !== \"/\" && routeParams[\"**\"] : (\n // Or if we didn't find a route and we have left over path\n trimPathRight(next.pathname)\n )\n ) {\n if (this.options.notFoundRoute) {\n matchedRoutes = [...matchedRoutes, this.options.notFoundRoute];\n } else {\n isGlobalNotFound = true;\n }\n }\n const globalNotFoundRouteId = isGlobalNotFound ? findGlobalNotFoundRouteId(this.options.notFoundMode, matchedRoutes) : void 0;\n const matches = [];\n const getParentContext = (parentMatch) => {\n const parentMatchId = parentMatch?.id;\n const parentContext = !parentMatchId ? this.options.context ?? void 0 : parentMatch.context ?? this.options.context ?? void 0;\n return parentContext;\n };\n matchedRoutes.forEach((route, index) => {\n const parentMatch = matches[index - 1];\n const [preMatchSearch, strictMatchSearch, searchError] = (() => {\n const parentSearch = parentMatch?.search ?? next.search;\n const parentStrictSearch = parentMatch?._strictSearch ?? void 0;\n try {\n const strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? void 0;\n return [\n {\n ...parentSearch,\n ...strictSearch\n },\n { ...parentStrictSearch, ...strictSearch },\n void 0\n ];\n } catch (err) {\n let searchParamError = err;\n if (!(err instanceof SearchParamError)) {\n searchParamError = new SearchParamError(err.message, {\n cause: err\n });\n }\n if (opts?.throwOnError) {\n throw searchParamError;\n }\n return [parentSearch, {}, searchParamError];\n }\n })();\n const loaderDeps = route.options.loaderDeps?.({\n search: preMatchSearch\n }) ?? \"\";\n const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : \"\";\n const { interpolatedPath, usedParams } = interpolatePath({\n path: route.fullPath,\n params: routeParams,\n decoder: this.pathParamsDecoder,\n server: this.isServer\n });\n const matchId = (\n // route.id for disambiguation\n route.id + // interpolatedPath for param changes\n interpolatedPath + // explicit deps\n loaderDepsHash\n );\n const existingMatch = this.getMatch(matchId);\n const previousMatch = this.state.matches.find(\n (d) => d.routeId === route.id\n );\n const strictParams = existingMatch?._strictParams ?? usedParams;\n let paramsError = void 0;\n if (!existingMatch) {\n try {\n extractStrictParams(route, usedParams, parsedParams, strictParams);\n } catch (err) {\n if (isNotFound(err) || isRedirect(err)) {\n paramsError = err;\n } else {\n paramsError = new PathParamError(err.message, {\n cause: err\n });\n }\n if (opts?.throwOnError) {\n throw paramsError;\n }\n }\n }\n Object.assign(routeParams, strictParams);\n const cause = previousMatch ? \"stay\" : \"enter\";\n let match;\n if (existingMatch) {\n match = {\n ...existingMatch,\n cause,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: strictParams,\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : replaceEqualDeep(existingMatch.search, preMatchSearch),\n _strictSearch: strictMatchSearch\n };\n } else {\n const status = route.options.loader || route.options.beforeLoad || route.lazyFn || routeNeedsPreload(route) ? \"pending\" : \"success\";\n match = {\n id: matchId,\n ssr: isServer ?? this.isServer ? void 0 : route.options.ssr,\n index,\n routeId: route.id,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: strictParams,\n pathname: interpolatedPath,\n updatedAt: Date.now(),\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch,\n _strictSearch: strictMatchSearch,\n searchError: void 0,\n status,\n isFetching: false,\n error: void 0,\n paramsError,\n __routeContext: void 0,\n _nonReactive: {\n loadPromise: createControlledPromise()\n },\n __beforeLoadContext: void 0,\n context: {},\n abortController: new AbortController(),\n fetchCount: 0,\n cause,\n loaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps,\n invalid: false,\n preload: false,\n links: void 0,\n scripts: void 0,\n headScripts: void 0,\n meta: void 0,\n staticData: route.options.staticData || {},\n fullPath: route.fullPath\n };\n }\n if (!opts?.preload) {\n match.globalNotFound = globalNotFoundRouteId === route.id;\n }\n match.searchError = searchError;\n const parentContext = getParentContext(parentMatch);\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n matches.push(match);\n });\n matches.forEach((match, index) => {\n const route = this.looseRoutesById[match.routeId];\n const existingMatch = this.getMatch(match.id);\n if (!existingMatch) {\n const parentMatch = matches[index - 1];\n const parentContext = getParentContext(parentMatch);\n if (route.options.context) {\n const contextFnContext = {\n deps: match.loaderDeps,\n params: match.params,\n context: parentContext ?? {},\n location: next,\n navigate: (opts2) => this.navigate({ ...opts2, _fromLocation: next }),\n buildLocation: this.buildLocation,\n cause: match.cause,\n abortController: match.abortController,\n preload: !!match.preload,\n matches\n };\n match.__routeContext = route.options.context(contextFnContext) ?? void 0;\n }\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n }\n });\n return matches;\n }\n /**\n * Lightweight route matching for buildLocation.\n * Only computes fullPath, accumulated search, and params - skipping expensive\n * operations like AbortController, ControlledPromise, loaderDeps, and full match objects.\n */\n matchRoutesLightweight(location) {\n const { matchedRoutes, routeParams, parsedParams } = this.getMatchedRoutes(\n location.pathname\n );\n const lastRoute = last(matchedRoutes);\n const accumulatedSearch = { ...location.search };\n for (const route of matchedRoutes) {\n try {\n Object.assign(\n accumulatedSearch,\n validateSearch(route.options.validateSearch, accumulatedSearch)\n );\n } catch {\n }\n }\n const lastStateMatch = last(this.state.matches);\n const canReuseParams = lastStateMatch && lastStateMatch.routeId === lastRoute.id && location.pathname === this.state.location.pathname;\n let params;\n if (canReuseParams) {\n params = lastStateMatch.params;\n } else {\n const strictParams = { ...routeParams };\n for (const route of matchedRoutes) {\n try {\n extractStrictParams(\n route,\n routeParams,\n parsedParams ?? {},\n strictParams\n );\n } catch {\n }\n }\n params = strictParams;\n }\n return {\n matchedRoutes,\n fullPath: lastRoute.fullPath,\n search: accumulatedSearch,\n params\n };\n }\n}\nclass SearchParamError extends Error {\n}\nclass PathParamError extends Error {\n}\nconst normalize = (str) => str.endsWith(\"/\") && str.length > 1 ? str.slice(0, -1) : str;\nfunction comparePaths(a, b) {\n return normalize(a) === normalize(b);\n}\nfunction lazyFn(fn, key) {\n return async (...args) => {\n const imported = await fn();\n return imported[key || \"default\"](...args);\n };\n}\nfunction getInitialRouterState(location) {\n return {\n loadedAt: 0,\n isLoading: false,\n isTransitioning: false,\n status: \"idle\",\n resolvedLocation: void 0,\n location,\n matches: [],\n pendingMatches: [],\n cachedMatches: [],\n statusCode: 200\n };\n}\nfunction validateSearch(validateSearch2, input) {\n if (validateSearch2 == null) return {};\n if (\"~standard\" in validateSearch2) {\n const result = validateSearch2[\"~standard\"].validate(input);\n if (result instanceof Promise)\n throw new SearchParamError(\"Async validation not supported\");\n if (result.issues)\n throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), {\n cause: result\n });\n return result.value;\n }\n if (\"parse\" in validateSearch2) {\n return validateSearch2.parse(input);\n }\n if (typeof validateSearch2 === \"function\") {\n return validateSearch2(input);\n }\n return {};\n}\nfunction getMatchedRoutes({\n pathname,\n routesById,\n processedTree\n}) {\n const routeParams = {};\n const trimmedPath = trimPathRight(pathname);\n let foundRoute = void 0;\n let parsedParams = void 0;\n const match = findRouteMatch(trimmedPath, processedTree, true);\n if (match) {\n foundRoute = match.route;\n Object.assign(routeParams, match.rawParams);\n parsedParams = Object.assign({}, match.parsedParams);\n }\n const matchedRoutes = match?.branch || [routesById[rootRouteId]];\n return { matchedRoutes, routeParams, foundRoute, parsedParams };\n}\nfunction applySearchMiddleware({\n search,\n dest,\n destRoutes,\n _includeValidateSearch\n}) {\n const middleware = buildMiddlewareChain(destRoutes);\n return middleware(search, dest, _includeValidateSearch ?? false);\n}\nfunction buildMiddlewareChain(destRoutes) {\n const context = {\n dest: null,\n _includeValidateSearch: false,\n middlewares: []\n };\n for (const route of destRoutes) {\n if (\"search\" in route.options) {\n if (route.options.search?.middlewares) {\n context.middlewares.push(...route.options.search.middlewares);\n }\n } else if (route.options.preSearchFilters || route.options.postSearchFilters) {\n const legacyMiddleware = ({ search, next }) => {\n let nextSearch = search;\n if (\"preSearchFilters\" in route.options && route.options.preSearchFilters) {\n nextSearch = route.options.preSearchFilters.reduce(\n (prev, next2) => next2(prev),\n search\n );\n }\n const result = next(nextSearch);\n if (\"postSearchFilters\" in route.options && route.options.postSearchFilters) {\n return route.options.postSearchFilters.reduce(\n (prev, next2) => next2(prev),\n result\n );\n }\n return result;\n };\n context.middlewares.push(legacyMiddleware);\n }\n if (route.options.validateSearch) {\n const validate = ({ search, next }) => {\n const result = next(search);\n if (!context._includeValidateSearch) return result;\n try {\n const validatedSearch = {\n ...result,\n ...validateSearch(route.options.validateSearch, result) ?? void 0\n };\n return validatedSearch;\n } catch {\n return result;\n }\n };\n context.middlewares.push(validate);\n }\n }\n const final = ({ search }) => {\n const dest = context.dest;\n if (!dest.search) {\n return {};\n }\n if (dest.search === true) {\n return search;\n }\n return functionalUpdate(dest.search, search);\n };\n context.middlewares.push(final);\n const applyNext = (index, currentSearch, middlewares) => {\n if (index >= middlewares.length) {\n return currentSearch;\n }\n const middleware = middlewares[index];\n const next = (newSearch) => {\n return applyNext(index + 1, newSearch, middlewares);\n };\n return middleware({ search: currentSearch, next });\n };\n return function middleware(search, dest, _includeValidateSearch) {\n context.dest = dest;\n context._includeValidateSearch = _includeValidateSearch;\n return applyNext(0, search, context.middlewares);\n };\n}\nfunction findGlobalNotFoundRouteId(notFoundMode, routes) {\n if (notFoundMode !== \"root\") {\n for (let i = routes.length - 1; i >= 0; i--) {\n const route = routes[i];\n if (route.children) {\n return route.id;\n }\n }\n }\n return rootRouteId;\n}\nfunction extractStrictParams(route, referenceParams, parsedParams, accumulatedParams) {\n const parseParams = route.options.params?.parse ?? route.options.parseParams;\n if (parseParams) {\n if (route.options.skipRouteOnParseError) {\n for (const key in referenceParams) {\n if (key in parsedParams) {\n accumulatedParams[key] = parsedParams[key];\n }\n }\n } else {\n const result = parseParams(accumulatedParams);\n Object.assign(accumulatedParams, result);\n }\n }\n}\nexport {\n PathParamError,\n RouterCore,\n SearchParamError,\n defaultSerializeError,\n getInitialRouterState,\n getLocationChangeInfo,\n getMatchedRoutes,\n lazyFn,\n trailingSlashOptions\n};\n//# sourceMappingURL=router.js.map\n","import { defaultSerializeError } from \"./router.js\";\nconst TSR_DEFERRED_PROMISE = /* @__PURE__ */ Symbol.for(\"TSR_DEFERRED_PROMISE\");\nfunction defer(_promise, options) {\n const promise = _promise;\n if (promise[TSR_DEFERRED_PROMISE]) {\n return promise;\n }\n promise[TSR_DEFERRED_PROMISE] = { status: \"pending\" };\n promise.then((data) => {\n promise[TSR_DEFERRED_PROMISE].status = \"success\";\n promise[TSR_DEFERRED_PROMISE].data = data;\n }).catch((error) => {\n promise[TSR_DEFERRED_PROMISE].status = \"error\";\n promise[TSR_DEFERRED_PROMISE].error = {\n data: (options?.serializeError ?? defaultSerializeError)(error),\n __isServerError: true\n };\n });\n return promise;\n}\nexport {\n TSR_DEFERRED_PROMISE,\n defer\n};\n//# sourceMappingURL=defer.js.map\n","const preloadWarning = \"Error preloading route! ☝️\";\nexport {\n preloadWarning\n};\n//# sourceMappingURL=link.js.map\n","import invariant from \"tiny-invariant\";\nimport { trimPathLeft, joinPaths, trimPathRight } from \"./path.js\";\nimport { notFound } from \"./not-found.js\";\nimport { redirect } from \"./redirect.js\";\nimport { rootRouteId } from \"./root.js\";\nclass BaseRoute {\n constructor(options) {\n this.init = (opts) => {\n this.originalIndex = opts.originalIndex;\n const options2 = this.options;\n const isRoot = !options2?.path && !options2?.id;\n this.parentRoute = this.options.getParentRoute?.();\n if (isRoot) {\n this._path = rootRouteId;\n } else if (!this.parentRoute) {\n invariant(\n false,\n `Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.`\n );\n }\n let path = isRoot ? rootRouteId : options2?.path;\n if (path && path !== \"/\") {\n path = trimPathLeft(path);\n }\n const customId = options2?.id || path;\n let id = isRoot ? rootRouteId : joinPaths([\n this.parentRoute.id === rootRouteId ? \"\" : this.parentRoute.id,\n customId\n ]);\n if (path === rootRouteId) {\n path = \"/\";\n }\n if (id !== rootRouteId) {\n id = joinPaths([\"/\", id]);\n }\n const fullPath = id === rootRouteId ? \"/\" : joinPaths([this.parentRoute.fullPath, path]);\n this._path = path;\n this._id = id;\n this._fullPath = fullPath;\n this._to = trimPathRight(fullPath);\n };\n this.addChildren = (children) => {\n return this._addFileChildren(children);\n };\n this._addFileChildren = (children) => {\n if (Array.isArray(children)) {\n this.children = children;\n }\n if (typeof children === \"object\" && children !== null) {\n this.children = Object.values(children);\n }\n return this;\n };\n this._addFileTypes = () => {\n return this;\n };\n this.updateLoader = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.update = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.lazy = (lazyFn) => {\n this.lazyFn = lazyFn;\n return this;\n };\n this.redirect = (opts) => redirect({ from: this.fullPath, ...opts });\n this.options = options || {};\n this.isRoot = !options?.getParentRoute;\n if (options?.id && options?.path) {\n throw new Error(`Route cannot have both an 'id' and a 'path' option.`);\n }\n }\n get to() {\n return this._to;\n }\n get id() {\n return this._id;\n }\n get path() {\n return this._path;\n }\n get fullPath() {\n return this._fullPath;\n }\n}\nclass BaseRouteApi {\n constructor({ id }) {\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.redirect = (opts) => redirect({ from: this.id, ...opts });\n this.id = id;\n }\n}\nclass BaseRootRoute extends BaseRoute {\n constructor(options) {\n super(options);\n }\n}\nexport {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi\n};\n//# sourceMappingURL=route.js.map\n","import * as React from \"react\";\nconst REACT_USE = \"use\";\nconst reactUse = React[REACT_USE];\nfunction useStableCallback(fn) {\n const fnRef = React.useRef(fn);\n fnRef.current = fn;\n const ref = React.useRef((...args) => fnRef.current(...args));\n return ref.current;\n}\nconst useLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction usePrevious(value) {\n const ref = React.useRef({\n value,\n prev: null\n });\n const current = ref.current.value;\n if (value !== current) {\n ref.current = {\n value,\n prev: current\n };\n }\n return ref.current.prev;\n}\nfunction useIntersectionObserver(ref, callback, intersectionObserverOptions = {}, options = {}) {\n React.useEffect(() => {\n if (!ref.current || options.disabled || typeof IntersectionObserver !== \"function\") {\n return;\n }\n const observer = new IntersectionObserver(([entry]) => {\n callback(entry);\n }, intersectionObserverOptions);\n observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }, [callback, intersectionObserverOptions, options.disabled, ref]);\n}\nfunction useForwardedRef(ref) {\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => innerRef.current, []);\n return innerRef;\n}\nexport {\n reactUse,\n useForwardedRef,\n useIntersectionObserver,\n useLayoutEffect,\n usePrevious,\n useStableCallback\n};\n//# sourceMappingURL=utils.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { defer, TSR_DEFERRED_PROMISE } from \"@tanstack/router-core\";\nimport { reactUse } from \"./utils.js\";\nfunction useAwaited({ promise: _promise }) {\n if (reactUse) {\n const data = reactUse(_promise);\n return data;\n }\n const promise = defer(_promise);\n if (promise[TSR_DEFERRED_PROMISE].status === \"pending\") {\n throw promise;\n }\n if (promise[TSR_DEFERRED_PROMISE].status === \"error\") {\n throw promise[TSR_DEFERRED_PROMISE].error;\n }\n return promise[TSR_DEFERRED_PROMISE].data;\n}\nfunction Await(props) {\n const inner = /* @__PURE__ */ jsx(AwaitInner, { ...props });\n if (props.fallback) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: props.fallback, children: inner });\n }\n return inner;\n}\nfunction AwaitInner(props) {\n const data = useAwaited(props);\n return props.children(data);\n}\nexport {\n Await,\n useAwaited\n};\n//# sourceMappingURL=awaited.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nfunction CatchBoundary(props) {\n const errorComponent = props.errorComponent ?? ErrorComponent;\n return /* @__PURE__ */ jsx(\n CatchBoundaryImpl,\n {\n getResetKey: props.getResetKey,\n onCatch: props.onCatch,\n children: ({ error, reset }) => {\n if (error) {\n return React.createElement(errorComponent, {\n error,\n reset\n });\n }\n return props.children;\n }\n }\n );\n}\nclass CatchBoundaryImpl extends React.Component {\n constructor() {\n super(...arguments);\n this.state = { error: null };\n }\n static getDerivedStateFromProps(props) {\n return { resetKey: props.getResetKey() };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n reset() {\n this.setState({ error: null });\n }\n componentDidUpdate(prevProps, prevState) {\n if (prevState.error && prevState.resetKey !== this.state.resetKey) {\n this.reset();\n }\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.onCatch) {\n this.props.onCatch(error, errorInfo);\n }\n }\n render() {\n return this.props.children({\n error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error,\n reset: () => {\n this.reset();\n }\n });\n }\n}\nfunction ErrorComponent({ error }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== \"production\");\n return /* @__PURE__ */ jsxs(\"div\", { style: { padding: \".5rem\", maxWidth: \"100%\" }, children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: \".5rem\" }, children: [\n /* @__PURE__ */ jsx(\"strong\", { style: { fontSize: \"1rem\" }, children: \"Something went wrong!\" }),\n /* @__PURE__ */ jsx(\n \"button\",\n {\n style: {\n appearance: \"none\",\n fontSize: \".6em\",\n border: \"1px solid currentColor\",\n padding: \".1rem .2rem\",\n fontWeight: \"bold\",\n borderRadius: \".25rem\"\n },\n onClick: () => setShow((d) => !d),\n children: show ? \"Hide Error\" : \"Show Error\"\n }\n )\n ] }),\n /* @__PURE__ */ jsx(\"div\", { style: { height: \".25rem\" } }),\n show ? /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\n \"pre\",\n {\n style: {\n fontSize: \".7em\",\n border: \"1px solid red\",\n borderRadius: \".25rem\",\n padding: \".3rem\",\n color: \"red\",\n overflow: \"auto\"\n },\n children: error.message ? /* @__PURE__ */ jsx(\"code\", { children: error.message }) : null\n }\n ) }) : null\n ] });\n}\nexport {\n CatchBoundary,\n ErrorComponent\n};\n//# sourceMappingURL=CatchBoundary.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport React__default from \"react\";\nfunction ClientOnly({ children, fallback = null }) {\n return useHydrated() ? /* @__PURE__ */ jsx(React__default.Fragment, { children }) : /* @__PURE__ */ jsx(React__default.Fragment, { children: fallback });\n}\nfunction useHydrated() {\n return React__default.useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n ClientOnly,\n useHydrated\n};\n//# sourceMappingURL=ClientOnly.js.map\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d, options = {}) {\n const equal = options.equal ?? shallow;\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n equal\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = getOwnKeys(objA);\n if (keysA.length !== getOwnKeys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction getOwnKeys(obj) {\n return Object.keys(obj).concat(\n Object.getOwnPropertySymbols(obj)\n );\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nconst routerContext = React.createContext(null);\nfunction getRouterContext() {\n if (typeof document === \"undefined\") {\n return routerContext;\n }\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__;\n }\n window.__TSR_ROUTER_CONTEXT__ = routerContext;\n return routerContext;\n}\nexport {\n getRouterContext\n};\n//# sourceMappingURL=routerContext.js.map\n","import * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction useRouter(opts) {\n const value = React.useContext(getRouterContext());\n warning(\n !((opts?.warn ?? true) && !value),\n \"useRouter must be used inside a <RouterProvider> component!\"\n );\n return value;\n}\nexport {\n useRouter\n};\n//# sourceMappingURL=useRouter.js.map\n","import { useStore } from \"@tanstack/react-store\";\nimport { useRef } from \"react\";\nimport { replaceEqualDeep } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useRouterState(opts) {\n const contextRouter = useRouter({\n warn: opts?.router === void 0\n });\n const router = opts?.router || contextRouter;\n const _isServer = isServer ?? router.isServer;\n if (_isServer) {\n const state = router.state;\n return opts?.select ? opts.select(state) : state;\n }\n const previousResult = (\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useRef(void 0)\n );\n return useStore(router.__store, (state) => {\n if (opts?.select) {\n if (opts.structuralSharing ?? router.options.defaultStructuralSharing) {\n const newSlice = replaceEqualDeep(\n previousResult.current,\n opts.select(state)\n );\n previousResult.current = newSlice;\n return newSlice;\n }\n return opts.select(state);\n }\n return state;\n });\n}\nexport {\n useRouterState\n};\n//# sourceMappingURL=useRouterState.js.map\n","import * as React from \"react\";\nconst matchContext = React.createContext(void 0);\nconst dummyMatchContext = React.createContext(\n void 0\n);\nexport {\n dummyMatchContext,\n matchContext\n};\n//# sourceMappingURL=matchContext.js.map\n","import * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { dummyMatchContext, matchContext } from \"./matchContext.js\";\nfunction useMatch(opts) {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext\n );\n const matchSelection = useRouterState({\n select: (state) => {\n const match = state.matches.find(\n (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId\n );\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`\n );\n if (match === void 0) {\n return void 0;\n }\n return opts.select ? opts.select(match) : match;\n },\n structuralSharing: opts.structuralSharing\n });\n return matchSelection;\n}\nexport {\n useMatch\n};\n//# sourceMappingURL=useMatch.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderData(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (s) => {\n return opts.select ? opts.select(s.loaderData) : s.loaderData;\n }\n });\n}\nexport {\n useLoaderData\n};\n//# sourceMappingURL=useLoaderData.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderDeps(opts) {\n const { select, ...rest } = opts;\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps;\n }\n });\n}\nexport {\n useLoaderDeps\n};\n//# sourceMappingURL=useLoaderDeps.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useParams(opts) {\n return useMatch({\n from: opts.from,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n strict: opts.strict,\n select: (match) => {\n const params = opts.strict === false ? match.params : match._strictParams;\n return opts.select ? opts.select(params) : params;\n }\n });\n}\nexport {\n useParams\n};\n//# sourceMappingURL=useParams.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useSearch(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n select: (match) => {\n return opts.select ? opts.select(match.search) : match.search;\n }\n });\n}\nexport {\n useSearch\n};\n//# sourceMappingURL=useSearch.js.map\n","import * as React from \"react\";\nimport { useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useNavigate(_defaultOpts) {\n const router = useRouter();\n return React.useCallback(\n (options) => {\n return router.navigate({\n ...options,\n from: options.from ?? _defaultOpts?.from\n });\n },\n [_defaultOpts?.from, router]\n );\n}\nfunction Navigate(props) {\n const router = useRouter();\n const navigate = useNavigate();\n const previousPropsRef = React.useRef(null);\n useLayoutEffect(() => {\n if (previousPropsRef.current !== props) {\n navigate(props);\n previousPropsRef.current = props;\n }\n }, [router, props, navigate]);\n return null;\n}\nexport {\n Navigate,\n useNavigate\n};\n//# sourceMappingURL=useNavigate.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { isDangerousProtocol, exactPathTest, removeTrailingSlash, deepEqual, functionalUpdate, preloadWarning } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useForwardedRef, useIntersectionObserver } from \"./utils.js\";\nimport { useHydrated } from \"./ClientOnly.js\";\nfunction useLinkProps(options, forwardedRef) {\n const router = useRouter();\n const innerRef = useForwardedRef(forwardedRef);\n const _isServer = isServer ?? router.isServer;\n const {\n // custom props\n activeProps,\n inactiveProps,\n activeOptions,\n to,\n preload: userPreload,\n preloadDelay: userPreloadDelay,\n hashScrollIntoView,\n replace,\n startTransition,\n resetScroll,\n viewTransition,\n // element props\n children,\n target,\n disabled,\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ignoreBlocker,\n // prevent these from being returned\n params: _params,\n search: _search,\n hash: _hash,\n state: _state,\n mask: _mask,\n reloadDocument: _reloadDocument,\n unsafeRelative: _unsafeRelative,\n from: _from,\n _fromLocation,\n ...propsSafeToSpread\n } = options;\n if (_isServer) {\n const safeInternal = isSafeInternal(to);\n if (typeof to === \"string\" && !safeInternal && // Quick checks to avoid `new URL` in common internal-like cases\n to.indexOf(\":\") > -1) {\n try {\n new URL(to);\n if (isDangerousProtocol(to)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`Blocked Link with dangerous protocol: ${to}`);\n }\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: void 0,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className }\n };\n }\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: to,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className }\n };\n } catch {\n }\n }\n const next2 = router.buildLocation({ ...options, from: options.from });\n const hrefOptionPublicHref2 = next2.maskedLocation ? next2.maskedLocation.publicHref : next2.publicHref;\n const hrefOptionExternal2 = next2.maskedLocation ? next2.maskedLocation.external : next2.external;\n const hrefOption2 = getHrefOption(\n hrefOptionPublicHref2,\n hrefOptionExternal2,\n router.history,\n disabled\n );\n const externalLink2 = (() => {\n if (hrefOption2?.external) {\n if (isDangerousProtocol(hrefOption2.href)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n `Blocked Link with dangerous protocol: ${hrefOption2.href}`\n );\n }\n return void 0;\n }\n return hrefOption2.href;\n }\n if (safeInternal) return void 0;\n if (typeof to === \"string\" && to.indexOf(\":\") > -1) {\n try {\n new URL(to);\n if (isDangerousProtocol(to)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`Blocked Link with dangerous protocol: ${to}`);\n }\n return void 0;\n }\n return to;\n } catch {\n }\n }\n return void 0;\n })();\n const isActive2 = (() => {\n if (externalLink2) return false;\n const currentLocation = router.state.location;\n const exact = activeOptions?.exact ?? false;\n if (exact) {\n const testExact = exactPathTest(\n currentLocation.pathname,\n next2.pathname,\n router.basepath\n );\n if (!testExact) {\n return false;\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n currentLocation.pathname,\n router.basepath\n );\n const nextPathSplit = removeTrailingSlash(\n next2.pathname,\n router.basepath\n );\n const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\");\n if (!pathIsFuzzyEqual) {\n return false;\n }\n }\n const includeSearch = activeOptions?.includeSearch ?? true;\n if (includeSearch) {\n if (currentLocation.search !== next2.search) {\n const currentSearchEmpty = !currentLocation.search || typeof currentLocation.search === \"object\" && Object.keys(currentLocation.search).length === 0;\n const nextSearchEmpty = !next2.search || typeof next2.search === \"object\" && Object.keys(next2.search).length === 0;\n if (!(currentSearchEmpty && nextSearchEmpty)) {\n const searchTest = deepEqual(currentLocation.search, next2.search, {\n partial: !exact,\n ignoreUndefined: !activeOptions?.explicitUndefined\n });\n if (!searchTest) {\n return false;\n }\n }\n }\n }\n if (activeOptions?.includeHash) {\n return false;\n }\n return true;\n })();\n if (externalLink2) {\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: externalLink2,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className }\n };\n }\n const resolvedActiveProps2 = isActive2 ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n const resolvedInactiveProps2 = isActive2 ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n const resolvedStyle2 = (() => {\n const baseStyle = style;\n const activeStyle = resolvedActiveProps2.style;\n const inactiveStyle = resolvedInactiveProps2.style;\n if (!baseStyle && !activeStyle && !inactiveStyle) {\n return void 0;\n }\n if (baseStyle && !activeStyle && !inactiveStyle) {\n return baseStyle;\n }\n if (!baseStyle && activeStyle && !inactiveStyle) {\n return activeStyle;\n }\n if (!baseStyle && !activeStyle && inactiveStyle) {\n return inactiveStyle;\n }\n return {\n ...baseStyle,\n ...activeStyle,\n ...inactiveStyle\n };\n })();\n const resolvedClassName2 = (() => {\n const baseClassName = className;\n const activeClassName = resolvedActiveProps2.className;\n const inactiveClassName = resolvedInactiveProps2.className;\n if (!baseClassName && !activeClassName && !inactiveClassName) {\n return \"\";\n }\n let out = \"\";\n if (baseClassName) {\n out = baseClassName;\n }\n if (activeClassName) {\n out = out ? `${out} ${activeClassName}` : activeClassName;\n }\n if (inactiveClassName) {\n out = out ? `${out} ${inactiveClassName}` : inactiveClassName;\n }\n return out;\n })();\n return {\n ...propsSafeToSpread,\n ...resolvedActiveProps2,\n ...resolvedInactiveProps2,\n href: hrefOption2?.href,\n ref: innerRef,\n disabled: !!disabled,\n target,\n ...resolvedStyle2 && { style: resolvedStyle2 },\n ...resolvedClassName2 && { className: resolvedClassName2 },\n ...disabled && STATIC_DISABLED_PROPS,\n ...isActive2 && STATIC_ACTIVE_PROPS\n };\n }\n const isHydrated = useHydrated();\n const currentSearch = useRouterState({\n select: (s) => s.location.search,\n structuralSharing: true\n });\n const from = options.from;\n const _options = React.useMemo(\n () => {\n return { ...options, from };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n router,\n currentSearch,\n from,\n options._fromLocation,\n options.hash,\n options.to,\n options.search,\n options.params,\n options.state,\n options.mask,\n options.unsafeRelative\n ]\n );\n const next = React.useMemo(\n () => router.buildLocation({ ..._options }),\n [router, _options]\n );\n const hrefOptionPublicHref = next.maskedLocation ? next.maskedLocation.publicHref : next.publicHref;\n const hrefOptionExternal = next.maskedLocation ? next.maskedLocation.external : next.external;\n const hrefOption = React.useMemo(\n () => getHrefOption(\n hrefOptionPublicHref,\n hrefOptionExternal,\n router.history,\n disabled\n ),\n [disabled, hrefOptionExternal, hrefOptionPublicHref, router.history]\n );\n const externalLink = React.useMemo(() => {\n if (hrefOption?.external) {\n if (isDangerousProtocol(hrefOption.href)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n `Blocked Link with dangerous protocol: ${hrefOption.href}`\n );\n }\n return void 0;\n }\n return hrefOption.href;\n }\n const safeInternal = isSafeInternal(to);\n if (safeInternal) return void 0;\n if (typeof to !== \"string\" || to.indexOf(\":\") === -1) return void 0;\n try {\n new URL(to);\n if (isDangerousProtocol(to)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`Blocked Link with dangerous protocol: ${to}`);\n }\n return void 0;\n }\n return to;\n } catch {\n }\n return void 0;\n }, [to, hrefOption]);\n const isActive = useRouterState({\n select: (s) => {\n if (externalLink) return false;\n if (activeOptions?.exact) {\n const testExact = exactPathTest(\n s.location.pathname,\n next.pathname,\n router.basepath\n );\n if (!testExact) {\n return false;\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n s.location.pathname,\n router.basepath\n );\n const nextPathSplit = removeTrailingSlash(\n next.pathname,\n router.basepath\n );\n const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\");\n if (!pathIsFuzzyEqual) {\n return false;\n }\n }\n if (activeOptions?.includeSearch ?? true) {\n const searchTest = deepEqual(s.location.search, next.search, {\n partial: !activeOptions?.exact,\n ignoreUndefined: !activeOptions?.explicitUndefined\n });\n if (!searchTest) {\n return false;\n }\n }\n if (activeOptions?.includeHash) {\n return isHydrated && s.location.hash === next.hash;\n }\n return true;\n }\n });\n const resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n const resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n const resolvedClassName = [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className\n ].filter(Boolean).join(\" \");\n const resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style\n };\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const hasRenderFetched = React.useRef(false);\n const preload = options.reloadDocument || externalLink ? false : userPreload ?? router.options.defaultPreload;\n const preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0;\n const doPreload = React.useCallback(() => {\n router.preloadRoute({ ..._options }).catch((err) => {\n console.warn(err);\n console.warn(preloadWarning);\n });\n }, [router, _options]);\n const preloadViewportIoCallback = React.useCallback(\n (entry) => {\n if (entry?.isIntersecting) {\n doPreload();\n }\n },\n [doPreload]\n );\n useIntersectionObserver(\n innerRef,\n preloadViewportIoCallback,\n intersectionObserverOptions,\n { disabled: !!disabled || !(preload === \"viewport\") }\n );\n React.useEffect(() => {\n if (hasRenderFetched.current) {\n return;\n }\n if (!disabled && preload === \"render\") {\n doPreload();\n hasRenderFetched.current = true;\n }\n }, [disabled, doPreload, preload]);\n const handleClick = (e) => {\n const elementTarget = e.currentTarget.getAttribute(\"target\");\n const effectiveTarget = target !== void 0 ? target : elementTarget;\n if (!disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!effectiveTarget || effectiveTarget === \"_self\") && e.button === 0) {\n e.preventDefault();\n flushSync(() => {\n setIsTransitioning(true);\n });\n const unsub = router.subscribe(\"onResolved\", () => {\n unsub();\n setIsTransitioning(false);\n });\n router.navigate({\n ..._options,\n replace,\n resetScroll,\n hashScrollIntoView,\n startTransition,\n viewTransition,\n ignoreBlocker\n });\n }\n };\n if (externalLink) {\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: externalLink,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className },\n ...onClick && { onClick },\n ...onFocus && { onFocus },\n ...onMouseEnter && { onMouseEnter },\n ...onMouseLeave && { onMouseLeave },\n ...onTouchStart && { onTouchStart }\n };\n }\n const handleFocus = (_) => {\n if (disabled) return;\n if (preload) {\n doPreload();\n }\n };\n const handleTouchStart = handleFocus;\n const handleEnter = (e) => {\n if (disabled || !preload) return;\n if (!preloadDelay) {\n doPreload();\n } else {\n const eventTarget = e.target;\n if (timeoutMap.has(eventTarget)) {\n return;\n }\n const id = setTimeout(() => {\n timeoutMap.delete(eventTarget);\n doPreload();\n }, preloadDelay);\n timeoutMap.set(eventTarget, id);\n }\n };\n const handleLeave = (e) => {\n if (disabled || !preload || !preloadDelay) return;\n const eventTarget = e.target;\n const id = timeoutMap.get(eventTarget);\n if (id) {\n clearTimeout(id);\n timeoutMap.delete(eventTarget);\n }\n };\n return {\n ...propsSafeToSpread,\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n href: hrefOption?.href,\n ref: innerRef,\n onClick: composeHandlers([onClick, handleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n disabled: !!disabled,\n target,\n ...resolvedStyle && { style: resolvedStyle },\n ...resolvedClassName && { className: resolvedClassName },\n ...disabled && STATIC_DISABLED_PROPS,\n ...isActive && STATIC_ACTIVE_PROPS,\n ...isHydrated && isTransitioning && STATIC_TRANSITIONING_PROPS\n };\n}\nconst STATIC_EMPTY_OBJECT = {};\nconst STATIC_ACTIVE_OBJECT = { className: \"active\" };\nconst STATIC_DISABLED_PROPS = { role: \"link\", \"aria-disabled\": true };\nconst STATIC_ACTIVE_PROPS = { \"data-status\": \"active\", \"aria-current\": \"page\" };\nconst STATIC_TRANSITIONING_PROPS = { \"data-transitioning\": \"transitioning\" };\nconst timeoutMap = /* @__PURE__ */ new WeakMap();\nconst intersectionObserverOptions = {\n rootMargin: \"100px\"\n};\nconst composeHandlers = (handlers) => (e) => {\n for (const handler of handlers) {\n if (!handler) continue;\n if (e.defaultPrevented) return;\n handler(e);\n }\n};\nfunction getHrefOption(publicHref, external, history, disabled) {\n if (disabled) return void 0;\n if (external) {\n return { href: publicHref, external: true };\n }\n return {\n href: history.createHref(publicHref) || \"/\",\n external: false\n };\n}\nfunction isSafeInternal(to) {\n if (typeof to !== \"string\") return false;\n const zero = to.charCodeAt(0);\n if (zero === 47) return to.charCodeAt(1) !== 47;\n return zero === 46;\n}\nfunction createLink(Comp) {\n return React.forwardRef(function CreatedLink(props, ref) {\n return /* @__PURE__ */ jsx(Link, { ...props, _asChild: Comp, ref });\n });\n}\nconst Link = React.forwardRef(\n (props, ref) => {\n const { _asChild, ...rest } = props;\n const { type: _type, ...linkProps } = useLinkProps(rest, ref);\n const children = typeof rest.children === \"function\" ? rest.children({\n isActive: linkProps[\"data-status\"] === \"active\"\n }) : rest.children;\n if (!_asChild) {\n const { disabled: _, ...rest2 } = linkProps;\n return React.createElement(\"a\", rest2, children);\n }\n return React.createElement(_asChild, linkProps, children);\n }\n);\nfunction isCtrlEvent(e) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n}\nconst linkOptions = (options) => {\n return options;\n};\nexport {\n Link,\n createLink,\n linkOptions,\n useLinkProps\n};\n//# sourceMappingURL=link.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { BaseRouteApi, notFound, BaseRoute, BaseRootRoute } from \"@tanstack/router-core\";\nimport React__default from \"react\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Link } from \"./link.js\";\nfunction getRouteApi(id) {\n return new RouteApi({ id });\n}\nclass RouteApi extends BaseRouteApi {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }) {\n super({ id });\n this.useMatch = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n structuralSharing: opts?.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n from: this.id,\n select: (d) => opts?.select ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.id].fullPath });\n };\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.Link = React__default.forwardRef((props, ref) => {\n const router = useRouter();\n const fullPath = router.routesById[this.id].fullPath;\n return /* @__PURE__ */ jsx(Link, { ref, from: fullPath, ...props });\n });\n }\n}\nclass Route extends BaseRoute {\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n structuralSharing: opts?.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => opts?.select ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = /* @__PURE__ */ Symbol.for(\"react.memo\");\n }\n}\nfunction createRoute(options) {\n return new Route(\n // TODO: Help us TypeChris, you're our only hope!\n options\n );\n}\nfunction createRootRouteWithContext() {\n return (options) => {\n return createRootRoute(options);\n };\n}\nconst rootRouteWithContext = createRootRouteWithContext;\nclass RootRoute extends BaseRootRoute {\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n structuralSharing: opts?.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => opts?.select ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts?.select,\n structuralSharing: opts?.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = /* @__PURE__ */ Symbol.for(\"react.memo\");\n }\n}\nfunction createRootRoute(options) {\n return new RootRoute(options);\n}\nfunction createRouteMask(opts) {\n return opts;\n}\nclass NotFoundRoute extends Route {\n constructor(options) {\n super({\n ...options,\n id: \"404\"\n });\n }\n}\nexport {\n NotFoundRoute,\n RootRoute,\n Route,\n RouteApi,\n createRootRoute,\n createRootRouteWithContext,\n createRoute,\n createRouteMask,\n getRouteApi,\n rootRouteWithContext\n};\n//# sourceMappingURL=route.js.map\n","import warning from \"tiny-warning\";\nimport { createRoute } from \"./route.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useRouter } from \"./useRouter.js\";\nfunction createFileRoute(path) {\n if (typeof path === \"object\") {\n return new FileRoute(path, {\n silent: true\n }).createRoute(path);\n }\n return new FileRoute(path, {\n silent: true\n }).createRoute;\n}\nclass FileRoute {\n constructor(path, _opts) {\n this.path = path;\n this.createRoute = (options) => {\n warning(\n this.silent,\n \"FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.\"\n );\n const route = createRoute(options);\n route.isRoot = false;\n return route;\n };\n this.silent = _opts?.silent;\n }\n}\nfunction FileRouteLoader(_path) {\n warning(\n false,\n `FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the the main route file, inside the \\`createFileRoute('/path/to/file')(options)\\` options`\n );\n return (loaderFn) => loaderFn;\n}\nclass LazyRoute {\n constructor(opts) {\n this.useMatch = (opts2) => {\n return useMatch({\n select: opts2?.select,\n from: this.options.id,\n structuralSharing: opts2?.structuralSharing\n });\n };\n this.useRouteContext = (opts2) => {\n return useMatch({\n from: this.options.id,\n select: (d) => opts2?.select ? opts2.select(d.context) : d.context\n });\n };\n this.useSearch = (opts2) => {\n return useSearch({\n select: opts2?.select,\n structuralSharing: opts2?.structuralSharing,\n from: this.options.id\n });\n };\n this.useParams = (opts2) => {\n return useParams({\n select: opts2?.select,\n structuralSharing: opts2?.structuralSharing,\n from: this.options.id\n });\n };\n this.useLoaderDeps = (opts2) => {\n return useLoaderDeps({ ...opts2, from: this.options.id });\n };\n this.useLoaderData = (opts2) => {\n return useLoaderData({ ...opts2, from: this.options.id });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.options.id].fullPath });\n };\n this.options = opts;\n this.$$typeof = /* @__PURE__ */ Symbol.for(\"react.memo\");\n }\n}\nfunction createLazyRoute(id) {\n return (opts) => {\n return new LazyRoute({\n id,\n ...opts\n });\n };\n}\nfunction createLazyFileRoute(id) {\n if (typeof id === \"object\") {\n return new LazyRoute(id);\n }\n return (opts) => new LazyRoute({ id, ...opts });\n}\nexport {\n FileRoute,\n FileRouteLoader,\n LazyRoute,\n createFileRoute,\n createLazyFileRoute,\n createLazyRoute\n};\n//# sourceMappingURL=fileRoute.js.map\n","import * as React from \"react\";\nimport { isModuleNotFoundError } from \"@tanstack/router-core\";\nimport { reactUse } from \"./utils.js\";\nfunction lazyRouteComponent(importer, exportName) {\n let loadPromise;\n let comp;\n let error;\n let reload;\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer().then((res) => {\n loadPromise = void 0;\n comp = res[exportName ?? \"default\"];\n }).catch((err) => {\n error = err;\n if (isModuleNotFoundError(error)) {\n if (error instanceof Error && typeof window !== \"undefined\" && typeof sessionStorage !== \"undefined\") {\n const storageKey = `tanstack_router_reload:${error.message}`;\n if (!sessionStorage.getItem(storageKey)) {\n sessionStorage.setItem(storageKey, \"1\");\n reload = true;\n }\n }\n }\n });\n }\n return loadPromise;\n };\n const lazyComp = function Lazy(props) {\n if (reload) {\n window.location.reload();\n throw new Promise(() => {\n });\n }\n if (error) {\n throw error;\n }\n if (!comp) {\n if (reactUse) {\n reactUse(load());\n } else {\n throw load();\n }\n }\n return React.createElement(comp, props);\n };\n lazyComp.preload = load;\n return lazyComp;\n}\nexport {\n lazyRouteComponent\n};\n//# sourceMappingURL=lazyRouteComponent.js.map\n","import * as React from \"react\";\nimport { trimPathRight, getLocationChangeInfo, handleHashScroll } from \"@tanstack/router-core\";\nimport { usePrevious, useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction Transitioner() {\n const router = useRouter();\n const mountLoadForRouter = React.useRef({ router, mounted: false });\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const { hasPendingMatches, isLoading } = useRouterState({\n select: (s) => ({\n isLoading: s.isLoading,\n hasPendingMatches: s.matches.some((d) => d.status === \"pending\")\n }),\n structuralSharing: true\n });\n const previousIsLoading = usePrevious(isLoading);\n const isAnyPending = isLoading || isTransitioning || hasPendingMatches;\n const previousIsAnyPending = usePrevious(isAnyPending);\n const isPagePending = isLoading || hasPendingMatches;\n const previousIsPagePending = usePrevious(isPagePending);\n router.startTransition = (fn) => {\n setIsTransitioning(true);\n React.startTransition(() => {\n fn();\n setIsTransitioning(false);\n });\n };\n React.useEffect(() => {\n const unsub = router.history.subscribe(router.load);\n const nextLocation = router.buildLocation({\n to: router.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n if (trimPathRight(router.latestLocation.publicHref) !== trimPathRight(nextLocation.publicHref)) {\n router.commitLocation({ ...nextLocation, replace: true });\n }\n return () => {\n unsub();\n };\n }, [router, router.history]);\n useLayoutEffect(() => {\n if (\n // if we are hydrating from SSR, loading is triggered in ssr-client\n typeof window !== \"undefined\" && router.ssr || mountLoadForRouter.current.router === router && mountLoadForRouter.current.mounted\n ) {\n return;\n }\n mountLoadForRouter.current = { router, mounted: true };\n const tryLoad = async () => {\n try {\n await router.load();\n } catch (err) {\n console.error(err);\n }\n };\n tryLoad();\n }, [router]);\n useLayoutEffect(() => {\n if (previousIsLoading && !isLoading) {\n router.emit({\n type: \"onLoad\",\n // When the new URL has committed, when the new matches have been loaded into state.matches\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [previousIsLoading, router, isLoading]);\n useLayoutEffect(() => {\n if (previousIsPagePending && !isPagePending) {\n router.emit({\n type: \"onBeforeRouteMount\",\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [isPagePending, previousIsPagePending, router]);\n useLayoutEffect(() => {\n if (previousIsAnyPending && !isAnyPending) {\n const changeInfo = getLocationChangeInfo(router.state);\n router.emit({\n type: \"onResolved\",\n ...changeInfo\n });\n router.__store.setState((s) => ({\n ...s,\n status: \"idle\",\n resolvedLocation: s.location\n }));\n if (changeInfo.hrefChanged) {\n handleHashScroll(router);\n }\n }\n }, [isAnyPending, previousIsAnyPending, router]);\n return null;\n}\nexport {\n Transitioner\n};\n//# sourceMappingURL=Transitioner.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { isNotFound } from \"@tanstack/router-core\";\nimport { CatchBoundary } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction CatchNotFound(props) {\n const resetKey = useRouterState({\n select: (s) => `not-found-${s.location.pathname}-${s.status}`\n });\n return /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n onCatch: (error, errorInfo) => {\n if (isNotFound(error)) {\n props.onCatch?.(error, errorInfo);\n } else {\n throw error;\n }\n },\n errorComponent: ({ error }) => {\n if (isNotFound(error)) {\n return props.fallback?.(error);\n } else {\n throw error;\n }\n },\n children: props.children\n }\n );\n}\nfunction DefaultGlobalNotFound() {\n return /* @__PURE__ */ jsx(\"p\", { children: \"Not Found\" });\n}\nexport {\n CatchNotFound,\n DefaultGlobalNotFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nfunction SafeFragment(props) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n}\nexport {\n SafeFragment\n};\n//# sourceMappingURL=SafeFragment.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport warning from \"tiny-warning\";\nimport { DefaultGlobalNotFound } from \"./not-found.js\";\nfunction renderRouteNotFound(router, route, data) {\n if (!route.options.notFoundComponent) {\n if (router.options.defaultNotFoundComponent) {\n return /* @__PURE__ */ jsx(router.options.defaultNotFoundComponent, { ...data });\n }\n if (process.env.NODE_ENV === \"development\") {\n warning(\n route.options.notFoundComponent,\n `A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<p>Not Found</p>)`\n );\n }\n return /* @__PURE__ */ jsx(DefaultGlobalNotFound, {});\n }\n return /* @__PURE__ */ jsx(route.options.notFoundComponent, { ...data });\n}\nexport {\n renderRouteNotFound\n};\n//# sourceMappingURL=renderRouteNotFound.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { defaultGetScrollRestorationKey, restoreScroll, escapeHtml, storageKey } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { useRouter } from \"./useRouter.js\";\nimport { ScriptOnce } from \"./ScriptOnce.js\";\nfunction ScrollRestoration() {\n const router = useRouter();\n if (!router.isScrollRestoring || !(isServer ?? router.isServer)) {\n return null;\n }\n if (typeof router.options.scrollRestoration === \"function\") {\n const shouldRestore = router.options.scrollRestoration({\n location: router.latestLocation\n });\n if (!shouldRestore) {\n return null;\n }\n }\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n const userKey = getKey(router.latestLocation);\n const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;\n const restoreScrollOptions = {\n storageKey,\n shouldScrollRestoration: true\n };\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey;\n }\n return /* @__PURE__ */ jsx(\n ScriptOnce,\n {\n children: `(${restoreScroll.toString()})(${escapeHtml(JSON.stringify(restoreScrollOptions))})`\n }\n );\n}\nexport {\n ScrollRestoration\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","import { jsxs, jsx, Fragment } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\nimport { isNotFound, rootRouteId, createControlledPromise, isRedirect, getLocationChangeInfo } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { CatchNotFound } from \"./not-found.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nimport { renderRouteNotFound } from \"./renderRouteNotFound.js\";\nimport { ScrollRestoration } from \"./scroll-restoration.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nconst Match = React.memo(function MatchImpl({\n matchId\n}) {\n const router = useRouter();\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === matchId);\n invariant(\n match,\n `Could not find match for matchId \"${matchId}\". Please file an issue!`\n );\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending\n };\n },\n structuralSharing: true\n });\n const route = router.routesById[matchState.routeId];\n const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent;\n const pendingElement = PendingComponent ? /* @__PURE__ */ jsx(PendingComponent, {}) : null;\n const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent;\n const routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch;\n const routeNotFoundComponent = route.isRoot ? (\n // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n route.options.notFoundComponent ?? router.options.notFoundRoute?.options.component\n ) : route.options.notFoundComponent;\n const resolvedNoSsr = matchState.ssr === false || matchState.ssr === \"data-only\";\n const ResolvedSuspenseBoundary = (\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route.isRoot || route.options.wrapInSuspense || resolvedNoSsr) && (route.options.wrapInSuspense ?? PendingComponent ?? (route.options.errorComponent?.preload || resolvedNoSsr)) ? React.Suspense : SafeFragment\n );\n const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment;\n const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment;\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === matchId);\n return s.matches[index - 1]?.routeId;\n }\n });\n const ShellComponent = route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment;\n return /* @__PURE__ */ jsxs(ShellComponent, { children: [\n /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsx(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ jsx(\n ResolvedCatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: routeErrorComponent || ErrorComponent,\n onCatch: (error, errorInfo) => {\n if (isNotFound(error)) throw error;\n warning(false, `Error in route match: ${matchId}`);\n routeOnCatch?.(error, errorInfo);\n },\n children: /* @__PURE__ */ jsx(\n ResolvedNotFoundBoundary,\n {\n fallback: (error) => {\n if (!routeNotFoundComponent || error.routeId && error.routeId !== matchState.routeId || !error.routeId && !route.isRoot)\n throw error;\n return React.createElement(routeNotFoundComponent, error);\n },\n children: resolvedNoSsr || matchState._displayPending ? /* @__PURE__ */ jsx(ClientOnly, { fallback: pendingElement, children: /* @__PURE__ */ jsx(MatchInner, { matchId }) }) : /* @__PURE__ */ jsx(MatchInner, { matchId })\n }\n )\n }\n ) }) }),\n parentRouteId === rootRouteId && router.options.scrollRestoration ? /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(OnRendered, {}),\n /* @__PURE__ */ jsx(ScrollRestoration, {})\n ] }) : null\n ] });\n});\nfunction OnRendered() {\n const router = useRouter();\n const prevLocationRef = React.useRef(\n void 0\n );\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n suppressHydrationWarning: true,\n ref: (el) => {\n if (el && (prevLocationRef.current === void 0 || prevLocationRef.current.href !== router.latestLocation.href)) {\n router.emit({\n type: \"onRendered\",\n ...getLocationChangeInfo(router.state)\n });\n prevLocationRef.current = router.latestLocation;\n }\n }\n },\n router.latestLocation.state.__TSR_key\n );\n}\nconst MatchInner = React.memo(function MatchInnerImpl({\n matchId\n}) {\n const router = useRouter();\n const { match, key, routeId } = useRouterState({\n select: (s) => {\n const match2 = s.matches.find((d) => d.id === matchId);\n const routeId2 = match2.routeId;\n const remountFn = router.routesById[routeId2].options.remountDeps ?? router.options.defaultRemountDeps;\n const remountDeps = remountFn?.({\n routeId: routeId2,\n loaderDeps: match2.loaderDeps,\n params: match2._strictParams,\n search: match2._strictSearch\n });\n const key2 = remountDeps ? JSON.stringify(remountDeps) : void 0;\n return {\n key: key2,\n routeId: routeId2,\n match: {\n id: match2.id,\n status: match2.status,\n error: match2.error,\n invalid: match2.invalid,\n _forcePending: match2._forcePending,\n _displayPending: match2._displayPending\n }\n };\n },\n structuralSharing: true\n });\n const route = router.routesById[routeId];\n const out = React.useMemo(() => {\n const Comp = route.options.component ?? router.options.defaultComponent;\n if (Comp) {\n return /* @__PURE__ */ jsx(Comp, {}, key);\n }\n return /* @__PURE__ */ jsx(Outlet, {});\n }, [key, route.options.component, router.options.defaultComponent]);\n if (match._displayPending) {\n throw router.getMatch(match.id)?._nonReactive.displayPendingPromise;\n }\n if (match._forcePending) {\n throw router.getMatch(match.id)?._nonReactive.minPendingPromise;\n }\n if (match.status === \"pending\") {\n const pendingMinMs = route.options.pendingMinMs ?? router.options.defaultPendingMinMs;\n if (pendingMinMs) {\n const routerMatch = router.getMatch(match.id);\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n if (!(isServer ?? router.isServer)) {\n const minPendingPromise = createControlledPromise();\n routerMatch._nonReactive.minPendingPromise = minPendingPromise;\n setTimeout(() => {\n minPendingPromise.resolve();\n routerMatch._nonReactive.minPendingPromise = void 0;\n }, pendingMinMs);\n }\n }\n }\n throw router.getMatch(match.id)?._nonReactive.loadPromise;\n }\n if (match.status === \"notFound\") {\n invariant(isNotFound(match.error), \"Expected a notFound error\");\n return renderRouteNotFound(router, route, match.error);\n }\n if (match.status === \"redirected\") {\n invariant(isRedirect(match.error), \"Expected a redirect error\");\n throw router.getMatch(match.id)?._nonReactive.loadPromise;\n }\n if (match.status === \"error\") {\n if (isServer ?? router.isServer) {\n const RouteErrorComponent = (route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent;\n return /* @__PURE__ */ jsx(\n RouteErrorComponent,\n {\n error: match.error,\n reset: void 0,\n info: {\n componentStack: \"\"\n }\n }\n );\n }\n throw match.error;\n }\n return out;\n});\nconst Outlet = React.memo(function OutletImpl() {\n const router = useRouter();\n const matchId = React.useContext(matchContext);\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId)?.routeId\n });\n const route = router.routesById[routeId];\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches;\n const parentMatch = matches.find((d) => d.id === matchId);\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId}\"`\n );\n return parentMatch.globalNotFound;\n }\n });\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches;\n const index = matches.findIndex((d) => d.id === matchId);\n return matches[index + 1]?.id;\n }\n });\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n if (parentGlobalNotFound) {\n return renderRouteNotFound(router, route, void 0);\n }\n if (!childMatchId) {\n return null;\n }\n const nextMatch = /* @__PURE__ */ jsx(Match, { matchId: childMatchId });\n if (routeId === rootRouteId) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: pendingElement, children: nextMatch });\n }\n return nextMatch;\n});\nexport {\n Match,\n MatchInner,\n Outlet\n};\n//# sourceMappingURL=Match.js.map\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { rootRouteId } from \"@tanstack/router-core\";\nimport { isServer } from \"@tanstack/router-core/isServer\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Transitioner } from \"./Transitioner.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { Match } from \"./Match.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nfunction Matches() {\n const router = useRouter();\n const rootRoute = router.routesById[rootRouteId];\n const PendingComponent = rootRoute.options.pendingComponent ?? router.options.defaultPendingComponent;\n const pendingElement = PendingComponent ? /* @__PURE__ */ jsx(PendingComponent, {}) : null;\n const ResolvedSuspense = (isServer ?? router.isServer) || typeof document !== \"undefined\" && router.ssr ? SafeFragment : React.Suspense;\n const inner = /* @__PURE__ */ jsxs(ResolvedSuspense, { fallback: pendingElement, children: [\n !(isServer ?? router.isServer) && /* @__PURE__ */ jsx(Transitioner, {}),\n /* @__PURE__ */ jsx(MatchesInner, {})\n ] });\n return router.options.InnerWrap ? /* @__PURE__ */ jsx(router.options.InnerWrap, { children: inner }) : inner;\n}\nfunction MatchesInner() {\n const router = useRouter();\n const matchId = useRouterState({\n select: (s) => {\n return s.matches[0]?.id;\n }\n });\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const matchComponent = matchId ? /* @__PURE__ */ jsx(Match, { matchId }) : null;\n return /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: ErrorComponent,\n onCatch: (error) => {\n warning(\n false,\n `The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`\n );\n warning(false, error.message || error.toString());\n },\n children: matchComponent\n }\n ) });\n}\nfunction useMatchRoute() {\n const router = useRouter();\n useRouterState({\n select: (s) => [s.location.href, s.resolvedLocation?.href, s.status],\n structuralSharing: true\n });\n return React.useCallback(\n (opts) => {\n const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n return router.matchRoute(rest, {\n pending,\n caseSensitive,\n fuzzy,\n includeSearch\n });\n },\n [router]\n );\n}\nfunction MatchRoute(props) {\n const matchRoute = useMatchRoute();\n const params = matchRoute(props);\n if (typeof props.children === \"function\") {\n return props.children(params);\n }\n return params ? props.children : null;\n}\nfunction useMatches(opts) {\n return useRouterState({\n select: (state) => {\n const matches = state.matches;\n return opts?.select ? opts.select(matches) : matches;\n },\n structuralSharing: opts?.structuralSharing\n });\n}\nfunction useParentMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n 0,\n matches.findIndex((d) => d.id === contextMatchId)\n );\n return opts?.select ? opts.select(matches) : matches;\n },\n structuralSharing: opts?.structuralSharing\n });\n}\nfunction useChildMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n matches.findIndex((d) => d.id === contextMatchId) + 1\n );\n return opts?.select ? opts.select(matches) : matches;\n },\n structuralSharing: opts?.structuralSharing\n });\n}\nexport {\n MatchRoute,\n Matches,\n useChildMatches,\n useMatchRoute,\n useMatches,\n useParentMatches\n};\n//# sourceMappingURL=Matches.js.map\n","import { RouterCore } from \"@tanstack/router-core\";\nimport { createFileRoute, createLazyFileRoute } from \"./fileRoute.js\";\nconst createRouter = (options) => {\n return new Router(options);\n};\nclass Router extends RouterCore {\n constructor(options) {\n super(options);\n }\n}\nif (typeof globalThis !== \"undefined\") {\n globalThis.createFileRoute = createFileRoute;\n globalThis.createLazyFileRoute = createLazyFileRoute;\n} else if (typeof window !== \"undefined\") {\n window.createFileRoute = createFileRoute;\n window.createLazyFileRoute = createLazyFileRoute;\n}\nexport {\n Router,\n createRouter\n};\n//# sourceMappingURL=router.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Matches } from \"./Matches.js\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction RouterContextProvider({\n router,\n children,\n ...rest\n}) {\n if (Object.keys(rest).length > 0) {\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest.context\n }\n });\n }\n const routerContext = getRouterContext();\n const provider = /* @__PURE__ */ jsx(routerContext.Provider, { value: router, children });\n if (router.options.Wrap) {\n return /* @__PURE__ */ jsx(router.options.Wrap, { children: provider });\n }\n return provider;\n}\nfunction RouterProvider({ router, ...rest }) {\n return /* @__PURE__ */ jsx(RouterContextProvider, { router, ...rest, children: /* @__PURE__ */ jsx(Matches, {}) });\n}\nexport {\n RouterContextProvider,\n RouterProvider\n};\n//# sourceMappingURL=RouterProvider.js.map\n","/**\n * table-core\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n// type Person = {\n// firstName: string\n// lastName: string\n// age: number\n// visits: number\n// status: string\n// progress: number\n// createdAt: Date\n// nested: {\n// foo: [\n// {\n// bar: 'bar'\n// }\n// ]\n// bar: { subBar: boolean }[]\n// baz: {\n// foo: 'foo'\n// bar: {\n// baz: 'baz'\n// }\n// }\n// }\n// }\n\n// const test: DeepKeys<Person> = 'nested.foo.0.bar'\n// const test2: DeepKeys<Person> = 'nested.bar'\n\n// const helper = createColumnHelper<Person>()\n\n// helper.accessor('nested.foo', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.foo.0.bar', {\n// cell: info => info.getValue(),\n// })\n\n// helper.accessor('nested.bar', {\n// cell: info => info.getValue(),\n// })\n\nfunction createColumnHelper() {\n return {\n accessor: (accessor, column) => {\n return typeof accessor === 'function' ? {\n ...column,\n accessorFn: accessor\n } : {\n ...column,\n accessorKey: accessor\n };\n },\n display: column => column,\n group: column => column\n };\n}\n\n// Is this type a tuple?\n\n// If this type is a tuple, what indices are allowed?\n\n///\n\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction noop() {\n //\n}\nfunction makeStateUpdater(key, instance) {\n return updater => {\n instance.setState(old => {\n return {\n ...old,\n [key]: functionalUpdate(updater, old[key])\n };\n });\n };\n}\nfunction isFunction(d) {\n return d instanceof Function;\n}\nfunction isNumberArray(d) {\n return Array.isArray(d) && d.every(val => typeof val === 'number');\n}\nfunction flattenBy(arr, getChildren) {\n const flat = [];\n const recurse = subArr => {\n subArr.forEach(item => {\n flat.push(item);\n const children = getChildren(item);\n if (children != null && children.length) {\n recurse(children);\n }\n });\n };\n recurse(arr);\n return flat;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return depArgs => {\n let depTime;\n if (opts.key && opts.debug) depTime = Date.now();\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && opts.debug) resultTime = Date.now();\n result = fn(...newDeps);\n opts == null || opts.onChange == null || opts.onChange(result);\n if (opts.key && opts.debug) {\n if (opts != null && opts.debug()) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = ' ' + str;\n }\n return str;\n };\n console.info(`%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`, `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(0, Math.min(120 - 120 * resultFpsPercentage, 120))}deg 100% 31%);`, opts == null ? void 0 : opts.key);\n }\n }\n return result;\n };\n}\nfunction getMemoOptions(tableOptions, debugLevel, key, onChange) {\n return {\n debug: () => {\n var _tableOptions$debugAl;\n return (_tableOptions$debugAl = tableOptions == null ? void 0 : tableOptions.debugAll) != null ? _tableOptions$debugAl : tableOptions[debugLevel];\n },\n key: process.env.NODE_ENV === 'development' && key,\n onChange\n };\n}\n\nfunction createCell(table, row, column, columnId) {\n const getRenderValue = () => {\n var _cell$getValue;\n return (_cell$getValue = cell.getValue()) != null ? _cell$getValue : table.options.renderFallbackValue;\n };\n const cell = {\n id: `${row.id}_${column.id}`,\n row,\n column,\n getValue: () => row.getValue(columnId),\n renderValue: getRenderValue,\n getContext: memo(() => [table, column, row, cell], (table, column, row, cell) => ({\n table,\n column,\n row,\n cell: cell,\n getValue: cell.getValue,\n renderValue: cell.renderValue\n }), getMemoOptions(table.options, 'debugCells', 'cell.getContext'))\n };\n table._features.forEach(feature => {\n feature.createCell == null || feature.createCell(cell, column, row, table);\n }, {});\n return cell;\n}\n\nfunction createColumn(table, columnDef, depth, parent) {\n var _ref, _resolvedColumnDef$id;\n const defaultColumn = table._getDefaultColumnDef();\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef\n };\n const accessorKey = resolvedColumnDef.accessorKey;\n let id = (_ref = (_resolvedColumnDef$id = resolvedColumnDef.id) != null ? _resolvedColumnDef$id : accessorKey ? typeof String.prototype.replaceAll === 'function' ? accessorKey.replaceAll('.', '_') : accessorKey.replace(/\\./g, '_') : undefined) != null ? _ref : typeof resolvedColumnDef.header === 'string' ? resolvedColumnDef.header : undefined;\n let accessorFn;\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn;\n } else if (accessorKey) {\n // Support deep accessor keys\n if (accessorKey.includes('.')) {\n accessorFn = originalRow => {\n let result = originalRow;\n for (const key of accessorKey.split('.')) {\n var _result;\n result = (_result = result) == null ? void 0 : _result[key];\n if (process.env.NODE_ENV !== 'production' && result === undefined) {\n console.warn(`\"${key}\" in deeply nested key \"${accessorKey}\" returned undefined.`);\n }\n }\n return result;\n };\n } else {\n accessorFn = originalRow => originalRow[resolvedColumnDef.accessorKey];\n }\n }\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(resolvedColumnDef.accessorFn ? `Columns require an id when using an accessorFn` : `Columns require an id when using a non-string header`);\n }\n throw new Error();\n }\n let column = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent,\n depth,\n columnDef: resolvedColumnDef,\n columns: [],\n getFlatColumns: memo(() => [true], () => {\n var _column$columns;\n return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getFlatColumns')),\n getLeafColumns: memo(() => [table._getOrderColumnsFn()], orderColumns => {\n var _column$columns2;\n if ((_column$columns2 = column.columns) != null && _column$columns2.length) {\n let leafColumns = column.columns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }\n return [column];\n }, getMemoOptions(table.options, 'debugColumns', 'column.getLeafColumns'))\n };\n for (const feature of table._features) {\n feature.createColumn == null || feature.createColumn(column, table);\n }\n\n // Yes, we have to convert table to unknown, because we know more than the compiler here.\n return column;\n}\n\nconst debug = 'debugHeaders';\n//\n\nfunction createHeader(table, column, options) {\n var _options$id;\n const id = (_options$id = options.id) != null ? _options$id : column.id;\n let header = {\n id,\n column,\n index: options.index,\n isPlaceholder: !!options.isPlaceholder,\n placeholderId: options.placeholderId,\n depth: options.depth,\n subHeaders: [],\n colSpan: 0,\n rowSpan: 0,\n headerGroup: null,\n getLeafHeaders: () => {\n const leafHeaders = [];\n const recurseHeader = h => {\n if (h.subHeaders && h.subHeaders.length) {\n h.subHeaders.map(recurseHeader);\n }\n leafHeaders.push(h);\n };\n recurseHeader(header);\n return leafHeaders;\n },\n getContext: () => ({\n table,\n header: header,\n column\n })\n };\n table._features.forEach(feature => {\n feature.createHeader == null || feature.createHeader(header, table);\n });\n return header;\n}\nconst Headers = {\n createTable: table => {\n // Header Groups\n\n table.getHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n var _left$map$filter, _right$map$filter;\n const leftColumns = (_left$map$filter = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter : [];\n const rightColumns = (_right$map$filter = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter : [];\n const centerColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n const headerGroups = buildHeaderGroups(allColumns, [...leftColumns, ...centerColumns, ...rightColumns], table);\n return headerGroups;\n }, getMemoOptions(table.options, debug, 'getHeaderGroups'));\n table.getCenterHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, leafColumns, left, right) => {\n leafColumns = leafColumns.filter(column => !(left != null && left.includes(column.id)) && !(right != null && right.includes(column.id)));\n return buildHeaderGroups(allColumns, leafColumns, table, 'center');\n }, getMemoOptions(table.options, debug, 'getCenterHeaderGroups'));\n table.getLeftHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.left], (allColumns, leafColumns, left) => {\n var _left$map$filter2;\n const orderedLeafColumns = (_left$map$filter2 = left == null ? void 0 : left.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _left$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left');\n }, getMemoOptions(table.options, debug, 'getLeftHeaderGroups'));\n table.getRightHeaderGroups = memo(() => [table.getAllColumns(), table.getVisibleLeafColumns(), table.getState().columnPinning.right], (allColumns, leafColumns, right) => {\n var _right$map$filter2;\n const orderedLeafColumns = (_right$map$filter2 = right == null ? void 0 : right.map(columnId => leafColumns.find(d => d.id === columnId)).filter(Boolean)) != null ? _right$map$filter2 : [];\n return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right');\n }, getMemoOptions(table.options, debug, 'getRightHeaderGroups'));\n\n // Footer Groups\n\n table.getFooterGroups = memo(() => [table.getHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getFooterGroups'));\n table.getLeftFooterGroups = memo(() => [table.getLeftHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getLeftFooterGroups'));\n table.getCenterFooterGroups = memo(() => [table.getCenterHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getCenterFooterGroups'));\n table.getRightFooterGroups = memo(() => [table.getRightHeaderGroups()], headerGroups => {\n return [...headerGroups].reverse();\n }, getMemoOptions(table.options, debug, 'getRightFooterGroups'));\n\n // Flat Headers\n\n table.getFlatHeaders = memo(() => [table.getHeaderGroups()], headerGroups => {\n return headerGroups.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getFlatHeaders'));\n table.getLeftFlatHeaders = memo(() => [table.getLeftHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeftFlatHeaders'));\n table.getCenterFlatHeaders = memo(() => [table.getCenterHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getCenterFlatHeaders'));\n table.getRightFlatHeaders = memo(() => [table.getRightHeaderGroups()], left => {\n return left.map(headerGroup => {\n return headerGroup.headers;\n }).flat();\n }, getMemoOptions(table.options, debug, 'getRightFlatHeaders'));\n\n // Leaf Headers\n\n table.getCenterLeafHeaders = memo(() => [table.getCenterFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders;\n return !((_header$subHeaders = header.subHeaders) != null && _header$subHeaders.length);\n });\n }, getMemoOptions(table.options, debug, 'getCenterLeafHeaders'));\n table.getLeftLeafHeaders = memo(() => [table.getLeftFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders2;\n return !((_header$subHeaders2 = header.subHeaders) != null && _header$subHeaders2.length);\n });\n }, getMemoOptions(table.options, debug, 'getLeftLeafHeaders'));\n table.getRightLeafHeaders = memo(() => [table.getRightFlatHeaders()], flatHeaders => {\n return flatHeaders.filter(header => {\n var _header$subHeaders3;\n return !((_header$subHeaders3 = header.subHeaders) != null && _header$subHeaders3.length);\n });\n }, getMemoOptions(table.options, debug, 'getRightLeafHeaders'));\n table.getLeafHeaders = memo(() => [table.getLeftHeaderGroups(), table.getCenterHeaderGroups(), table.getRightHeaderGroups()], (left, center, right) => {\n var _left$0$headers, _left$, _center$0$headers, _center$, _right$0$headers, _right$;\n return [...((_left$0$headers = (_left$ = left[0]) == null ? void 0 : _left$.headers) != null ? _left$0$headers : []), ...((_center$0$headers = (_center$ = center[0]) == null ? void 0 : _center$.headers) != null ? _center$0$headers : []), ...((_right$0$headers = (_right$ = right[0]) == null ? void 0 : _right$.headers) != null ? _right$0$headers : [])].map(header => {\n return header.getLeafHeaders();\n }).flat();\n }, getMemoOptions(table.options, debug, 'getLeafHeaders'));\n }\n};\nfunction buildHeaderGroups(allColumns, columnsToGroup, table, headerFamily) {\n var _headerGroups$0$heade, _headerGroups$;\n // Find the max depth of the columns:\n // build the leaf column row\n // build each buffer row going up\n // placeholder for non-existent level\n // real column for existing level\n\n let maxDepth = 0;\n const findMaxDepth = function (columns, depth) {\n if (depth === void 0) {\n depth = 1;\n }\n maxDepth = Math.max(maxDepth, depth);\n columns.filter(column => column.getIsVisible()).forEach(column => {\n var _column$columns;\n if ((_column$columns = column.columns) != null && _column$columns.length) {\n findMaxDepth(column.columns, depth + 1);\n }\n }, 0);\n };\n findMaxDepth(allColumns);\n let headerGroups = [];\n const createHeaderGroup = (headersToGroup, depth) => {\n // The header group we are creating\n const headerGroup = {\n depth,\n id: [headerFamily, `${depth}`].filter(Boolean).join('_'),\n headers: []\n };\n\n // The parent columns we're going to scan next\n const pendingParentHeaders = [];\n\n // Scan each column for parents\n headersToGroup.forEach(headerToGroup => {\n // What is the latest (last) parent column?\n\n const latestPendingParentHeader = [...pendingParentHeaders].reverse()[0];\n const isLeafHeader = headerToGroup.column.depth === headerGroup.depth;\n let column;\n let isPlaceholder = false;\n if (isLeafHeader && headerToGroup.column.parent) {\n // The parent header is new\n column = headerToGroup.column.parent;\n } else {\n // The parent header is repeated\n column = headerToGroup.column;\n isPlaceholder = true;\n }\n if (latestPendingParentHeader && (latestPendingParentHeader == null ? void 0 : latestPendingParentHeader.column) === column) {\n // This column is repeated. Add it as a sub header to the next batch\n latestPendingParentHeader.subHeaders.push(headerToGroup);\n } else {\n // This is a new header. Let's create it\n const header = createHeader(table, column, {\n id: [headerFamily, depth, column.id, headerToGroup == null ? void 0 : headerToGroup.id].filter(Boolean).join('_'),\n isPlaceholder,\n placeholderId: isPlaceholder ? `${pendingParentHeaders.filter(d => d.column === column).length}` : undefined,\n depth,\n index: pendingParentHeaders.length\n });\n\n // Add the headerToGroup as a subHeader of the new header\n header.subHeaders.push(headerToGroup);\n // Add the new header to the pendingParentHeaders to get grouped\n // in the next batch\n pendingParentHeaders.push(header);\n }\n headerGroup.headers.push(headerToGroup);\n headerToGroup.headerGroup = headerGroup;\n });\n headerGroups.push(headerGroup);\n if (depth > 0) {\n createHeaderGroup(pendingParentHeaders, depth - 1);\n }\n };\n const bottomHeaders = columnsToGroup.map((column, index) => createHeader(table, column, {\n depth: maxDepth,\n index\n }));\n createHeaderGroup(bottomHeaders, maxDepth - 1);\n headerGroups.reverse();\n\n // headerGroups = headerGroups.filter(headerGroup => {\n // return !headerGroup.headers.every(header => header.isPlaceholder)\n // })\n\n const recurseHeadersForSpans = headers => {\n const filteredHeaders = headers.filter(header => header.column.getIsVisible());\n return filteredHeaders.map(header => {\n let colSpan = 0;\n let rowSpan = 0;\n let childRowSpans = [0];\n if (header.subHeaders && header.subHeaders.length) {\n childRowSpans = [];\n recurseHeadersForSpans(header.subHeaders).forEach(_ref => {\n let {\n colSpan: childColSpan,\n rowSpan: childRowSpan\n } = _ref;\n colSpan += childColSpan;\n childRowSpans.push(childRowSpan);\n });\n } else {\n colSpan = 1;\n }\n const minChildRowSpan = Math.min(...childRowSpans);\n rowSpan = rowSpan + minChildRowSpan;\n header.colSpan = colSpan;\n header.rowSpan = rowSpan;\n return {\n colSpan,\n rowSpan\n };\n });\n };\n recurseHeadersForSpans((_headerGroups$0$heade = (_headerGroups$ = headerGroups[0]) == null ? void 0 : _headerGroups$.headers) != null ? _headerGroups$0$heade : []);\n return headerGroups;\n}\n\nconst createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {\n let row = {\n id,\n index: rowIndex,\n original,\n depth,\n parentId,\n _valuesCache: {},\n _uniqueValuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);\n return row._valuesCache[columnId];\n },\n getUniqueValues: columnId => {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.accessorFn)) {\n return undefined;\n }\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)];\n return row._uniqueValuesCache[columnId];\n }\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);\n return row._uniqueValuesCache[columnId];\n },\n renderValue: columnId => {\n var _row$getValue;\n return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;\n },\n subRows: subRows != null ? subRows : [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : undefined,\n getParentRows: () => {\n let parentRows = [];\n let currentRow = row;\n while (true) {\n const parentRow = currentRow.getParentRow();\n if (!parentRow) break;\n parentRows.push(parentRow);\n currentRow = parentRow;\n }\n return parentRows.reverse();\n },\n getAllCells: memo(() => [table.getAllLeafColumns()], leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row, column, column.id);\n });\n }, getMemoOptions(table.options, 'debugRows', 'getAllCells')),\n _getAllCellsByColumnId: memo(() => [row.getAllCells()], allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell;\n return acc;\n }, {});\n }, getMemoOptions(table.options, 'debugRows', 'getAllCellsByColumnId'))\n };\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i];\n feature == null || feature.createRow == null || feature.createRow(row, table);\n }\n return row;\n};\n\n//\n\nconst ColumnFaceting = {\n createColumn: (column, table) => {\n column._getFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, column.id);\n column.getFacetedRowModel = () => {\n if (!column._getFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return column._getFacetedRowModel();\n };\n column._getFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, column.id);\n column.getFacetedUniqueValues = () => {\n if (!column._getFacetedUniqueValues) {\n return new Map();\n }\n return column._getFacetedUniqueValues();\n };\n column._getFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, column.id);\n column.getFacetedMinMaxValues = () => {\n if (!column._getFacetedMinMaxValues) {\n return undefined;\n }\n return column._getFacetedMinMaxValues();\n };\n }\n};\n\nconst includesString = (row, columnId, filterValue) => {\n var _filterValue$toString, _row$getValue;\n const search = filterValue == null || (_filterValue$toString = filterValue.toString()) == null ? void 0 : _filterValue$toString.toLowerCase();\n return Boolean((_row$getValue = row.getValue(columnId)) == null || (_row$getValue = _row$getValue.toString()) == null || (_row$getValue = _row$getValue.toLowerCase()) == null ? void 0 : _row$getValue.includes(search));\n};\nincludesString.autoRemove = val => testFalsey(val);\nconst includesStringSensitive = (row, columnId, filterValue) => {\n var _row$getValue2;\n return Boolean((_row$getValue2 = row.getValue(columnId)) == null || (_row$getValue2 = _row$getValue2.toString()) == null ? void 0 : _row$getValue2.includes(filterValue));\n};\nincludesStringSensitive.autoRemove = val => testFalsey(val);\nconst equalsString = (row, columnId, filterValue) => {\n var _row$getValue3;\n return ((_row$getValue3 = row.getValue(columnId)) == null || (_row$getValue3 = _row$getValue3.toString()) == null ? void 0 : _row$getValue3.toLowerCase()) === (filterValue == null ? void 0 : filterValue.toLowerCase());\n};\nequalsString.autoRemove = val => testFalsey(val);\nconst arrIncludes = (row, columnId, filterValue) => {\n var _row$getValue4;\n return (_row$getValue4 = row.getValue(columnId)) == null ? void 0 : _row$getValue4.includes(filterValue);\n};\narrIncludes.autoRemove = val => testFalsey(val);\nconst arrIncludesAll = (row, columnId, filterValue) => {\n return !filterValue.some(val => {\n var _row$getValue5;\n return !((_row$getValue5 = row.getValue(columnId)) != null && _row$getValue5.includes(val));\n });\n};\narrIncludesAll.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst arrIncludesSome = (row, columnId, filterValue) => {\n return filterValue.some(val => {\n var _row$getValue6;\n return (_row$getValue6 = row.getValue(columnId)) == null ? void 0 : _row$getValue6.includes(val);\n });\n};\narrIncludesSome.autoRemove = val => testFalsey(val) || !(val != null && val.length);\nconst equals = (row, columnId, filterValue) => {\n return row.getValue(columnId) === filterValue;\n};\nequals.autoRemove = val => testFalsey(val);\nconst weakEquals = (row, columnId, filterValue) => {\n return row.getValue(columnId) == filterValue;\n};\nweakEquals.autoRemove = val => testFalsey(val);\nconst inNumberRange = (row, columnId, filterValue) => {\n let [min, max] = filterValue;\n const rowValue = row.getValue(columnId);\n return rowValue >= min && rowValue <= max;\n};\ninNumberRange.resolveFilterValue = val => {\n let [unsafeMin, unsafeMax] = val;\n let parsedMin = typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin;\n let parsedMax = typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax;\n let min = unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin;\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax;\n if (min > max) {\n const temp = min;\n min = max;\n max = temp;\n }\n return [min, max];\n};\ninNumberRange.autoRemove = val => testFalsey(val) || testFalsey(val[0]) && testFalsey(val[1]);\n\n// Export\n\nconst filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange\n};\n// Utils\n\nfunction testFalsey(val) {\n return val === undefined || val === null || val === '';\n}\n\n//\n\nconst ColumnFiltering = {\n getDefaultColumnDef: () => {\n return {\n filterFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n columnFilters: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnFiltersChange: makeStateUpdater('columnFilters', table),\n filterFromLeafRows: false,\n maxLeafRowFilterDepth: 100\n };\n },\n createColumn: (column, table) => {\n column.getAutoFilterFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return filterFns.includesString;\n }\n if (typeof value === 'number') {\n return filterFns.inNumberRange;\n }\n if (typeof value === 'boolean') {\n return filterFns.equals;\n }\n if (value !== null && typeof value === 'object') {\n return filterFns.equals;\n }\n if (Array.isArray(value)) {\n return filterFns.arrIncludes;\n }\n return filterFns.weakEquals;\n };\n column.getFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n return isFunction(column.columnDef.filterFn) ? column.columnDef.filterFn : column.columnDef.filterFn === 'auto' ? column.getAutoFilterFn() : // @ts-ignore\n (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[column.columnDef.filterFn]) != null ? _table$options$filter : filterFns[column.columnDef.filterFn];\n };\n column.getCanFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2;\n return ((_column$columnDef$ena = column.columnDef.enableColumnFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnFilters) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && !!column.accessorFn;\n };\n column.getIsFiltered = () => column.getFilterIndex() > -1;\n column.getFilterValue = () => {\n var _table$getState$colum;\n return (_table$getState$colum = table.getState().columnFilters) == null || (_table$getState$colum = _table$getState$colum.find(d => d.id === column.id)) == null ? void 0 : _table$getState$colum.value;\n };\n column.getFilterIndex = () => {\n var _table$getState$colum2, _table$getState$colum3;\n return (_table$getState$colum2 = (_table$getState$colum3 = table.getState().columnFilters) == null ? void 0 : _table$getState$colum3.findIndex(d => d.id === column.id)) != null ? _table$getState$colum2 : -1;\n };\n column.setFilterValue = value => {\n table.setColumnFilters(old => {\n const filterFn = column.getFilterFn();\n const previousFilter = old == null ? void 0 : old.find(d => d.id === column.id);\n const newFilter = functionalUpdate(value, previousFilter ? previousFilter.value : undefined);\n\n //\n if (shouldAutoRemoveFilter(filterFn, newFilter, column)) {\n var _old$filter;\n return (_old$filter = old == null ? void 0 : old.filter(d => d.id !== column.id)) != null ? _old$filter : [];\n }\n const newFilterObj = {\n id: column.id,\n value: newFilter\n };\n if (previousFilter) {\n var _old$map;\n return (_old$map = old == null ? void 0 : old.map(d => {\n if (d.id === column.id) {\n return newFilterObj;\n }\n return d;\n })) != null ? _old$map : [];\n }\n if (old != null && old.length) {\n return [...old, newFilterObj];\n }\n return [newFilterObj];\n });\n };\n },\n createRow: (row, _table) => {\n row.columnFilters = {};\n row.columnFiltersMeta = {};\n },\n createTable: table => {\n table.setColumnFilters = updater => {\n const leafColumns = table.getAllLeafColumns();\n const updateFn = old => {\n var _functionalUpdate;\n return (_functionalUpdate = functionalUpdate(updater, old)) == null ? void 0 : _functionalUpdate.filter(filter => {\n const column = leafColumns.find(d => d.id === filter.id);\n if (column) {\n const filterFn = column.getFilterFn();\n if (shouldAutoRemoveFilter(filterFn, filter.value, column)) {\n return false;\n }\n }\n return true;\n });\n };\n table.options.onColumnFiltersChange == null || table.options.onColumnFiltersChange(updateFn);\n };\n table.resetColumnFilters = defaultState => {\n var _table$initialState$c, _table$initialState;\n table.setColumnFilters(defaultState ? [] : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnFilters) != null ? _table$initialState$c : []);\n };\n table.getPreFilteredRowModel = () => table.getCoreRowModel();\n table.getFilteredRowModel = () => {\n if (!table._getFilteredRowModel && table.options.getFilteredRowModel) {\n table._getFilteredRowModel = table.options.getFilteredRowModel(table);\n }\n if (table.options.manualFiltering || !table._getFilteredRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getFilteredRowModel();\n };\n }\n};\nfunction shouldAutoRemoveFilter(filterFn, value, column) {\n return (filterFn && filterFn.autoRemove ? filterFn.autoRemove(value, column) : false) || typeof value === 'undefined' || typeof value === 'string' && !value;\n}\n\nconst sum = (columnId, _leafRows, childRows) => {\n // It's faster to just add the aggregations together instead of\n // process leaf nodes individually\n return childRows.reduce((sum, next) => {\n const nextValue = next.getValue(columnId);\n return sum + (typeof nextValue === 'number' ? nextValue : 0);\n }, 0);\n};\nconst min = (columnId, _leafRows, childRows) => {\n let min;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (min > value || min === undefined && value >= value)) {\n min = value;\n }\n });\n return min;\n};\nconst max = (columnId, _leafRows, childRows) => {\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null && (max < value || max === undefined && value >= value)) {\n max = value;\n }\n });\n return max;\n};\nconst extent = (columnId, _leafRows, childRows) => {\n let min;\n let max;\n childRows.forEach(row => {\n const value = row.getValue(columnId);\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n });\n return [min, max];\n};\nconst mean = (columnId, leafRows) => {\n let count = 0;\n let sum = 0;\n leafRows.forEach(row => {\n let value = row.getValue(columnId);\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n });\n if (count) return sum / count;\n return;\n};\nconst median = (columnId, leafRows) => {\n if (!leafRows.length) {\n return;\n }\n const values = leafRows.map(row => row.getValue(columnId));\n if (!isNumberArray(values)) {\n return;\n }\n if (values.length === 1) {\n return values[0];\n }\n const mid = Math.floor(values.length / 2);\n const nums = values.sort((a, b) => a - b);\n return values.length % 2 !== 0 ? nums[mid] : (nums[mid - 1] + nums[mid]) / 2;\n};\nconst unique = (columnId, leafRows) => {\n return Array.from(new Set(leafRows.map(d => d.getValue(columnId))).values());\n};\nconst uniqueCount = (columnId, leafRows) => {\n return new Set(leafRows.map(d => d.getValue(columnId))).size;\n};\nconst count = (_columnId, leafRows) => {\n return leafRows.length;\n};\nconst aggregationFns = {\n sum,\n min,\n max,\n extent,\n mean,\n median,\n unique,\n uniqueCount,\n count\n};\n\n//\n\nconst ColumnGrouping = {\n getDefaultColumnDef: () => {\n return {\n aggregatedCell: props => {\n var _toString, _props$getValue;\n return (_toString = (_props$getValue = props.getValue()) == null || _props$getValue.toString == null ? void 0 : _props$getValue.toString()) != null ? _toString : null;\n },\n aggregationFn: 'auto'\n };\n },\n getInitialState: state => {\n return {\n grouping: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGroupingChange: makeStateUpdater('grouping', table),\n groupedColumnMode: 'reorder'\n };\n },\n createColumn: (column, table) => {\n column.toggleGrouping = () => {\n table.setGrouping(old => {\n // Find any existing grouping for this column\n if (old != null && old.includes(column.id)) {\n return old.filter(d => d !== column.id);\n }\n return [...(old != null ? old : []), column.id];\n });\n };\n column.getCanGroup = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableGrouping) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGrouping) != null ? _table$options$enable : true) && (!!column.accessorFn || !!column.columnDef.getGroupingValue);\n };\n column.getIsGrouped = () => {\n var _table$getState$group;\n return (_table$getState$group = table.getState().grouping) == null ? void 0 : _table$getState$group.includes(column.id);\n };\n column.getGroupedIndex = () => {\n var _table$getState$group2;\n return (_table$getState$group2 = table.getState().grouping) == null ? void 0 : _table$getState$group2.indexOf(column.id);\n };\n column.getToggleGroupingHandler = () => {\n const canGroup = column.getCanGroup();\n return () => {\n if (!canGroup) return;\n column.toggleGrouping();\n };\n };\n column.getAutoAggregationFn = () => {\n const firstRow = table.getCoreRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'number') {\n return aggregationFns.sum;\n }\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return aggregationFns.extent;\n }\n };\n column.getAggregationFn = () => {\n var _table$options$aggreg, _table$options$aggreg2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.aggregationFn) ? column.columnDef.aggregationFn : column.columnDef.aggregationFn === 'auto' ? column.getAutoAggregationFn() : (_table$options$aggreg = (_table$options$aggreg2 = table.options.aggregationFns) == null ? void 0 : _table$options$aggreg2[column.columnDef.aggregationFn]) != null ? _table$options$aggreg : aggregationFns[column.columnDef.aggregationFn];\n };\n },\n createTable: table => {\n table.setGrouping = updater => table.options.onGroupingChange == null ? void 0 : table.options.onGroupingChange(updater);\n table.resetGrouping = defaultState => {\n var _table$initialState$g, _table$initialState;\n table.setGrouping(defaultState ? [] : (_table$initialState$g = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.grouping) != null ? _table$initialState$g : []);\n };\n table.getPreGroupedRowModel = () => table.getFilteredRowModel();\n table.getGroupedRowModel = () => {\n if (!table._getGroupedRowModel && table.options.getGroupedRowModel) {\n table._getGroupedRowModel = table.options.getGroupedRowModel(table);\n }\n if (table.options.manualGrouping || !table._getGroupedRowModel) {\n return table.getPreGroupedRowModel();\n }\n return table._getGroupedRowModel();\n };\n },\n createRow: (row, table) => {\n row.getIsGrouped = () => !!row.groupingColumnId;\n row.getGroupingValue = columnId => {\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n const column = table.getColumn(columnId);\n if (!(column != null && column.columnDef.getGroupingValue)) {\n return row.getValue(columnId);\n }\n row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue(row.original);\n return row._groupingValuesCache[columnId];\n };\n row._groupingValuesCache = {};\n },\n createCell: (cell, column, row, table) => {\n cell.getIsGrouped = () => column.getIsGrouped() && column.id === row.groupingColumnId;\n cell.getIsPlaceholder = () => !cell.getIsGrouped() && column.getIsGrouped();\n cell.getIsAggregated = () => {\n var _row$subRows;\n return !cell.getIsGrouped() && !cell.getIsPlaceholder() && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n }\n};\nfunction orderColumns(leafColumns, grouping, groupedColumnMode) {\n if (!(grouping != null && grouping.length) || !groupedColumnMode) {\n return leafColumns;\n }\n const nonGroupingColumns = leafColumns.filter(col => !grouping.includes(col.id));\n if (groupedColumnMode === 'remove') {\n return nonGroupingColumns;\n }\n const groupingColumns = grouping.map(g => leafColumns.find(col => col.id === g)).filter(Boolean);\n return [...groupingColumns, ...nonGroupingColumns];\n}\n\n//\n\nconst ColumnOrdering = {\n getInitialState: state => {\n return {\n columnOrder: [],\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnOrderChange: makeStateUpdater('columnOrder', table)\n };\n },\n createColumn: (column, table) => {\n column.getIndex = memo(position => [_getVisibleLeafColumns(table, position)], columns => columns.findIndex(d => d.id === column.id), getMemoOptions(table.options, 'debugColumns', 'getIndex'));\n column.getIsFirstColumn = position => {\n var _columns$;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns$ = columns[0]) == null ? void 0 : _columns$.id) === column.id;\n };\n column.getIsLastColumn = position => {\n var _columns;\n const columns = _getVisibleLeafColumns(table, position);\n return ((_columns = columns[columns.length - 1]) == null ? void 0 : _columns.id) === column.id;\n };\n },\n createTable: table => {\n table.setColumnOrder = updater => table.options.onColumnOrderChange == null ? void 0 : table.options.onColumnOrderChange(updater);\n table.resetColumnOrder = defaultState => {\n var _table$initialState$c;\n table.setColumnOrder(defaultState ? [] : (_table$initialState$c = table.initialState.columnOrder) != null ? _table$initialState$c : []);\n };\n table._getOrderColumnsFn = memo(() => [table.getState().columnOrder, table.getState().grouping, table.options.groupedColumnMode], (columnOrder, grouping, groupedColumnMode) => columns => {\n // Sort grouped columns to the start of the column list\n // before the headers are built\n let orderedColumns = [];\n\n // If there is no order, return the normal columns\n if (!(columnOrder != null && columnOrder.length)) {\n orderedColumns = columns;\n } else {\n const columnOrderCopy = [...columnOrder];\n\n // If there is an order, make a copy of the columns\n const columnsCopy = [...columns];\n\n // And make a new ordered array of the columns\n\n // Loop over the columns and place them in order into the new array\n while (columnsCopy.length && columnOrderCopy.length) {\n const targetColumnId = columnOrderCopy.shift();\n const foundIndex = columnsCopy.findIndex(d => d.id === targetColumnId);\n if (foundIndex > -1) {\n orderedColumns.push(columnsCopy.splice(foundIndex, 1)[0]);\n }\n }\n\n // If there are any columns left, add them to the end\n orderedColumns = [...orderedColumns, ...columnsCopy];\n }\n return orderColumns(orderedColumns, grouping, groupedColumnMode);\n }, getMemoOptions(table.options, 'debugTable', '_getOrderColumnsFn'));\n }\n};\n\n//\n\nconst getDefaultColumnPinningState = () => ({\n left: [],\n right: []\n});\nconst ColumnPinning = {\n getInitialState: state => {\n return {\n columnPinning: getDefaultColumnPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnPinningChange: makeStateUpdater('columnPinning', table)\n };\n },\n createColumn: (column, table) => {\n column.pin = position => {\n const columnIds = column.getLeafColumns().map(d => d.id).filter(Boolean);\n table.setColumnPinning(old => {\n var _old$left3, _old$right3;\n if (position === 'right') {\n var _old$left, _old$right;\n return {\n left: ((_old$left = old == null ? void 0 : old.left) != null ? _old$left : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: [...((_old$right = old == null ? void 0 : old.right) != null ? _old$right : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds]\n };\n }\n if (position === 'left') {\n var _old$left2, _old$right2;\n return {\n left: [...((_old$left2 = old == null ? void 0 : old.left) != null ? _old$left2 : []).filter(d => !(columnIds != null && columnIds.includes(d))), ...columnIds],\n right: ((_old$right2 = old == null ? void 0 : old.right) != null ? _old$right2 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n }\n return {\n left: ((_old$left3 = old == null ? void 0 : old.left) != null ? _old$left3 : []).filter(d => !(columnIds != null && columnIds.includes(d))),\n right: ((_old$right3 = old == null ? void 0 : old.right) != null ? _old$right3 : []).filter(d => !(columnIds != null && columnIds.includes(d)))\n };\n });\n };\n column.getCanPin = () => {\n const leafColumns = column.getLeafColumns();\n return leafColumns.some(d => {\n var _d$columnDef$enablePi, _ref, _table$options$enable;\n return ((_d$columnDef$enablePi = d.columnDef.enablePinning) != null ? _d$columnDef$enablePi : true) && ((_ref = (_table$options$enable = table.options.enableColumnPinning) != null ? _table$options$enable : table.options.enablePinning) != null ? _ref : true);\n });\n };\n column.getIsPinned = () => {\n const leafColumnIds = column.getLeafColumns().map(d => d.id);\n const {\n left,\n right\n } = table.getState().columnPinning;\n const isLeft = leafColumnIds.some(d => left == null ? void 0 : left.includes(d));\n const isRight = leafColumnIds.some(d => right == null ? void 0 : right.includes(d));\n return isLeft ? 'left' : isRight ? 'right' : false;\n };\n column.getPinnedIndex = () => {\n var _table$getState$colum, _table$getState$colum2;\n const position = column.getIsPinned();\n return position ? (_table$getState$colum = (_table$getState$colum2 = table.getState().columnPinning) == null || (_table$getState$colum2 = _table$getState$colum2[position]) == null ? void 0 : _table$getState$colum2.indexOf(column.id)) != null ? _table$getState$colum : -1 : 0;\n };\n },\n createRow: (row, table) => {\n row.getCenterVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allCells, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allCells.filter(d => !leftAndRight.includes(d.column.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterVisibleCells'));\n row.getLeftVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.left], (allCells, left) => {\n const cells = (left != null ? left : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'left'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getLeftVisibleCells'));\n row.getRightVisibleCells = memo(() => [row._getAllVisibleCells(), table.getState().columnPinning.right], (allCells, right) => {\n const cells = (right != null ? right : []).map(columnId => allCells.find(cell => cell.column.id === columnId)).filter(Boolean).map(d => ({\n ...d,\n position: 'right'\n }));\n return cells;\n }, getMemoOptions(table.options, 'debugRows', 'getRightVisibleCells'));\n },\n createTable: table => {\n table.setColumnPinning = updater => table.options.onColumnPinningChange == null ? void 0 : table.options.onColumnPinningChange(updater);\n table.resetColumnPinning = defaultState => {\n var _table$initialState$c, _table$initialState;\n return table.setColumnPinning(defaultState ? getDefaultColumnPinningState() : (_table$initialState$c = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.columnPinning) != null ? _table$initialState$c : getDefaultColumnPinningState());\n };\n table.getIsSomeColumnsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().columnPinning;\n if (!position) {\n var _pinningState$left, _pinningState$right;\n return Boolean(((_pinningState$left = pinningState.left) == null ? void 0 : _pinningState$left.length) || ((_pinningState$right = pinningState.right) == null ? void 0 : _pinningState$right.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table.getLeftLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left], (allColumns, left) => {\n return (left != null ? left : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getLeftLeafColumns'));\n table.getRightLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.right], (allColumns, right) => {\n return (right != null ? right : []).map(columnId => allColumns.find(column => column.id === columnId)).filter(Boolean);\n }, getMemoOptions(table.options, 'debugColumns', 'getRightLeafColumns'));\n table.getCenterLeafColumns = memo(() => [table.getAllLeafColumns(), table.getState().columnPinning.left, table.getState().columnPinning.right], (allColumns, left, right) => {\n const leftAndRight = [...(left != null ? left : []), ...(right != null ? right : [])];\n return allColumns.filter(d => !leftAndRight.includes(d.id));\n }, getMemoOptions(table.options, 'debugColumns', 'getCenterLeafColumns'));\n }\n};\n\nfunction safelyAccessDocument(_document) {\n return _document || (typeof document !== 'undefined' ? document : null);\n}\n\n//\n\n//\n\nconst defaultColumnSizing = {\n size: 150,\n minSize: 20,\n maxSize: Number.MAX_SAFE_INTEGER\n};\nconst getDefaultColumnSizingInfoState = () => ({\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n isResizingColumn: false,\n columnSizingStart: []\n});\nconst ColumnSizing = {\n getDefaultColumnDef: () => {\n return defaultColumnSizing;\n },\n getInitialState: state => {\n return {\n columnSizing: {},\n columnSizingInfo: getDefaultColumnSizingInfoState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n columnResizeMode: 'onEnd',\n columnResizeDirection: 'ltr',\n onColumnSizingChange: makeStateUpdater('columnSizing', table),\n onColumnSizingInfoChange: makeStateUpdater('columnSizingInfo', table)\n };\n },\n createColumn: (column, table) => {\n column.getSize = () => {\n var _column$columnDef$min, _ref, _column$columnDef$max;\n const columnSize = table.getState().columnSizing[column.id];\n return Math.min(Math.max((_column$columnDef$min = column.columnDef.minSize) != null ? _column$columnDef$min : defaultColumnSizing.minSize, (_ref = columnSize != null ? columnSize : column.columnDef.size) != null ? _ref : defaultColumnSizing.size), (_column$columnDef$max = column.columnDef.maxSize) != null ? _column$columnDef$max : defaultColumnSizing.maxSize);\n };\n column.getStart = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(0, column.getIndex(position)).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getStart'));\n column.getAfter = memo(position => [position, _getVisibleLeafColumns(table, position), table.getState().columnSizing], (position, columns) => columns.slice(column.getIndex(position) + 1).reduce((sum, column) => sum + column.getSize(), 0), getMemoOptions(table.options, 'debugColumns', 'getAfter'));\n column.resetSize = () => {\n table.setColumnSizing(_ref2 => {\n let {\n [column.id]: _,\n ...rest\n } = _ref2;\n return rest;\n });\n };\n column.getCanResize = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableResizing) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableColumnResizing) != null ? _table$options$enable : true);\n };\n column.getIsResizing = () => {\n return table.getState().columnSizingInfo.isResizingColumn === column.id;\n };\n },\n createHeader: (header, table) => {\n header.getSize = () => {\n let sum = 0;\n const recurse = header => {\n if (header.subHeaders.length) {\n header.subHeaders.forEach(recurse);\n } else {\n var _header$column$getSiz;\n sum += (_header$column$getSiz = header.column.getSize()) != null ? _header$column$getSiz : 0;\n }\n };\n recurse(header);\n return sum;\n };\n header.getStart = () => {\n if (header.index > 0) {\n const prevSiblingHeader = header.headerGroup.headers[header.index - 1];\n return prevSiblingHeader.getStart() + prevSiblingHeader.getSize();\n }\n return 0;\n };\n header.getResizeHandler = _contextDocument => {\n const column = table.getColumn(header.column.id);\n const canResize = column == null ? void 0 : column.getCanResize();\n return e => {\n if (!column || !canResize) {\n return;\n }\n e.persist == null || e.persist();\n if (isTouchStartEvent(e)) {\n // lets not respond to multiple touches (e.g. 2 or 3 fingers)\n if (e.touches && e.touches.length > 1) {\n return;\n }\n }\n const startSize = header.getSize();\n const columnSizingStart = header ? header.getLeafHeaders().map(d => [d.column.id, d.column.getSize()]) : [[column.id, column.getSize()]];\n const clientX = isTouchStartEvent(e) ? Math.round(e.touches[0].clientX) : e.clientX;\n const newColumnSizing = {};\n const updateOffset = (eventType, clientXPos) => {\n if (typeof clientXPos !== 'number') {\n return;\n }\n table.setColumnSizingInfo(old => {\n var _old$startOffset, _old$startSize;\n const deltaDirection = table.options.columnResizeDirection === 'rtl' ? -1 : 1;\n const deltaOffset = (clientXPos - ((_old$startOffset = old == null ? void 0 : old.startOffset) != null ? _old$startOffset : 0)) * deltaDirection;\n const deltaPercentage = Math.max(deltaOffset / ((_old$startSize = old == null ? void 0 : old.startSize) != null ? _old$startSize : 0), -0.999999);\n old.columnSizingStart.forEach(_ref3 => {\n let [columnId, headerSize] = _ref3;\n newColumnSizing[columnId] = Math.round(Math.max(headerSize + headerSize * deltaPercentage, 0) * 100) / 100;\n });\n return {\n ...old,\n deltaOffset,\n deltaPercentage\n };\n });\n if (table.options.columnResizeMode === 'onChange' || eventType === 'end') {\n table.setColumnSizing(old => ({\n ...old,\n ...newColumnSizing\n }));\n }\n };\n const onMove = clientXPos => updateOffset('move', clientXPos);\n const onEnd = clientXPos => {\n updateOffset('end', clientXPos);\n table.setColumnSizingInfo(old => ({\n ...old,\n isResizingColumn: false,\n startOffset: null,\n startSize: null,\n deltaOffset: null,\n deltaPercentage: null,\n columnSizingStart: []\n }));\n };\n const contextDocument = safelyAccessDocument(_contextDocument);\n const mouseEvents = {\n moveHandler: e => onMove(e.clientX),\n upHandler: e => {\n contextDocument == null || contextDocument.removeEventListener('mousemove', mouseEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('mouseup', mouseEvents.upHandler);\n onEnd(e.clientX);\n }\n };\n const touchEvents = {\n moveHandler: e => {\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onMove(e.touches[0].clientX);\n return false;\n },\n upHandler: e => {\n var _e$touches$;\n contextDocument == null || contextDocument.removeEventListener('touchmove', touchEvents.moveHandler);\n contextDocument == null || contextDocument.removeEventListener('touchend', touchEvents.upHandler);\n if (e.cancelable) {\n e.preventDefault();\n e.stopPropagation();\n }\n onEnd((_e$touches$ = e.touches[0]) == null ? void 0 : _e$touches$.clientX);\n }\n };\n const passiveIfSupported = passiveEventSupported() ? {\n passive: false\n } : false;\n if (isTouchStartEvent(e)) {\n contextDocument == null || contextDocument.addEventListener('touchmove', touchEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('touchend', touchEvents.upHandler, passiveIfSupported);\n } else {\n contextDocument == null || contextDocument.addEventListener('mousemove', mouseEvents.moveHandler, passiveIfSupported);\n contextDocument == null || contextDocument.addEventListener('mouseup', mouseEvents.upHandler, passiveIfSupported);\n }\n table.setColumnSizingInfo(old => ({\n ...old,\n startOffset: clientX,\n startSize,\n deltaOffset: 0,\n deltaPercentage: 0,\n columnSizingStart,\n isResizingColumn: column.id\n }));\n };\n };\n },\n createTable: table => {\n table.setColumnSizing = updater => table.options.onColumnSizingChange == null ? void 0 : table.options.onColumnSizingChange(updater);\n table.setColumnSizingInfo = updater => table.options.onColumnSizingInfoChange == null ? void 0 : table.options.onColumnSizingInfoChange(updater);\n table.resetColumnSizing = defaultState => {\n var _table$initialState$c;\n table.setColumnSizing(defaultState ? {} : (_table$initialState$c = table.initialState.columnSizing) != null ? _table$initialState$c : {});\n };\n table.resetHeaderSizeInfo = defaultState => {\n var _table$initialState$c2;\n table.setColumnSizingInfo(defaultState ? getDefaultColumnSizingInfoState() : (_table$initialState$c2 = table.initialState.columnSizingInfo) != null ? _table$initialState$c2 : getDefaultColumnSizingInfoState());\n };\n table.getTotalSize = () => {\n var _table$getHeaderGroup, _table$getHeaderGroup2;\n return (_table$getHeaderGroup = (_table$getHeaderGroup2 = table.getHeaderGroups()[0]) == null ? void 0 : _table$getHeaderGroup2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getHeaderGroup : 0;\n };\n table.getLeftTotalSize = () => {\n var _table$getLeftHeaderG, _table$getLeftHeaderG2;\n return (_table$getLeftHeaderG = (_table$getLeftHeaderG2 = table.getLeftHeaderGroups()[0]) == null ? void 0 : _table$getLeftHeaderG2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getLeftHeaderG : 0;\n };\n table.getCenterTotalSize = () => {\n var _table$getCenterHeade, _table$getCenterHeade2;\n return (_table$getCenterHeade = (_table$getCenterHeade2 = table.getCenterHeaderGroups()[0]) == null ? void 0 : _table$getCenterHeade2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getCenterHeade : 0;\n };\n table.getRightTotalSize = () => {\n var _table$getRightHeader, _table$getRightHeader2;\n return (_table$getRightHeader = (_table$getRightHeader2 = table.getRightHeaderGroups()[0]) == null ? void 0 : _table$getRightHeader2.headers.reduce((sum, header) => {\n return sum + header.getSize();\n }, 0)) != null ? _table$getRightHeader : 0;\n };\n }\n};\nlet passiveSupported = null;\nfunction passiveEventSupported() {\n if (typeof passiveSupported === 'boolean') return passiveSupported;\n let supported = false;\n try {\n const options = {\n get passive() {\n supported = true;\n return false;\n }\n };\n const noop = () => {};\n window.addEventListener('test', noop, options);\n window.removeEventListener('test', noop);\n } catch (err) {\n supported = false;\n }\n passiveSupported = supported;\n return passiveSupported;\n}\nfunction isTouchStartEvent(e) {\n return e.type === 'touchstart';\n}\n\n//\n\nconst ColumnVisibility = {\n getInitialState: state => {\n return {\n columnVisibility: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table)\n };\n },\n createColumn: (column, table) => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value != null ? value : !column.getIsVisible()\n }));\n }\n };\n column.getIsVisible = () => {\n var _ref, _table$getState$colum;\n const childColumns = column.columns;\n return (_ref = childColumns.length ? childColumns.some(c => c.getIsVisible()) : (_table$getState$colum = table.getState().columnVisibility) == null ? void 0 : _table$getState$colum[column.id]) != null ? _ref : true;\n };\n column.getCanHide = () => {\n var _column$columnDef$ena, _table$options$enable;\n return ((_column$columnDef$ena = column.columnDef.enableHiding) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableHiding) != null ? _table$options$enable : true);\n };\n column.getToggleVisibilityHandler = () => {\n return e => {\n column.toggleVisibility == null || column.toggleVisibility(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row._getAllVisibleCells = memo(() => [row.getAllCells(), table.getState().columnVisibility], cells => {\n return cells.filter(cell => cell.column.getIsVisible());\n }, getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells'));\n row.getVisibleCells = memo(() => [row.getLeftVisibleCells(), row.getCenterVisibleCells(), row.getRightVisibleCells()], (left, center, right) => [...left, ...center, ...right], getMemoOptions(table.options, 'debugRows', 'getVisibleCells'));\n },\n createTable: table => {\n const makeVisibleColumnsMethod = (key, getColumns) => {\n return memo(() => [getColumns(), getColumns().filter(d => d.getIsVisible()).map(d => d.id).join('_')], columns => {\n return columns.filter(d => d.getIsVisible == null ? void 0 : d.getIsVisible());\n }, getMemoOptions(table.options, 'debugColumns', key));\n };\n table.getVisibleFlatColumns = makeVisibleColumnsMethod('getVisibleFlatColumns', () => table.getAllFlatColumns());\n table.getVisibleLeafColumns = makeVisibleColumnsMethod('getVisibleLeafColumns', () => table.getAllLeafColumns());\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod('getLeftVisibleLeafColumns', () => table.getLeftLeafColumns());\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod('getRightVisibleLeafColumns', () => table.getRightLeafColumns());\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod('getCenterVisibleLeafColumns', () => table.getCenterLeafColumns());\n table.setColumnVisibility = updater => table.options.onColumnVisibilityChange == null ? void 0 : table.options.onColumnVisibilityChange(updater);\n table.resetColumnVisibility = defaultState => {\n var _table$initialState$c;\n table.setColumnVisibility(defaultState ? {} : (_table$initialState$c = table.initialState.columnVisibility) != null ? _table$initialState$c : {});\n };\n table.toggleAllColumnsVisible = value => {\n var _value;\n value = (_value = value) != null ? _value : !table.getIsAllColumnsVisible();\n table.setColumnVisibility(table.getAllLeafColumns().reduce((obj, column) => ({\n ...obj,\n [column.id]: !value ? !(column.getCanHide != null && column.getCanHide()) : value\n }), {}));\n };\n table.getIsAllColumnsVisible = () => !table.getAllLeafColumns().some(column => !(column.getIsVisible != null && column.getIsVisible()));\n table.getIsSomeColumnsVisible = () => table.getAllLeafColumns().some(column => column.getIsVisible == null ? void 0 : column.getIsVisible());\n table.getToggleAllColumnsVisibilityHandler = () => {\n return e => {\n var _target;\n table.toggleAllColumnsVisible((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nfunction _getVisibleLeafColumns(table, position) {\n return !position ? table.getVisibleLeafColumns() : position === 'center' ? table.getCenterVisibleLeafColumns() : position === 'left' ? table.getLeftVisibleLeafColumns() : table.getRightVisibleLeafColumns();\n}\n\n//\n\nconst GlobalFaceting = {\n createTable: table => {\n table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, '__global__');\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel();\n }\n return table._getGlobalFacetedRowModel();\n };\n table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, '__global__');\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map();\n }\n return table._getGlobalFacetedUniqueValues();\n };\n table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, '__global__');\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return;\n }\n return table._getGlobalFacetedMinMaxValues();\n };\n }\n};\n\n//\n\nconst GlobalFiltering = {\n getInitialState: state => {\n return {\n globalFilter: undefined,\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n var _table$getCoreRowMode;\n const value = (_table$getCoreRowMode = table.getCoreRowModel().flatRows[0]) == null || (_table$getCoreRowMode = _table$getCoreRowMode._getAllCellsByColumnId()[column.id]) == null ? void 0 : _table$getCoreRowMode.getValue();\n return typeof value === 'string' || typeof value === 'number';\n }\n };\n },\n createColumn: (column, table) => {\n column.getCanGlobalFilter = () => {\n var _column$columnDef$ena, _table$options$enable, _table$options$enable2, _table$options$getCol;\n return ((_column$columnDef$ena = column.columnDef.enableGlobalFilter) != null ? _column$columnDef$ena : true) && ((_table$options$enable = table.options.enableGlobalFilter) != null ? _table$options$enable : true) && ((_table$options$enable2 = table.options.enableFilters) != null ? _table$options$enable2 : true) && ((_table$options$getCol = table.options.getColumnCanGlobalFilter == null ? void 0 : table.options.getColumnCanGlobalFilter(column)) != null ? _table$options$getCol : true) && !!column.accessorFn;\n };\n },\n createTable: table => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString;\n };\n table.getGlobalFilterFn = () => {\n var _table$options$filter, _table$options$filter2;\n const {\n globalFilterFn: globalFilterFn\n } = table.options;\n return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === 'auto' ? table.getGlobalAutoFilterFn() : (_table$options$filter = (_table$options$filter2 = table.options.filterFns) == null ? void 0 : _table$options$filter2[globalFilterFn]) != null ? _table$options$filter : filterFns[globalFilterFn];\n };\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange == null || table.options.onGlobalFilterChange(updater);\n };\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(defaultState ? undefined : table.initialState.globalFilter);\n };\n }\n};\n\n//\n\nconst RowExpanding = {\n getInitialState: state => {\n return {\n expanded: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetExpanded = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetExpanded();\n queued = false;\n });\n }\n };\n table.setExpanded = updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater);\n table.toggleAllRowsExpanded = expanded => {\n if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {\n table.setExpanded(true);\n } else {\n table.setExpanded({});\n }\n };\n table.resetExpanded = defaultState => {\n var _table$initialState$e, _table$initialState;\n table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});\n };\n table.getCanSomeRowsExpand = () => {\n return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());\n };\n table.getToggleAllRowsExpandedHandler = () => {\n return e => {\n e.persist == null || e.persist();\n table.toggleAllRowsExpanded();\n };\n };\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded;\n return expanded === true || Object.values(expanded).some(Boolean);\n };\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded;\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true;\n }\n if (!Object.keys(expanded).length) {\n return false;\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false;\n }\n\n // They must all be expanded :shrug:\n return true;\n };\n table.getExpandedDepth = () => {\n let maxDepth = 0;\n const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);\n rowIds.forEach(id => {\n const splitId = id.split('.');\n maxDepth = Math.max(maxDepth, splitId.length);\n });\n return maxDepth;\n };\n table.getPreExpandedRowModel = () => table.getSortedRowModel();\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table);\n }\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel();\n }\n return table._getExpandedRowModel();\n };\n },\n createRow: (row, table) => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n var _expanded;\n const exists = old === true ? true : !!(old != null && old[row.id]);\n let oldExpanded = {};\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true;\n });\n } else {\n oldExpanded = old;\n }\n expanded = (_expanded = expanded) != null ? _expanded : !exists;\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true\n };\n }\n if (exists && !expanded) {\n const {\n [row.id]: _,\n ...rest\n } = oldExpanded;\n return rest;\n }\n return old;\n });\n };\n row.getIsExpanded = () => {\n var _table$options$getIsR;\n const expanded = table.getState().expanded;\n return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));\n };\n row.getCanExpand = () => {\n var _table$options$getRow, _table$options$enable, _row$subRows;\n return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);\n };\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true;\n let currentRow = row;\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true);\n isFullyExpanded = currentRow.getIsExpanded();\n }\n return isFullyExpanded;\n };\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand();\n return () => {\n if (!canExpand) return;\n row.toggleExpanded();\n };\n };\n }\n};\n\n//\n\nconst defaultPageIndex = 0;\nconst defaultPageSize = 10;\nconst getDefaultPaginationState = () => ({\n pageIndex: defaultPageIndex,\n pageSize: defaultPageSize\n});\nconst RowPagination = {\n getInitialState: state => {\n return {\n ...state,\n pagination: {\n ...getDefaultPaginationState(),\n ...(state == null ? void 0 : state.pagination)\n }\n };\n },\n getDefaultOptions: table => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table)\n };\n },\n createTable: table => {\n let registered = false;\n let queued = false;\n table._autoResetPageIndex = () => {\n var _ref, _table$options$autoRe;\n if (!registered) {\n table._queue(() => {\n registered = true;\n });\n return;\n }\n if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) {\n if (queued) return;\n queued = true;\n table._queue(() => {\n table.resetPageIndex();\n queued = false;\n });\n }\n };\n table.setPagination = updater => {\n const safeUpdater = old => {\n let newState = functionalUpdate(updater, old);\n return newState;\n };\n return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater);\n };\n table.resetPagination = defaultState => {\n var _table$initialState$p;\n table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState());\n };\n table.setPageIndex = updater => {\n table.setPagination(old => {\n let pageIndex = functionalUpdate(updater, old.pageIndex);\n const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1;\n pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex));\n return {\n ...old,\n pageIndex\n };\n });\n };\n table.resetPageIndex = defaultState => {\n var _table$initialState$p2, _table$initialState;\n table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null || (_table$initialState = _table$initialState.pagination) == null ? void 0 : _table$initialState.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex);\n };\n table.resetPageSize = defaultState => {\n var _table$initialState$p3, _table$initialState2;\n table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p3 = (_table$initialState2 = table.initialState) == null || (_table$initialState2 = _table$initialState2.pagination) == null ? void 0 : _table$initialState2.pageSize) != null ? _table$initialState$p3 : defaultPageSize);\n };\n table.setPageSize = updater => {\n table.setPagination(old => {\n const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize));\n const topRowIndex = old.pageSize * old.pageIndex;\n const pageIndex = Math.floor(topRowIndex / pageSize);\n return {\n ...old,\n pageIndex,\n pageSize\n };\n });\n };\n //deprecated\n table.setPageCount = updater => table.setPagination(old => {\n var _table$options$pageCo;\n let newPageCount = functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1);\n if (typeof newPageCount === 'number') {\n newPageCount = Math.max(-1, newPageCount);\n }\n return {\n ...old,\n pageCount: newPageCount\n };\n });\n table.getPageOptions = memo(() => [table.getPageCount()], pageCount => {\n let pageOptions = [];\n if (pageCount && pageCount > 0) {\n pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i);\n }\n return pageOptions;\n }, getMemoOptions(table.options, 'debugTable', 'getPageOptions'));\n table.getCanPreviousPage = () => table.getState().pagination.pageIndex > 0;\n table.getCanNextPage = () => {\n const {\n pageIndex\n } = table.getState().pagination;\n const pageCount = table.getPageCount();\n if (pageCount === -1) {\n return true;\n }\n if (pageCount === 0) {\n return false;\n }\n return pageIndex < pageCount - 1;\n };\n table.previousPage = () => {\n return table.setPageIndex(old => old - 1);\n };\n table.nextPage = () => {\n return table.setPageIndex(old => {\n return old + 1;\n });\n };\n table.firstPage = () => {\n return table.setPageIndex(0);\n };\n table.lastPage = () => {\n return table.setPageIndex(table.getPageCount() - 1);\n };\n table.getPrePaginationRowModel = () => table.getExpandedRowModel();\n table.getPaginationRowModel = () => {\n if (!table._getPaginationRowModel && table.options.getPaginationRowModel) {\n table._getPaginationRowModel = table.options.getPaginationRowModel(table);\n }\n if (table.options.manualPagination || !table._getPaginationRowModel) {\n return table.getPrePaginationRowModel();\n }\n return table._getPaginationRowModel();\n };\n table.getPageCount = () => {\n var _table$options$pageCo2;\n return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getRowCount() / table.getState().pagination.pageSize);\n };\n table.getRowCount = () => {\n var _table$options$rowCou;\n return (_table$options$rowCou = table.options.rowCount) != null ? _table$options$rowCou : table.getPrePaginationRowModel().rows.length;\n };\n }\n};\n\n//\n\nconst getDefaultRowPinningState = () => ({\n top: [],\n bottom: []\n});\nconst RowPinning = {\n getInitialState: state => {\n return {\n rowPinning: getDefaultRowPinningState(),\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowPinningChange: makeStateUpdater('rowPinning', table)\n };\n },\n createRow: (row, table) => {\n row.pin = (position, includeLeafRows, includeParentRows) => {\n const leafRowIds = includeLeafRows ? row.getLeafRows().map(_ref => {\n let {\n id\n } = _ref;\n return id;\n }) : [];\n const parentRowIds = includeParentRows ? row.getParentRows().map(_ref2 => {\n let {\n id\n } = _ref2;\n return id;\n }) : [];\n const rowIds = new Set([...parentRowIds, row.id, ...leafRowIds]);\n table.setRowPinning(old => {\n var _old$top3, _old$bottom3;\n if (position === 'bottom') {\n var _old$top, _old$bottom;\n return {\n top: ((_old$top = old == null ? void 0 : old.top) != null ? _old$top : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: [...((_old$bottom = old == null ? void 0 : old.bottom) != null ? _old$bottom : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)]\n };\n }\n if (position === 'top') {\n var _old$top2, _old$bottom2;\n return {\n top: [...((_old$top2 = old == null ? void 0 : old.top) != null ? _old$top2 : []).filter(d => !(rowIds != null && rowIds.has(d))), ...Array.from(rowIds)],\n bottom: ((_old$bottom2 = old == null ? void 0 : old.bottom) != null ? _old$bottom2 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n }\n return {\n top: ((_old$top3 = old == null ? void 0 : old.top) != null ? _old$top3 : []).filter(d => !(rowIds != null && rowIds.has(d))),\n bottom: ((_old$bottom3 = old == null ? void 0 : old.bottom) != null ? _old$bottom3 : []).filter(d => !(rowIds != null && rowIds.has(d)))\n };\n });\n };\n row.getCanPin = () => {\n var _ref3;\n const {\n enableRowPinning,\n enablePinning\n } = table.options;\n if (typeof enableRowPinning === 'function') {\n return enableRowPinning(row);\n }\n return (_ref3 = enableRowPinning != null ? enableRowPinning : enablePinning) != null ? _ref3 : true;\n };\n row.getIsPinned = () => {\n const rowIds = [row.id];\n const {\n top,\n bottom\n } = table.getState().rowPinning;\n const isTop = rowIds.some(d => top == null ? void 0 : top.includes(d));\n const isBottom = rowIds.some(d => bottom == null ? void 0 : bottom.includes(d));\n return isTop ? 'top' : isBottom ? 'bottom' : false;\n };\n row.getPinnedIndex = () => {\n var _ref4, _visiblePinnedRowIds$;\n const position = row.getIsPinned();\n if (!position) return -1;\n const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {\n let {\n id\n } = _ref5;\n return id;\n });\n return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;\n };\n },\n createTable: table => {\n table.setRowPinning = updater => table.options.onRowPinningChange == null ? void 0 : table.options.onRowPinningChange(updater);\n table.resetRowPinning = defaultState => {\n var _table$initialState$r, _table$initialState;\n return table.setRowPinning(defaultState ? getDefaultRowPinningState() : (_table$initialState$r = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.rowPinning) != null ? _table$initialState$r : getDefaultRowPinningState());\n };\n table.getIsSomeRowsPinned = position => {\n var _pinningState$positio;\n const pinningState = table.getState().rowPinning;\n if (!position) {\n var _pinningState$top, _pinningState$bottom;\n return Boolean(((_pinningState$top = pinningState.top) == null ? void 0 : _pinningState$top.length) || ((_pinningState$bottom = pinningState.bottom) == null ? void 0 : _pinningState$bottom.length));\n }\n return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);\n };\n table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {\n var _table$options$keepPi;\n const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?\n //get all rows that are pinned even if they would not be otherwise visible\n //account for expanded parent rows, but not pagination or filtering\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => {\n const row = table.getRow(rowId, true);\n return row.getIsAllParentsExpanded() ? row : null;\n }) :\n //else get only visible rows that are pinned\n (pinnedRowIds != null ? pinnedRowIds : []).map(rowId => visibleRows.find(row => row.id === rowId));\n return rows.filter(Boolean).map(d => ({\n ...d,\n position\n }));\n };\n table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));\n table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));\n table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {\n const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);\n return allRows.filter(d => !topAndBottom.has(d.id));\n }, getMemoOptions(table.options, 'debugRows', 'getCenterRows'));\n }\n};\n\n//\n\nconst RowSelection = {\n getInitialState: state => {\n return {\n rowSelection: {},\n ...state\n };\n },\n getDefaultOptions: table => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true\n // enableGroupingRowSelection: false,\n // isAdditiveSelectEvent: (e: unknown) => !!e.metaKey,\n // isInclusiveSelectEvent: (e: unknown) => !!e.shiftKey,\n };\n },\n createTable: table => {\n table.setRowSelection = updater => table.options.onRowSelectionChange == null ? void 0 : table.options.onRowSelectionChange(updater);\n table.resetRowSelection = defaultState => {\n var _table$initialState$r;\n return table.setRowSelection(defaultState ? {} : (_table$initialState$r = table.initialState.rowSelection) != null ? _table$initialState$r : {});\n };\n table.toggleAllRowsSelected = value => {\n table.setRowSelection(old => {\n value = typeof value !== 'undefined' ? value : !table.getIsAllRowsSelected();\n const rowSelection = {\n ...old\n };\n const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;\n\n // We don't use `mutateRowIsSelected` here for performance reasons.\n // All of the rows are flat already, so it wouldn't be worth it\n if (value) {\n preGroupedFlatRows.forEach(row => {\n if (!row.getCanSelect()) {\n return;\n }\n rowSelection[row.id] = true;\n });\n } else {\n preGroupedFlatRows.forEach(row => {\n delete rowSelection[row.id];\n });\n }\n return rowSelection;\n });\n };\n table.toggleAllPageRowsSelected = value => table.setRowSelection(old => {\n const resolvedValue = typeof value !== 'undefined' ? value : !table.getIsAllPageRowsSelected();\n const rowSelection = {\n ...old\n };\n table.getRowModel().rows.forEach(row => {\n mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);\n });\n return rowSelection;\n });\n\n // addRowSelectionRange: rowId => {\n // const {\n // rows,\n // rowsById,\n // options: { selectGroupingRows, selectSubRows },\n // } = table\n\n // const findSelectedRow = (rows: Row[]) => {\n // let found\n // rows.find(d => {\n // if (d.getIsSelected()) {\n // found = d\n // return true\n // }\n // const subFound = findSelectedRow(d.subRows || [])\n // if (subFound) {\n // found = subFound\n // return true\n // }\n // return false\n // })\n // return found\n // }\n\n // const firstRow = findSelectedRow(rows) || rows[0]\n // const lastRow = rowsById[rowId]\n\n // let include = false\n // const selectedRowIds = {}\n\n // const addRow = (row: Row) => {\n // mutateRowIsSelected(selectedRowIds, row.id, true, {\n // rowsById,\n // selectGroupingRows: selectGroupingRows!,\n // selectSubRows: selectSubRows!,\n // })\n // }\n\n // table.rows.forEach(row => {\n // const isFirstRow = row.id === firstRow.id\n // const isLastRow = row.id === lastRow.id\n\n // if (isFirstRow || isLastRow) {\n // if (!include) {\n // include = true\n // } else if (include) {\n // addRow(row)\n // include = false\n // }\n // }\n\n // if (include) {\n // addRow(row)\n // }\n // })\n\n // table.setRowSelection(selectedRowIds)\n // },\n table.getPreSelectedRowModel = () => table.getCoreRowModel();\n table.getSelectedRowModel = memo(() => [table.getState().rowSelection, table.getCoreRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getSelectedRowModel'));\n table.getFilteredSelectedRowModel = memo(() => [table.getState().rowSelection, table.getFilteredRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredSelectedRowModel'));\n table.getGroupedSelectedRowModel = memo(() => [table.getState().rowSelection, table.getSortedRowModel()], (rowSelection, rowModel) => {\n if (!Object.keys(rowSelection).length) {\n return {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n }\n return selectRowsFn(table, rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedSelectedRowModel'));\n\n ///\n\n // getGroupingRowCanSelect: rowId => {\n // const row = table.getRow(rowId)\n\n // if (!row) {\n // throw new Error()\n // }\n\n // if (typeof table.options.enableGroupingRowSelection === 'function') {\n // return table.options.enableGroupingRowSelection(row)\n // }\n\n // return table.options.enableGroupingRowSelection ?? false\n // },\n\n table.getIsAllRowsSelected = () => {\n const preGroupedFlatRows = table.getFilteredRowModel().flatRows;\n const {\n rowSelection\n } = table.getState();\n let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);\n if (isAllRowsSelected) {\n if (preGroupedFlatRows.some(row => row.getCanSelect() && !rowSelection[row.id])) {\n isAllRowsSelected = false;\n }\n }\n return isAllRowsSelected;\n };\n table.getIsAllPageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows.filter(row => row.getCanSelect());\n const {\n rowSelection\n } = table.getState();\n let isAllPageRowsSelected = !!paginationFlatRows.length;\n if (isAllPageRowsSelected && paginationFlatRows.some(row => !rowSelection[row.id])) {\n isAllPageRowsSelected = false;\n }\n return isAllPageRowsSelected;\n };\n table.getIsSomeRowsSelected = () => {\n var _table$getState$rowSe;\n const totalSelected = Object.keys((_table$getState$rowSe = table.getState().rowSelection) != null ? _table$getState$rowSe : {}).length;\n return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;\n };\n table.getIsSomePageRowsSelected = () => {\n const paginationFlatRows = table.getPaginationRowModel().flatRows;\n return table.getIsAllPageRowsSelected() ? false : paginationFlatRows.filter(row => row.getCanSelect()).some(d => d.getIsSelected() || d.getIsSomeSelected());\n };\n table.getToggleAllRowsSelectedHandler = () => {\n return e => {\n table.toggleAllRowsSelected(e.target.checked);\n };\n };\n table.getToggleAllPageRowsSelectedHandler = () => {\n return e => {\n table.toggleAllPageRowsSelected(e.target.checked);\n };\n };\n },\n createRow: (row, table) => {\n row.toggleSelected = (value, opts) => {\n const isSelected = row.getIsSelected();\n table.setRowSelection(old => {\n var _opts$selectChildren;\n value = typeof value !== 'undefined' ? value : !isSelected;\n if (row.getCanSelect() && isSelected === value) {\n return old;\n }\n const selectedRowIds = {\n ...old\n };\n mutateRowIsSelected(selectedRowIds, row.id, value, (_opts$selectChildren = opts == null ? void 0 : opts.selectChildren) != null ? _opts$selectChildren : true, table);\n return selectedRowIds;\n });\n };\n row.getIsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isRowSelected(row, rowSelection);\n };\n row.getIsSomeSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'some';\n };\n row.getIsAllSubRowsSelected = () => {\n const {\n rowSelection\n } = table.getState();\n return isSubRowSelected(row, rowSelection) === 'all';\n };\n row.getCanSelect = () => {\n var _table$options$enable;\n if (typeof table.options.enableRowSelection === 'function') {\n return table.options.enableRowSelection(row);\n }\n return (_table$options$enable = table.options.enableRowSelection) != null ? _table$options$enable : true;\n };\n row.getCanSelectSubRows = () => {\n var _table$options$enable2;\n if (typeof table.options.enableSubRowSelection === 'function') {\n return table.options.enableSubRowSelection(row);\n }\n return (_table$options$enable2 = table.options.enableSubRowSelection) != null ? _table$options$enable2 : true;\n };\n row.getCanMultiSelect = () => {\n var _table$options$enable3;\n if (typeof table.options.enableMultiRowSelection === 'function') {\n return table.options.enableMultiRowSelection(row);\n }\n return (_table$options$enable3 = table.options.enableMultiRowSelection) != null ? _table$options$enable3 : true;\n };\n row.getToggleSelectedHandler = () => {\n const canSelect = row.getCanSelect();\n return e => {\n var _target;\n if (!canSelect) return;\n row.toggleSelected((_target = e.target) == null ? void 0 : _target.checked);\n };\n };\n }\n};\nconst mutateRowIsSelected = (selectedRowIds, id, value, includeChildren, table) => {\n var _row$subRows;\n const row = table.getRow(id, true);\n\n // const isGrouped = row.getIsGrouped()\n\n // if ( // TODO: enforce grouping row selection rules\n // !isGrouped ||\n // (isGrouped && table.options.enableGroupingRowSelection)\n // ) {\n if (value) {\n if (!row.getCanMultiSelect()) {\n Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);\n }\n if (row.getCanSelect()) {\n selectedRowIds[id] = true;\n }\n } else {\n delete selectedRowIds[id];\n }\n // }\n\n if (includeChildren && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getCanSelectSubRows()) {\n row.subRows.forEach(row => mutateRowIsSelected(selectedRowIds, row.id, value, includeChildren, table));\n }\n};\nfunction selectRowsFn(table, rowModel) {\n const rowSelection = table.getState().rowSelection;\n const newSelectedFlatRows = [];\n const newSelectedRowsById = {};\n\n // Filters top level and nested rows\n const recurseRows = function (rows, depth) {\n return rows.map(row => {\n var _row$subRows2;\n const isSelected = isRowSelected(row, rowSelection);\n if (isSelected) {\n newSelectedFlatRows.push(row);\n newSelectedRowsById[row.id] = row;\n }\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {\n row = {\n ...row,\n subRows: recurseRows(row.subRows)\n };\n }\n if (isSelected) {\n return row;\n }\n }).filter(Boolean);\n };\n return {\n rows: recurseRows(rowModel.rows),\n flatRows: newSelectedFlatRows,\n rowsById: newSelectedRowsById\n };\n}\nfunction isRowSelected(row, selection) {\n var _selection$row$id;\n return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;\n}\nfunction isSubRowSelected(row, selection, table) {\n var _row$subRows3;\n if (!((_row$subRows3 = row.subRows) != null && _row$subRows3.length)) return false;\n let allChildrenSelected = true;\n let someSelected = false;\n row.subRows.forEach(subRow => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n if (subRow.getCanSelect()) {\n if (isRowSelected(subRow, selection)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n }\n\n // Check row selection of nested subrows\n if (subRow.subRows && subRow.subRows.length) {\n const subRowChildrenSelected = isSubRowSelected(subRow, selection);\n if (subRowChildrenSelected === 'all') {\n someSelected = true;\n } else if (subRowChildrenSelected === 'some') {\n someSelected = true;\n allChildrenSelected = false;\n } else {\n allChildrenSelected = false;\n }\n }\n });\n return allChildrenSelected ? 'all' : someSelected ? 'some' : false;\n}\n\nconst reSplitAlphaNumeric = /([0-9]+)/gm;\nconst alphanumeric = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\nconst alphanumericCaseSensitive = (rowA, rowB, columnId) => {\n return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());\n};\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive = (rowA, rowB, columnId) => {\n return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));\n};\nconst datetime = (rowA, rowB, columnId) => {\n const a = rowA.getValue(columnId);\n const b = rowB.getValue(columnId);\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0;\n};\nconst basic = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));\n};\n\n// Utils\n\nfunction compareBasic(a, b) {\n return a === b ? 0 : a > b ? 1 : -1;\n}\nfunction toString(a) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return '';\n }\n return String(a);\n }\n if (typeof a === 'string') {\n return a;\n }\n return '';\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr, bStr) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);\n\n // While\n while (a.length && b.length) {\n const aa = a.shift();\n const bb = b.shift();\n const an = parseInt(aa, 10);\n const bn = parseInt(bb, 10);\n const combo = [an, bn].sort();\n\n // Both are string\n if (isNaN(combo[0])) {\n if (aa > bb) {\n return 1;\n }\n if (bb > aa) {\n return -1;\n }\n continue;\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1])) {\n return isNaN(an) ? -1 : 1;\n }\n\n // Both are numbers\n if (an > bn) {\n return 1;\n }\n if (bn > an) {\n return -1;\n }\n }\n return a.length - b.length;\n}\n\n// Exports\n\nconst sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic\n};\n\n//\n\nconst RowSorting = {\n getInitialState: state => {\n return {\n sorting: [],\n ...state\n };\n },\n getDefaultColumnDef: () => {\n return {\n sortingFn: 'auto',\n sortUndefined: 1\n };\n },\n getDefaultOptions: table => {\n return {\n onSortingChange: makeStateUpdater('sorting', table),\n isMultiSortEvent: e => {\n return e.shiftKey;\n }\n };\n },\n createColumn: (column, table) => {\n column.getAutoSortingFn = () => {\n const firstRows = table.getFilteredRowModel().flatRows.slice(10);\n let isString = false;\n for (const row of firstRows) {\n const value = row == null ? void 0 : row.getValue(column.id);\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return sortingFns.datetime;\n }\n if (typeof value === 'string') {\n isString = true;\n if (value.split(reSplitAlphaNumeric).length > 1) {\n return sortingFns.alphanumeric;\n }\n }\n }\n if (isString) {\n return sortingFns.text;\n }\n return sortingFns.basic;\n };\n column.getAutoSortDir = () => {\n const firstRow = table.getFilteredRowModel().flatRows[0];\n const value = firstRow == null ? void 0 : firstRow.getValue(column.id);\n if (typeof value === 'string') {\n return 'asc';\n }\n return 'desc';\n };\n column.getSortingFn = () => {\n var _table$options$sortin, _table$options$sortin2;\n if (!column) {\n throw new Error();\n }\n return isFunction(column.columnDef.sortingFn) ? column.columnDef.sortingFn : column.columnDef.sortingFn === 'auto' ? column.getAutoSortingFn() : (_table$options$sortin = (_table$options$sortin2 = table.options.sortingFns) == null ? void 0 : _table$options$sortin2[column.columnDef.sortingFn]) != null ? _table$options$sortin : sortingFns[column.columnDef.sortingFn];\n };\n column.toggleSorting = (desc, multi) => {\n // if (column.columns.length) {\n // column.columns.forEach((c, i) => {\n // if (c.id) {\n // table.toggleColumnSorting(c.id, undefined, multi || !!i)\n // }\n // })\n // return\n // }\n\n // this needs to be outside of table.setSorting to be in sync with rerender\n const nextSortingOrder = column.getNextSortingOrder();\n const hasManualValue = typeof desc !== 'undefined' && desc !== null;\n table.setSorting(old => {\n // Find any existing sorting for this column\n const existingSorting = old == null ? void 0 : old.find(d => d.id === column.id);\n const existingIndex = old == null ? void 0 : old.findIndex(d => d.id === column.id);\n let newSorting = [];\n\n // What should we do with this sort action?\n let sortAction;\n let nextDesc = hasManualValue ? desc : nextSortingOrder === 'desc';\n\n // Multi-mode\n if (old != null && old.length && column.getCanMultiSort() && multi) {\n if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'add';\n }\n } else {\n // Normal mode\n if (old != null && old.length && existingIndex !== old.length - 1) {\n sortAction = 'replace';\n } else if (existingSorting) {\n sortAction = 'toggle';\n } else {\n sortAction = 'replace';\n }\n }\n\n // Handle toggle states that will remove the sorting\n if (sortAction === 'toggle') {\n // If we are \"actually\" toggling (not a manual set value), should we remove the sorting?\n if (!hasManualValue) {\n // Is our intention to remove?\n if (!nextSortingOrder) {\n sortAction = 'remove';\n }\n }\n }\n if (sortAction === 'add') {\n var _table$options$maxMul;\n newSorting = [...old, {\n id: column.id,\n desc: nextDesc\n }];\n // Take latest n columns\n newSorting.splice(0, newSorting.length - ((_table$options$maxMul = table.options.maxMultiSortColCount) != null ? _table$options$maxMul : Number.MAX_SAFE_INTEGER));\n } else if (sortAction === 'toggle') {\n // This flips (or sets) the\n newSorting = old.map(d => {\n if (d.id === column.id) {\n return {\n ...d,\n desc: nextDesc\n };\n }\n return d;\n });\n } else if (sortAction === 'remove') {\n newSorting = old.filter(d => d.id !== column.id);\n } else {\n newSorting = [{\n id: column.id,\n desc: nextDesc\n }];\n }\n return newSorting;\n });\n };\n column.getFirstSortDir = () => {\n var _ref, _column$columnDef$sor;\n const sortDescFirst = (_ref = (_column$columnDef$sor = column.columnDef.sortDescFirst) != null ? _column$columnDef$sor : table.options.sortDescFirst) != null ? _ref : column.getAutoSortDir() === 'desc';\n return sortDescFirst ? 'desc' : 'asc';\n };\n column.getNextSortingOrder = multi => {\n var _table$options$enable, _table$options$enable2;\n const firstSortDirection = column.getFirstSortDir();\n const isSorted = column.getIsSorted();\n if (!isSorted) {\n return firstSortDirection;\n }\n if (isSorted !== firstSortDirection && ((_table$options$enable = table.options.enableSortingRemoval) != null ? _table$options$enable : true) && (\n // If enableSortRemove, enable in general\n multi ? (_table$options$enable2 = table.options.enableMultiRemove) != null ? _table$options$enable2 : true : true) // If multi, don't allow if enableMultiRemove))\n ) {\n return false;\n }\n return isSorted === 'desc' ? 'asc' : 'desc';\n };\n column.getCanSort = () => {\n var _column$columnDef$ena, _table$options$enable3;\n return ((_column$columnDef$ena = column.columnDef.enableSorting) != null ? _column$columnDef$ena : true) && ((_table$options$enable3 = table.options.enableSorting) != null ? _table$options$enable3 : true) && !!column.accessorFn;\n };\n column.getCanMultiSort = () => {\n var _ref2, _column$columnDef$ena2;\n return (_ref2 = (_column$columnDef$ena2 = column.columnDef.enableMultiSort) != null ? _column$columnDef$ena2 : table.options.enableMultiSort) != null ? _ref2 : !!column.accessorFn;\n };\n column.getIsSorted = () => {\n var _table$getState$sorti;\n const columnSort = (_table$getState$sorti = table.getState().sorting) == null ? void 0 : _table$getState$sorti.find(d => d.id === column.id);\n return !columnSort ? false : columnSort.desc ? 'desc' : 'asc';\n };\n column.getSortIndex = () => {\n var _table$getState$sorti2, _table$getState$sorti3;\n return (_table$getState$sorti2 = (_table$getState$sorti3 = table.getState().sorting) == null ? void 0 : _table$getState$sorti3.findIndex(d => d.id === column.id)) != null ? _table$getState$sorti2 : -1;\n };\n column.clearSorting = () => {\n //clear sorting for just 1 column\n table.setSorting(old => old != null && old.length ? old.filter(d => d.id !== column.id) : []);\n };\n column.getToggleSortingHandler = () => {\n const canSort = column.getCanSort();\n return e => {\n if (!canSort) return;\n e.persist == null || e.persist();\n column.toggleSorting == null || column.toggleSorting(undefined, column.getCanMultiSort() ? table.options.isMultiSortEvent == null ? void 0 : table.options.isMultiSortEvent(e) : false);\n };\n };\n },\n createTable: table => {\n table.setSorting = updater => table.options.onSortingChange == null ? void 0 : table.options.onSortingChange(updater);\n table.resetSorting = defaultState => {\n var _table$initialState$s, _table$initialState;\n table.setSorting(defaultState ? [] : (_table$initialState$s = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.sorting) != null ? _table$initialState$s : []);\n };\n table.getPreSortedRowModel = () => table.getGroupedRowModel();\n table.getSortedRowModel = () => {\n if (!table._getSortedRowModel && table.options.getSortedRowModel) {\n table._getSortedRowModel = table.options.getSortedRowModel(table);\n }\n if (table.options.manualSorting || !table._getSortedRowModel) {\n return table.getPreSortedRowModel();\n }\n return table._getSortedRowModel();\n };\n }\n};\n\nconst builtInFeatures = [Headers, ColumnVisibility, ColumnOrdering, ColumnPinning, ColumnFaceting, ColumnFiltering, GlobalFaceting,\n//depends on ColumnFaceting\nGlobalFiltering,\n//depends on ColumnFiltering\nRowSorting, ColumnGrouping,\n//depends on RowSorting\nRowExpanding, RowPagination, RowPinning, RowSelection, ColumnSizing];\n\n//\n\nfunction createTable(options) {\n var _options$_features, _options$initialState;\n if (process.env.NODE_ENV !== 'production' && (options.debugAll || options.debugTable)) {\n console.info('Creating Table Instance...');\n }\n const _features = [...builtInFeatures, ...((_options$_features = options._features) != null ? _options$_features : [])];\n let table = {\n _features\n };\n const defaultOptions = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultOptions == null ? void 0 : feature.getDefaultOptions(table));\n }, {});\n const mergeOptions = options => {\n if (table.options.mergeOptions) {\n return table.options.mergeOptions(defaultOptions, options);\n }\n return {\n ...defaultOptions,\n ...options\n };\n };\n const coreInitialState = {};\n let initialState = {\n ...coreInitialState,\n ...((_options$initialState = options.initialState) != null ? _options$initialState : {})\n };\n table._features.forEach(feature => {\n var _feature$getInitialSt;\n initialState = (_feature$getInitialSt = feature.getInitialState == null ? void 0 : feature.getInitialState(initialState)) != null ? _feature$getInitialSt : initialState;\n });\n const queued = [];\n let queuedTimeout = false;\n const coreInstance = {\n _features,\n options: {\n ...defaultOptions,\n ...options\n },\n initialState,\n _queue: cb => {\n queued.push(cb);\n if (!queuedTimeout) {\n queuedTimeout = true;\n\n // Schedule a microtask to run the queued callbacks after\n // the current call stack (render, etc) has finished.\n Promise.resolve().then(() => {\n while (queued.length) {\n queued.shift()();\n }\n queuedTimeout = false;\n }).catch(error => setTimeout(() => {\n throw error;\n }));\n }\n },\n reset: () => {\n table.setState(table.initialState);\n },\n setOptions: updater => {\n const newOptions = functionalUpdate(updater, table.options);\n table.options = mergeOptions(newOptions);\n },\n getState: () => {\n return table.options.state;\n },\n setState: updater => {\n table.options.onStateChange == null || table.options.onStateChange(updater);\n },\n _getRowId: (row, index, parent) => {\n var _table$options$getRow;\n return (_table$options$getRow = table.options.getRowId == null ? void 0 : table.options.getRowId(row, index, parent)) != null ? _table$options$getRow : `${parent ? [parent.id, index].join('.') : index}`;\n },\n getCoreRowModel: () => {\n if (!table._getCoreRowModel) {\n table._getCoreRowModel = table.options.getCoreRowModel(table);\n }\n return table._getCoreRowModel();\n },\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return table.getPaginationRowModel();\n },\n //in next version, we should just pass in the row model as the optional 2nd arg\n getRow: (id, searchAll) => {\n let row = (searchAll ? table.getPrePaginationRowModel() : table.getRowModel()).rowsById[id];\n if (!row) {\n row = table.getCoreRowModel().rowsById[id];\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow could not find row with ID: ${id}`);\n }\n throw new Error();\n }\n }\n return row;\n },\n _getDefaultColumnDef: memo(() => [table.options.defaultColumn], defaultColumn => {\n var _defaultColumn;\n defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};\n return {\n header: props => {\n const resolvedColumnDef = props.header.column.columnDef;\n if (resolvedColumnDef.accessorKey) {\n return resolvedColumnDef.accessorKey;\n }\n if (resolvedColumnDef.accessorFn) {\n return resolvedColumnDef.id;\n }\n return null;\n },\n // footer: props => props.header.column.id,\n cell: props => {\n var _props$renderValue$to, _props$renderValue;\n return (_props$renderValue$to = (_props$renderValue = props.renderValue()) == null || _props$renderValue.toString == null ? void 0 : _props$renderValue.toString()) != null ? _props$renderValue$to : null;\n },\n ...table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumnDef == null ? void 0 : feature.getDefaultColumnDef());\n }, {}),\n ...defaultColumn\n };\n }, getMemoOptions(options, 'debugColumns', '_getDefaultColumnDef')),\n _getColumnDefs: () => table.options.columns,\n getAllColumns: memo(() => [table._getColumnDefs()], columnDefs => {\n const recurseColumns = function (columnDefs, parent, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n return columnDefs.map(columnDef => {\n const column = createColumn(table, columnDef, depth, parent);\n const groupingColumnDef = columnDef;\n column.columns = groupingColumnDef.columns ? recurseColumns(groupingColumnDef.columns, column, depth + 1) : [];\n return column;\n });\n };\n return recurseColumns(columnDefs);\n }, getMemoOptions(options, 'debugColumns', 'getAllColumns')),\n getAllFlatColumns: memo(() => [table.getAllColumns()], allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns();\n });\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumns')),\n _getAllFlatColumnsById: memo(() => [table.getAllFlatColumns()], flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column;\n return acc;\n }, {});\n }, getMemoOptions(options, 'debugColumns', 'getAllFlatColumnsById')),\n getAllLeafColumns: memo(() => [table.getAllColumns(), table._getOrderColumnsFn()], (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns());\n return orderColumns(leafColumns);\n }, getMemoOptions(options, 'debugColumns', 'getAllLeafColumns')),\n getColumn: columnId => {\n const column = table._getAllFlatColumnsById()[columnId];\n if (process.env.NODE_ENV !== 'production' && !column) {\n console.error(`[Table] Column with id '${columnId}' does not exist.`);\n }\n return column;\n }\n };\n Object.assign(table, coreInstance);\n for (let index = 0; index < table._features.length; index++) {\n const feature = table._features[index];\n feature == null || feature.createTable == null || feature.createTable(table);\n }\n return table;\n}\n\nfunction getCoreRowModel() {\n return table => memo(() => [table.options.data], data => {\n const rowModel = {\n rows: [],\n flatRows: [],\n rowsById: {}\n };\n const accessRows = function (originalRows, depth, parentRow) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(table, table._getRowId(originalRows[i], i, parentRow), originalRows[i], i, depth, undefined, parentRow == null ? void 0 : parentRow.id);\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row);\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row;\n // Push table row into parent\n rows.push(row);\n\n // Get the original subrows\n if (table.options.getSubRows) {\n var _row$originalSubRows;\n row.originalSubRows = table.options.getSubRows(originalRows[i], i);\n\n // Then recursively access them\n if ((_row$originalSubRows = row.originalSubRows) != null && _row$originalSubRows.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row);\n }\n }\n }\n return rows;\n };\n rowModel.rows = accessRows(data);\n return rowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getExpandedRowModel() {\n return table => memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {\n if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {\n return rowModel;\n }\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel;\n }\n return expandRows(rowModel);\n }, getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel'));\n}\nfunction expandRows(rowModel) {\n const expandedRows = [];\n const handleRow = row => {\n var _row$subRows;\n expandedRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow);\n }\n };\n rowModel.rows.forEach(handleRow);\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById\n };\n}\n\nfunction getFacetedMinMaxValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return undefined;\n const uniqueValues = facetedRowModel.flatRows.flatMap(flatRow => {\n var _flatRow$getUniqueVal;\n return (_flatRow$getUniqueVal = flatRow.getUniqueValues(columnId)) != null ? _flatRow$getUniqueVal : [];\n }).map(Number).filter(value => !Number.isNaN(value));\n if (!uniqueValues.length) return;\n let facetedMinValue = uniqueValues[0];\n let facetedMaxValue = uniqueValues[uniqueValues.length - 1];\n for (const value of uniqueValues) {\n if (value < facetedMinValue) facetedMinValue = value;else if (value > facetedMaxValue) facetedMaxValue = value;\n }\n return [facetedMinValue, facetedMaxValue];\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues'));\n}\n\nfunction filterRows(rows, filterRowImpl, table) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table);\n }\n return filterRowModelFromRoot(rows, filterRowImpl, table);\n}\nfunction filterRowModelFromLeafs(rowsToFilter, filterRow, table) {\n var _table$options$maxLea;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n const rows = [];\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n var _row$subRows;\n let row = rowsToFilter[i];\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.columnFilters = row.columnFilters;\n if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n continue;\n }\n } else {\n row = newRow;\n if (filterRow(row)) {\n rows.push(row);\n newFilteredRowsById[row.id] = row;\n newFilteredFlatRows.push(row);\n }\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\nfunction filterRowModelFromRoot(rowsToFilter, filterRow, table) {\n var _table$options$maxLea2;\n const newFilteredFlatRows = [];\n const newFilteredRowsById = {};\n const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;\n\n // Filters top level and nested rows\n const recurseFilterRows = function (rowsToFilter, depth) {\n if (depth === void 0) {\n depth = 0;\n }\n // Filter from parents downward first\n\n const rows = [];\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i];\n const pass = filterRow(row);\n if (pass) {\n var _row$subRows2;\n if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {\n const newRow = createRow(table, row.id, row.original, row.index, row.depth, undefined, row.parentId);\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1);\n row = newRow;\n }\n rows.push(row);\n newFilteredFlatRows.push(row);\n newFilteredRowsById[row.id] = row;\n }\n }\n return rows;\n };\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById\n };\n}\n\nfunction getFacetedRowModel() {\n return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {\n if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n return preRowModel;\n }\n const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n return filterRows(preRowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel'));\n}\n\nfunction getFacetedUniqueValues() {\n return (table, columnId) => memo(() => {\n var _table$getColumn;\n return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];\n }, facetedRowModel => {\n if (!facetedRowModel) return new Map();\n let facetedUniqueValues = new Map();\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);\n for (let j = 0; j < values.length; j++) {\n const value = values[j];\n if (facetedUniqueValues.has(value)) {\n var _facetedUniqueValues$;\n facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);\n } else {\n facetedUniqueValues.set(value, 1);\n }\n }\n }\n return facetedUniqueValues;\n }, getMemoOptions(table.options, 'debugTable', `getFacetedUniqueValues_${columnId}`));\n}\n\nfunction getFilteredRowModel() {\n return table => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {\n if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i].columnFilters = {};\n rowModel.flatRows[i].columnFiltersMeta = {};\n }\n return rowModel;\n }\n const resolvedColumnFilters = [];\n const resolvedGlobalFilters = [];\n (columnFilters != null ? columnFilters : []).forEach(d => {\n var _filterFn$resolveFilt;\n const column = table.getColumn(d.id);\n if (!column) {\n return;\n }\n const filterFn = column.getFilterFn();\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);\n }\n return;\n }\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value\n });\n });\n const filterableIds = (columnFilters != null ? columnFilters : []).map(d => d.id);\n const globalFilterFn = table.getGlobalFilterFn();\n const globallyFilterableColumns = table.getAllLeafColumns().filter(column => column.getCanGlobalFilter());\n if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {\n filterableIds.push('__global__');\n globallyFilterableColumns.forEach(column => {\n var _globalFilterFn$resol;\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter\n });\n });\n }\n let currentColumnFilter;\n let currentGlobalFilter;\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j];\n row.columnFilters = {};\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i];\n const id = currentColumnFilter.id;\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n });\n }\n }\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i];\n const id = currentGlobalFilter.id;\n // Tag the row with the first truthy global filter state\n if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, filterMeta => {\n row.columnFiltersMeta[id] = filterMeta;\n })) {\n row.columnFilters.__global__ = true;\n break;\n }\n }\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false;\n }\n }\n }\n const filterRowsImpl = row => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]] === false) {\n return false;\n }\n }\n return true;\n };\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table);\n }, getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () => table._autoResetPageIndex()));\n}\n\nfunction getGroupedRowModel() {\n return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0;\n row.parentId = undefined;\n });\n return rowModel;\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId => table.getColumn(columnId));\n const groupedFlatRows = [];\n const groupedRowsById = {};\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = function (rows, depth, parentId) {\n if (depth === void 0) {\n depth = 0;\n }\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth;\n groupedFlatRows.push(row);\n groupedRowsById[row.id] = row;\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);\n }\n return row;\n });\n }\n const columnId = existingGrouping[depth];\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId);\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {\n let [groupingValue, groupedRows] = _ref;\n let id = `${columnId}:${groupingValue}`;\n id = parentId ? `${parentId}>${id}` : id;\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id);\n subRows.forEach(subRow => {\n subRow.parentId = id;\n });\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;\n const row = createRow(table, id, leafRows[0].original, index, depth, undefined, parentId);\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: columnId => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId];\n }\n if (groupedRows[0]) {\n var _groupedRows$0$getVal;\n row._valuesCache[columnId] = (_groupedRows$0$getVal = groupedRows[0].getValue(columnId)) != null ? _groupedRows$0$getVal : undefined;\n }\n return row._valuesCache[columnId];\n }\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId];\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId);\n const aggregateFn = column == null ? void 0 : column.getAggregationFn();\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(columnId, leafRows, groupedRows);\n return row._groupingValuesCache[columnId];\n }\n }\n });\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return row;\n });\n return aggregatedGroupedRows;\n };\n const groupedRows = groupUpRecursively(rowModel.rows, 0);\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow);\n groupedRowsById[subRow.id] = subRow;\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n });\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded();\n table._autoResetPageIndex();\n });\n }));\n}\nfunction groupBy(rows, columnId) {\n const groupMap = new Map();\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`;\n const previous = map.get(resKey);\n if (!previous) {\n map.set(resKey, [row]);\n } else {\n previous.push(row);\n }\n return map;\n }, groupMap);\n}\n\nfunction getPaginationRowModel(opts) {\n return table => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? undefined : table.getState().expanded], (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel;\n }\n const {\n pageSize,\n pageIndex\n } = pagination;\n let {\n rows,\n flatRows,\n rowsById\n } = rowModel;\n const pageStart = pageSize * pageIndex;\n const pageEnd = pageStart + pageSize;\n rows = rows.slice(pageStart, pageEnd);\n let paginatedRowModel;\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById\n });\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById\n };\n }\n paginatedRowModel.flatRows = [];\n const handleRow = row => {\n paginatedRowModel.flatRows.push(row);\n if (row.subRows.length) {\n row.subRows.forEach(handleRow);\n }\n };\n paginatedRowModel.rows.forEach(handleRow);\n return paginatedRowModel;\n }, getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel'));\n}\n\nfunction getSortedRowModel() {\n return table => memo(() => [table.getState().sorting, table.getPreSortedRowModel()], (sorting, rowModel) => {\n if (!rowModel.rows.length || !(sorting != null && sorting.length)) {\n return rowModel;\n }\n const sortingState = table.getState().sorting;\n const sortedFlatRows = [];\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort => {\n var _table$getColumn;\n return (_table$getColumn = table.getColumn(sort.id)) == null ? void 0 : _table$getColumn.getCanSort();\n });\n const columnInfoById = {};\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id);\n if (!column) return;\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn()\n };\n });\n const sortData = rows => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = rows.map(row => ({\n ...row\n }));\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n var _sortEntry$desc;\n const sortEntry = availableSorting[i];\n const columnInfo = columnInfoById[sortEntry.id];\n const sortUndefined = columnInfo.sortUndefined;\n const isDesc = (_sortEntry$desc = sortEntry == null ? void 0 : sortEntry.desc) != null ? _sortEntry$desc : false;\n let sortInt = 0;\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id);\n const bValue = rowB.getValue(sortEntry.id);\n const aUndefined = aValue === undefined;\n const bUndefined = bValue === undefined;\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1;\n if (sortUndefined === 'last') return aUndefined ? 1 : -1;\n sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;\n }\n }\n if (sortInt === 0) {\n sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1;\n }\n if (columnInfo.invertSorting) {\n sortInt *= -1;\n }\n return sortInt;\n }\n }\n return rowA.index - rowB.index;\n });\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n var _row$subRows;\n sortedFlatRows.push(row);\n if ((_row$subRows = row.subRows) != null && _row$subRows.length) {\n row.subRows = sortData(row.subRows);\n }\n });\n return sortedData;\n };\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById\n };\n }, getMemoOptions(table.options, 'debugTable', 'getSortedRowModel', () => table._autoResetPageIndex()));\n}\n\nexport { ColumnFaceting, ColumnFiltering, ColumnGrouping, ColumnOrdering, ColumnPinning, ColumnSizing, ColumnVisibility, GlobalFaceting, GlobalFiltering, Headers, RowExpanding, RowPagination, RowPinning, RowSelection, RowSorting, _getVisibleLeafColumns, aggregationFns, buildHeaderGroups, createCell, createColumn, createColumnHelper, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getMemoOptions, getPaginationRowModel, getSortedRowModel, isFunction, isNumberArray, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };\n//# sourceMappingURL=index.mjs.map\n","/**\n * react-table\n *\n * Copyright (c) TanStack\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { createTable } from '@tanstack/table-core';\nexport * from '@tanstack/table-core';\n\n//\n\n/**\n * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`.\n */\nfunction flexRender(Comp, props) {\n return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp;\n}\nfunction isReactComponent(component) {\n return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component);\n}\nfunction isClassComponent(component) {\n return typeof component === 'function' && (() => {\n const proto = Object.getPrototypeOf(component);\n return proto.prototype && proto.prototype.isReactComponent;\n })();\n}\nfunction isExoticComponent(component) {\n return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description);\n}\nfunction useReactTable(options) {\n // Compose in the generic options to the user options\n const resolvedOptions = {\n state: {},\n // Dummy state\n onStateChange: () => {},\n // noop\n renderFallbackValue: null,\n ...options\n };\n\n // Create a new table and store it in state\n const [tableRef] = React.useState(() => ({\n current: createTable(resolvedOptions)\n }));\n\n // By default, manage table state here using the table's initial state\n const [state, setState] = React.useState(() => tableRef.current.initialState);\n\n // Compose the default state above with any user state. This will allow the user\n // to only control a subset of the state if desired.\n tableRef.current.setOptions(prev => ({\n ...prev,\n ...options,\n state: {\n ...state,\n ...options.state\n },\n // Similarly, we'll maintain both our internal state and any user-provided\n // state.\n onStateChange: updater => {\n setState(updater);\n options.onStateChange == null || options.onStateChange(updater);\n }\n }));\n return tableRef.current;\n}\n\nexport { flexRender, useReactTable };\n//# sourceMappingURL=index.mjs.map\n","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n let isInitial = true;\n function memoizedFunction() {\n var _a, _b, _c;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n if ((opts == null ? void 0 : opts.onChange) && !(isInitial && opts.skipInitialOnChange)) {\n opts.onChange(result);\n }\n isInitial = false;\n return result;\n }\n memoizedFunction.updateDeps = (newDeps) => {\n deps = newDeps;\n };\n return memoizedFunction;\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1.01;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst getRect = (element) => {\n const { offsetWidth, offsetHeight } = element;\n return { width: offsetWidth, height: offsetHeight };\n};\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(getRect(element));\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const run = () => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(getRect(element));\n };\n instance.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n const { horizontal, isRtl } = instance.options;\n offset = horizontal ? element[\"scrollLeft\"] * (isRtl && -1 || 1) : element[\"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = instance.options.useScrollendEvent && supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n const registerScrollendEvent = instance.options.useScrollendEvent && supportsScrollend;\n if (registerScrollendEvent) {\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n }\n return () => {\n element.removeEventListener(\"scroll\", handler);\n if (registerScrollendEvent) {\n element.removeEventListener(\"scrollend\", endHandler);\n }\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return element[instance.options.horizontal ? \"offsetWidth\" : \"offsetHeight\"];\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.currentScrollToIndex = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.prevLanes = void 0;\n this.lanesChangedFlag = false;\n this.lanesSettling = false;\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n const run = () => {\n this._measureElement(entry.target, entry);\n };\n this.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(run) : run();\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n (_a = get()) == null ? void 0 : _a.disconnect();\n _ro = null;\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n isRtl: false,\n useScrollendEvent: false,\n useAnimationFrameWithResizeObserver: false,\n ...opts2\n };\n };\n this.notify = (sync) => {\n var _a, _b;\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n };\n this.maybeNotify = memo(\n () => {\n this.calculateRange();\n return [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ];\n },\n (isScrolling) => {\n this.notify(isScrolling);\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"maybeNotify\",\n debug: () => this.options.debug,\n initialDeps: [\n this.isScrolling,\n this.range ? this.range.startIndex : null,\n this.range ? this.range.endIndex : null\n ]\n }\n );\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.observer.disconnect();\n this.scrollElement = null;\n this.targetWindow = null;\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.maybeNotify();\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this.elementsCache.forEach((cached) => {\n this.observer.observe(cached);\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.maybeNotify();\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n this.isScrolling = isScrolling;\n this.maybeNotify();\n })\n );\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled,\n this.options.lanes\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled, lanes) => {\n const lanesChanged = this.prevLanes !== void 0 && this.prevLanes !== lanes;\n if (lanesChanged) {\n this.lanesChangedFlag = true;\n }\n this.prevLanes = lanes;\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled,\n lanes\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled, lanes }, itemSizeCache) => {\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n return [];\n }\n if (this.laneAssignments.size > count) {\n for (const index of this.laneAssignments.keys()) {\n if (index >= count) {\n this.laneAssignments.delete(index);\n }\n }\n }\n if (this.lanesChangedFlag) {\n this.lanesChangedFlag = false;\n this.lanesSettling = true;\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n this.laneAssignments.clear();\n this.pendingMeasuredCacheIndexes = [];\n }\n if (this.measurementsCache.length === 0 && !this.lanesSettling) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.lanesSettling ? 0 : this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n if (this.lanesSettling && this.measurementsCache.length === count) {\n this.lanesSettling = false;\n }\n const measurements = this.measurementsCache.slice(0, min);\n const laneLastIndex = new Array(lanes).fill(\n void 0\n );\n for (let m = 0; m < min; m++) {\n const item = measurements[m];\n if (item) {\n laneLastIndex[item.lane] = m;\n }\n }\n for (let i = min; i < count; i++) {\n const key = getItemKey(i);\n const cachedLane = this.laneAssignments.get(i);\n let lane;\n let start;\n if (cachedLane !== void 0 && this.options.lanes > 1) {\n lane = cachedLane;\n const prevIndex = laneLastIndex[lane];\n const prevInLane = prevIndex !== void 0 ? measurements[prevIndex] : void 0;\n start = prevInLane ? prevInLane.end + this.options.gap : paddingStart + scrollMargin;\n } else {\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n if (this.options.lanes > 1) {\n this.laneAssignments.set(i, lane);\n }\n }\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane\n };\n laneLastIndex[lane] = i;\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [\n this.getMeasurements(),\n this.getSize(),\n this.getScrollOffset(),\n this.options.lanes\n ],\n (measurements, outerSize, scrollOffset, lanes) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualIndexes = memo(\n () => {\n let startIndex = null;\n let endIndex = null;\n const range = this.calculateRange();\n if (range) {\n startIndex = range.startIndex;\n endIndex = range.endIndex;\n }\n this.maybeNotify.updateDeps([this.isScrolling, startIndex, endIndex]);\n return [\n this.options.rangeExtractor,\n this.options.overscan,\n this.options.count,\n startIndex,\n endIndex\n ];\n },\n (rangeExtractor, overscan, count, startIndex, endIndex) => {\n return startIndex === null || endIndex === null ? [] : rangeExtractor({\n startIndex,\n endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const index = this.indexFromElement(node);\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const key = item.key;\n const prevNode = this.elementsCache.get(key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key, node);\n }\n if (node.isConnected) {\n this.resizeItem(index, this.options.measureElement(node, entry, this));\n }\n };\n this.resizeItem = (index, size) => {\n const item = this.measurementsCache[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n this.elementsCache.forEach((cached, key) => {\n if (!cached.isConnected) {\n this.observer.unobserve(cached);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getVirtualIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getVirtualItems\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getMaxScrollOffset = () => {\n if (!this.scrollElement) return 0;\n if (\"scrollHeight\" in this.scrollElement) {\n return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;\n } else {\n const doc = this.scrollElement.document.documentElement;\n return this.options.horizontal ? doc.scrollWidth - this.scrollElement.innerWidth : doc.scrollHeight - this.scrollElement.innerHeight;\n }\n };\n this.getOffsetForAlignment = (toOffset, align, itemSize = 0) => {\n if (!this.scrollElement) return 0;\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n align = toOffset >= scrollOffset + size ? \"end\" : \"start\";\n }\n if (align === \"center\") {\n toOffset += (itemSize - size) / 2;\n } else if (align === \"end\") {\n toOffset -= size;\n }\n const maxOffset = this.getMaxScrollOffset();\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.measurementsCache[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n if (align === \"end\" && index === this.options.count - 1) {\n return [this.getMaxScrollOffset(), align];\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [\n this.getOffsetForAlignment(toOffset, align, item.size),\n align\n ];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.currentScrollToIndex = index;\n let attempts = 0;\n const maxAttempts = 10;\n const tryScroll = (currentAlign) => {\n if (!this.targetWindow) return;\n const offsetInfo = this.getOffsetForIndex(index, currentAlign);\n if (!offsetInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n const [offset, align] = offsetInfo;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n this.targetWindow.requestAnimationFrame(() => {\n const verify = () => {\n if (this.currentScrollToIndex !== index) return;\n const currentOffset = this.getScrollOffset();\n const afterInfo = this.getOffsetForIndex(index, align);\n if (!afterInfo) {\n console.warn(\"Failed to get offset for index:\", index);\n return;\n }\n if (!approxEqual(afterInfo[0], currentOffset)) {\n scheduleRetry(align);\n }\n };\n if (this.isDynamicMode()) {\n this.targetWindow.requestAnimationFrame(verify);\n } else {\n verify();\n }\n });\n };\n const scheduleRetry = (align) => {\n if (!this.targetWindow) return;\n if (this.currentScrollToIndex !== index) return;\n attempts++;\n if (attempts < maxAttempts) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"Schedule retry\", attempts, maxAttempts);\n }\n this.targetWindow.requestAnimationFrame(() => tryScroll(align));\n } else {\n console.warn(\n `Failed to scroll to index ${index} after ${maxAttempts} attempts.`\n );\n }\n };\n tryScroll(initialAlign);\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else if (this.options.lanes === 1) {\n end = ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0;\n } else {\n const endByLane = Array(this.options.lanes).fill(null);\n let endIndex = measurements.length - 1;\n while (endIndex >= 0 && endByLane.some((val) => val === null)) {\n const item = measurements[endIndex];\n if (endByLane[item.lane] === null) {\n endByLane[item.lane] = item.end;\n }\n endIndex--;\n }\n end = Math.max(...endByLane.filter((val) => val !== null));\n }\n return Math.max(\n end - this.options.scrollMargin + this.options.paddingEnd,\n 0\n );\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.laneAssignments = /* @__PURE__ */ new Map();\n this.notify(false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset,\n lanes\n}) {\n const lastIndex = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n if (measurements.length <= lanes) {\n return {\n startIndex: 0,\n endIndex: lastIndex\n };\n }\n let startIndex = findNearestBinarySearch(\n 0,\n lastIndex,\n getOffset,\n scrollOffset\n );\n let endIndex = startIndex;\n if (lanes === 1) {\n while (endIndex < lastIndex && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n } else if (lanes > 1) {\n const endPerLane = Array(lanes).fill(0);\n while (endIndex < lastIndex && endPerLane.some((pos) => pos < scrollOffset + outerSize)) {\n const item = measurements[endIndex];\n endPerLane[item.lane] = item.end;\n endIndex++;\n }\n const startPerLane = Array(lanes).fill(scrollOffset + outerSize);\n while (startIndex >= 0 && startPerLane.some((pos) => pos >= scrollOffset)) {\n const item = measurements[startIndex];\n startPerLane[item.lane] = item.start;\n startIndex--;\n }\n startIndex = Math.max(0, startIndex - startIndex % lanes);\n endIndex = Math.min(lastIndex, endIndex + (lanes - 1 - endIndex % lanes));\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { Virtualizer, elementScroll, observeElementOffset, observeElementRect, windowScroll, observeWindowOffset, observeWindowRect } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase({\n useFlushSync = true,\n ...options\n}) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (useFlushSync && sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n useIsomorphicLayoutEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","jsxRuntimeModule","require$$0","Subscribable","listener","defaultTimeoutProvider","callback","delay","timeoutId","intervalId","TimeoutManager","#provider","#providerCalled","provider","timeoutManager","systemSetTimeoutZero","isServer","noop","functionalUpdate","updater","input","isValidTimeout","value","timeUntilStale","updatedAt","staleTime","resolveStaleTime","query","resolveEnabled","enabled","matchQuery","filters","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","options","_","val","isPlainObject","result","a","b","hasOwn","replaceEqualDeep","depth","array","isPlainArray","aSize","bItems","bSize","copy","equalItems","i","aItem","bItem","v","shallowEqualObjects","o","hasObjectPrototype","ctor","prot","sleep","timeout","resolve","replaceData","prevData","data","keepPreviousData","previousData","addToEnd","items","item","max","newItems","addToStart","skipToken","ensureQueryFn","fetchOptions","shouldThrowError","throwOnError","params","addConsumeAwareSignal","object","getSignal","onCancelled","consumed","signal","FocusManager","#focused","#cleanup","#setup","onFocus","setup","focused","isFocused","focusManager","pendingThenable","reject","thenable","_resolve","_reject","finalize","reason","defaultScheduler","createNotifyManager","queue","transactions","notifyFn","batchNotifyFn","scheduleFn","schedule","flush","originalQueue","args","fn","notifyManager","OnlineManager","#online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","createRetryer","isRetryCancelled","continueFn","isResolved","cancel","cancelOptions","error","cancelRetry","continueRetry","canContinue","canStart","pause","continueResolve","run","promiseOrValue","initialPromise","retry","retryDelay","shouldRetry","Removable","#gcTimeout","newGcTime","Query","#initialState","#revertState","#cache","#client","#retryer","#defaultOptions","#abortSignalConsumed","getDefaultState","defaultState","successState","newData","#dispatch","state","setStateOptions","promise","observer","x","abortController","addSignalProperty","fetchFn","queryFn","queryFnContext","queryFnContext2","context","context2","action","reducer","fetchState","newState","dataUpdatedAt","hasData","initialDataUpdatedAt","QueryObserver","client","#selectError","#currentThenable","#currentQuery","#currentQueryInitialState","#currentResult","#currentResultState","#currentResultOptions","#selectFn","#selectResult","#lastQueryWithDefinedData","#staleTimeoutId","#refetchIntervalId","#currentRefetchInterval","#trackedProps","shouldFetchOnMount","#executeFetch","#updateTimers","shouldFetchOn","#clearStaleTimeout","#clearRefetchInterval","prevOptions","prevQuery","#updateQuery","mounted","shouldFetchOptionally","#updateStaleTimeout","nextRefetchInterval","#computeRefetchInterval","#updateRefetchInterval","shouldAssignObserverCurrentProperties","onPropTracked","target","defaultedOptions","nextInterval","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","skipSelect","placeholderData","selectError","isFetching","isPending","isError","isLoading","nextResult","isStale","hasResultData","isErrorWithoutData","finalizeThenableIfPossible","recreateThenable","pending","prevThenable","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","#notify","notifyOptions","shouldLoadOnMount","field","optimisticResult","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","currentPage","cancelled","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","hasNextPage","hasPreviousPage","InfiniteQueryObserver","parentResult","isRefetching","isRefetchError","fetchDirection","isFetchNextPageError","isFetchingNextPage","isFetchPreviousPageError","isFetchingPreviousPage","Mutation","#observers","#mutationCache","variables","onContinue","mutationFnContext","restored","isPaused","e","MutationCache","#mutations","#scopes","#mutationId","scope","scopeFor","scopedMutations","index","firstPendingMutation","m","defaultedFilters","event","pausedMutations","MutationObserver","#currentMutation","#mutateOptions","#updateResult","onMutateResult","difference","array1","array2","excludeSet","replaceAt","QueriesObserver","#result","#queries","#options","#combinedResult","#lastCombine","#lastResult","#lastQueryHashes","#observerMatches","queries","#onUpdate","prevObservers","newObserverMatches","#findMatchingObservers","match","newObservers","newResult","hasLengthChange","hasIndexChange","hasStructuralChange","hasResultChange","prev","combine","matches","queryHashes","r","#combineResult","#trackResult","observerResult","accessedProp","lastHashes","queryHashesChanged","hash","prevObserversMap","previousObservers","observers","previousResult","newTracked","QueryCache","queryHash","queryInMap","QueryClient","#queryCache","#queryDefaults","#mutationDefaults","#mountCount","#unsubscribeFocus","#unsubscribeOnline","cachedData","queryCache","defaultedCancelOptions","promises","defaults","queryDefault","QueryClientContext","React.createContext","useQueryClient","queryClient","React.useContext","QueryClientProvider","children","React.useEffect","jsx","IsRestoringContext","useIsRestoring","createValue","isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","ensurePreventErrorBoundaryRetry","errorResetBoundary","useClearResetErrorBoundary","getHasError","suspense","defaultThrowOnError","_error","ensureSuspenseTimers","clamp","originalStaleTime","willFetch","isRestoring","shouldSuspend","fetchOptimistic","useQueries","defaultedQueries","React.useMemo","opts","queryOptions","React.useState","getCombinedResult","trackResult","shouldSubscribe","React.useSyncExternalStore","React.useCallback","onStoreChange","suspensePromises","queryObserver","firstSingleResultWhichShouldThrow","useBaseQuery","Observer","isNewCacheEntry","unsubscribe","useQuery","useSuspenseQuery","useSuspenseInfiniteQuery","useSuspenseQueries","infiniteQueryOptions","useMutation","mutate","mutateOptions","__storeToDerived","__derivedToStore","__depsThatHaveWrittenThisTick","__isFlushing","__batchDepth","__pendingUpdates","__initialBatchValues","__flush_internals","relatedVals","derived","stores","store","relatedLinkedDerivedVals","__notifyListeners","__notifyDerivedListeners","__flush","store2","prevState","derivedVals","batch","pendingUpdateToFlush","isUpdaterFunction","Store","initialState","_a","_b","unsub","_c","stateIndexKey","popStateEvent","beforeUnloadEvent","createHistory","location","subscribers","notify","subscriber","handleIndexChange","tryNavigation","task","navigateOpts","actionInfo","blockers","isPushOrReplace","blocker","nextLocation","parseHref","cb","path","currentIndex","assignKeyAndIndex","str","blockers2","createRandomKey","createBrowserHistory","win","originalPushState","originalReplaceState","_getBlockers","_setBlockers","newBlockers","createHref","parseLocation","addedKey","currentLocation","rollbackLocation","nextPopIsGo","ignoreNextPop","skipBlockerNextPop","ignoreNextBeforeUnload","getLocation","next","scheduled","history","queueHistoryAction","destHref","href","onPushPop","onPushPopEvent","delta","isForward","isBack","isGo","onBeforeUnload","shouldBlock","shouldHaveBeforeUnload","ignoreBlocker","n","res","sanitizePath","sanitized","sanitizedHref","hashIndex","searchIndex","batch$1","last","arr","isFunction","d","isEnumerable","_next","_depth","prevItems","getEnumerableOwnKeys","nextItems","prevSize","nextSize","p","names","name","symbols","keys","symbol","deepEqual","l","ignoreUndefined","k","aCount","bCount","createControlledPromise","onResolve","resolveLoadPromise","rejectLoadPromise","controlledPromise","isModuleNotFoundError","isPromise","sanitizePathSegment","segment","decodeSegment","decoded","SAFE_URL_PROTOCOLS","isDangerousProtocol","url","parsed","decodePath","decodeIgnore","re","cursor","encodeNonAscii","prefix","invariant","condition","message","createLRUCache","cache","oldest","newest","touch","entry","toDelete","existing","SEGMENT_TYPE_PATHNAME","SEGMENT_TYPE_PARAM","SEGMENT_TYPE_WILDCARD","SEGMENT_TYPE_OPTIONAL_PARAM","SEGMENT_TYPE_INDEX","SEGMENT_TYPE_PATHLESS","getOpenAndCloseBraces","part","openBrace","closeBrace","parseSegment","start","output","end","total","braces","firstChar","paramStart","paramEnd","dollarPos","afterDollar","parseSegments","defaultCaseSensitive","route","node","onRoute","length","caseSensitive","skipOnParamError","nextNode","start2","existingNode","createStaticNode","prefix_raw","suffix_raw","actuallyCaseSensitive","suffix","s","createDynamicNode","pathlessNode","isLeaf","indexNode","child","sortDynamic","sortTreeNodes","fullPath","kind","processRouteMasks","routeList","processedTree","segmentTree","findFlatMatch","cached","findMatch","findSingleMatch","from","fuzzy","tree","findRouteMatch","err","buildRouteBranch","trimPathRight","processRouteTree","routeTree","initRoute","routesById","routesByPath","trimmedFullPath","parts","leaf","getNodeMatch","rawParams","extractParams","list","buildBranch","nodeParts","partIndex","nodeIndex","pathIndex","segmentCount","currentPathIndex","nodePart","preLength","sufLength","splat","trailingSlash","pathIsIndex","partsLength","stack","wildcardMatch","bestFuzzy","bestMatch","frame","skipped","statics","dynamics","optionals","extract","parsedParams","validateMatchParams","isFrameMoreSpecific","isBeyondPath","lowerPart","indexFrame","indexValid","frame2","nextSkipped","nextDepth","casePart","sliceIndex","joinPaths","paths","cleanPath","trimPathLeft","len","trimPath","removeTrailingSlash","basepath","exactPathTest","pathName1","pathName2","resolvePath","base","to","isAbsolute","isBase","baseSegments","toSegments","joined","compileDecodeCharMap","pathParamsAllowedCharacters","charMap","char","pattern","regex","encoded","encodeParam","decoder","encodePathParam","interpolatePath","server","isMissingParams","usedParams","valueRaw","notFound","isNotFound","obj","getSafeSessionStorage","storageKey","throttle","wait","createScrollRestorationCache","safeSessionStorage","persistedState","scrollRestorationCache","defaultGetScrollRestorationKey","getCssSelector","el","parent","ignoreScroll","restoreScroll","storageKey2","behavior","shouldScrollRestoration","scrollToTopSelectors","byKey","resolvedKey","elementEntries","scroll","elementSelector","element","hashScrollIntoViewOptions","scrollOptions","selector","setupScrollRestoration","router","force","getKey","onScroll","attrId","restoreKey","keyEntry","elementEntry","cacheKey","handleHashScroll","encode","stringify","toValue","decode","searchParams","previousValue","defaultParseSearch","parseSearchWith","defaultStringifySearch","stringifySearchWith","parser","searchStr","hasParser","stringifyValue","search","rootRouteId","redirect","headers","response","isRedirect","triggerOnReady","inner","resolvePreload","matchId","buildMatchContext","includeCurrentMatch","innerMatch","_handleNotFound","routeCursor","matchForRoute","handleRedirectAndNotFound","shouldSkipLoader","handleSerialError","routerCode","routeId","errorHandlerErr","setupPendingTimeout","pendingMs","routeNeedsPreload","pendingTimeout","preBeforeLoadSetup","existingMatch","then","executeBeforeLoad","prevLoadPromise","paramsError","searchError","cause","preload","beforeLoadFnContext","updateContext","beforeLoadContext2","beforeLoadContext","handleBeforeLoad","serverSsr","queueExecution","execute","executeHead","assetContext","headFnContent","scripts","meta","links","headScripts","styles","getLoaderContext","parentMatchPromise","loaderDeps","runLoader","loadRouteChunk","loaderResult","loaderResultIsPromise","loaderData","pendingPromise","onErrorError","loadRouteMatch","loaderShouldRunAsync","loaderIsRunningAsync","prevMatch","match2","age","staleAge","shouldReloadOption","shouldReload","nextPreload","invalid","match3","nextIsFetching","loadMatches","arg","beforeLoad","failures","firstNotFound","headResult","head","readyPromise","lazyRoute","_id","loadComponents","preloads","componentTypes","componentType","composeRewrites","rewrites","rewrite","executeRewriteInput","executeRewriteOutput","rewriteBasepath","trimmedBasepath","normalizedBasepath","normalizedBasepathWithSlash","checkBasepath","checkBasepathWithSlash","pathname","defaultSerializeError","getLocationChangeInfo","routerState","fromLocation","toLocation","pathChanged","hrefChanged","hashChanged","RouterCore","newOptions","prevBasepath","basepathWasUnset","prevRewriteOption","processRouteTreeResult","getInitialRouterState","needsLocationUpdate","nextBasepath","nextRewriteOption","trimmed","eventType","routerEvent","locationToParse","previousLocation","parse","fullUrl","parsedSearch","__tempLocation","__tempKey","parsedTempLocation","pathnameOrNext","locationSearchOrOpts","getMatchedRoutes","id","currentPendingMatches","currentLoadingMatches","build","dest","lightweightResult","defaultedFromPath","fromPath","fromSearch","fromParams","nextTo","nextParams","interpolatedNextTo","destMatchResult","destRoutes","changedParams","nextPathname","nextSearch","validatedSearch","validateSearch","applySearchMiddleware","hashStr","nextState","publicHref","external","rewrittenUrl","buildWithMatches","maskedDest","maskedNext","_from","maskParams","maskProps","viewTransition","isSameState","ignoredProps","prop","isEqual","isSameUrl","previousCommitPromise","maskedLocation","hashScrollIntoView","nextHistory","replace","resetScroll","rest","hrefUrl","commitPromise","reloadDocument","hrefIsUrl","reloadHref","pendingMatches","redirect2","loadPromise","prevLocation","exitingMatches","enteringMatches","stayingMatches","previousMatches","newMatches","hook","newStatusCode","shouldViewTransition","startViewTransitionParams","resolvedViewTransitionTypes","matchesKey","findFn","invalidate","locationHeader","filter","gcTime","activeMatchIds","loadedMatchIds","matchLocation","baseLocation","notFoundRoute","matchedRoutesResult","foundRoute","routeParams","matchedRoutes","isGlobalNotFound","globalNotFoundRouteId","findGlobalNotFoundRouteId","getParentContext","parentMatch","preMatchSearch","strictMatchSearch","parentSearch","parentStrictSearch","strictSearch","searchParamError","SearchParamError","loaderDepsHash","interpolatedPath","previousMatch","strictParams","extractStrictParams","PathParamError","parentContext","contextFnContext","opts2","lastRoute","accumulatedSearch","lastStateMatch","canReuseParams","validateSearch2","trimmedPath","_includeValidateSearch","buildMiddlewareChain","legacyMiddleware","next2","validate","final","applyNext","currentSearch","middlewares","middleware","newSearch","notFoundMode","routes","referenceParams","accumulatedParams","parseParams","TSR_DEFERRED_PROMISE","defer","_promise","preloadWarning","BaseRoute","options2","isRoot","customId","lazyFn","BaseRouteApi","BaseRootRoute","REACT_USE","reactUse","React","useLayoutEffect","React.useLayoutEffect","usePrevious","ref","React.useRef","current","useIntersectionObserver","intersectionObserverOptions","useForwardedRef","innerRef","React.useImperativeHandle","useAwaited","Await","props","AwaitInner","React.Suspense","CatchBoundary","errorComponent","ErrorComponent","CatchBoundaryImpl","reset","React.createElement","React.Component","prevProps","errorInfo","show","setShow","jsxs","ClientOnly","fallback","useHydrated","React__default","subscribe","is","y","objectIs","useState","useEffect","useDebugValue","useSyncExternalStore$2","getSnapshot","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","shimModule","require$$1","useSyncExternalStore","useRef","useMemo","withSelector_production","getServerSnapshot","instRef","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","withSelectorModule","useStore","equal","shallow","useSyncExternalStoreWithSelector","objA","objB","keysA","getOwnKeys","routerContext","getRouterContext","useRouter","useRouterState","contextRouter","newSlice","matchContext","dummyMatchContext","useMatch","nearestMatchId","useLoaderData","useLoaderDeps","select","useParams","useSearch","useNavigate","_defaultOpts","Navigate","navigate","previousPropsRef","useLinkProps","forwardedRef","activeProps","inactiveProps","activeOptions","userPreload","userPreloadDelay","startTransition","disabled","style","className","onClick","onMouseEnter","onMouseLeave","onTouchStart","_params","_search","_hash","_state","_mask","_reloadDocument","_unsafeRelative","_fromLocation","propsSafeToSpread","isHydrated","_options","hrefOptionPublicHref","hrefOptionExternal","hrefOption","getHrefOption","externalLink","isSafeInternal","currentPathSplit","nextPathSplit","resolvedActiveProps","STATIC_ACTIVE_OBJECT","STATIC_EMPTY_OBJECT","resolvedInactiveProps","resolvedClassName","resolvedStyle","isTransitioning","setIsTransitioning","hasRenderFetched","preloadDelay","doPreload","preloadViewportIoCallback","handleClick","elementTarget","effectiveTarget","isCtrlEvent","flushSync","handleFocus","handleTouchStart","handleEnter","eventTarget","timeoutMap","handleLeave","composeHandlers","STATIC_DISABLED_PROPS","STATIC_ACTIVE_PROPS","STATIC_TRANSITIONING_PROPS","handlers","handler","zero","createLink","Comp","React.forwardRef","Link","_asChild","_type","linkProps","rest2","getRouteApi","RouteApi","Route","createRoute","createRootRouteWithContext","createRootRoute","RootRoute","createFileRoute","FileRoute","_opts","LazyRoute","createLazyFileRoute","lazyRouteComponent","importer","exportName","comp","reload","load","lazyComp","Transitioner","mountLoadForRouter","hasPendingMatches","previousIsLoading","isAnyPending","previousIsAnyPending","isPagePending","previousIsPagePending","React.startTransition","changeInfo","CatchNotFound","resetKey","DefaultGlobalNotFound","SafeFragment","Fragment","renderRouteNotFound","ScrollRestoration","Match","React.memo","matchState","PendingComponent","pendingElement","routeErrorComponent","routeOnCatch","routeNotFoundComponent","resolvedNoSsr","ResolvedSuspenseBoundary","ResolvedCatchBoundary","ResolvedNotFoundBoundary","parentRouteId","ShellComponent","MatchInner","OnRendered","prevLocationRef","routeId2","remountDeps","out","Outlet","pendingMinMs","routerMatch","minPendingPromise","parentGlobalNotFound","childMatchId","nextMatch","Matches","ResolvedSuspense","MatchesInner","matchComponent","createRouter","Router","RouterContextProvider","RouterProvider","createColumnHelper","accessor","column","makeStateUpdater","instance","old","isNumberArray","flattenBy","getChildren","flat","recurse","subArr","memo","getDeps","deps","depArgs","depTime","newDeps","dep","resultTime","depEndTime","resultEndTime","resultFpsPercentage","pad","num","getMemoOptions","tableOptions","debugLevel","onChange","_tableOptions$debugAl","createCell","table","row","columnId","getRenderValue","_cell$getValue","cell","feature","createColumn","columnDef","_ref","_resolvedColumnDef$id","resolvedColumnDef","accessorKey","accessorFn","originalRow","_result","_column$columns","orderColumns","_column$columns2","leafColumns","debug","createHeader","_options$id","header","leafHeaders","recurseHeader","h","Headers","allColumns","left","right","_left$map$filter","_right$map$filter","leftColumns","rightColumns","centerColumns","buildHeaderGroups","_left$map$filter2","orderedLeafColumns","_right$map$filter2","headerGroups","headerGroup","flatHeaders","_header$subHeaders","_header$subHeaders2","_header$subHeaders3","center","_left$0$headers","_left$","_center$0$headers","_center$","_right$0$headers","_right$","columnsToGroup","headerFamily","_headerGroups$0$heade","_headerGroups$","maxDepth","findMaxDepth","columns","createHeaderGroup","headersToGroup","pendingParentHeaders","headerToGroup","latestPendingParentHeader","isLeafHeader","isPlaceholder","bottomHeaders","recurseHeadersForSpans","colSpan","rowSpan","childRowSpans","childColSpan","childRowSpan","minChildRowSpan","createRow","original","rowIndex","subRows","parentId","_row$getValue","parentRows","currentRow","parentRow","allCells","acc","ColumnFaceting","includesString","filterValue","_filterValue$toString","testFalsey","includesStringSensitive","_row$getValue2","equalsString","_row$getValue3","arrIncludes","_row$getValue4","arrIncludesAll","_row$getValue5","arrIncludesSome","_row$getValue6","equals","weakEquals","inNumberRange","min","rowValue","unsafeMin","unsafeMax","parsedMin","parsedMax","temp","filterFns","ColumnFiltering","firstRow","_table$options$filter","_table$options$filter2","_column$columnDef$ena","_table$options$enable","_table$options$enable2","_table$getState$colum","_table$getState$colum2","_table$getState$colum3","filterFn","previousFilter","newFilter","shouldAutoRemoveFilter","_old$filter","newFilterObj","_old$map","_table","updateFn","_functionalUpdate","_table$initialState$c","_table$initialState","sum","_leafRows","childRows","extent","mean","leafRows","count","median","values","mid","nums","unique","uniqueCount","_columnId","aggregationFns","ColumnGrouping","_toString","_props$getValue","_table$getState$group","_table$getState$group2","canGroup","_table$options$aggreg","_table$options$aggreg2","_table$initialState$g","_row$subRows","grouping","groupedColumnMode","nonGroupingColumns","col","g","ColumnOrdering","position","_getVisibleLeafColumns","_columns$","_columns","columnOrder","orderedColumns","columnOrderCopy","columnsCopy","targetColumnId","foundIndex","getDefaultColumnPinningState","ColumnPinning","columnIds","_old$left3","_old$right3","_old$left","_old$right","_old$left2","_old$right2","_d$columnDef$enablePi","leafColumnIds","isLeft","isRight","leftAndRight","_pinningState$positio","pinningState","_pinningState$left","_pinningState$right","safelyAccessDocument","_document","defaultColumnSizing","getDefaultColumnSizingInfoState","ColumnSizing","_column$columnDef$min","_column$columnDef$max","columnSize","_ref2","_header$column$getSiz","prevSiblingHeader","_contextDocument","canResize","isTouchStartEvent","startSize","columnSizingStart","clientX","newColumnSizing","updateOffset","clientXPos","_old$startOffset","_old$startSize","deltaDirection","deltaOffset","deltaPercentage","_ref3","headerSize","onMove","onEnd","contextDocument","mouseEvents","touchEvents","_e$touches$","passiveIfSupported","passiveEventSupported","_table$initialState$c2","_table$getHeaderGroup","_table$getHeaderGroup2","_table$getLeftHeaderG","_table$getLeftHeaderG2","_table$getCenterHeade","_table$getCenterHeade2","_table$getRightHeader","_table$getRightHeader2","passiveSupported","supported","ColumnVisibility","childColumns","c","cells","makeVisibleColumnsMethod","getColumns","_value","_target","GlobalFaceting","GlobalFiltering","_table$getCoreRowMode","_table$options$getCol","globalFilterFn","RowExpanding","registered","queued","_table$options$autoRe","expanded","_table$initialState$e","splitId","_expanded","exists","oldExpanded","rowId","_table$options$getIsR","_table$options$getRow","isFullyExpanded","canExpand","defaultPageIndex","defaultPageSize","getDefaultPaginationState","RowPagination","safeUpdater","_table$initialState$p","pageIndex","maxPageIndex","_table$initialState$p2","_table$initialState$p3","_table$initialState2","pageSize","topRowIndex","_table$options$pageCo","newPageCount","pageCount","pageOptions","_table$options$pageCo2","_table$options$rowCou","getDefaultRowPinningState","RowPinning","includeLeafRows","includeParentRows","leafRowIds","parentRowIds","rowIds","_old$top3","_old$bottom3","_old$top","_old$bottom","_old$top2","_old$bottom2","enableRowPinning","enablePinning","top","bottom","isTop","isBottom","_ref4","_visiblePinnedRowIds$","visiblePinnedRowIds","_ref5","_table$initialState$r","_pinningState$top","_pinningState$bottom","visibleRows","pinnedRowIds","_table$options$keepPi","allRows","topPinnedRowIds","bottomPinnedRowIds","topAndBottom","RowSelection","rowSelection","preGroupedFlatRows","resolvedValue","mutateRowIsSelected","rowModel","selectRowsFn","isAllRowsSelected","paginationFlatRows","isAllPageRowsSelected","_table$getState$rowSe","totalSelected","isSelected","_opts$selectChildren","selectedRowIds","isRowSelected","isSubRowSelected","_table$options$enable3","canSelect","includeChildren","newSelectedFlatRows","newSelectedRowsById","recurseRows","rows","_row$subRows2","selection","_selection$row$id","_row$subRows3","allChildrenSelected","someSelected","subRow","subRowChildrenSelected","reSplitAlphaNumeric","alphanumeric","rowA","rowB","compareAlphanumeric","toString","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","basic","aStr","bStr","aa","bb","an","bn","combo","sortingFns","RowSorting","firstRows","isString","_table$options$sortin","_table$options$sortin2","desc","multi","nextSortingOrder","hasManualValue","existingSorting","existingIndex","newSorting","sortAction","nextDesc","_table$options$maxMul","_column$columnDef$sor","firstSortDirection","isSorted","_column$columnDef$ena2","_table$getState$sorti","columnSort","_table$getState$sorti2","_table$getState$sorti3","canSort","_table$initialState$s","builtInFeatures","createTable","_options$_features","_options$initialState","_features","defaultOptions","mergeOptions","_feature$getInitialSt","queuedTimeout","coreInstance","searchAll","defaultColumn","_defaultColumn","_props$renderValue$to","_props$renderValue","columnDefs","recurseColumns","groupingColumnDef","flatColumns","getCoreRowModel","accessRows","originalRows","_row$originalSubRows","expandRows","expandedRows","handleRow","getPaginationRowModel","pagination","flatRows","rowsById","pageStart","pageEnd","paginatedRowModel","getSortedRowModel","sorting","sortingState","sortedFlatRows","availableSorting","sort","_table$getColumn","columnInfoById","sortEntry","sortData","sortedData","_sortEntry$desc","columnInfo","sortUndefined","isDesc","sortInt","aValue","bValue","aUndefined","bUndefined","flexRender","isReactComponent","component","isClassComponent","isExoticComponent","proto","useReactTable","resolvedOptions","tableRef","setState","isInitial","memoizedFunction","notUndefined","msg","approxEqual","debounce","targetWindow","ms","getRect","offsetWidth","offsetHeight","defaultKeyExtractor","defaultRangeExtractor","range","observeElementRect","rect","width","height","entries","box","addEventListenerOptions","supportsScrollend","observeElementOffset","offset","createHandler","isScrolling","horizontal","isRtl","endHandler","registerScrollendEvent","measureElement","elementScroll","adjustments","toOffset","Virtualizer","_ro","get","sync","scrollElement","measurements","furthestMeasurementsFound","furthestMeasurements","measurement","previousFurthestMeasurement","paddingStart","scrollMargin","getItemKey","lanes","itemSizeCache","laneLastIndex","cachedLane","lane","prevIndex","prevInLane","furthestMeasurement","measuredSize","size","outerSize","scrollOffset","calculateRange","startIndex","endIndex","rangeExtractor","overscan","attributeName","indexStr","prevNode","itemSize","indexes","virtualItems","findNearestBinarySearch","doc","align","maxOffset","initialAlign","attempts","maxAttempts","tryScroll","currentAlign","offsetInfo","verify","currentOffset","afterInfo","scheduleRetry","endByLane","low","high","getCurrentValue","middle","currentValue","getOffset","endPerLane","pos","startPerLane","useIsomorphicLayoutEffect","useVirtualizerBase","useFlushSync","rerender","React.useReducer","instance2","useVirtualizer"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94]}
|