@ryuzaki13/react-foundation-ui 1.8.12 → 1.8.13
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/package.json +2 -2
- package/storybook-static/assets/{Badge-CveIo2LZ.js → Badge-BFhBl7yM.js} +1 -1
- package/storybook-static/assets/{Badge.stories-Bd8M64xJ.js → Badge.stories-BEu55X4s.js} +1 -1
- package/storybook-static/assets/{BadgeList-xT41a0VL.js → BadgeList-mqmnGtRR.js} +1 -1
- package/storybook-static/assets/{Button-C5bBSb3k.js → Button-CESdnWrO.js} +1 -1
- package/storybook-static/assets/{Button-DkDgfpHL.js → Button-_YPAu9sd.js} +1 -1
- package/storybook-static/assets/{Button.stories-CeKPeGK5.js → Button.stories-B0Y_T17B.js} +1 -1
- package/storybook-static/assets/{CalendarView-CEqcrblx.js → CalendarView-DLuO2Ywz.js} +1 -1
- package/storybook-static/assets/{CheckBox-DKeFkdOt.js → CheckBox-CGiNmAPT.js} +1 -1
- package/storybook-static/assets/{CheckBox-OVvAarW-.js → CheckBox-l0pbBm9z.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-CfZ0p1yo.js → CheckBox.stories-ROPAnqh8.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-BWW7zrfs.js → Color-6AOWCN3U-kPaRN0HS.js} +1 -1
- package/storybook-static/assets/{ContextMenu-xn2GtiLR.js → ContextMenu-Bob4DtRn.js} +1 -1
- package/storybook-static/assets/{ContextMenu-kia7is1N.js → ContextMenu-DxfUAeJS.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CYuy9uXF.js → ContextMenu.stories-DCJmWy5n.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-C4w-APws.js → CustomOptionButton-DuEz9CXt.js} +1 -1
- package/storybook-static/assets/{DateInput-BiUFIihm.js → DateInput-BQ8SoeLE.js} +1 -1
- package/storybook-static/assets/{DateInput-DAzE5mCE.js → DateInput-DmNLD4Dz.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BcowGCRD.js → DateInput.stories-sTpYf7Ob.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CQm4dNLR.js → DateRangePresetSelect-DRq4eJ2n.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-RIyqNBk9.js → DateRangePresetSelect-fgJfLaLO.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-ypGyuGfy.js → DateRangePresetSelect.stories-ib7Qh_BB.js} +1 -1
- package/storybook-static/assets/{Detail-CEypL2Nh.js → Detail-CJniLn1R.js} +1 -1
- package/storybook-static/assets/{Detail.stories-DNkT7B-u.js → Detail.stories-BXjdNaL-.js} +1 -1
- package/storybook-static/assets/{Dialog-BVFFQJDH.js → Dialog-D6a_qzr3.js} +1 -1
- package/storybook-static/assets/{Dialog-DD0grLG3.js → Dialog-DOYnnXlU.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-DSCypHqR.js → Dialog.stories-B1cZLRK3.js} +1 -1
- package/storybook-static/assets/{Disclosure-DauUgrev.js → Disclosure-Chh5o_0s.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-B1qB8vQZ.js → Disclosure.stories-Cvdvf7V8.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-D9oCCeHf.js → DisclosureGroup-CRnQOgVj.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-CmSf6tXp.js → DocsRenderer-JROSPFPF-BBiErkeC.js} +1 -1
- package/storybook-static/assets/{DropZone-D8hbPCAv.js → DropZone-Bm5gqdi9.js} +1 -1
- package/storybook-static/assets/{DropZone-D42ueN1w.js → DropZone-C4L7JAlq.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-DO-T_Bh4.js → DropZone.stories-BhA9q8Qv.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-CknJDoji.js → DropdownMenu-DtZNSUHF.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-Dqi_bo3c.js → ExpandableActionPanel-0ugXlJy_.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BD9QZGZN.js → ExpandableActionPanel.stories-CLgMlA9k.js} +1 -1
- package/storybook-static/assets/{Flex-CaVn1IOP.js → Flex-CJlia-8f.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Bp9Y6q6b.js → Flex.stories-DCvfi1EY.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-U7tx-Jlw.js → FloatingPopover-CsnfPiwV.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-pmmhsAbN.js → FormattedTableCell-Dz5xWVYO.js} +1 -1
- package/storybook-static/assets/{Grid-CEpMNurH.js → Grid-C-KwTRAM.js} +1 -1
- package/storybook-static/assets/{Grid.stories-BM-gO5DN.js → Grid.stories-CzbqknNR.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-BWz5XU6U.js → ImageCropper.stories-DaE-gm-b.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BTYZEX5t.js → ImageRenderer-IsNCXCrZ.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Dz2STM95.js → ImageRenderer.stories-BbsjUEfJ.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DBVe0an3.js → ImageView.stories-DY0UITYz.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-C4Px97lD.js → ImageViewer.stories--9q9b9nv.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-TJtlJVfa.js → ImageViewerRuntime-CNEH3XGN.js} +1 -1
- package/storybook-static/assets/{Input-CIPgijvW.js → Input-DLubbE7P.js} +1 -1
- package/storybook-static/assets/{Input-D8io9jVS.js → Input-Dw2JblYt.js} +1 -1
- package/storybook-static/assets/{Input.stories-SUk3aYaC.js → Input.stories-DQeyDULG.js} +1 -1
- package/storybook-static/assets/{InputDateTime-DA5pIDuE.js → InputDateTime-BRzl8Vrt.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DeudzDSU.js → InputDateTime.stories-BJTj5v8J.js} +1 -1
- package/storybook-static/assets/{InputFile-CGAC7ruP.js → InputFile-B8UroZji.js} +1 -1
- package/storybook-static/assets/{InputFile-C5mp5Y5I.js → InputFile-DPftxjGw.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Cx1xQ6PE.js → InputFile.stories-C7yyqHqc.js} +1 -1
- package/storybook-static/assets/{InputFiles-B7OBcPJN.js → InputFiles-BQVXHVLy.js} +1 -1
- package/storybook-static/assets/{InputFiles-Hzl89Ghf.js → InputFiles-UD_9S7-N.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CG6QjDZH.js → InputFiles.stories-DjjJS5pZ.js} +1 -1
- package/storybook-static/assets/{InputFilesList-B6htWHF1.js → InputFilesList-BNjijD3Y.js} +1 -1
- package/storybook-static/assets/{InputImage-BTa4S4Wp.js → InputImage-C-pHr-Sx.js} +1 -1
- package/storybook-static/assets/{InputImage-CQnoblAE.js → InputImage-DbcbqIhY.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CEI44Eyz.js → InputImage.stories-D-TC9r9t.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-B0ypWz1x.js → InteractiveComponents-DbhWgM9y.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-BadApta9.js → InteractiveComponents.stories-B4mkVSea.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-C_Uz7Tnj.js → LayoutPicker-BoV_E3qt.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-COB9GlV_.js → LayoutPicker-w1EsRpYP.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-Btp0IcaL.js → LayoutPicker.stories--ChGnGxf.js} +1 -1
- package/storybook-static/assets/{Listbox-AAaZGSAl.js → Listbox-CzZRsr6a.js} +1 -1
- package/storybook-static/assets/{Listbox-CyfuZw7w.js → Listbox-qZdTi11b.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-NDKQmjyQ.js → Listbox.stories-C9k_1850.js} +1 -1
- package/storybook-static/assets/{Modal-BJDnJ4zv.js → Modal-DCpul8QM.js} +1 -1
- package/storybook-static/assets/{Modal.stories-D_X5lTLO.js → Modal.stories-Cy0Xd4LF.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-ShDjozpW.js → ModalManagerProvider-BrPVMcHV.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DqXfrjcH.js → MultiSelect-BEQdl-F4.js} +1 -1
- package/storybook-static/assets/{MultiSelect-B5CElQ3-.js → MultiSelect-Dy4X94E2.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-fB3mcFmx.js → MultiSelect.stories-FuzejJmz.js} +1 -1
- package/storybook-static/assets/{NoData-DDb0G7T8.js → NoData-BsQ9EfkA.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-CIGL-pKX.js → NotificationsHost-BSrODvw7.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-B_MRb3fs.js → NotificationsHost.stories-DeiWspcY.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-DQAitH4N.js → ODataMultiSelect-BEz9gcd2.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DwW221S9.js → ODataMultiSelect.stories-BwMgAkbE.js} +1 -1
- package/storybook-static/assets/{ODataSelect-tiZhOIhE.js → ODataSelect-BgC7GHOv.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-BhaatPjK.js → ODataSelect.stories-DEIRAB-s.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-B9WqJ-Un.js → ODataTreeMultiSelect-WyZZuX0_.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CAfKuhfU.js → ODataTreeMultiSelect.stories-B6cxuagy.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-Cel1phxZ.js → ODataTreeSelect-OJGi3-S7.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-BpBCpBA9.js → ODataTreeSelect.stories-wGRGErCH.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-BSeGbz02.js → OneStepScroller-DycQ3RuL.js} +1 -1
- package/storybook-static/assets/{Option-BBtQ3GdK.js → Option-taxbFfjo.js} +1 -1
- package/storybook-static/assets/{OptionButton-B9nZuqqW.js → OptionButton-Q0QaPCII.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DA_zjcdA.js → PeriodSelect-DUJ2nF3F.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BGvhR3to.js → PeriodSelect-DnM7x-uC.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DDP1eXyM.js → PeriodSelect.stories-Db0bqe3J.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-BgvzqRBd.js → PickerTriggerActions-CGJd7xmR.js} +1 -1
- package/storybook-static/assets/{Popover-C0NebUMz.js → Popover-B6oidz5p.js} +1 -1
- package/storybook-static/assets/{Popover-BQql18MF.js → Popover-Tbhf8T81.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CIyDUtlz.js → Popover.stories-DE1LxZvv.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-BsgzPwCV.js → PresetRangeDateInput-CQ5FfmrL.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-htbxc3ni.js → PresetRangeDateInput-DfgoR0My.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-ClHM5Kah.js → PresetRangeDateInput.stories-CgoYAYBG.js} +1 -1
- package/storybook-static/assets/{PresetSelect-Dcx0BOTx.js → PresetSelect-BPtAknAr.js} +1 -1
- package/storybook-static/assets/{README-BSh5XUR9.js → README--TpGcM95.js} +1 -1
- package/storybook-static/assets/{README-ByALXSEH.js → README-4iBHWAP5.js} +1 -1
- package/storybook-static/assets/{README-CHbo4O3Z.js → README-98KIgy5G.js} +1 -1
- package/storybook-static/assets/{README-eHCINzP3.js → README-B6II8p0W.js} +1 -1
- package/storybook-static/assets/{README-DDBqoI-T.js → README-B6vU5_7I.js} +1 -1
- package/storybook-static/assets/README-BFJVjjZR.js +325 -0
- package/storybook-static/assets/README-BIT4HlFP.js +441 -0
- package/storybook-static/assets/{README-DvAlDsh9.js → README-BK6Epio1.js} +1 -1
- package/storybook-static/assets/{README-5M8ajrJp.js → README-BRlPB5_k.js} +1 -1
- package/storybook-static/assets/{README-CH_6ZIO2.js → README-BTFpEaXG.js} +1 -1
- package/storybook-static/assets/{README-DnA-4W65.js → README-BWhXgC_o.js} +1 -1
- package/storybook-static/assets/{README-Byo6DxIF.js → README-BbNHvOoR.js} +1 -1
- package/storybook-static/assets/{README-Bqnqu1bC.js → README-BbunUo8b.js} +1 -1
- package/storybook-static/assets/{README-CsoHGRve.js → README-BmYpfZKr.js} +1 -1
- package/storybook-static/assets/{README-C8E1O7DQ.js → README-Bu5uvhAT.js} +1 -1
- package/storybook-static/assets/{README-DE2wk9-v.js → README-Bx6fvSBE.js} +1 -1
- package/storybook-static/assets/{README-Am6Fa6-b.js → README-Bx6gIGiA.js} +1 -1
- package/storybook-static/assets/README-ByhxsX44.js +324 -0
- package/storybook-static/assets/{README-qHKxXU95.js → README-Byi1FFpw.js} +1 -1
- package/storybook-static/assets/{README-D9OypaFB.js → README-C3Is3a3B.js} +1 -1
- package/storybook-static/assets/{README-CNHemCS2.js → README-C6prwAXw.js} +1 -1
- package/storybook-static/assets/{README-BmhhWWEk.js → README-C9S83J_G.js} +1 -1
- package/storybook-static/assets/{README-CM-7E-Jf.js → README-CGgxP5Zo.js} +1 -1
- package/storybook-static/assets/{README-BIq-FXcN.js → README-CJ2ZVG2U.js} +1 -1
- package/storybook-static/assets/{README-B45Cwj2a.js → README-CNGCAm5d.js} +1 -1
- package/storybook-static/assets/{README-CAGQnLsv.js → README-Cb_q420B.js} +1 -1
- package/storybook-static/assets/{README-BxjYCoYA.js → README-CtIDPNJ3.js} +1 -1
- package/storybook-static/assets/{README-C9eh0JLs.js → README-CzO3Dchr.js} +1 -1
- package/storybook-static/assets/{README-DEj2wSK0.js → README-D0rzQthv.js} +1 -1
- package/storybook-static/assets/{README-Dl92E69Z.js → README-DEQu7djz.js} +1 -1
- package/storybook-static/assets/{README-BYSgTTZt.js → README-DFihT_sm.js} +1 -1
- package/storybook-static/assets/{README-CIGfHKKE.js → README-DMiWsyv_.js} +1 -1
- package/storybook-static/assets/{README-B3bFglqG.js → README-DOx8lXXk.js} +1 -1
- package/storybook-static/assets/{README-CWfPiPIB.js → README-DPhDjr43.js} +1 -1
- package/storybook-static/assets/{README-DJHVgrpj.js → README-D_NqWPa9.js} +1 -1
- package/storybook-static/assets/README-DhJ5Rb1w.js +355 -0
- package/storybook-static/assets/{README-DV4fCpqN.js → README-DlwhWCvQ.js} +1 -1
- package/storybook-static/assets/README-Dxi73a2Q.js +740 -0
- package/storybook-static/assets/README-Dycov6NP.js +583 -0
- package/storybook-static/assets/README-GTBkSG4_.js +3591 -0
- package/storybook-static/assets/{README-ui-uanyg.js → README-Gfd9tLTw.js} +1 -1
- package/storybook-static/assets/{README-B6ltJiw3.js → README-Kfawetke.js} +1 -1
- package/storybook-static/assets/{README-DjCArsA5.js → README-UDBM7ZMT.js} +1 -1
- package/storybook-static/assets/{README-DIbfpC-2.js → README-VTWQxLm_.js} +1 -1
- package/storybook-static/assets/README-YHNWrTZv.js +400 -0
- package/storybook-static/assets/README-_0Otw0eD.js +448 -0
- package/storybook-static/assets/{README-Ss-3t1nX.js → README-aw2Xu9xu.js} +1 -1
- package/storybook-static/assets/{README-BuMMG4_N.js → README-eg1emlll.js} +1 -1
- package/storybook-static/assets/{README-B6Nq7NCU.js → README-iqQHdhZ4.js} +1 -1
- package/storybook-static/assets/{README-BB_JPejH.js → README-llxZAtCj.js} +1 -1
- package/storybook-static/assets/{README-5NhzH8VL.js → README-wFnEIGl4.js} +1 -1
- package/storybook-static/assets/{README-CeK4kfFO.js → README-webB1yH0.js} +1 -1
- package/storybook-static/assets/{README-C3UcjOGB.js → README-wtreGRCe.js} +1 -1
- package/storybook-static/assets/{RadioButton-YIQXt0wx.js → RadioButton-CNOLDk_o.js} +1 -1
- package/storybook-static/assets/{RadioButton-CWtjclwT.js → RadioButton-Ce05_q7s.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-Ah-CBpeC.js → RadioButton.stories-CPd4lTl0.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BnO-GL7A.js → RadioGroup-BtfD5Szd.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CUS0etBD.js → RadioGroup-Ccm7G-dv.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-DGwCawtU.js → RadioGroup.stories-D-RRPHwi.js} +1 -1
- package/storybook-static/assets/{Scrollable-D85fA6pO.js → Scrollable-DvdBIeig.js} +1 -1
- package/storybook-static/assets/{Select-gRnfvfGh.js → Select-8PV9PBKF.js} +1 -1
- package/storybook-static/assets/{Select-CGCxJjL9.js → Select-G04B41FM.js} +1 -1
- package/storybook-static/assets/{Select.stories-CMwt4F9i.js → Select.stories-Cf6CBhV8.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BLXfKJ38.js → SerializableSelect-CdQdHIVp.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-Bca1a9ZU.js → SerializableSelect.stories-0AKUGpbS.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CyeQN0Rd.js → SingleDateTimeInput-DWT1ORhL.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-xrmZckzw.js → SingleDateTimeInput-DattLt6w.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BYFTQM9z.js → SingleDateTimeInput.stories-BLJV3jzV.js} +1 -1
- package/storybook-static/assets/{Slider-D8GtXVGI.js → Slider-DKEI4cDd.js} +1 -1
- package/storybook-static/assets/{Slider-1yJ3uVeR.js → Slider-Dci-mJt_.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CyQ3ns_C.js → Slider.stories-Dp7oQueF.js} +1 -1
- package/storybook-static/assets/{SliderInput-ISSx9vH_.js → SliderInput-BGPQmlgY.js} +1 -1
- package/storybook-static/assets/{SliderInput-BOzHhEUA.js → SliderInput-BhjqGOKt.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-7ooTghrS.js → SliderInput.stories-DXNhRU3X.js} +1 -1
- package/storybook-static/assets/{Sortable-CCLiMmfZ.js → Sortable-CMd9l1Gd.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-B36szI6t.js → Sortable.stories-BN1cFEFJ.js} +1 -1
- package/storybook-static/assets/{Splitter-DQGhgRwx.js → Splitter-GL65TlI9.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-Hsq1wYaq.js → Splitter.stories-q5PlI6rB.js} +1 -1
- package/storybook-static/assets/{StateSelect-C6hldFgO.js → StateSelect-Byik5-iZ.js} +1 -1
- package/storybook-static/assets/{StateSelect-DieNn4VC.js → StateSelect-CT0JF2V6.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-CvAhDMix.js → StateSelect.stories-pPEPmgnN.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CUT1tvt-.js → StringToggle.stories-BQlFmCE7.js} +1 -1
- package/storybook-static/assets/{Switch-CX9p_uYU.js → Switch--xGPiYk-.js} +1 -1
- package/storybook-static/assets/{Switch-nEMRtcWe.js → Switch-DhaLI9CG.js} +1 -1
- package/storybook-static/assets/{Switch.stories-CPsHa2_m.js → Switch.stories-5DisgIyj.js} +1 -1
- package/storybook-static/assets/{Table-BhtITVtj.js → Table-Bf6MicdG.js} +1 -1
- package/storybook-static/assets/{Table.stories-nWNhSydG.js → Table.stories-CS7rQgj9.js} +1 -1
- package/storybook-static/assets/{Tabs-DMQFh2BJ.js → Tabs-B4y4y8Ap.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-D23_xvom.js → Tabs.stories-C0SpdGkh.js} +1 -1
- package/storybook-static/assets/{TabsBox-B5BsD_j_.js → TabsBox-C5LLLhnj.js} +1 -1
- package/storybook-static/assets/{TagInput-DO17z100.js → TagInput-D4BpuCoH.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-CMMFnIzb.js → TagInput.stories-rn2wtZP_.js} +1 -1
- package/storybook-static/assets/{Text-ClnbDqRk.js → Text-BhBt9e7C.js} +1 -1
- package/storybook-static/assets/{Textarea-DkhohiNc.js → Textarea-B-Hz7ujq.js} +1 -1
- package/storybook-static/assets/{Textarea-C2IO_zsP.js → Textarea-BHHxY5sd.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-NL6Aq8Vc.js → Textarea.stories-CZ2kWz20.js} +1 -1
- package/storybook-static/assets/{TimePanel-DNEPDlSW.js → TimePanel-Cg8fgFsn.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-DlfdPsz1.js → TimePanel.stories-BxdwtK2e.js} +1 -1
- package/storybook-static/assets/{Toggle-Cc6Ca-HI.js → Toggle-BWwfk9fi.js} +1 -1
- package/storybook-static/assets/{Toggle-3U5CceQN.js → Toggle-Ce9rbjBc.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BR-hVLDp.js → Toggle.stories-0fzcmzKy.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-D9hMQN2O.js → TreeMultiSelect-B06Y0lIc.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-B0oBc-4y.js → TreeMultiSelect-CrAdR_jM.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-CslpbvPR.js → TreeMultiSelect.stories-CAVoj56E.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-B_dMCe45.js → TreePickerBase-qU2xPlar.js} +1 -1
- package/storybook-static/assets/{TreeSelect-2lj0Q8gm.js → TreeSelect-BIHydJFy.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DEKNYF2b.js → TreeSelect-BKnWu0C7.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-CVDxn8Vm.js → TreeSelect.stories-Dp_8ybAf.js} +1 -1
- package/storybook-static/assets/{TreeTable-CBIpzYRL.js → TreeTable-pVXjU9dG.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-BMzrr2Kc.js → TreeTable.stories-CV_8Ui6R.js} +1 -1
- package/storybook-static/assets/{blocks-B5YBxaaS.js → blocks-BY40djCc.js} +3 -3
- package/storybook-static/assets/{check-BjtdCRaW.js → check-CVkPTDzp.js} +1 -1
- package/storybook-static/assets/{chevron-down-B4u-y8Z1.js → chevron-down-BtNO4Vhe.js} +1 -1
- package/storybook-static/assets/{chevron-left-BQfWs7Ah.js → chevron-left-kceSK3sZ.js} +1 -1
- package/storybook-static/assets/{chevron-right-ChokKd-f.js → chevron-right-BA_LO2El.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-meOkhzk4.js → chunk-W22LQPXL-yJiFPv6e.js} +1 -1
- package/storybook-static/assets/{circle-alert-B1AnDRf_.js → circle-alert-B2m4a1zz.js} +1 -1
- package/storybook-static/assets/{circle-check-JYnlcC1F.js → circle-check-Cfjhotlm.js} +1 -1
- package/storybook-static/assets/{components-C_wl1sL5.js → components-D6yV8PLX.js} +3 -3
- package/storybook-static/assets/{contextMenu-B-TUGs_1.js → contextMenu-B0pQBIW0.js} +1 -1
- package/storybook-static/assets/{download-eR3X8I-h.js → download-Lba8elK9.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-D95VPQ0b.js → floating-ui.react-BFNvfMpU.js} +1 -1
- package/storybook-static/assets/{foundationApi-QhHXpYLB.js → foundationApi-DZhnQ2cC.js} +1 -1
- package/storybook-static/assets/{foundationLib-CEAjnstw.js → foundationLib-CoVTo22U.js} +1 -1
- package/storybook-static/assets/{hooks-awde7r2r.js → hooks-Cc6eXN6U.js} +1 -1
- package/storybook-static/assets/iframe-BXM-JBuH.js +1 -0
- package/storybook-static/assets/{iframe-FSp_AjJa.js → iframe-o7sH2IXC.js} +3 -3
- package/storybook-static/assets/{info-12vmb1sT.js → info-BpsVP_dM.js} +1 -1
- package/storybook-static/assets/{odata-C0Kpvttz.js → odata-CXsbxsRY.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-BXZnk_C7.js → odataStoryFixtures-Dj_bzRqh.js} +1 -1
- package/storybook-static/assets/{react-BlCqWuXr.js → react-DeJ0JTHb.js} +1 -1
- package/storybook-static/assets/{refresh-cw-Bf5ufPte.js → refresh-cw-BvGyjEXe.js} +1 -1
- package/storybook-static/assets/{settings-2-DR-dTXIC.js → settings-2-BdXxnHos.js} +1 -1
- package/storybook-static/assets/{sortable-B5e5yb_-.js → sortable-XkyN-9r5.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-EVJARTec.js → syntaxhighlighter-QEQV7K2Y-Cafn3LV1.js} +1 -1
- package/storybook-static/assets/{trash-2-QP7TS18H.js → trash-2-uPH9-fND.js} +1 -1
- package/storybook-static/assets/{triangle-alert-qw19mxHr.js → triangle-alert-tT01vSMw.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-Csu_Cct9.js → useODataSelectBase-B2LlOwPZ.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BAv-Twqf.js → useODataTreeData-CU7Rqcb9.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-Da-XM_Y0.js → usePickerQuery-D8GHQ6KR.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-C0TdC2Pz.js → usePickerTriggerController-CcK1jmDy.js} +1 -1
- package/storybook-static/assets/{x-aCjYTirW.js → x-BlAURbAH.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
|
@@ -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};
|