@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
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-o7sH2IXC.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-BY40djCc.js";function o(e){let t={a:`a`,blockquote:`blockquote`,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/SAP/Transport Requests`}),`
|
|
2
|
+
`,(0,c.jsxs)(t.h1,{id:`sap-transport-requests-через-ryuzaki13react-foundation-apitransport`,children:[`SAP transport requests через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/transport`})]}),`
|
|
3
|
+
`,(0,c.jsx)(t.p,{children:`Модуль получает transport requests текущего пользователя из SAP UI2 OData endpoints и нормализует workbench/customizing records.`}),`
|
|
4
|
+
`,(0,c.jsxs)(t.blockquote,{children:[`
|
|
5
|
+
`,(0,c.jsxs)(t.p,{children:[`Здесь слово `,(0,c.jsx)(t.code,{children:`transport`}),` означает SAP transport request. Это не generic HTTP transport. Для обычного HTTP используйте `,(0,c.jsx)(t.a,{href:`../http/README.mdx`,children:(0,c.jsx)(t.code,{children:`/http`})}),`, для SAP/OData transport infrastructure — `,(0,c.jsx)(t.a,{href:`../odata/README.mdx`,children:(0,c.jsx)(t.code,{children:`/odata`})}),`.`]}),`
|
|
6
|
+
`]}),`
|
|
7
|
+
`,(0,c.jsxs)(t.p,{children:[`Для разработчика без SAP-базы: transport request — контейнер, в котором изменения переносятся между SAP systems. Workbench и customizing — разные категории, поэтому package сохраняет `,(0,c.jsx)(t.code,{children:`type`}),` рядом с каждым id.`]}),`
|
|
8
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`SAP UI2 WorkbenchRequests ──► normalize ──┐
|
|
9
|
+
├─► TransportRequest[]
|
|
10
|
+
SAP UI2 CustomizingRequests ─► normalize ─┘
|
|
11
|
+
`})}),`
|
|
12
|
+
`,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
|
|
13
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
14
|
+
fetchCustomizingTransportRequests,
|
|
15
|
+
fetchTransportRequests,
|
|
16
|
+
fetchUserTransportRequests,
|
|
17
|
+
fetchWorkbenchTransportRequests,
|
|
18
|
+
getTransportRequestKey,
|
|
19
|
+
normalizeTransportRequests,
|
|
20
|
+
transportRequestKeys
|
|
21
|
+
} from "@ryuzaki13/react-foundation-api/transport";
|
|
22
|
+
|
|
23
|
+
import type {
|
|
24
|
+
TransportRequest,
|
|
25
|
+
TransportRequestRaw,
|
|
26
|
+
TransportRequestScope,
|
|
27
|
+
TransportRequestType,
|
|
28
|
+
UserTransportRequests
|
|
29
|
+
} from "@ryuzaki13/react-foundation-api/transport";
|
|
30
|
+
`})}),`
|
|
31
|
+
`,(0,c.jsx)(t.h2,{id:`быстрый-старт`,children:`Быстрый старт`}),`
|
|
32
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const requests = await fetchTransportRequests("workbench");
|
|
33
|
+
|
|
34
|
+
for (const request of requests) {
|
|
35
|
+
console.log(request.id, request.text);
|
|
36
|
+
}
|
|
37
|
+
`})}),`
|
|
38
|
+
`,(0,c.jsx)(t.p,{children:`Scopes:`}),`
|
|
39
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type TransportRequestType = "workbench" | "customizing";
|
|
40
|
+
type TransportRequestScope = TransportRequestType | "all";
|
|
41
|
+
`})}),`
|
|
42
|
+
`,(0,c.jsxs)(t.p,{children:[`Без аргумента загружается только `,(0,c.jsx)(t.code,{children:`workbench`}),`.`]}),`
|
|
43
|
+
`,(0,c.jsx)(t.h3,{id:`как-выбрать-scope`,children:`Как выбрать scope`}),`
|
|
44
|
+
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Нужно UI`}),(0,c.jsx)(t.th,{children:`Scope`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Только workbench request`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`workbench`}),` или аргумент не передан`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Только customizing request`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`customizing`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Единый список обеих категорий`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`all`})})]})]})]}),`
|
|
45
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`await fetchTransportRequests();
|
|
46
|
+
// То же, что fetchTransportRequests("workbench")
|
|
47
|
+
`})}),`
|
|
48
|
+
`,(0,c.jsx)(t.h2,{id:`fetch-functions`,children:`Fetch functions`}),`
|
|
49
|
+
`,(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:`Endpoint`}),(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:`fetchWorkbenchTransportRequests`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`/TRANSPORT/WorkbenchRequests`})}),(0,c.jsx)(t.td,{children:`workbench array`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`fetchCustomizingTransportRequests`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`/TRANSPORT/CustomizingRequests`})}),(0,c.jsx)(t.td,{children:`customizing array`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`fetchUserTransportRequests`})}),(0,c.jsx)(t.td,{children:`Оба endpoint параллельно`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ workbench, customizing, all }`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`fetchTransportRequests(scope)`})}),(0,c.jsx)(t.td,{children:`Endpoint по scope`}),(0,c.jsx)(t.td,{children:`единый array`})]})]})]}),`
|
|
50
|
+
`,(0,c.jsxs)(t.p,{children:[`Используется base URL `,(0,c.jsx)(t.code,{children:`odataUi2`}),`: в dev/preview он направлен через настроенный DP0/UI2 proxy, в production — `,(0,c.jsx)(t.code,{children:`/sap/opu/odata/UI2`}),`.`]}),`
|
|
51
|
+
`,(0,c.jsx)(t.p,{children:`Запросы наследуют policy OData transport:`}),`
|
|
52
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
53
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`credentials: include`}),`;`]}),`
|
|
54
|
+
`,(0,c.jsx)(t.li,{children:`SAP language/client headers;`}),`
|
|
55
|
+
`,(0,c.jsx)(t.li,{children:`SSO detection/recovery;`}),`
|
|
56
|
+
`,(0,c.jsx)(t.li,{children:`OData V2 envelope parsing;`}),`
|
|
57
|
+
`,(0,c.jsx)(t.li,{children:`HTTP error handling.`}),`
|
|
58
|
+
`]}),`
|
|
59
|
+
`,(0,c.jsxs)(t.p,{children:[`Если один из двух запросов `,(0,c.jsx)(t.code,{children:`fetchUserTransportRequests`}),` завершился ошибкой, `,(0,c.jsx)(t.code,{children:`Promise.all`}),` отклоняется и частичный object не возвращается.`]}),`
|
|
60
|
+
`,(0,c.jsx)(t.h3,{id:`точные-network-paths`,children:`Точные network paths`}),`
|
|
61
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`base URL odataUi2
|
|
62
|
+
├── /TRANSPORT/WorkbenchRequests
|
|
63
|
+
└── /TRANSPORT/CustomizingRequests
|
|
64
|
+
`})}),`
|
|
65
|
+
`,(0,c.jsxs)(t.p,{children:[`В dev/preview `,(0,c.jsx)(t.code,{children:`odataUi2`}),` обычно становится:`]}),`
|
|
66
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`/sap-dp0/opu/odata/UI2
|
|
67
|
+
`})}),`
|
|
68
|
+
`,(0,c.jsx)(t.p,{children:`В production:`}),`
|
|
69
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`/sap/opu/odata/UI2
|
|
70
|
+
`})}),`
|
|
71
|
+
`,(0,c.jsx)(t.p,{children:`Итоговый URL определяется OData transport build/project configuration. Consumer не должен добавлять этот prefix вручную.`}),`
|
|
72
|
+
`,(0,c.jsx)(t.h3,{id:`что-делает-каждая-function`,children:`Что делает каждая function`}),`
|
|
73
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fetchWorkbenchTransportRequests()`}),`:`]}),`
|
|
74
|
+
`,(0,c.jsxs)(t.ol,{children:[`
|
|
75
|
+
`,(0,c.jsx)(t.li,{children:`Выполняет UI2 OData GET.`}),`
|
|
76
|
+
`,(0,c.jsx)(t.li,{children:`Снимает OData V2 envelope общим transport-ом.`}),`
|
|
77
|
+
`,(0,c.jsxs)(t.li,{children:[`Если payload falsy, возвращает `,(0,c.jsx)(t.code,{children:`[]`}),`.`]}),`
|
|
78
|
+
`,(0,c.jsxs)(t.li,{children:[`Нормализует records с type `,(0,c.jsx)(t.code,{children:`workbench`}),`.`]}),`
|
|
79
|
+
`]}),`
|
|
80
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fetchCustomizingTransportRequests()`}),` делает то же с type `,(0,c.jsx)(t.code,{children:`customizing`}),`.`]}),`
|
|
81
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fetchUserTransportRequests()`}),` запускает обе функции параллельно через `,(0,c.jsx)(t.code,{children:`Promise.all`}),`, затем строит:`]}),`
|
|
82
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`{
|
|
83
|
+
workbench,
|
|
84
|
+
customizing,
|
|
85
|
+
all: [...workbench, ...customizing]
|
|
86
|
+
}
|
|
87
|
+
`})}),`
|
|
88
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fetchTransportRequests(scope)`}),` — удобный selector над этими calls.`]}),`
|
|
89
|
+
`,(0,c.jsx)(t.h3,{id:`abortsignal`,children:`AbortSignal`}),`
|
|
90
|
+
`,(0,c.jsxs)(t.p,{children:[`Public fetch functions не принимают `,(0,c.jsx)(t.code,{children:`AbortSignal`}),`. Их можно использовать как TanStack queryFn, но cancellation QueryClient не прерывает underlying request через этот API.`]}),`
|
|
91
|
+
`,(0,c.jsx)(t.p,{children:`Если abort становится обязательным для общей инфраструктуры, расширьте package contract; не создавайте deep import низкоуровневого helper-а.`}),`
|
|
92
|
+
`,(0,c.jsx)(t.h2,{id:`результат`,children:`Результат`}),`
|
|
93
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`interface TransportRequest {
|
|
94
|
+
id: string;
|
|
95
|
+
type: "workbench" | "customizing";
|
|
96
|
+
text: string;
|
|
97
|
+
isDefaultRequest: boolean;
|
|
98
|
+
}
|
|
99
|
+
`})}),`
|
|
100
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`all`}),` формируется как workbench records, затем customizing records:`]}),`
|
|
101
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`interface UserTransportRequests {
|
|
102
|
+
workbench: TransportRequest[];
|
|
103
|
+
customizing: TransportRequest[];
|
|
104
|
+
all: TransportRequest[];
|
|
105
|
+
}
|
|
106
|
+
`})}),`
|
|
107
|
+
`,(0,c.jsx)(t.h3,{id:`поля-результата`,children:`Поля результата`}),`
|
|
108
|
+
`,(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.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:`id`})}),(0,c.jsx)(t.td,{children:`да`}),(0,c.jsx)(t.td,{children:`Нормализованный SAP request number`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`type`})}),(0,c.jsx)(t.td,{children:`да`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`workbench`}),` либо `,(0,c.jsx)(t.code,{children:`customizing`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`text`})}),(0,c.jsx)(t.td,{children:`да`}),(0,c.jsx)(t.td,{children:`Нормализованное description; может быть пустой строкой`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`isDefaultRequest`})}),(0,c.jsx)(t.td,{children:`да`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`true`}),` только при strict input `,(0,c.jsx)(t.code,{children:`true`})]})]})]})]}),`
|
|
109
|
+
`,(0,c.jsx)(t.p,{children:`Надёжный UI label:`}),`
|
|
110
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function getRequestLabel(request: TransportRequest) {
|
|
111
|
+
return request.text
|
|
112
|
+
? \`\${request.id} — \${request.text}\`
|
|
113
|
+
: request.id;
|
|
114
|
+
}
|
|
115
|
+
`})}),`
|
|
116
|
+
`,(0,c.jsxs)(t.p,{children:[`Не используйте `,(0,c.jsx)(t.code,{children:`text`}),` как identity: description может измениться или быть пустым.`]}),`
|
|
117
|
+
`,(0,c.jsx)(t.h2,{id:`normalizetransportrequests`,children:(0,c.jsx)(t.code,{children:`normalizeTransportRequests`})}),`
|
|
118
|
+
`,(0,c.jsx)(t.p,{children:`Функция полезна отдельно для тестов или custom transport:`}),`
|
|
119
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const normalized = normalizeTransportRequests(
|
|
120
|
+
[
|
|
121
|
+
{ id: " DEVK900001 ", description: " Исправление ", isDefaultRequest: true },
|
|
122
|
+
{ id: "", description: "Без номера" },
|
|
123
|
+
{ id: "DEVK900001", description: "Дубликат" }
|
|
124
|
+
],
|
|
125
|
+
"workbench"
|
|
126
|
+
);
|
|
127
|
+
`})}),`
|
|
128
|
+
`,(0,c.jsxs)(t.p,{children:[`Результат содержит одну запись `,(0,c.jsx)(t.code,{children:`DEVK900001`}),`.`]}),`
|
|
129
|
+
`,(0,c.jsx)(t.p,{children:`Алгоритм:`}),`
|
|
130
|
+
`,(0,c.jsxs)(t.ol,{children:[`
|
|
131
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`id`}),` нормализуется как text с trim.`]}),`
|
|
132
|
+
`,(0,c.jsxs)(t.li,{children:[`Запись без непустого `,(0,c.jsx)(t.code,{children:`id`}),` удаляется.`]}),`
|
|
133
|
+
`,(0,c.jsxs)(t.li,{children:[`Дубликаты `,(0,c.jsx)(t.code,{children:`id`}),` внутри одного input удаляются, сохраняется первый.`]}),`
|
|
134
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`description`}),` нормализуется с trim; отсутствие превращается в пустую строку.`]}),`
|
|
135
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`type`}),` берётся из второго аргумента для всех records.`]}),`
|
|
136
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`isDefaultRequest`}),` равен `,(0,c.jsx)(t.code,{children:`true`}),` только при входном значении `,(0,c.jsx)(t.code,{children:`true`}),`.`]}),`
|
|
137
|
+
`,(0,c.jsx)(t.li,{children:`Порядок первых уникальных records сохраняется.`}),`
|
|
138
|
+
`]}),`
|
|
139
|
+
`,(0,c.jsx)(t.p,{children:`Нормализация не изменяет исходный array/objects.`}),`
|
|
140
|
+
`,(0,c.jsx)(t.h3,{id:`raw-contract`,children:`Raw contract`}),`
|
|
141
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`interface TransportRequestRaw {
|
|
142
|
+
id?: string | null;
|
|
143
|
+
description?: string | null;
|
|
144
|
+
isDefaultRequest?: boolean | null;
|
|
145
|
+
}
|
|
146
|
+
`})}),`
|
|
147
|
+
`,(0,c.jsxs)(t.p,{children:[`Все поля могут отсутствовать. После normalization `,(0,c.jsx)(t.code,{children:`id`}),`, `,(0,c.jsx)(t.code,{children:`text`}),`, `,(0,c.jsx)(t.code,{children:`type`}),`, `,(0,c.jsx)(t.code,{children:`isDefaultRequest`}),` уже обязательны.`]}),`
|
|
148
|
+
`,(0,c.jsx)(t.h3,{id:`пошаговый-пример-normalization`,children:`Пошаговый пример normalization`}),`
|
|
149
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const source = [
|
|
150
|
+
{
|
|
151
|
+
id: " DP0K970966 ",
|
|
152
|
+
description: " MIME типы ",
|
|
153
|
+
isDefaultRequest: true
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
id: "DP0K970966",
|
|
157
|
+
description: "Дубликат",
|
|
158
|
+
isDefaultRequest: false
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
id: null,
|
|
162
|
+
description: "Без id"
|
|
163
|
+
}
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
const result = normalizeTransportRequests(source, "workbench");
|
|
167
|
+
`})}),`
|
|
168
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`[
|
|
169
|
+
{
|
|
170
|
+
id: "DP0K970966",
|
|
171
|
+
type: "workbench",
|
|
172
|
+
text: "MIME типы",
|
|
173
|
+
isDefaultRequest: true
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
`})}),`
|
|
177
|
+
`,(0,c.jsxs)(t.p,{children:[`Почему остаётся первая запись: функция сразу добавляет нормализованный id в `,(0,c.jsx)(t.code,{children:`Set`}),` и пропускает последующие совпадения.`]}),`
|
|
178
|
+
`,(0,c.jsx)(t.h3,{id:`дубликаты-между-типами`,children:`Дубликаты между типами`}),`
|
|
179
|
+
`,(0,c.jsxs)(t.p,{children:[`Normalization выполняется отдельно для каждого endpoint. Одинаковый id может присутствовать один раз в workbench и один раз в customizing. Array `,(0,c.jsx)(t.code,{children:`all`}),` сохранит обе записи, потому что их semantic identity различается по `,(0,c.jsx)(t.code,{children:`type`}),`.`]}),`
|
|
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:`transportRequestKeys.all;
|
|
182
|
+
// ["transportRequests"]
|
|
183
|
+
|
|
184
|
+
transportRequestKeys.list();
|
|
185
|
+
// ["transportRequests", "workbench"]
|
|
186
|
+
|
|
187
|
+
transportRequestKeys.list("all");
|
|
188
|
+
// ["transportRequests", "all"]
|
|
189
|
+
`})}),`
|
|
190
|
+
`,(0,c.jsx)(t.p,{children:`Пример с TanStack Query:`}),`
|
|
191
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`const scope: TransportRequestScope = "all";
|
|
192
|
+
|
|
193
|
+
const query = useQuery({
|
|
194
|
+
queryKey: transportRequestKeys.list(scope),
|
|
195
|
+
queryFn: () => fetchTransportRequests(scope)
|
|
196
|
+
});
|
|
197
|
+
`})}),`
|
|
198
|
+
`,(0,c.jsx)(t.p,{children:`Factory ключей не создаёт query options и не передаёт AbortSignal; lifecycle запроса настраивает consumer.`}),`
|
|
199
|
+
`,(0,c.jsx)(t.h3,{id:`reusable-query-options`,children:`Reusable query options`}),`
|
|
200
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { queryOptions } from "@tanstack/react-query";
|
|
201
|
+
import {
|
|
202
|
+
fetchTransportRequests,
|
|
203
|
+
transportRequestKeys
|
|
204
|
+
} from "@ryuzaki13/react-foundation-api/transport";
|
|
205
|
+
|
|
206
|
+
export const transportRequestsQueryOptions = (
|
|
207
|
+
scope: TransportRequestScope = "workbench"
|
|
208
|
+
) =>
|
|
209
|
+
queryOptions({
|
|
210
|
+
queryKey: transportRequestKeys.list(scope),
|
|
211
|
+
queryFn: () => fetchTransportRequests(scope),
|
|
212
|
+
staleTime: 5 * 60 * 1000
|
|
213
|
+
});
|
|
214
|
+
`})}),`
|
|
215
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`scope`}),` обязательно входит в key. Иначе workbench/customizing/all начнут делить один cache slot.`]}),`
|
|
216
|
+
`,(0,c.jsx)(t.h3,{id:`react-ui-со-всеми-состояниями`,children:`React UI со всеми состояниями`}),`
|
|
217
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`function TransportRequestSelect({
|
|
218
|
+
scope = "workbench",
|
|
219
|
+
value,
|
|
220
|
+
onChange
|
|
221
|
+
}: {
|
|
222
|
+
scope?: TransportRequestScope;
|
|
223
|
+
value?: string;
|
|
224
|
+
onChange: (id: string) => void;
|
|
225
|
+
}) {
|
|
226
|
+
const query = useQuery(transportRequestsQueryOptions(scope));
|
|
227
|
+
|
|
228
|
+
if (query.isPending) return <p>Загрузка transport requests…</p>;
|
|
229
|
+
if (query.isError) return <p role="alert">{query.error.message}</p>;
|
|
230
|
+
if (query.data.length === 0) return <p>Доступных requests нет</p>;
|
|
231
|
+
|
|
232
|
+
return (
|
|
233
|
+
<select value={value ?? ""} onChange={(event) => onChange(event.target.value)}>
|
|
234
|
+
<option value="">Выберите transport request</option>
|
|
235
|
+
{query.data.map((request) => (
|
|
236
|
+
<option key={getTransportRequestKey(request)} value={request.id}>
|
|
237
|
+
{request.text ? \`\${request.id} — \${request.text}\` : request.id}
|
|
238
|
+
</option>
|
|
239
|
+
))}
|
|
240
|
+
</select>
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
`})}),`
|
|
244
|
+
`,(0,c.jsxs)(t.p,{children:[`Если `,(0,c.jsx)(t.code,{children:`scope === "all"`}),`, form value только `,(0,c.jsx)(t.code,{children:`id`}),` может быть неоднозначным при collision разных types. В таком UI храните `,(0,c.jsx)(t.code,{children:`{ type, id }`}),` или stable key и явно преобразуйте его при submit.`]}),`
|
|
245
|
+
`,(0,c.jsx)(t.h2,{id:`stable-key-отдельной-записи`,children:`Stable key отдельной записи`}),`
|
|
246
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`getTransportRequestKey({ type: "workbench", id: "DEVK900001" });
|
|
247
|
+
// "workbench:DEVK900001"
|
|
248
|
+
`})}),`
|
|
249
|
+
`,(0,c.jsxs)(t.p,{children:[`Включение `,(0,c.jsx)(t.code,{children:`type`}),` предотвращает collision одинаковых ID из разных списков. Функция не escaping-ит `,(0,c.jsx)(t.code,{children:`:`}),`; SAP transport ID обычно не содержит этот символ.`]}),`
|
|
250
|
+
`,(0,c.jsxs)(t.p,{children:[`Stable key предназначен для React `,(0,c.jsx)(t.code,{children:`key`}),`, maps и UI identity:`]}),`
|
|
251
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const map = new Map(
|
|
252
|
+
requests.map((request) => [getTransportRequestKey(request), request])
|
|
253
|
+
);
|
|
254
|
+
`})}),`
|
|
255
|
+
`,(0,c.jsxs)(t.p,{children:[`Не отправляйте `,(0,c.jsx)(t.code,{children:`workbench:DEVK...`}),` в backend вместо request id, если backend ожидает только `,(0,c.jsx)(t.code,{children:`id`}),`.`]}),`
|
|
256
|
+
`,(0,c.jsxs)(t.h2,{id:`отличие-от-adt`,children:[`Отличие от `,(0,c.jsx)(t.code,{children:`/adt`})]}),`
|
|
257
|
+
`,(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.jsx)(t.code,{children:`/transport`})}),(0,c.jsx)(t.th,{children:(0,c.jsx)(t.code,{children:`/adt`})})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Backend`}),(0,c.jsx)(t.td,{children:`SAP UI2 OData`}),(0,c.jsx)(t.td,{children:`SAP ADT CTS`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Формат`}),(0,c.jsx)(t.td,{children:`JSON/OData envelope`}),(0,c.jsx)(t.td,{children:`XML`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Категории`}),(0,c.jsx)(t.td,{children:`workbench/customizing`}),(0,c.jsx)(t.td,{children:`Общие ADT headers`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Parser`}),(0,c.jsx)(t.td,{children:`OData transport`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`fast-xml-parser`})})]})]})]}),`
|
|
258
|
+
`,(0,c.jsx)(t.p,{children:`Не объединяйте records автоматически: контракты endpoint и значения полей различаются.`}),`
|
|
259
|
+
`,(0,c.jsxs)(t.p,{children:[`ADT result богаче техническими fields (`,(0,c.jsx)(t.code,{children:`owner`}),`, `,(0,c.jsx)(t.code,{children:`statusCode`}),`, `,(0,c.jsx)(t.code,{children:`parentTransportNo`}),`), но UI2 module явно разделяет workbench/customizing и знает default request. Выбор source зависит от backend use case, а не от того, какой endpoint оказался удобнее.`]}),`
|
|
260
|
+
`,(0,c.jsx)(t.h2,{id:`обработка-ошибок`,children:`Обработка ошибок`}),`
|
|
261
|
+
`,(0,c.jsx)(t.p,{children:`Network и OData V2 errors пробрасываются caller-у. Function не превращает HTTP error в пустой array.`}),`
|
|
262
|
+
`,(0,c.jsxs)(t.p,{children:[`Для `,(0,c.jsx)(t.code,{children:`fetchUserTransportRequests`}),` действует fail-fast result contract:`]}),`
|
|
263
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`workbench success + customizing error = Promise rejection
|
|
264
|
+
`})}),`
|
|
265
|
+
`,(0,c.jsx)(t.p,{children:`Если product допускает partial UI, orchestrate calls отдельно на feature boundary:`}),`
|
|
266
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const [workbench, customizing] = await Promise.allSettled([
|
|
267
|
+
fetchWorkbenchTransportRequests(),
|
|
268
|
+
fetchCustomizingTransportRequests()
|
|
269
|
+
]);
|
|
270
|
+
`})}),`
|
|
271
|
+
`,(0,c.jsx)(t.p,{children:`После этого feature обязана явно показать partial state; не маскируйте failed category как настоящий пустой список.`}),`
|
|
272
|
+
`,(0,c.jsx)(t.h2,{id:`cache-после-создания-transport-а`,children:`Cache после создания transport-а`}),`
|
|
273
|
+
`,(0,c.jsx)(t.p,{children:`Этот module только читает lists. Если другой feature создаёт request через OData/ADT, после успеха инвалидируйте подходящий scope:`}),`
|
|
274
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`await queryClient.invalidateQueries({
|
|
275
|
+
queryKey: transportRequestKeys.all
|
|
276
|
+
});
|
|
277
|
+
`})}),`
|
|
278
|
+
`,(0,c.jsxs)(t.p,{children:[`Prefix `,(0,c.jsx)(t.code,{children:`all`}),` здесь означает «все query keys семейства transport requests», а не только scope `,(0,c.jsx)(t.code,{children:`"all"`}),`.`]}),`
|
|
279
|
+
`,(0,c.jsx)(t.p,{children:`Точечно:`}),`
|
|
280
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`await queryClient.invalidateQueries({
|
|
281
|
+
queryKey: transportRequestKeys.list("workbench")
|
|
282
|
+
});
|
|
283
|
+
`})}),`
|
|
284
|
+
`,(0,c.jsx)(t.h2,{id:`тестирование`,children:`Тестирование`}),`
|
|
285
|
+
`,(0,c.jsx)(t.h3,{id:`pure-normalization`,children:`Pure normalization`}),`
|
|
286
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { expect, it } from "vitest";
|
|
287
|
+
import { normalizeTransportRequests } from "@ryuzaki13/react-foundation-api/transport";
|
|
288
|
+
|
|
289
|
+
it("trim-ит поля и сохраняет первый duplicate", () => {
|
|
290
|
+
expect(
|
|
291
|
+
normalizeTransportRequests(
|
|
292
|
+
[
|
|
293
|
+
{ id: " A ", description: " Первый ", isDefaultRequest: true },
|
|
294
|
+
{ id: "A", description: " Второй " }
|
|
295
|
+
],
|
|
296
|
+
"workbench"
|
|
297
|
+
)
|
|
298
|
+
).toEqual([
|
|
299
|
+
{
|
|
300
|
+
id: "A",
|
|
301
|
+
type: "workbench",
|
|
302
|
+
text: "Первый",
|
|
303
|
+
isDefaultRequest: true
|
|
304
|
+
}
|
|
305
|
+
]);
|
|
306
|
+
});
|
|
307
|
+
`})}),`
|
|
308
|
+
`,(0,c.jsx)(t.h3,{id:`что-проверить`,children:`Что проверить`}),`
|
|
309
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
310
|
+
`,(0,c.jsx)(t.li,{children:`пустой/null/whitespace id удаляется;`}),`
|
|
311
|
+
`,(0,c.jsxs)(t.li,{children:[`пустое description становится `,(0,c.jsx)(t.code,{children:`""`}),`;`]}),`
|
|
312
|
+
`,(0,c.jsxs)(t.li,{children:[`только strict `,(0,c.jsx)(t.code,{children:`true`}),` даёт default flag;`]}),`
|
|
313
|
+
`,(0,c.jsx)(t.li,{children:`duplicates сохраняют первую запись;`}),`
|
|
314
|
+
`,(0,c.jsx)(t.li,{children:`workbench/customizing types проставляются argument-ом;`}),`
|
|
315
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`all`}),` сохраняет порядок категорий;`]}),`
|
|
316
|
+
`,(0,c.jsx)(t.li,{children:`одинаковые ids разных types имеют разные stable keys;`}),`
|
|
317
|
+
`,(0,c.jsx)(t.li,{children:`ошибка одного parallel endpoint отклоняет combined function.`}),`
|
|
318
|
+
`]}),`
|
|
319
|
+
`,(0,c.jsx)(t.p,{children:`Network tests должны mock-ать UI2 endpoints и OData envelope. Не используйте real SAP session в unit tests.`}),`
|
|
320
|
+
`,(0,c.jsx)(t.h2,{id:`частые-ошибки`,children:`Частые ошибки`}),`
|
|
321
|
+
`,(0,c.jsx)(t.h3,{id:`использовать-module-как-generic-http-transport`,children:`Использовать module как generic HTTP transport`}),`
|
|
322
|
+
`,(0,c.jsxs)(t.p,{children:[`Название относится к SAP transport requests. Для HTTP есть `,(0,c.jsx)(t.code,{children:`/http`}),`.`]}),`
|
|
323
|
+
`,(0,c.jsx)(t.h3,{id:`не-включить-scope-в-query-key`,children:`Не включить scope в query key`}),`
|
|
324
|
+
`,(0,c.jsx)(t.p,{children:`Каждый scope возвращает разные данные.`}),`
|
|
325
|
+
`,(0,c.jsxs)(t.h3,{id:`использовать-id-как-react-key-при-scope-all`,children:[`Использовать `,(0,c.jsx)(t.code,{children:`id`}),` как React key при scope `,(0,c.jsx)(t.code,{children:`all`})]}),`
|
|
326
|
+
`,(0,c.jsxs)(t.p,{children:[`Используйте `,(0,c.jsx)(t.code,{children:`getTransportRequestKey`}),`, чтобы учесть type.`]}),`
|
|
327
|
+
`,(0,c.jsxs)(t.h3,{id:`считать-пустой-text-ошибкой`,children:[`Считать пустой `,(0,c.jsx)(t.code,{children:`text`}),` ошибкой`]}),`
|
|
328
|
+
`,(0,c.jsx)(t.p,{children:`Public normalized contract допускает пустое description.`}),`
|
|
329
|
+
`,(0,c.jsx)(t.h3,{id:`ожидать-partial-result`,children:`Ожидать partial result`}),`
|
|
330
|
+
`,(0,c.jsxs)(t.p,{children:[`Combined fetch использует `,(0,c.jsx)(t.code,{children:`Promise.all`}),` и fail-fast semantics.`]}),`
|
|
331
|
+
`,(0,c.jsx)(t.h3,{id:`deep-import-odata-transport`,children:`Deep import OData transport`}),`
|
|
332
|
+
`,(0,c.jsxs)(t.p,{children:[`Application импортирует только `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/transport`}),`. Internal calls остаются detail package-а.`]}),`
|
|
333
|
+
`,(0,c.jsx)(t.h2,{id:`ошибки-и-ограничения`,children:`Ошибки и ограничения`}),`
|
|
334
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
335
|
+
`,(0,c.jsx)(t.li,{children:`Модуль только читает requests; он не создаёт, не освобождает и не импортирует transport.`}),`
|
|
336
|
+
`,(0,c.jsx)(t.li,{children:`Authorization определяется SAP backend.`}),`
|
|
337
|
+
`,(0,c.jsxs)(t.li,{children:[`Пустой/falsy payload endpoint превращается в `,(0,c.jsx)(t.code,{children:`[]`}),`; HTTP/SSO errors пробрасываются.`]}),`
|
|
338
|
+
`,(0,c.jsx)(t.li,{children:`Нет автоматической TanStack Query cache policy — используйте экспортированные keys.`}),`
|
|
339
|
+
`,(0,c.jsx)(t.li,{children:`Runtime требует настроенного SAP proxy/base URLs и cookies.`}),`
|
|
340
|
+
`]}),`
|
|
341
|
+
`,(0,c.jsx)(t.h2,{id:`faq`,children:`FAQ`}),`
|
|
342
|
+
`,(0,c.jsx)(t.h3,{id:`как-получить-обе-категории`,children:`Как получить обе категории?`}),`
|
|
343
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fetchTransportRequests("all")`}),` для flat array или `,(0,c.jsx)(t.code,{children:`fetchUserTransportRequests()`}),` для grouped object.`]}),`
|
|
344
|
+
`,(0,c.jsx)(t.h3,{id:`какая-категория-загружается-по-умолчанию`,children:`Какая категория загружается по умолчанию?`}),`
|
|
345
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`workbench`}),`.`]}),`
|
|
346
|
+
`,(0,c.jsxs)(t.h3,{id:`почему-all-может-содержать-одинаковый-id-дважды`,children:[`Почему `,(0,c.jsx)(t.code,{children:`all`}),` может содержать одинаковый id дважды?`]}),`
|
|
347
|
+
`,(0,c.jsxs)(t.p,{children:[`Если он пришёл из разных categories, records имеют разные `,(0,c.jsx)(t.code,{children:`type`}),` и считаются разными.`]}),`
|
|
348
|
+
`,(0,c.jsx)(t.h3,{id:`можно-ли-создать-transport-request`,children:`Можно ли создать transport request?`}),`
|
|
349
|
+
`,(0,c.jsx)(t.p,{children:`Нет. Модуль read-only.`}),`
|
|
350
|
+
`,(0,c.jsx)(t.h3,{id:`есть-ли-automatic-query-cache`,children:`Есть ли automatic query cache?`}),`
|
|
351
|
+
`,(0,c.jsx)(t.p,{children:`Нет. Используйте exported key factory вместе с TanStack Query.`}),`
|
|
352
|
+
`,(0,c.jsx)(t.h3,{id:`работает-ли-без-sap-sso`,children:`Работает ли без SAP SSO?`}),`
|
|
353
|
+
`,(0,c.jsx)(t.p,{children:`Только если endpoint доступен и auth boundary настроена host environment. Package использует общий SAP transport с cookies/SSO policy.`}),`
|
|
354
|
+
`,(0,c.jsx)(t.h2,{id:`полный-api`,children:`Полный API`}),`
|
|
355
|
+
`,(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:`Fetch`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`fetchWorkbenchTransportRequests`}),`, `,(0,c.jsx)(t.code,{children:`fetchCustomizingTransportRequests`}),`, `,(0,c.jsx)(t.code,{children:`fetchUserTransportRequests`}),`, `,(0,c.jsx)(t.code,{children:`fetchTransportRequests`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Normalize/key`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`normalizeTransportRequests`}),`, `,(0,c.jsx)(t.code,{children:`transportRequestKeys`}),`, `,(0,c.jsx)(t.code,{children:`getTransportRequestKey`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Types`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`TransportRequestType`}),`, `,(0,c.jsx)(t.code,{children:`TransportRequestScope`}),`, `,(0,c.jsx)(t.code,{children:`TransportRequest`}),`, `,(0,c.jsx)(t.code,{children:`TransportRequestRaw`}),`, `,(0,c.jsx)(t.code,{children:`UserTransportRequests`})]})]})]})]})]})}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};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-o7sH2IXC.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-BY40djCc.js";function o(e){let t={a:`a`,blockquote:`blockquote`,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 Lib/API/Utils`}),`
|
|
2
2
|
`,(0,c.jsxs)(t.h1,{id:`общие-утилиты-ryuzaki13react-foundation-libutils`,children:[`Общие утилиты `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/utils`})]}),`
|
|
3
3
|
`,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`utils`}),` объединяет небольшие технические функции, которые нужны в разных частях React- и TypeScript-приложения:`]}),`
|
|
4
4
|
`,(0,c.jsxs)(t.ul,{children:[`
|