@ryuzaki13/react-foundation-ui 1.8.12 → 1.8.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/ui.module-BsDio9A3.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
- package/storybook-static/assets/{Badge-CveIo2LZ.js → Badge-Sv6eRVzK.js} +1 -1
- package/storybook-static/assets/{Badge.stories-Bd8M64xJ.js → Badge.stories-DVmquAc-.js} +1 -1
- package/storybook-static/assets/{BadgeList-xT41a0VL.js → BadgeList-CDdjSFhA.js} +1 -1
- package/storybook-static/assets/{Button-DkDgfpHL.js → Button-CkXBOqtg.js} +1 -1
- package/storybook-static/assets/{Button-C5bBSb3k.js → Button-DLdmu_Qa.js} +1 -1
- package/storybook-static/assets/{Button.stories-CeKPeGK5.js → Button.stories-BhhPN3cO.js} +1 -1
- package/storybook-static/assets/{CalendarView-CEqcrblx.js → CalendarView-Cz74PFcU.js} +1 -1
- package/storybook-static/assets/{CheckBox-DKeFkdOt.js → CheckBox-8sW-kpX-.js} +1 -1
- package/storybook-static/assets/{CheckBox-OVvAarW-.js → CheckBox-DcH3qwbm.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-CfZ0p1yo.js → CheckBox.stories-BA9MwVIi.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-BWW7zrfs.js → Color-6AOWCN3U-DW9_SixM.js} +1 -1
- package/storybook-static/assets/{ContextMenu-kia7is1N.js → ContextMenu-6XIB9-E_.js} +1 -1
- package/storybook-static/assets/{ContextMenu-xn2GtiLR.js → ContextMenu-oCfsHX5G.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CYuy9uXF.js → ContextMenu.stories-DsRiGv-d.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-C4w-APws.js → CustomOptionButton-By6XsDCG.js} +1 -1
- package/storybook-static/assets/{DateInput-BiUFIihm.js → DateInput-CD_CDw8L.js} +1 -1
- package/storybook-static/assets/{DateInput-DAzE5mCE.js → DateInput-CMxzQRo_.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BcowGCRD.js → DateInput.stories-BL0d4llb.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-RIyqNBk9.js → DateRangePresetSelect-393Izw7W.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CQm4dNLR.js → DateRangePresetSelect-BeEhwdah.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-ypGyuGfy.js → DateRangePresetSelect.stories-BKRFlABX.js} +1 -1
- package/storybook-static/assets/{Detail-CEypL2Nh.js → Detail-BbQSGgu7.js} +1 -1
- package/storybook-static/assets/{Detail.stories-DNkT7B-u.js → Detail.stories-BMD_2zWN.js} +1 -1
- package/storybook-static/assets/{Dialog-BVFFQJDH.js → Dialog-CAM8VuM7.js} +1 -1
- package/storybook-static/assets/{Dialog-DD0grLG3.js → Dialog-Dw9rG9oU.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-DSCypHqR.js → Dialog.stories-C3NKTM84.js} +1 -1
- package/storybook-static/assets/{Disclosure-DauUgrev.js → Disclosure-CRP1Wrwg.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-B1qB8vQZ.js → Disclosure.stories-uOnVxNv4.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-D9oCCeHf.js → DisclosureGroup-CV9aHNnL.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-CmSf6tXp.js → DocsRenderer-JROSPFPF-Dt6sU0Wy.js} +1 -1
- package/storybook-static/assets/{DropZone-D8hbPCAv.js → DropZone-1-qIEJTI.js} +1 -1
- package/storybook-static/assets/{DropZone-D42ueN1w.js → DropZone-UOOd3d_D.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-DO-T_Bh4.js → DropZone.stories-P0P8n3BX.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-CknJDoji.js → DropdownMenu-CIkQkHEe.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-Dqi_bo3c.js → ExpandableActionPanel-BVxtZtja.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BD9QZGZN.js → ExpandableActionPanel.stories-Bw-Nbxjl.js} +1 -1
- package/storybook-static/assets/{Flex-CaVn1IOP.js → Flex-v3qGyymY.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Bp9Y6q6b.js → Flex.stories-BZWj9Yqq.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-U7tx-Jlw.js → FloatingPopover-CBzRVsZl.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-pmmhsAbN.js → FormattedTableCell-woQYObYH.js} +1 -1
- package/storybook-static/assets/{Grid-CEpMNurH.js → Grid-BuA8kbGl.js} +1 -1
- package/storybook-static/assets/{Grid.stories-BM-gO5DN.js → Grid.stories-DkQGjuPs.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-BWz5XU6U.js → ImageCropper.stories-DWU8FP_b.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BTYZEX5t.js → ImageRenderer-BYrN4S_Z.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Dz2STM95.js → ImageRenderer.stories-ChjsjhPh.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DBVe0an3.js → ImageView.stories-CWkyOzLP.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-C4Px97lD.js → ImageViewer.stories-BAJJBDHc.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-TJtlJVfa.js → ImageViewerRuntime-DGLE97-e.js} +1 -1
- package/storybook-static/assets/{Input-CIPgijvW.js → Input-B8ZadIiC.js} +1 -1
- package/storybook-static/assets/{Input-D8io9jVS.js → Input-BoKPLAe2.js} +1 -1
- package/storybook-static/assets/{Input.stories-SUk3aYaC.js → Input.stories-JHdz5Jsc.js} +1 -1
- package/storybook-static/assets/{InputDateTime-DA5pIDuE.js → InputDateTime-D0IxugsL.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DeudzDSU.js → InputDateTime.stories-Ba0D7xF9.js} +1 -1
- package/storybook-static/assets/{InputFile-CGAC7ruP.js → InputFile--u_0dj3Y.js} +1 -1
- package/storybook-static/assets/{InputFile-C5mp5Y5I.js → InputFile-BTJBqn1m.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Cx1xQ6PE.js → InputFile.stories-CwpNYB5J.js} +1 -1
- package/storybook-static/assets/{InputFiles-B7OBcPJN.js → InputFiles-B6vhWm7I.js} +1 -1
- package/storybook-static/assets/{InputFiles-Hzl89Ghf.js → InputFiles-DwMvXQb3.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CG6QjDZH.js → InputFiles.stories-5oCc9HHg.js} +1 -1
- package/storybook-static/assets/{InputFilesList-B6htWHF1.js → InputFilesList-D51n4iSR.js} +1 -1
- package/storybook-static/assets/{InputImage-CQnoblAE.js → InputImage-DPnitmQk.js} +1 -1
- package/storybook-static/assets/{InputImage-BTa4S4Wp.js → InputImage-bnYOQAkQ.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CEI44Eyz.js → InputImage.stories-uf2LvY4r.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-B0ypWz1x.js → InteractiveComponents-CJn1YMhT.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-BadApta9.js → InteractiveComponents.stories-fFTx5yhl.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-C_Uz7Tnj.js → LayoutPicker-BPBdZChZ.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-COB9GlV_.js → LayoutPicker-C_NUvbsk.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-Btp0IcaL.js → LayoutPicker.stories-DBzM8rRy.js} +1 -1
- package/storybook-static/assets/{Listbox-CyfuZw7w.js → Listbox-Cqgq5Wny.js} +1 -1
- package/storybook-static/assets/{Listbox-AAaZGSAl.js → Listbox-D7jP8mCo.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-NDKQmjyQ.js → Listbox.stories-X2jhmC90.js} +1 -1
- package/storybook-static/assets/{Modal-BJDnJ4zv.js → Modal-QiGhxbkR.js} +1 -1
- package/storybook-static/assets/{Modal.stories-D_X5lTLO.js → Modal.stories-CPLTAhHy.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-ShDjozpW.js → ModalManagerProvider-DpbTvfL4.js} +1 -1
- package/storybook-static/assets/{MultiSelect-B5CElQ3-.js → MultiSelect-CJN6yc1C.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DqXfrjcH.js → MultiSelect-DeAFY3RP.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-fB3mcFmx.js → MultiSelect.stories-DHrCaM8r.js} +1 -1
- package/storybook-static/assets/{NoData-DDb0G7T8.js → NoData-Cw6KaFFK.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-CIGL-pKX.js → NotificationsHost-BjEs_A2p.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-B_MRb3fs.js → NotificationsHost.stories-DUyWIJ9o.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-DQAitH4N.js → ODataMultiSelect-DsGVEtfr.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DwW221S9.js → ODataMultiSelect.stories-CV8LD8fz.js} +1 -1
- package/storybook-static/assets/{ODataSelect-tiZhOIhE.js → ODataSelect-nPkCWP7P.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-BhaatPjK.js → ODataSelect.stories-BT5zNMAw.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-B9WqJ-Un.js → ODataTreeMultiSelect-BnA7iZbw.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CAfKuhfU.js → ODataTreeMultiSelect.stories-Ddu-3L1X.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-Cel1phxZ.js → ODataTreeSelect-Df18JZjH.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-BpBCpBA9.js → ODataTreeSelect.stories-CnbN0_2o.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-BSeGbz02.js → OneStepScroller-pCI7NBLQ.js} +1 -1
- package/storybook-static/assets/{Option-BBtQ3GdK.js → Option-rYnCuHwV.js} +1 -1
- package/storybook-static/assets/{OptionButton-B9nZuqqW.js → OptionButton-dRTEtcWJ.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DA_zjcdA.js → PeriodSelect-BbxmKATg.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BGvhR3to.js → PeriodSelect-QdYqbYVi.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DDP1eXyM.js → PeriodSelect.stories-C_w6x_nb.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-BgvzqRBd.js → PickerTriggerActions-B9PzXuqb.js} +1 -1
- package/storybook-static/assets/{Popover-C0NebUMz.js → Popover-C7EBSl-A.js} +1 -1
- package/storybook-static/assets/{Popover-BQql18MF.js → Popover-DTIeV8sp.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CIyDUtlz.js → Popover.stories-DdK6opAj.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-htbxc3ni.js → PresetRangeDateInput-BuzCEA0N.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-BsgzPwCV.js → PresetRangeDateInput-wM7gI2RF.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-ClHM5Kah.js → PresetRangeDateInput.stories-BHzW7J5Y.js} +1 -1
- package/storybook-static/assets/{PresetSelect-Dcx0BOTx.js → PresetSelect-qwyBKXya.js} +1 -1
- package/storybook-static/assets/{README-eHCINzP3.js → README-3kx1b1eN.js} +1 -1
- package/storybook-static/assets/{README-CHbo4O3Z.js → README-B1TFddGZ.js} +1 -1
- package/storybook-static/assets/{README-ByALXSEH.js → README-B6UdiKEB.js} +1 -1
- package/storybook-static/assets/README-BB1nn-L1.js +740 -0
- package/storybook-static/assets/{README-CWfPiPIB.js → README-BLliGbp2.js} +1 -1
- package/storybook-static/assets/{README-DV4fCpqN.js → README-BRAIrWZ5.js} +1 -1
- package/storybook-static/assets/README-BS_UTHKY.js +441 -0
- package/storybook-static/assets/README-BUwRENpH.js +448 -0
- package/storybook-static/assets/README-BZ5VcRb-.js +583 -0
- package/storybook-static/assets/{README-CNHemCS2.js → README-BbvZ3Kxp.js} +1 -1
- package/storybook-static/assets/{README-BSh5XUR9.js → README-BcQVOGWd.js} +1 -1
- package/storybook-static/assets/{README-ui-uanyg.js → README-Bdo7L8re.js} +1 -1
- package/storybook-static/assets/README-Bl5v6SbZ.js +325 -0
- package/storybook-static/assets/{README-C3UcjOGB.js → README-Bs5hFsTF.js} +1 -1
- package/storybook-static/assets/{README-C8E1O7DQ.js → README-Bt-vDWJK.js} +1 -1
- package/storybook-static/assets/{README-CsoHGRve.js → README-BxWQjG0l.js} +1 -1
- package/storybook-static/assets/{README-BIq-FXcN.js → README-C1-upl_v.js} +1 -1
- package/storybook-static/assets/{README-qHKxXU95.js → README-C3kroViK.js} +1 -1
- package/storybook-static/assets/{README-CH_6ZIO2.js → README-C5VbGqji.js} +1 -1
- package/storybook-static/assets/README-CAN_sUOj.js +400 -0
- package/storybook-static/assets/{README-BB_JPejH.js → README-CAu_o5w0.js} +1 -1
- package/storybook-static/assets/{README-Ss-3t1nX.js → README-CB8w2VUq.js} +1 -1
- package/storybook-static/assets/README-CJ5dluvT.js +3591 -0
- package/storybook-static/assets/{README-B3bFglqG.js → README-CMdJkXoj.js} +1 -1
- package/storybook-static/assets/{README-Dl92E69Z.js → README-CUjyWC3m.js} +1 -1
- package/storybook-static/assets/{README-B45Cwj2a.js → README-CV3k61OS.js} +1 -1
- package/storybook-static/assets/README-CYOVpnIy.js +324 -0
- package/storybook-static/assets/{README-CM-7E-Jf.js → README-CeyhIAvP.js} +1 -1
- package/storybook-static/assets/{README-Byo6DxIF.js → README-Ci8Dg8Od.js} +1 -1
- package/storybook-static/assets/{README-DJHVgrpj.js → README-CiQrgj9L.js} +1 -1
- package/storybook-static/assets/{README-BxjYCoYA.js → README-CjAvZYa8.js} +1 -1
- package/storybook-static/assets/{README-5NhzH8VL.js → README-Cjkxz5fF.js} +1 -1
- package/storybook-static/assets/{README-DE2wk9-v.js → README-Cl_7GagY.js} +1 -1
- package/storybook-static/assets/{README-CIGfHKKE.js → README-CnncCyVQ.js} +1 -1
- package/storybook-static/assets/{README-Bqnqu1bC.js → README-CqqJTDcO.js} +1 -1
- package/storybook-static/assets/{README-D9OypaFB.js → README-CrjrH7U6.js} +1 -1
- package/storybook-static/assets/{README-DvAlDsh9.js → README-D1mTncLb.js} +1 -1
- package/storybook-static/assets/{README-B6Nq7NCU.js → README-DFH1zDp2.js} +1 -1
- package/storybook-static/assets/README-DIqS0sM9.js +355 -0
- package/storybook-static/assets/{README-DjCArsA5.js → README-DLaJrEGM.js} +1 -1
- package/storybook-static/assets/{README-Am6Fa6-b.js → README-DO23FJAl.js} +1 -1
- package/storybook-static/assets/{README-CeK4kfFO.js → README-DeAPv0Mf.js} +1 -1
- package/storybook-static/assets/{README-CAGQnLsv.js → README-Dy9sTa_6.js} +1 -1
- package/storybook-static/assets/{README-5M8ajrJp.js → README-JtT-ZtO0.js} +1 -1
- package/storybook-static/assets/{README-B6ltJiw3.js → README-OYzQVQte.js} +1 -1
- package/storybook-static/assets/{README-C9eh0JLs.js → README-UoSNP7Tk.js} +1 -1
- package/storybook-static/assets/{README-DDBqoI-T.js → README-a5ZgliOG.js} +1 -1
- package/storybook-static/assets/{README-DEj2wSK0.js → README-dokGlpDu.js} +1 -1
- package/storybook-static/assets/{README-BmhhWWEk.js → README-kQRTlSA-.js} +1 -1
- package/storybook-static/assets/{README-DIbfpC-2.js → README-rDh9Q6yY.js} +1 -1
- package/storybook-static/assets/{README-BuMMG4_N.js → README-rhPk9fCo.js} +1 -1
- package/storybook-static/assets/{README-DnA-4W65.js → README-rzRXnvCP.js} +1 -1
- package/storybook-static/assets/{README-BYSgTTZt.js → README-twVQ7X9P.js} +1 -1
- package/storybook-static/assets/{RadioButton-CWtjclwT.js → RadioButton-B_oQ8Wlu.js} +1 -1
- package/storybook-static/assets/{RadioButton-YIQXt0wx.js → RadioButton-Baxj9d9s.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-Ah-CBpeC.js → RadioButton.stories-CsHPV3Wm.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CUS0etBD.js → RadioGroup-Dz0J0QJk.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BnO-GL7A.js → RadioGroup-PH_lOUuL.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-DGwCawtU.js → RadioGroup.stories-B3Nbh5ui.js} +1 -1
- package/storybook-static/assets/{Scrollable-D85fA6pO.js → Scrollable-BnVRtd7g.js} +1 -1
- package/storybook-static/assets/{Select-gRnfvfGh.js → Select-CqFdLQiM.js} +1 -1
- package/storybook-static/assets/{Select-CGCxJjL9.js → Select-DlCmYtXt.js} +1 -1
- package/storybook-static/assets/{Select.stories-CMwt4F9i.js → Select.stories-wUtNe9Ec.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BLXfKJ38.js → SerializableSelect-Cxj4rBI9.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-Bca1a9ZU.js → SerializableSelect.stories-D8S4jMFa.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CyeQN0Rd.js → SingleDateTimeInput-B00ILEN6.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-xrmZckzw.js → SingleDateTimeInput-Z6TGUUj6.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BYFTQM9z.js → SingleDateTimeInput.stories-CV6Nv9qi.js} +1 -1
- package/storybook-static/assets/{Slider-D8GtXVGI.js → Slider-B9FxWdEJ.js} +1 -1
- package/storybook-static/assets/{Slider-1yJ3uVeR.js → Slider-Dk01oltE.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CyQ3ns_C.js → Slider.stories-VNmcaz3A.js} +1 -1
- package/storybook-static/assets/{SliderInput-ISSx9vH_.js → SliderInput-E86RlSIn.js} +1 -1
- package/storybook-static/assets/{SliderInput-BOzHhEUA.js → SliderInput-V3uHOcZ2.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-7ooTghrS.js → SliderInput.stories-Bwl2rOaJ.js} +1 -1
- package/storybook-static/assets/{Sortable-CCLiMmfZ.js → Sortable-DaGz4_X2.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-B36szI6t.js → Sortable.stories-Ba8gP0xY.js} +1 -1
- package/storybook-static/assets/{Splitter-DQGhgRwx.js → Splitter-BIsxdfsl.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-Hsq1wYaq.js → Splitter.stories-DlgVxAnv.js} +1 -1
- package/storybook-static/assets/{StateSelect-DieNn4VC.js → StateSelect-3pOCDdLu.js} +1 -1
- package/storybook-static/assets/{StateSelect-C6hldFgO.js → StateSelect-Q0-lss-x.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-CvAhDMix.js → StateSelect.stories-B2W4sd0y.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CUT1tvt-.js → StringToggle.stories-CwhsQCkG.js} +1 -1
- package/storybook-static/assets/{Switch-nEMRtcWe.js → Switch-8ZMASw90.js} +1 -1
- package/storybook-static/assets/{Switch-CX9p_uYU.js → Switch-CxoCcf-H.js} +1 -1
- package/storybook-static/assets/{Switch.stories-CPsHa2_m.js → Switch.stories-Ceo-Mw04.js} +1 -1
- package/storybook-static/assets/{Table-BhtITVtj.js → Table-nJgo4qpK.js} +1 -1
- package/storybook-static/assets/{Table.stories-nWNhSydG.js → Table.stories-CSCZ9sFd.js} +1 -1
- package/storybook-static/assets/{Tabs-DMQFh2BJ.js → Tabs-D-gRjKef.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-D23_xvom.js → Tabs.stories-EQ3VUnt-.js} +1 -1
- package/storybook-static/assets/{TabsBox-B5BsD_j_.js → TabsBox-NrlLIwhz.js} +1 -1
- package/storybook-static/assets/{TagInput-DO17z100.js → TagInput-Drf7SeTu.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-CMMFnIzb.js → TagInput.stories-BcM6J6I9.js} +1 -1
- package/storybook-static/assets/{Text-ClnbDqRk.js → Text-Ck_6UUKY.js} +1 -1
- package/storybook-static/assets/{Textarea-DkhohiNc.js → Textarea-C7SEoYQa.js} +1 -1
- package/storybook-static/assets/{Textarea-C2IO_zsP.js → Textarea-DFko4W6r.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-NL6Aq8Vc.js → Textarea.stories-BW5QBRXP.js} +1 -1
- package/storybook-static/assets/{TimePanel-DNEPDlSW.js → TimePanel-BcCaEcjP.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-DlfdPsz1.js → TimePanel.stories-OjUebxOe.js} +1 -1
- package/storybook-static/assets/{Toggle-3U5CceQN.js → Toggle-BN83AOrV.js} +1 -1
- package/storybook-static/assets/{Toggle-Cc6Ca-HI.js → Toggle-Cs5KD8Kd.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BR-hVLDp.js → Toggle.stories-UtFKPdYx.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-D9hMQN2O.js → TreeMultiSelect-04RqLe9P.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-B0oBc-4y.js → TreeMultiSelect-CN_rnzFe.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-CslpbvPR.js → TreeMultiSelect.stories-BbYabVXc.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-B_dMCe45.js → TreePickerBase-FDlZpaH2.js} +1 -1
- package/storybook-static/assets/{TreeSelect-2lj0Q8gm.js → TreeSelect-DGSc7Vg9.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DEKNYF2b.js → TreeSelect-DT6WnSjM.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-CVDxn8Vm.js → TreeSelect.stories-C3jdjFQY.js} +1 -1
- package/storybook-static/assets/{TreeTable-CBIpzYRL.js → TreeTable-_ymCr62E.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-BMzrr2Kc.js → TreeTable.stories-DHShLIUZ.js} +1 -1
- package/storybook-static/assets/{blocks-B5YBxaaS.js → blocks-DcVVTXzf.js} +3 -3
- package/storybook-static/assets/{check-BjtdCRaW.js → check-5jIlw3QY.js} +1 -1
- package/storybook-static/assets/{chevron-down-B4u-y8Z1.js → chevron-down-CkkAjpRn.js} +1 -1
- package/storybook-static/assets/{chevron-left-BQfWs7Ah.js → chevron-left-DNKAotw1.js} +1 -1
- package/storybook-static/assets/{chevron-right-ChokKd-f.js → chevron-right-CYbSLSbL.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-meOkhzk4.js → chunk-W22LQPXL-CfJS6YKX.js} +1 -1
- package/storybook-static/assets/{circle-alert-B1AnDRf_.js → circle-alert-DXlaxNFD.js} +1 -1
- package/storybook-static/assets/{circle-check-JYnlcC1F.js → circle-check-BEKmaVgA.js} +1 -1
- package/storybook-static/assets/{components-C_wl1sL5.js → components-tbVBP-zS.js} +3 -3
- package/storybook-static/assets/{contextMenu-B-TUGs_1.js → contextMenu-DsufH6U8.js} +1 -1
- package/storybook-static/assets/{download-eR3X8I-h.js → download-C9jGmfx6.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-D95VPQ0b.js → floating-ui.react-YV96fWnb.js} +1 -1
- package/storybook-static/assets/{foundationApi-QhHXpYLB.js → foundationApi-DoAXLuxI.js} +1 -1
- package/storybook-static/assets/{foundationLib-CEAjnstw.js → foundationLib-C7xkVQAX.js} +1 -1
- package/storybook-static/assets/{hooks-awde7r2r.js → hooks-pjRWWXeZ.js} +1 -1
- package/storybook-static/assets/{iframe-FSp_AjJa.js → iframe--RU38UHO.js} +3 -3
- package/storybook-static/assets/iframe-BpGl-WdJ.js +1 -0
- package/storybook-static/assets/{info-12vmb1sT.js → info-CI9KvIum.js} +1 -1
- package/storybook-static/assets/{odata-C0Kpvttz.js → odata-bRglfPOU.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-BXZnk_C7.js → odataStoryFixtures-B8p8bkan.js} +1 -1
- package/storybook-static/assets/{react-BlCqWuXr.js → react-pQ8GL5b8.js} +1 -1
- package/storybook-static/assets/{refresh-cw-Bf5ufPte.js → refresh-cw-BJlS8-cO.js} +1 -1
- package/storybook-static/assets/{settings-2-DR-dTXIC.js → settings-2-CDqhDJH7.js} +1 -1
- package/storybook-static/assets/{sortable-B5e5yb_-.js → sortable-CPlbom2V.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-EVJARTec.js → syntaxhighlighter-QEQV7K2Y-Dh9tQsbp.js} +1 -1
- package/storybook-static/assets/{trash-2-QP7TS18H.js → trash-2-B3rSNw_b.js} +1 -1
- package/storybook-static/assets/{triangle-alert-qw19mxHr.js → triangle-alert-zaUE1fxx.js} +1 -1
- package/storybook-static/assets/{ui-CatTcSJL.css → ui-aDejsbZB.css} +1 -1
- package/storybook-static/assets/{uiClasses-B9c6dZuu.js → uiClasses-Cmg8Dx0X.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-Csu_Cct9.js → useODataSelectBase-DH9eFTxr.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BAv-Twqf.js → useODataTreeData-BrcEV-bK.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-Da-XM_Y0.js → usePickerQuery-BbTJGOEV.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-C0TdC2Pz.js → usePickerTriggerController-DNei2G7n.js} +1 -1
- package/storybook-static/assets/{x-aCjYTirW.js → x-BiHHkto5.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/README--LCKbep-.js +0 -110
- package/storybook-static/assets/README-BXJneZAJ.js +0 -147
- package/storybook-static/assets/README-C6BOdXNV.js +0 -322
- package/storybook-static/assets/README-CC00hlZK.js +0 -527
- package/storybook-static/assets/README-Cj2e6HrF.js +0 -178
- package/storybook-static/assets/README-DN9HKtp_.js +0 -124
- package/storybook-static/assets/README-DNricOkt.js +0 -136
- package/storybook-static/assets/README-DoCA4JXf.js +0 -273
- package/storybook-static/assets/README-tm9QH9cF.js +0 -103
- package/storybook-static/assets/iframe-DzQq_POR.js +0 -1
- /package/storybook-static/assets/{ui.module-Cat84Nza.js → ui.module-BDnTp43_.js} +0 -0
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-FSp_AjJa.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-B5YBxaaS.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Query/Persisted Records`}),`
|
|
2
|
-
`,(0,c.jsxs)(t.h1,{id:`сохранённые-записи-через-ryuzaki13react-foundation-apipersisted`,children:[`Сохранённые записи через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/persisted`})]}),`
|
|
3
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`persisted`}),` — специализированный слой поверх TanStack Query для данных, которые пользователь сохраняет и позднее восстанавливает: presets, variants, view configs и другие versioned records.`]}),`
|
|
4
|
-
`,(0,c.jsx)(t.h2,{id:`ментальная-модель`,children:`Ментальная модель`}),`
|
|
5
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`PersistedResourceDescriptor
|
|
6
|
-
├─ identity: namespace + resource + normalized scope
|
|
7
|
-
├─ read capability: list | latest | history
|
|
8
|
-
├─ write capability: save | create | delete
|
|
9
|
-
├─ transport operation: REST | OData | server-fn | custom
|
|
10
|
-
└─ cache strategy после успешной mutation
|
|
11
|
-
`})}),`
|
|
12
|
-
`,(0,c.jsx)(t.p,{children:`Capability optional: resource не обязан поддерживать все шесть операций. TypeScript разрешит соответствующий hook только когда operation присутствует в descriptor; runtime также выдаёт понятную ошибку при неправильном объекте.`}),`
|
|
13
|
-
`,(0,c.jsxs)(t.h2,{id:`persisted-или-resource`,children:[(0,c.jsx)(t.code,{children:`persisted`}),` или `,(0,c.jsx)(t.code,{children:`resource`})]}),`
|
|
14
|
-
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Нужна модель`}),(0,c.jsx)(t.th,{children:`Использовать`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Фиксированные сохранённые records: list/latest/history/save/create/delete`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`/persisted`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Произвольные названия и semantics операций`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.a,{href:`../resource/README.mdx`,children:(0,c.jsx)(t.code,{children:`/resource`})})})]})]})]}),`
|
|
15
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`persisted`}),` построен на тех же принципах keys/cache, но намеренно не является универсальным CRUD.`]}),`
|
|
16
|
-
`,(0,c.jsx)(t.h2,{id:`установка-и-provider`,children:`Установка и provider`}),`
|
|
17
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-api @ryuzaki13/react-foundation-lib @tanstack/react-query react
|
|
18
|
-
`})}),`
|
|
19
|
-
`,(0,c.jsxs)(t.p,{children:[`Hooks требуют `,(0,c.jsx)(t.code,{children:`QueryClientProvider`}),`. Descriptor и operations создавайте на module level, чтобы ссылки были стабильными.`]}),`
|
|
20
|
-
`,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
|
|
21
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
22
|
-
applyPersistedCacheStrategy,
|
|
23
|
-
composePersistedCacheStrategies,
|
|
24
|
-
createInvalidatePersistedScopeCacheStrategy,
|
|
25
|
-
createPersistedJsonCodec,
|
|
26
|
-
createPersistedODataMutationOperation,
|
|
27
|
-
createPersistedODataQueryOperation,
|
|
28
|
-
createPersistedODataReadOperation,
|
|
29
|
-
createPersistedRecordKeys,
|
|
30
|
-
createPersistedResourceDescriptor,
|
|
31
|
-
createPersistedRestMutationOperation,
|
|
32
|
-
createPersistedRestQueryOperation,
|
|
33
|
-
createSetPersistedQueryDataCacheStrategy,
|
|
34
|
-
getPersistedHistoryData,
|
|
35
|
-
getPersistedLatestData,
|
|
36
|
-
getPersistedListData,
|
|
37
|
-
parsePersistedJson,
|
|
38
|
-
stringifyPersistedJson,
|
|
39
|
-
usePersistedCreateMutation,
|
|
40
|
-
usePersistedDeleteMutation,
|
|
41
|
-
usePersistedHistoryQuery,
|
|
42
|
-
usePersistedLatestQuery,
|
|
43
|
-
usePersistedListQuery,
|
|
44
|
-
usePersistedSaveMutation
|
|
45
|
-
} from "@ryuzaki13/react-foundation-api/persisted";
|
|
46
|
-
`})}),`
|
|
47
|
-
`,(0,c.jsx)(t.h2,{id:`пошаговый-rest-пример`,children:`Пошаговый REST пример`}),`
|
|
48
|
-
`,(0,c.jsx)(t.h3,{id:`1-контракты`,children:`1. Контракты`}),`
|
|
49
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type ViewScope = {
|
|
50
|
-
userId: string;
|
|
51
|
-
viewId: string;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
type ViewConfig = {
|
|
55
|
-
columns: string[];
|
|
56
|
-
compact: boolean;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
type SavedViewRecord = {
|
|
60
|
-
id: string;
|
|
61
|
-
createdUtc: string;
|
|
62
|
-
payload: string;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
type SaveViewInput = {
|
|
66
|
-
payload: ViewConfig;
|
|
67
|
-
};
|
|
68
|
-
`})}),`
|
|
69
|
-
`,(0,c.jsx)(t.p,{children:`Внешний record и распарсенный config — разные типы. TypeScript не проверяет network payload автоматически.`}),`
|
|
70
|
-
`,(0,c.jsx)(t.h3,{id:`2-runtime-parsers`,children:`2. Runtime parsers`}),`
|
|
71
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function parseRecord(value: unknown): SavedViewRecord {
|
|
72
|
-
if (!isSavedViewRecord(value)) {
|
|
73
|
-
throw new Error("Некорректный SavedViewRecord payload");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return value;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function parseRecordList(value: unknown): SavedViewRecord[] {
|
|
80
|
-
if (!Array.isArray(value)) throw new Error("Ожидался массив records");
|
|
81
|
-
return value.map(parseRecord);
|
|
82
|
-
}
|
|
83
|
-
`})}),`
|
|
84
|
-
`,(0,c.jsx)(t.h3,{id:`3-operations`,children:`3. Operations`}),`
|
|
85
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const listOperation = createPersistedRestQueryOperation<
|
|
86
|
-
ViewScope,
|
|
87
|
-
void,
|
|
88
|
-
SavedViewRecord[]
|
|
89
|
-
>({
|
|
90
|
-
buildUrl: (scope) =>
|
|
91
|
-
\`/api/users/\${encodeURIComponent(scope.userId)}/views/\${encodeURIComponent(scope.viewId)}\`,
|
|
92
|
-
parseResponse: parseRecordList,
|
|
93
|
-
staleTime: 60_000
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
const latestOperation = createPersistedRestQueryOperation<
|
|
97
|
-
ViewScope,
|
|
98
|
-
void,
|
|
99
|
-
SavedViewRecord,
|
|
100
|
-
ViewConfig | null
|
|
101
|
-
>({
|
|
102
|
-
buildUrl: (scope) =>
|
|
103
|
-
\`/api/users/\${encodeURIComponent(scope.userId)}/views/\${encodeURIComponent(scope.viewId)}/latest\`,
|
|
104
|
-
parseResponse: parseRecord,
|
|
105
|
-
transform: (record) => parsePersistedJson<ViewConfig>(record.payload)
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
const saveOperation = createPersistedRestMutationOperation<
|
|
109
|
-
ViewScope,
|
|
110
|
-
SaveViewInput,
|
|
111
|
-
SavedViewRecord
|
|
112
|
-
>({
|
|
113
|
-
buildUrl: (scope) =>
|
|
114
|
-
\`/api/users/\${encodeURIComponent(scope.userId)}/views/\${encodeURIComponent(scope.viewId)}\`,
|
|
115
|
-
method: "PUT",
|
|
116
|
-
bodyMapper: (_scope, input) => ({
|
|
117
|
-
payload: stringifyPersistedJson(input.payload)
|
|
118
|
-
}),
|
|
119
|
-
parseResponse: parseRecord,
|
|
120
|
-
cacheStrategy: createInvalidatePersistedScopeCacheStrategy()
|
|
121
|
-
});
|
|
122
|
-
`})}),`
|
|
123
|
-
`,(0,c.jsx)(t.h3,{id:`4-descriptor`,children:`4. Descriptor`}),`
|
|
124
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const viewResource = createPersistedResourceDescriptor({
|
|
125
|
-
namespace: "view-config",
|
|
126
|
-
resource: "view",
|
|
127
|
-
normalizeScope: (scope: ViewScope | null | undefined) => ({
|
|
128
|
-
userId: scope?.userId.trim() ?? "",
|
|
129
|
-
viewId: scope?.viewId.trim() ?? ""
|
|
130
|
-
}),
|
|
131
|
-
isEnabled: (scope) => Boolean(scope?.userId && scope?.viewId),
|
|
132
|
-
getScopeError: () => "Не определён пользователь или представление",
|
|
133
|
-
transport: {
|
|
134
|
-
list: listOperation,
|
|
135
|
-
latest: latestOperation,
|
|
136
|
-
save: saveOperation
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
`})}),`
|
|
140
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`normalizeScope`}),` изменяет только cache identity. В `,(0,c.jsx)(t.code,{children:`buildUrl`}),`/`,(0,c.jsx)(t.code,{children:`execute`}),` передаётся исходный scope.`]}),`
|
|
141
|
-
`,(0,c.jsx)(t.h3,{id:`5-hooks`,children:`5. Hooks`}),`
|
|
142
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`const scope = { userId, viewId };
|
|
143
|
-
const latestQuery = usePersistedLatestQuery(viewResource, scope);
|
|
144
|
-
const listQuery = usePersistedListQuery(viewResource, scope);
|
|
145
|
-
const saveMutation = usePersistedSaveMutation(viewResource, scope);
|
|
146
|
-
|
|
147
|
-
saveMutation.mutate({
|
|
148
|
-
payload: { columns: ["name", "status"], compact: true }
|
|
149
|
-
});
|
|
150
|
-
`})}),`
|
|
151
|
-
`,(0,c.jsxs)(t.p,{children:[`Нельзя вызвать `,(0,c.jsx)(t.code,{children:`usePersistedHistoryQuery`}),` для этого descriptor, пока capability `,(0,c.jsx)(t.code,{children:`history`}),` не добавлена.`]}),`
|
|
152
|
-
`,(0,c.jsx)(t.h2,{id:`read-capabilities`,children:`Read capabilities`}),`
|
|
153
|
-
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Capability`}),(0,c.jsx)(t.th,{children:`Hook`}),(0,c.jsx)(t.th,{children:`Imperative helper`}),(0,c.jsx)(t.th,{children:`Args`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`list`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`usePersistedListQuery`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`getPersistedListData`})}),(0,c.jsxs)(t.td,{children:[`нет (`,(0,c.jsx)(t.code,{children:`void`}),`)`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`latest`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`usePersistedLatestQuery`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`getPersistedLatestData`})}),(0,c.jsxs)(t.td,{children:[`нет (`,(0,c.jsx)(t.code,{children:`void`}),`)`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`history`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`usePersistedHistoryQuery`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`getPersistedHistoryData`})}),(0,c.jsx)(t.td,{children:`обязательный generic args`})]})]})]}),`
|
|
154
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const page = await getPersistedHistoryData(
|
|
155
|
-
resourceWithHistory,
|
|
156
|
-
scope,
|
|
157
|
-
{ cursor: "next", limit: 20 },
|
|
158
|
-
queryClient
|
|
159
|
-
);
|
|
160
|
-
`})}),`
|
|
161
|
-
`,(0,c.jsxs)(t.p,{children:[`Query operation получает `,(0,c.jsx)(t.code,{children:`{ scope, args, client, signal }`}),`. `,(0,c.jsx)(t.code,{children:`isEnabled`}),` operation и descriptor определяют автоматический запуск React observer; `,(0,c.jsx)(t.code,{children:`staleTime`}),`, `,(0,c.jsx)(t.code,{children:`gcTime`}),`, `,(0,c.jsx)(t.code,{children:`meta`}),` переходят в TanStack Query options.`]}),`
|
|
162
|
-
`,(0,c.jsxs)(t.p,{children:[`Imperative helpers используют `,(0,c.jsx)(t.code,{children:`queryClient.fetchQuery`}),`. Передавайте валидный scope; disabled policy в первую очередь управляет observer, а фактическая query function всё равно проверяет scope.`]}),`
|
|
163
|
-
`,(0,c.jsx)(t.h2,{id:`write-capabilities`,children:`Write capabilities`}),`
|
|
164
|
-
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Capability`}),(0,c.jsx)(t.th,{children:`Hook`}),(0,c.jsx)(t.th,{children:`Типичный смысл`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`save`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`usePersistedSaveMutation`})}),(0,c.jsx)(t.td,{children:`Сохранить/обновить snapshot`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`create`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`usePersistedCreateMutation`})}),(0,c.jsx)(t.td,{children:`Создать новую именованную запись`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`delete`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`usePersistedDeleteMutation`})}),(0,c.jsx)(t.td,{children:`Удалить запись`})]})]})]}),`
|
|
165
|
-
`,(0,c.jsxs)(t.p,{children:[`Mutation operation получает `,(0,c.jsx)(t.code,{children:`{ scope, input, client }`}),`. Generic persisted contract не передаёт `,(0,c.jsx)(t.code,{children:`AbortSignal`}),` для mutation.`]}),`
|
|
166
|
-
`,(0,c.jsx)(t.p,{children:`После успешного transport:`}),`
|
|
167
|
-
`,(0,c.jsxs)(t.ol,{children:[`
|
|
168
|
-
`,(0,c.jsx)(t.li,{children:`выбирается cache strategy;`}),`
|
|
169
|
-
`,(0,c.jsx)(t.li,{children:`strategy выполняется и awaited;`}),`
|
|
170
|
-
`,(0,c.jsxs)(t.li,{children:[`вызывается optional hook `,(0,c.jsx)(t.code,{children:`onSuccess(result, input)`}),`.`]}),`
|
|
171
|
-
`]}),`
|
|
172
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`usePersistedSaveMutation(resource, scope, {
|
|
173
|
-
cacheStrategy: null, // Отключить operation strategy.
|
|
174
|
-
onSuccess(result) {
|
|
175
|
-
showSuccess(\`Сохранено \${result.id}\`);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
`})}),`
|
|
179
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`cacheStrategy: undefined`}),` использует strategy операции; `,(0,c.jsx)(t.code,{children:`null`}),` отключает; объект заменяет исходную strategy. Для дополнения применяйте композицию.`]}),`
|
|
180
|
-
`,(0,c.jsx)(t.h2,{id:`query-keys`,children:`Query keys`}),`
|
|
181
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const keys = createPersistedRecordKeys<ViewScope>({
|
|
182
|
-
namespace: "view-config",
|
|
183
|
-
resource: "view",
|
|
184
|
-
normalizeScope: (scope) => ({
|
|
185
|
-
userId: scope?.userId ?? "",
|
|
186
|
-
viewId: scope?.viewId ?? ""
|
|
187
|
-
})
|
|
188
|
-
});
|
|
189
|
-
|
|
190
|
-
keys.all;
|
|
191
|
-
keys.scope(scope);
|
|
192
|
-
keys.list(scope);
|
|
193
|
-
keys.latest(scope);
|
|
194
|
-
keys.history(scope, { limit: 20 });
|
|
195
|
-
keys.save(scope);
|
|
196
|
-
keys.create(scope);
|
|
197
|
-
keys.delete(scope);
|
|
198
|
-
`})}),`
|
|
199
|
-
`,(0,c.jsx)(t.p,{children:`Форма:`}),`
|
|
200
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`[namespace, resource, normalizedScope, operation, optionalArgs]
|
|
201
|
-
`})}),`
|
|
202
|
-
`,(0,c.jsxs)(t.p,{children:[`Используется нормализация `,(0,c.jsx)(t.code,{children:`/resource`}),`: strings trim, object keys сортируются, `,(0,c.jsx)(t.code,{children:`undefined`}),` становится `,(0,c.jsx)(t.code,{children:`null`}),`. Date/Map/cyclic object требуют явного нормализатора.`]}),`
|
|
203
|
-
`,(0,c.jsx)(t.h2,{id:`json-payload-codec`,children:`JSON payload codec`}),`
|
|
204
|
-
`,(0,c.jsx)(t.h3,{id:`parse`,children:`Parse`}),`
|
|
205
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`parsePersistedJson<ViewConfig>(null); // null.
|
|
206
|
-
parsePersistedJson<ViewConfig>(""); // null.
|
|
207
|
-
parsePersistedJson<ViewConfig>("broken"); // null.
|
|
208
|
-
parsePersistedJson<ViewConfig>('{"compact":true,"columns":[]}');
|
|
209
|
-
// Object, но без runtime validation.
|
|
210
|
-
`})}),`
|
|
211
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`parsePersistedJson<T>`}),` только вызывает `,(0,c.jsx)(t.code,{children:`JSON.parse`}),` и делает TypeScript cast. Он не проверяет schema. После parse примените domain validator/normalizer на явной restore boundary.`]}),`
|
|
212
|
-
`,(0,c.jsx)(t.h3,{id:`stringify`,children:`Stringify`}),`
|
|
213
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const payload = stringifyPersistedJson({ compact: false, columns: [] });
|
|
214
|
-
`})}),`
|
|
215
|
-
`,(0,c.jsxs)(t.p,{children:[`Ошибки `,(0,c.jsx)(t.code,{children:`JSON.stringify`}),` пробрасываются. Передавайте только JSON-compatible данные. В частности:`]}),`
|
|
216
|
-
`,(0,c.jsxs)(t.ul,{children:[`
|
|
217
|
-
`,(0,c.jsxs)(t.li,{children:[`cyclic object и `,(0,c.jsx)(t.code,{children:`BigInt`}),` приводят к ошибке;`]}),`
|
|
218
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`Date`}),` превращается в ISO string;`]}),`
|
|
219
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`undefined`}),` в object-поле удаляется;`]}),`
|
|
220
|
-
`,(0,c.jsxs)(t.li,{children:[`вызов с корневым `,(0,c.jsx)(t.code,{children:`undefined`}),` фактически может вернуть `,(0,c.jsx)(t.code,{children:`undefined`}),`, несмотря на заявленный string contract — не передавайте его.`]}),`
|
|
221
|
-
`]}),`
|
|
222
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`createPersistedJsonCodec<T>()`}),` возвращает `,(0,c.jsx)(t.code,{children:`{ parse, stringify }`}),` для передачи единым контрактом.`]}),`
|
|
223
|
-
`,(0,c.jsx)(t.h2,{id:`rest-adapters`,children:`REST adapters`}),`
|
|
224
|
-
`,(0,c.jsx)(t.h3,{id:`query`,children:`Query`}),`
|
|
225
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`createPersistedRestQueryOperation`}),` принимает:`]}),`
|
|
226
|
-
`,(0,c.jsxs)(t.ul,{children:[`
|
|
227
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`buildUrl(scope, args)`}),` — относительный или абсолютный URL;`]}),`
|
|
228
|
-
`,(0,c.jsxs)(t.li,{children:[`optional `,(0,c.jsx)(t.code,{children:`baseUrl`}),`;`]}),`
|
|
229
|
-
`,(0,c.jsxs)(t.li,{children:[`optional `,(0,c.jsx)(t.code,{children:`buildInit(scope, args)`}),`;`]}),`
|
|
230
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`parseResponse(unknown)`}),` или custom `,(0,c.jsx)(t.code,{children:`executor`}),`;`]}),`
|
|
231
|
-
`,(0,c.jsxs)(t.li,{children:[`optional `,(0,c.jsx)(t.code,{children:`transform`}),`;`]}),`
|
|
232
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`staleTime`}),`, `,(0,c.jsx)(t.code,{children:`gcTime`}),`, `,(0,c.jsx)(t.code,{children:`isEnabled`}),`.`]}),`
|
|
233
|
-
`]}),`
|
|
234
|
-
`,(0,c.jsxs)(t.p,{children:[`Если нет ни `,(0,c.jsx)(t.code,{children:`executor`}),`, ни `,(0,c.jsx)(t.code,{children:`parseResponse`}),`, operation бросит `,(0,c.jsx)(t.code,{children:`REST persisted operation requires executor or parseResponse.`})]}),`
|
|
235
|
-
`,(0,c.jsxs)(t.p,{children:[`Read signal всегда записывается поверх `,(0,c.jsx)(t.code,{children:`buildInit.signal`}),`, чтобы текущая TanStack Query отменяла именно свой запрос.`]}),`
|
|
236
|
-
`,(0,c.jsx)(t.h3,{id:`mutation`,children:`Mutation`}),`
|
|
237
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`createPersistedRestMutationOperation`}),` поддерживает method `,(0,c.jsx)(t.code,{children:`POST`}),`, `,(0,c.jsx)(t.code,{children:`PUT`}),`, `,(0,c.jsx)(t.code,{children:`DELETE`}),`.`]}),`
|
|
238
|
-
`,(0,c.jsxs)(t.ul,{children:[`
|
|
239
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`bodyMapper(scope, input)`}),` создаёт JSON body;`]}),`
|
|
240
|
-
`,(0,c.jsxs)(t.li,{children:[`если mapper отсутствует/вернул `,(0,c.jsx)(t.code,{children:`undefined`}),`, body и default Content-Type не задаются;`]}),`
|
|
241
|
-
`,(0,c.jsxs)(t.li,{children:[`иначе body сериализуется и default header равен `,(0,c.jsx)(t.code,{children:`application/json`}),`;`]}),`
|
|
242
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`buildInit`}),` применяется после default headers и может полностью заменить headers;`]}),`
|
|
243
|
-
`,(0,c.jsxs)(t.li,{children:[`response обязательно проходит `,(0,c.jsx)(t.code,{children:`parseResponse`}),` или custom executor;`]}),`
|
|
244
|
-
`,(0,c.jsxs)(t.li,{children:[`optional `,(0,c.jsx)(t.code,{children:`transform`}),` строит domain result;`]}),`
|
|
245
|
-
`,(0,c.jsxs)(t.li,{children:[`optional `,(0,c.jsx)(t.code,{children:`cacheStrategy`}),` прикрепляется к operation.`]}),`
|
|
246
|
-
`]}),`
|
|
247
|
-
`,(0,c.jsxs)(t.p,{children:[`REST adapter использует нейтральный `,(0,c.jsx)(t.code,{children:`/http`}),`: SAP SSO/X-CSRF policy здесь нет.`]}),`
|
|
248
|
-
`,(0,c.jsx)(t.h2,{id:`odata-adapters`,children:`OData adapters`}),`
|
|
249
|
-
`,(0,c.jsxs)(t.p,{children:[`OData operations используют metadata-aware transport из `,(0,c.jsx)(t.a,{href:`../odata/README.mdx`,children:(0,c.jsx)(t.code,{children:`/odata`})}),`.`]}),`
|
|
250
|
-
`,(0,c.jsx)(t.h3,{id:`query-collection`,children:`Query collection`}),`
|
|
251
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const list = createPersistedODataQueryOperation<
|
|
252
|
-
ViewScope,
|
|
253
|
-
void,
|
|
254
|
-
SavedViewRecord[]
|
|
255
|
-
>({
|
|
256
|
-
odata: { service: "Z_VIEW_CONFIG_SRV", target: "ViewSet" },
|
|
257
|
-
buildOptions: (scope) => ({
|
|
258
|
-
expression: createFilterEqual("UserId", scope.userId)
|
|
259
|
-
}),
|
|
260
|
-
transform: (rows) => rows
|
|
261
|
-
});
|
|
262
|
-
`})}),`
|
|
263
|
-
`,(0,c.jsxs)(t.p,{children:[`Доступные options factory: `,(0,c.jsx)(t.code,{children:`odata`}),`, optional `,(0,c.jsx)(t.code,{children:`baseUrl`}),`, `,(0,c.jsx)(t.code,{children:`buildParams`}),`, `,(0,c.jsx)(t.code,{children:`buildOptions`}),`, `,(0,c.jsx)(t.code,{children:`buildInit`}),`, `,(0,c.jsx)(t.code,{children:`transform`}),`, `,(0,c.jsx)(t.code,{children:`executor`}),`, `,(0,c.jsx)(t.code,{children:`staleTime`}),`, `,(0,c.jsx)(t.code,{children:`gcTime`}),`, `,(0,c.jsx)(t.code,{children:`meta`}),`, `,(0,c.jsx)(t.code,{children:`isEnabled`}),`.`]}),`
|
|
264
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`createPersistedODataQueryOperation`}),` использует semantic method `,(0,c.jsx)(t.code,{children:`query`}),` и возвращает collection response data. `,(0,c.jsx)(t.code,{children:`createPersistedODataReadOperation`}),` использует `,(0,c.jsx)(t.code,{children:`read`}),` для одной entity по key parameters:`]}),`
|
|
265
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const latest = createPersistedODataReadOperation({
|
|
266
|
-
odata: { service: "Z_VIEW_CONFIG_SRV", target: "ViewSet" },
|
|
267
|
-
buildParams: (scope: ViewScope) => wrapODataParams({
|
|
268
|
-
UserId: scope.userId,
|
|
269
|
-
ViewId: scope.viewId
|
|
270
|
-
}),
|
|
271
|
-
transform: (record: SavedViewRecord) =>
|
|
272
|
-
parsePersistedJson<ViewConfig>(record.payload)
|
|
273
|
-
});
|
|
274
|
-
`})}),`
|
|
275
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`buildParams`}),` должен возвращать wrapped OData parameters из `,(0,c.jsx)(t.code,{children:`foundation-lib/odata-service`}),`.`]}),`
|
|
276
|
-
`,(0,c.jsx)(t.h3,{id:`mutation-1`,children:`Mutation`}),`
|
|
277
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const save = createPersistedODataMutationOperation({
|
|
278
|
-
odata: { service: "Z_VIEW_CONFIG_SRV", target: "ViewSet" },
|
|
279
|
-
method: "update",
|
|
280
|
-
buildParams: (scope: ViewScope) => wrapODataParams({
|
|
281
|
-
UserId: scope.userId,
|
|
282
|
-
ViewId: scope.viewId
|
|
283
|
-
}),
|
|
284
|
-
bodyMapper: (_scope, input: SaveViewInput) => ({
|
|
285
|
-
Payload: stringifyPersistedJson(input.payload)
|
|
286
|
-
}),
|
|
287
|
-
cacheStrategy: createInvalidatePersistedScopeCacheStrategy()
|
|
288
|
-
});
|
|
289
|
-
`})}),`
|
|
290
|
-
`,(0,c.jsx)(t.p,{children:`Semantic methods:`}),`
|
|
291
|
-
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Method`}),(0,c.jsx)(t.th,{children:`Params`}),(0,c.jsx)(t.th,{children:`Body`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`create`})}),(0,c.jsx)(t.td,{children:`запрещены`}),(0,c.jsxs)(t.td,{children:[`обязательный `,(0,c.jsx)(t.code,{children:`bodyMapper`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`update`})}),(0,c.jsxs)(t.td,{children:[`обязательный `,(0,c.jsx)(t.code,{children:`buildParams`})]}),(0,c.jsxs)(t.td,{children:[`обязательный `,(0,c.jsx)(t.code,{children:`bodyMapper`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`delete`})}),(0,c.jsxs)(t.td,{children:[`обязательный `,(0,c.jsx)(t.code,{children:`buildParams`})]}),(0,c.jsx)(t.td,{children:`запрещён`})]})]})]}),`
|
|
292
|
-
`,(0,c.jsxs)(t.p,{children:[`Это OData operation names, а не raw HTTP strings. Не передавайте `,(0,c.jsx)(t.code,{children:`"PUT"`}),`/`,(0,c.jsx)(t.code,{children:`"POST"`}),`.`]}),`
|
|
293
|
-
`,(0,c.jsx)(t.p,{children:`OData adapter наследует metadata validation, SAP cookies, SSO recovery и X-CSRF lifecycle. Query/read получают AbortSignal; mutations — нет в generic contract.`}),`
|
|
294
|
-
`,(0,c.jsx)(t.h2,{id:`custom-и-server-function-operations`,children:`Custom и server-function operations`}),`
|
|
295
|
-
`,(0,c.jsxs)(t.p,{children:[`Descriptor принимает любой object, соответствующий `,(0,c.jsx)(t.code,{children:`PersistedQueryOperation`}),`/`,(0,c.jsx)(t.code,{children:`PersistedMutationOperation`}),`. Server-function factories из `,(0,c.jsx)(t.a,{href:`../server-fn/README.mdx`,children:(0,c.jsx)(t.code,{children:`/server-fn`})}),` возвращают совместимые resource operations и могут быть использованы как capabilities, если их generic contract совпадает.`]}),`
|
|
296
|
-
`,(0,c.jsx)(t.h2,{id:`cache-strategies`,children:`Cache strategies`}),`
|
|
297
|
-
`,(0,c.jsx)(t.h3,{id:`инвалидация-всего-scope`,children:`Инвалидация всего scope`}),`
|
|
298
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const invalidate = createInvalidatePersistedScopeCacheStrategy();
|
|
299
|
-
`})}),`
|
|
300
|
-
`,(0,c.jsxs)(t.p,{children:[`Инвалидирует prefix `,(0,c.jsx)(t.code,{children:`descriptor.keys.scope(scope)`}),`, поэтому затрагивает list/latest/history данного scope.`]}),`
|
|
301
|
-
`,(0,c.jsx)(t.h3,{id:`точечное-обновление`,children:`Точечное обновление`}),`
|
|
302
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const setLatest = createSetPersistedQueryDataCacheStrategy({
|
|
303
|
-
getQueryKey: ({ descriptor, scope }) => descriptor.keys.latest(scope),
|
|
304
|
-
update: (_current, { result }) => result
|
|
305
|
-
});
|
|
306
|
-
`})}),`
|
|
307
|
-
`,(0,c.jsx)(t.h3,{id:`композиция`,children:`Композиция`}),`
|
|
308
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const combined = composePersistedCacheStrategies(setLatest, invalidate);
|
|
309
|
-
`})}),`
|
|
310
|
-
`,(0,c.jsxs)(t.p,{children:[`Порядок последовательный. Если strategy бросила ошибку, следующие steps и hook `,(0,c.jsx)(t.code,{children:`onSuccess`}),` не выполняются, хотя backend mutation уже могла завершиться.`]}),`
|
|
311
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`applyPersistedCacheStrategy`}),` — низкоуровневый helper для ручного вызова optional strategy.`]}),`
|
|
312
|
-
`,(0,c.jsx)(t.h2,{id:`ошибки-и-безопасность`,children:`Ошибки и безопасность`}),`
|
|
313
|
-
`,(0,c.jsxs)(t.ul,{children:[`
|
|
314
|
-
`,(0,c.jsxs)(t.li,{children:[`Scope `,(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),` или rejected `,(0,c.jsx)(t.code,{children:`isEnabled`}),` блокирует query и вызывает ошибку при фактическом execution.`]}),`
|
|
315
|
-
`,(0,c.jsxs)(t.li,{children:[`Network payload валидируйте в `,(0,c.jsx)(t.code,{children:`parseResponse`}),`/`,(0,c.jsx)(t.code,{children:`transform`}),`; TypeScript generic не является validator-ом.`]}),`
|
|
316
|
-
`,(0,c.jsx)(t.li,{children:`Не храните secrets в payload/query keys/client persistence.`}),`
|
|
317
|
-
`,(0,c.jsx)(t.li,{children:`Save/create должны быть идемпотентны настолько, насколько это возможно для retry policy.`}),`
|
|
318
|
-
`,(0,c.jsx)(t.li,{children:`Cache update — локальная проекция, backend остаётся source of truth.`}),`
|
|
319
|
-
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`parsePersistedJson`}),` подавляет syntax error и возвращает `,(0,c.jsx)(t.code,{children:`null`}),`; различайте «нет payload» и «повреждён payload» на уровне продукта, если это важно.`]}),`
|
|
320
|
-
`]}),`
|
|
321
|
-
`,(0,c.jsx)(t.h2,{id:`полный-api`,children:`Полный API`}),`
|
|
322
|
-
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Группа`}),(0,c.jsx)(t.th,{children:`Exports`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Descriptor/keys`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`createPersistedResourceDescriptor`}),`, `,(0,c.jsx)(t.code,{children:`createPersistedRecordKeys`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`React reads`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`usePersistedListQuery`}),`, `,(0,c.jsx)(t.code,{children:`usePersistedLatestQuery`}),`, `,(0,c.jsx)(t.code,{children:`usePersistedHistoryQuery`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Imperative reads`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`getPersistedListData`}),`, `,(0,c.jsx)(t.code,{children:`getPersistedLatestData`}),`, `,(0,c.jsx)(t.code,{children:`getPersistedHistoryData`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Mutations`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`usePersistedSaveMutation`}),`, `,(0,c.jsx)(t.code,{children:`usePersistedCreateMutation`}),`, `,(0,c.jsx)(t.code,{children:`usePersistedDeleteMutation`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Payload`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`parsePersistedJson`}),`, `,(0,c.jsx)(t.code,{children:`stringifyPersistedJson`}),`, `,(0,c.jsx)(t.code,{children:`createPersistedJsonCodec`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`REST adapters`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`createPersistedRestQueryOperation`}),`, `,(0,c.jsx)(t.code,{children:`createPersistedRestMutationOperation`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`OData adapters`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`createPersistedODataQueryOperation`}),`, `,(0,c.jsx)(t.code,{children:`createPersistedODataReadOperation`}),`, `,(0,c.jsx)(t.code,{children:`createPersistedODataMutationOperation`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Cache`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`applyPersistedCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`createInvalidatePersistedScopeCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`createSetPersistedQueryDataCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`composePersistedCacheStrategies`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Names/types`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`PersistedReadOperationName`}),`, `,(0,c.jsx)(t.code,{children:`PersistedWriteOperationName`}),`, `,(0,c.jsx)(t.code,{children:`PersistedOperationName`}),`, `,(0,c.jsx)(t.code,{children:`PersistedPayloadCodec`}),`, `,(0,c.jsx)(t.code,{children:`PersistedRecordKeys`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Operation contracts`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`PersistedQueryOperationContext`}),`, `,(0,c.jsx)(t.code,{children:`PersistedMutationOperationContext`}),`, `,(0,c.jsx)(t.code,{children:`PersistedQueryOperation`}),`, `,(0,c.jsx)(t.code,{children:`PersistedMutationOperation`}),`, `,(0,c.jsx)(t.code,{children:`PersistedOperationCapabilities`}),`, `,(0,c.jsx)(t.code,{children:`PersistedTransportAdapter`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Descriptor/cache contracts`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`PersistedResourceDescriptor`}),`, `,(0,c.jsx)(t.code,{children:`CreatePersistedResourceDescriptorOptions`}),`, `,(0,c.jsx)(t.code,{children:`PersistedCacheStrategyContext`}),`, `,(0,c.jsx)(t.code,{children:`PersistedCacheStrategy`}),`, `,(0,c.jsx)(t.code,{children:`PersistedSetQueryDataStrategyOptions`})]})]})]})]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
|