@ryuzaki13/react-foundation-ui 1.8.11 → 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.
Files changed (281) hide show
  1. package/dist/chunks/defaultRenderers-u_Vep6Pj.js.map +1 -1
  2. package/dist/chunks/multi-select-DtmRtX6v.js.map +1 -1
  3. package/dist/chunks/select-MN6zDPKM.js.map +1 -1
  4. package/dist/chunks/useODataSelectBase-DR4PrY1j.js.map +1 -1
  5. package/dist/multi-select/model/useODataMultiSelect.d.ts +1 -1
  6. package/dist/multi-select/model/useODataMultiSelect.d.ts.map +1 -1
  7. package/dist/multi-select/ui/MultiSelect.d.ts +1 -1
  8. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  9. package/dist/multi-select/ui/SerializableMultiSelect.d.ts.map +1 -1
  10. package/dist/multi-select/ui/defaultRenderers.d.ts +1 -1
  11. package/dist/multi-select/ui/defaultRenderers.d.ts.map +1 -1
  12. package/dist/select/model/useODataSelect.d.ts +1 -1
  13. package/dist/select/model/useODataSelect.d.ts.map +1 -1
  14. package/dist/select/model/useODataSelectBase.d.ts +1 -1
  15. package/dist/select/model/useODataSelectBase.d.ts.map +1 -1
  16. package/dist/tree-select/index.js.map +1 -1
  17. package/dist/tree-select/model/buildODataTreeNodes.d.ts +1 -1
  18. package/dist/tree-select/model/buildODataTreeNodes.d.ts.map +1 -1
  19. package/package.json +3 -3
  20. package/storybook-static/assets/{Badge-BojMuOws.js → Badge-BFhBl7yM.js} +1 -1
  21. package/storybook-static/assets/{Badge.stories-C9gJRuIO.js → Badge.stories-BEu55X4s.js} +1 -1
  22. package/storybook-static/assets/{BadgeList-dNEWI7-O.js → BadgeList-mqmnGtRR.js} +1 -1
  23. package/storybook-static/assets/{Button-Bbt3JzIY.js → Button-CESdnWrO.js} +1 -1
  24. package/storybook-static/assets/{Button-CrTHXWYk.js → Button-_YPAu9sd.js} +1 -1
  25. package/storybook-static/assets/{Button.stories-BaYXOBeF.js → Button.stories-B0Y_T17B.js} +1 -1
  26. package/storybook-static/assets/{CalendarView-Dp0zus1o.js → CalendarView-DLuO2Ywz.js} +1 -1
  27. package/storybook-static/assets/{CheckBox-BiK9yWNt.js → CheckBox-CGiNmAPT.js} +1 -1
  28. package/storybook-static/assets/{CheckBox-UzYHaD6S.js → CheckBox-l0pbBm9z.js} +1 -1
  29. package/storybook-static/assets/{CheckBox.stories-C2BOiWZj.js → CheckBox.stories-ROPAnqh8.js} +1 -1
  30. package/storybook-static/assets/{Color-6AOWCN3U-C5S4wUlD.js → Color-6AOWCN3U-kPaRN0HS.js} +1 -1
  31. package/storybook-static/assets/{ContextMenu-D9EZxb7d.js → ContextMenu-Bob4DtRn.js} +1 -1
  32. package/storybook-static/assets/{ContextMenu-BWQln_tb.js → ContextMenu-DxfUAeJS.js} +1 -1
  33. package/storybook-static/assets/{ContextMenu.stories-U38zPh9_.js → ContextMenu.stories-DCJmWy5n.js} +1 -1
  34. package/storybook-static/assets/{CustomOptionButton-COIOrxQn.js → CustomOptionButton-DuEz9CXt.js} +1 -1
  35. package/storybook-static/assets/DateInput-BQ8SoeLE.js +1 -0
  36. package/storybook-static/assets/{DateInput-C-entb-r.js → DateInput-DmNLD4Dz.js} +1 -1
  37. package/storybook-static/assets/{DateInput.stories-NmUXQLDU.js → DateInput.stories-sTpYf7Ob.js} +1 -1
  38. package/storybook-static/assets/{DateRangePresetSelect-BM1L1KOo.js → DateRangePresetSelect-DRq4eJ2n.js} +1 -1
  39. package/storybook-static/assets/{DateRangePresetSelect-CAJzxaq0.js → DateRangePresetSelect-fgJfLaLO.js} +1 -1
  40. package/storybook-static/assets/{DateRangePresetSelect.stories-CC47XLnD.js → DateRangePresetSelect.stories-ib7Qh_BB.js} +1 -1
  41. package/storybook-static/assets/{Detail-CDluXtts.js → Detail-CJniLn1R.js} +1 -1
  42. package/storybook-static/assets/{Detail.stories-DjniLC4n.js → Detail.stories-BXjdNaL-.js} +1 -1
  43. package/storybook-static/assets/{Dialog-bzRSgGU7.js → Dialog-D6a_qzr3.js} +1 -1
  44. package/storybook-static/assets/{Dialog-bw6cHUsz.js → Dialog-DOYnnXlU.js} +1 -1
  45. package/storybook-static/assets/{Dialog.stories-C6Rs6s_p.js → Dialog.stories-B1cZLRK3.js} +1 -1
  46. package/storybook-static/assets/{Disclosure-DelA6FsQ.js → Disclosure-Chh5o_0s.js} +1 -1
  47. package/storybook-static/assets/{Disclosure.stories-D7yUinyb.js → Disclosure.stories-Cvdvf7V8.js} +1 -1
  48. package/storybook-static/assets/{DisclosureGroup-DbK7mU_Q.js → DisclosureGroup-CRnQOgVj.js} +1 -1
  49. package/storybook-static/assets/{DocsRenderer-JROSPFPF-v3z0zVN1.js → DocsRenderer-JROSPFPF-BBiErkeC.js} +1 -1
  50. package/storybook-static/assets/{DropZone-CI3NW4AC.js → DropZone-Bm5gqdi9.js} +1 -1
  51. package/storybook-static/assets/{DropZone-Cyy-ttEO.js → DropZone-C4L7JAlq.js} +1 -1
  52. package/storybook-static/assets/{DropZone.stories-S0HSpGTB.js → DropZone.stories-BhA9q8Qv.js} +1 -1
  53. package/storybook-static/assets/{DropdownMenu-Ct1bSZsE.js → DropdownMenu-DtZNSUHF.js} +1 -1
  54. package/storybook-static/assets/{ExpandableActionPanel-Oj3xlasj.js → ExpandableActionPanel-0ugXlJy_.js} +1 -1
  55. package/storybook-static/assets/{ExpandableActionPanel.stories-Ch7CLkpR.js → ExpandableActionPanel.stories-CLgMlA9k.js} +1 -1
  56. package/storybook-static/assets/{Flex-UiFm8Tkc.js → Flex-CJlia-8f.js} +1 -1
  57. package/storybook-static/assets/{Flex.stories-CaDiVlBD.js → Flex.stories-DCvfi1EY.js} +1 -1
  58. package/storybook-static/assets/{FloatingPopover-CTYV9W7T.js → FloatingPopover-CsnfPiwV.js} +1 -1
  59. package/storybook-static/assets/{FormattedTableCell-D-ysSR3p.js → FormattedTableCell-Dz5xWVYO.js} +1 -1
  60. package/storybook-static/assets/{Grid-CigBXPe2.js → Grid-C-KwTRAM.js} +1 -1
  61. package/storybook-static/assets/{Grid.stories-ay3z9DQZ.js → Grid.stories-CzbqknNR.js} +1 -1
  62. package/storybook-static/assets/{ImageCropper.stories-Dkce_ugb.js → ImageCropper.stories-DaE-gm-b.js} +1 -1
  63. package/storybook-static/assets/{ImageRenderer-C9_EmGBW.js → ImageRenderer-IsNCXCrZ.js} +1 -1
  64. package/storybook-static/assets/{ImageRenderer.stories-C7bXaNBI.js → ImageRenderer.stories-BbsjUEfJ.js} +1 -1
  65. package/storybook-static/assets/{ImageView.stories-D-ZzGlk8.js → ImageView.stories-DY0UITYz.js} +1 -1
  66. package/storybook-static/assets/{ImageViewer.stories-ItcRfxyy.js → ImageViewer.stories--9q9b9nv.js} +2 -2
  67. package/storybook-static/assets/{ImageViewerRuntime-eaupID36.js → ImageViewerRuntime-CNEH3XGN.js} +1 -1
  68. package/storybook-static/assets/{Input-op4j7Beh.js → Input-DLubbE7P.js} +1 -1
  69. package/storybook-static/assets/{Input-BUDNR96c.js → Input-Dw2JblYt.js} +1 -1
  70. package/storybook-static/assets/{Input.stories-DwulvJIg.js → Input.stories-DQeyDULG.js} +1 -1
  71. package/storybook-static/assets/{InputDateTime-B_cxOp6k.js → InputDateTime-BRzl8Vrt.js} +1 -1
  72. package/storybook-static/assets/{InputDateTime.stories-BueLF4HC.js → InputDateTime.stories-BJTj5v8J.js} +1 -1
  73. package/storybook-static/assets/{InputFile-DSg7sugm.js → InputFile-B8UroZji.js} +1 -1
  74. package/storybook-static/assets/{InputFile-C8z6TPc1.js → InputFile-DPftxjGw.js} +1 -1
  75. package/storybook-static/assets/{InputFile.stories-C6XSbIua.js → InputFile.stories-C7yyqHqc.js} +1 -1
  76. package/storybook-static/assets/{InputFiles-DoatLq3q.js → InputFiles-BQVXHVLy.js} +1 -1
  77. package/storybook-static/assets/{InputFiles-DeZ84Uu_.js → InputFiles-UD_9S7-N.js} +1 -1
  78. package/storybook-static/assets/{InputFiles.stories-BMbE8SJU.js → InputFiles.stories-DjjJS5pZ.js} +1 -1
  79. package/storybook-static/assets/{InputFilesList-CsfDDqaJ.js → InputFilesList-BNjijD3Y.js} +1 -1
  80. package/storybook-static/assets/{InputImage-yJSq98EH.js → InputImage-C-pHr-Sx.js} +1 -1
  81. package/storybook-static/assets/{InputImage-D_YnB2Tw.js → InputImage-DbcbqIhY.js} +1 -1
  82. package/storybook-static/assets/{InputImage.stories-nivUG307.js → InputImage.stories-D-TC9r9t.js} +1 -1
  83. package/storybook-static/assets/{InteractiveComponents-IPkC_Rkg.js → InteractiveComponents-DbhWgM9y.js} +1 -1
  84. package/storybook-static/assets/{InteractiveComponents.stories-D4VzVKZJ.js → InteractiveComponents.stories-B4mkVSea.js} +1 -1
  85. package/storybook-static/assets/{LayoutPicker-ZHkMi-LM.js → LayoutPicker-BoV_E3qt.js} +1 -1
  86. package/storybook-static/assets/{LayoutPicker-aMzPN5Do.js → LayoutPicker-w1EsRpYP.js} +1 -1
  87. package/storybook-static/assets/{LayoutPicker.stories-DAzpzxn5.js → LayoutPicker.stories--ChGnGxf.js} +1 -1
  88. package/storybook-static/assets/{Listbox-CR5nXC9J.js → Listbox-CzZRsr6a.js} +1 -1
  89. package/storybook-static/assets/{Listbox-BmfQOnrb.js → Listbox-qZdTi11b.js} +1 -1
  90. package/storybook-static/assets/{Listbox.stories-CeOpsKxB.js → Listbox.stories-C9k_1850.js} +1 -1
  91. package/storybook-static/assets/{Modal-BStp52Zo.js → Modal-DCpul8QM.js} +1 -1
  92. package/storybook-static/assets/{Modal.stories-CwGm5GYE.js → Modal.stories-Cy0Xd4LF.js} +1 -1
  93. package/storybook-static/assets/{ModalManagerProvider-B5uUXWF9.js → ModalManagerProvider-BrPVMcHV.js} +1 -1
  94. package/storybook-static/assets/{MultiSelect-308npb27.js → MultiSelect-BEQdl-F4.js} +1 -1
  95. package/storybook-static/assets/{MultiSelect-BDs02MZh.js → MultiSelect-Dy4X94E2.js} +1 -1
  96. package/storybook-static/assets/{MultiSelect.stories-DRi_iTp4.js → MultiSelect.stories-FuzejJmz.js} +1 -1
  97. package/storybook-static/assets/{NoData-ovaQEE9W.js → NoData-BsQ9EfkA.js} +1 -1
  98. package/storybook-static/assets/{NotificationsHost-BpeMWhLY.js → NotificationsHost-BSrODvw7.js} +1 -1
  99. package/storybook-static/assets/NotificationsHost.stories-DeiWspcY.js +29 -0
  100. package/storybook-static/assets/{ODataMultiSelect-qlft9L9L.js → ODataMultiSelect-BEz9gcd2.js} +1 -1
  101. package/storybook-static/assets/{ODataMultiSelect.stories-CMPIoPiy.js → ODataMultiSelect.stories-BwMgAkbE.js} +2 -2
  102. package/storybook-static/assets/{ODataSelect-DKBQArAK.js → ODataSelect-BgC7GHOv.js} +1 -1
  103. package/storybook-static/assets/{ODataSelect.stories-DxYIhtwe.js → ODataSelect.stories-DEIRAB-s.js} +2 -2
  104. package/storybook-static/assets/{ODataTreeMultiSelect-DAt6THP3.js → ODataTreeMultiSelect-WyZZuX0_.js} +1 -1
  105. package/storybook-static/assets/{ODataTreeMultiSelect.stories-CBNJP0mP.js → ODataTreeMultiSelect.stories-B6cxuagy.js} +1 -1
  106. package/storybook-static/assets/{ODataTreeSelect-Bzzt4CQC.js → ODataTreeSelect-OJGi3-S7.js} +1 -1
  107. package/storybook-static/assets/{ODataTreeSelect.stories-CWVvuqOt.js → ODataTreeSelect.stories-wGRGErCH.js} +1 -1
  108. package/storybook-static/assets/{OneStepScroller-BY5lz8qi.js → OneStepScroller-DycQ3RuL.js} +1 -1
  109. package/storybook-static/assets/{Option-Rw8xwrPg.js → Option-taxbFfjo.js} +1 -1
  110. package/storybook-static/assets/{OptionButton-Br48w_Zg.js → OptionButton-Q0QaPCII.js} +1 -1
  111. package/storybook-static/assets/{PeriodSelect-8-wpXz6w.js → PeriodSelect-DUJ2nF3F.js} +1 -1
  112. package/storybook-static/assets/{PeriodSelect-DxSRwKw-.js → PeriodSelect-DnM7x-uC.js} +1 -1
  113. package/storybook-static/assets/{PeriodSelect.stories-B-qgUzlS.js → PeriodSelect.stories-Db0bqe3J.js} +1 -1
  114. package/storybook-static/assets/{PickerTriggerActions-C5xmysFh.js → PickerTriggerActions-CGJd7xmR.js} +1 -1
  115. package/storybook-static/assets/{Popover-NJwt_vZZ.js → Popover-B6oidz5p.js} +1 -1
  116. package/storybook-static/assets/{Popover-Ds8PUigp.js → Popover-Tbhf8T81.js} +1 -1
  117. package/storybook-static/assets/{Popover.stories-CUOFA_Xf.js → Popover.stories-DE1LxZvv.js} +1 -1
  118. package/storybook-static/assets/{PresetRangeDateInput-DyOpbkON.js → PresetRangeDateInput-CQ5FfmrL.js} +1 -1
  119. package/storybook-static/assets/{PresetRangeDateInput-Xk0bOy3S.js → PresetRangeDateInput-DfgoR0My.js} +1 -1
  120. package/storybook-static/assets/{PresetRangeDateInput.stories-CwjUlXj0.js → PresetRangeDateInput.stories-CgoYAYBG.js} +1 -1
  121. package/storybook-static/assets/{PresetSelect-Ddmr0niY.js → PresetSelect-BPtAknAr.js} +1 -1
  122. package/storybook-static/assets/README--TpGcM95.js +110 -0
  123. package/storybook-static/assets/{README-MzcO5Z_P.js → README-4iBHWAP5.js} +1 -1
  124. package/storybook-static/assets/README-98KIgy5G.js +75 -0
  125. package/storybook-static/assets/README-B6II8p0W.js +154 -0
  126. package/storybook-static/assets/{README-CkWglKbS.js → README-B6vU5_7I.js} +1 -1
  127. package/storybook-static/assets/README-BFJVjjZR.js +325 -0
  128. package/storybook-static/assets/README-BIT4HlFP.js +441 -0
  129. package/storybook-static/assets/{README-DqQDgJN-.js → README-BK6Epio1.js} +1 -1
  130. package/storybook-static/assets/{README-DRnlD7y8.js → README-BRlPB5_k.js} +1 -1
  131. package/storybook-static/assets/README-BTFpEaXG.js +64 -0
  132. package/storybook-static/assets/README-BWhXgC_o.js +226 -0
  133. package/storybook-static/assets/README-BbNHvOoR.js +101 -0
  134. package/storybook-static/assets/README-BbunUo8b.js +118 -0
  135. package/storybook-static/assets/README-BmYpfZKr.js +1844 -0
  136. package/storybook-static/assets/README-Bu5uvhAT.js +230 -0
  137. package/storybook-static/assets/README-Bx6fvSBE.js +1282 -0
  138. package/storybook-static/assets/README-Bx6gIGiA.js +69 -0
  139. package/storybook-static/assets/README-ByhxsX44.js +324 -0
  140. package/storybook-static/assets/README-Byi1FFpw.js +98 -0
  141. package/storybook-static/assets/README-C3Is3a3B.js +208 -0
  142. package/storybook-static/assets/{README-C0BwTe5N.js → README-C6prwAXw.js} +1 -1
  143. package/storybook-static/assets/{README-BzVni2ve.js → README-C9S83J_G.js} +1 -1
  144. package/storybook-static/assets/{README-BHw6MVjD.js → README-CGgxP5Zo.js} +1 -1
  145. package/storybook-static/assets/README-CJ2ZVG2U.js +2124 -0
  146. package/storybook-static/assets/README-CNGCAm5d.js +95 -0
  147. package/storybook-static/assets/README-Cb_q420B.js +90 -0
  148. package/storybook-static/assets/README-CtIDPNJ3.js +186 -0
  149. package/storybook-static/assets/README-CzO3Dchr.js +64 -0
  150. package/storybook-static/assets/README-D0rzQthv.js +264 -0
  151. package/storybook-static/assets/README-DEQu7djz.js +1704 -0
  152. package/storybook-static/assets/README-DFihT_sm.js +296 -0
  153. package/storybook-static/assets/{README-CTIBG4zH.js → README-DMiWsyv_.js} +1 -1
  154. package/storybook-static/assets/README-DOx8lXXk.js +82 -0
  155. package/storybook-static/assets/{README-DzTc6XmY.js → README-DPhDjr43.js} +1 -1
  156. package/storybook-static/assets/{README-Dki94Nf2.js → README-D_NqWPa9.js} +1 -1
  157. package/storybook-static/assets/README-DhJ5Rb1w.js +355 -0
  158. package/storybook-static/assets/README-DlwhWCvQ.js +1146 -0
  159. package/storybook-static/assets/README-Dxi73a2Q.js +740 -0
  160. package/storybook-static/assets/README-Dycov6NP.js +583 -0
  161. package/storybook-static/assets/README-GTBkSG4_.js +3591 -0
  162. package/storybook-static/assets/README-Gfd9tLTw.js +672 -0
  163. package/storybook-static/assets/{README-B4zYJg6u.js → README-Kfawetke.js} +1 -1
  164. package/storybook-static/assets/{README-BzVHwvgo.js → README-UDBM7ZMT.js} +1 -1
  165. package/storybook-static/assets/{README-D-XjRtAE.js → README-VTWQxLm_.js} +1 -1
  166. package/storybook-static/assets/README-YHNWrTZv.js +400 -0
  167. package/storybook-static/assets/README-_0Otw0eD.js +448 -0
  168. package/storybook-static/assets/README-aw2Xu9xu.js +158 -0
  169. package/storybook-static/assets/README-eg1emlll.js +192 -0
  170. package/storybook-static/assets/README-iqQHdhZ4.js +416 -0
  171. package/storybook-static/assets/{README-BdPlV5nA.js → README-llxZAtCj.js} +1 -1
  172. package/storybook-static/assets/README-wFnEIGl4.js +95 -0
  173. package/storybook-static/assets/{README-Dx3cpFMr.js → README-webB1yH0.js} +1 -1
  174. package/storybook-static/assets/README-wtreGRCe.js +208 -0
  175. package/storybook-static/assets/{RadioButton-DWbkCY8u.js → RadioButton-CNOLDk_o.js} +1 -1
  176. package/storybook-static/assets/{RadioButton-oSvQ-gQh.js → RadioButton-Ce05_q7s.js} +1 -1
  177. package/storybook-static/assets/{RadioButton.stories-GNQ9XJZT.js → RadioButton.stories-CPd4lTl0.js} +1 -1
  178. package/storybook-static/assets/{RadioGroup-CvXjGXcV.js → RadioGroup-BtfD5Szd.js} +1 -1
  179. package/storybook-static/assets/{RadioGroup-eBYggurL.js → RadioGroup-Ccm7G-dv.js} +1 -1
  180. package/storybook-static/assets/{RadioGroup.stories-C77j_cPv.js → RadioGroup.stories-D-RRPHwi.js} +1 -1
  181. package/storybook-static/assets/{Scrollable-De6SdhI3.js → Scrollable-DvdBIeig.js} +1 -1
  182. package/storybook-static/assets/{Select-DQMoVjn4.js → Select-8PV9PBKF.js} +1 -1
  183. package/storybook-static/assets/{Select-Bwc0bEpt.js → Select-G04B41FM.js} +1 -1
  184. package/storybook-static/assets/{Select.stories-BSIJKJnM.js → Select.stories-Cf6CBhV8.js} +1 -1
  185. package/storybook-static/assets/{SerializableSelect-B73irNFR.js → SerializableSelect-CdQdHIVp.js} +1 -1
  186. package/storybook-static/assets/{SerializableSelect.stories-Z9q6g5v2.js → SerializableSelect.stories-0AKUGpbS.js} +1 -1
  187. package/storybook-static/assets/{SingleDateTimeInput-Dq9LcjnS.js → SingleDateTimeInput-DWT1ORhL.js} +1 -1
  188. package/storybook-static/assets/{SingleDateTimeInput-BHl6srqA.js → SingleDateTimeInput-DattLt6w.js} +1 -1
  189. package/storybook-static/assets/SingleDateTimeInput.stories-BLJV3jzV.js +48 -0
  190. package/storybook-static/assets/{Slider-CvM0N_kc.js → Slider-DKEI4cDd.js} +1 -1
  191. package/storybook-static/assets/{Slider-BiyKexKa.js → Slider-Dci-mJt_.js} +1 -1
  192. package/storybook-static/assets/{Slider.stories-CdHAMDmY.js → Slider.stories-Dp7oQueF.js} +1 -1
  193. package/storybook-static/assets/{SliderInput-DqHotbhB.js → SliderInput-BGPQmlgY.js} +1 -1
  194. package/storybook-static/assets/{SliderInput-Bx_oHUCV.js → SliderInput-BhjqGOKt.js} +1 -1
  195. package/storybook-static/assets/{SliderInput.stories-R5yDhghM.js → SliderInput.stories-DXNhRU3X.js} +1 -1
  196. package/storybook-static/assets/{Sortable-D7pjTHO0.js → Sortable-CMd9l1Gd.js} +1 -1
  197. package/storybook-static/assets/{Sortable.stories-CVLG6pSH.js → Sortable.stories-BN1cFEFJ.js} +1 -1
  198. package/storybook-static/assets/{Splitter-B1Du6XI2.js → Splitter-GL65TlI9.js} +1 -1
  199. package/storybook-static/assets/{Splitter.stories-D-FRLMCc.js → Splitter.stories-q5PlI6rB.js} +1 -1
  200. package/storybook-static/assets/{StateSelect-zl-yZibY.js → StateSelect-Byik5-iZ.js} +1 -1
  201. package/storybook-static/assets/{StateSelect-BJdUEUBc.js → StateSelect-CT0JF2V6.js} +1 -1
  202. package/storybook-static/assets/{StateSelect.stories-DgidR5zR.js → StateSelect.stories-pPEPmgnN.js} +1 -1
  203. package/storybook-static/assets/{StringToggle.stories-IucGrtIi.js → StringToggle.stories-BQlFmCE7.js} +1 -1
  204. package/storybook-static/assets/{Switch-BJrn2lIN.js → Switch--xGPiYk-.js} +1 -1
  205. package/storybook-static/assets/{Switch-5dCshvVo.js → Switch-DhaLI9CG.js} +1 -1
  206. package/storybook-static/assets/{Switch.stories-Dp_l3_JL.js → Switch.stories-5DisgIyj.js} +1 -1
  207. package/storybook-static/assets/{Table-BFAEcUde.js → Table-Bf6MicdG.js} +1 -1
  208. package/storybook-static/assets/{Table.stories-CohejRQv.js → Table.stories-CS7rQgj9.js} +2 -2
  209. package/storybook-static/assets/{Tabs-CI32QiHf.js → Tabs-B4y4y8Ap.js} +1 -1
  210. package/storybook-static/assets/{Tabs.stories-Cr9d9ipA.js → Tabs.stories-C0SpdGkh.js} +1 -1
  211. package/storybook-static/assets/{TabsBox-BlDOUDMF.js → TabsBox-C5LLLhnj.js} +1 -1
  212. package/storybook-static/assets/{TagInput-YZ7eSv8W.js → TagInput-D4BpuCoH.js} +1 -1
  213. package/storybook-static/assets/{TagInput.stories-DrOvsiI5.js → TagInput.stories-rn2wtZP_.js} +1 -1
  214. package/storybook-static/assets/{Text-DK4jN26J.js → Text-BhBt9e7C.js} +1 -1
  215. package/storybook-static/assets/{Textarea-CFh5f_lC.js → Textarea-B-Hz7ujq.js} +1 -1
  216. package/storybook-static/assets/{Textarea-DxPuWBZj.js → Textarea-BHHxY5sd.js} +1 -1
  217. package/storybook-static/assets/{Textarea.stories-CUeOGKYc.js → Textarea.stories-CZ2kWz20.js} +1 -1
  218. package/storybook-static/assets/{TimePanel-BUhFtwlb.js → TimePanel-Cg8fgFsn.js} +1 -1
  219. package/storybook-static/assets/{TimePanel.stories-CpXpMBDN.js → TimePanel.stories-BxdwtK2e.js} +1 -1
  220. package/storybook-static/assets/{Toggle-l2AvDbRn.js → Toggle-BWwfk9fi.js} +1 -1
  221. package/storybook-static/assets/{Toggle-BtApzBNH.js → Toggle-Ce9rbjBc.js} +1 -1
  222. package/storybook-static/assets/{Toggle.stories-Ca8otmAa.js → Toggle.stories-0fzcmzKy.js} +1 -1
  223. package/storybook-static/assets/{TreeMultiSelect-C9QDV63L.js → TreeMultiSelect-B06Y0lIc.js} +1 -1
  224. package/storybook-static/assets/{TreeMultiSelect-nXC4ZB5b.js → TreeMultiSelect-CrAdR_jM.js} +1 -1
  225. package/storybook-static/assets/{TreeMultiSelect.stories-6STRGJbF.js → TreeMultiSelect.stories-CAVoj56E.js} +1 -1
  226. package/storybook-static/assets/{TreePickerBase-Cq7fSw3x.js → TreePickerBase-qU2xPlar.js} +1 -1
  227. package/storybook-static/assets/{TreeSelect-CITef9rp.js → TreeSelect-BIHydJFy.js} +1 -1
  228. package/storybook-static/assets/{TreeSelect-rMNyu_KT.js → TreeSelect-BKnWu0C7.js} +1 -1
  229. package/storybook-static/assets/{TreeSelect.stories-B-Emz9yW.js → TreeSelect.stories-Dp_8ybAf.js} +1 -1
  230. package/storybook-static/assets/{TreeTable-CLiP0td3.js → TreeTable-pVXjU9dG.js} +1 -1
  231. package/storybook-static/assets/{TreeTable.stories-DJb9qt8k.js → TreeTable.stories-CV_8Ui6R.js} +2 -2
  232. package/storybook-static/assets/{blocks-DndFRxxW.js → blocks-BY40djCc.js} +3 -3
  233. package/storybook-static/assets/{check-CLkTJVXe.js → check-CVkPTDzp.js} +1 -1
  234. package/storybook-static/assets/{chevron-down-miCejSEn.js → chevron-down-BtNO4Vhe.js} +1 -1
  235. package/storybook-static/assets/{chevron-left-DhQIPej2.js → chevron-left-kceSK3sZ.js} +1 -1
  236. package/storybook-static/assets/{chevron-right-DfBBx-fr.js → chevron-right-BA_LO2El.js} +1 -1
  237. package/storybook-static/assets/{chunk-W22LQPXL-IdwKKJUw.js → chunk-W22LQPXL-yJiFPv6e.js} +1 -1
  238. package/storybook-static/assets/{circle-alert-DOmVf8am.js → circle-alert-B2m4a1zz.js} +1 -1
  239. package/storybook-static/assets/{circle-check-e7eSQ2VD.js → circle-check-Cfjhotlm.js} +1 -1
  240. package/storybook-static/assets/{components-Bm4Cw8Ap.js → components-D6yV8PLX.js} +3 -3
  241. package/storybook-static/assets/{contextMenu-DpIKeJju.js → contextMenu-B0pQBIW0.js} +1 -1
  242. package/storybook-static/assets/{defaultRenderers-m21aWJXz.js → defaultRenderers-DfmnIuod.js} +1 -1
  243. package/storybook-static/assets/{download-eAKjms6q.js → download-Lba8elK9.js} +1 -1
  244. package/storybook-static/assets/{floating-ui.react-DmilONq6.js → floating-ui.react-BFNvfMpU.js} +1 -1
  245. package/storybook-static/assets/formatters-D33Uh3si-CxrG0jsB.js +1 -0
  246. package/storybook-static/assets/foundationApi-DZhnQ2cC.js +59 -0
  247. package/storybook-static/assets/foundationLib-CoVTo22U.js +30 -0
  248. package/storybook-static/assets/{hooks-RI5_2AXI.js → hooks-Cc6eXN6U.js} +1 -1
  249. package/storybook-static/assets/iframe-BXM-JBuH.js +1 -0
  250. package/storybook-static/assets/{iframe-Sr0umHM6.js → iframe-o7sH2IXC.js} +4 -4
  251. package/storybook-static/assets/{info-DhJTzwcL.js → info-BpsVP_dM.js} +1 -1
  252. package/storybook-static/assets/odata-CXsbxsRY.js +1 -0
  253. package/storybook-static/assets/odata-service-CWkHASdw-DlmSiioz.js +3 -0
  254. package/storybook-static/assets/{odataStoryFixtures-lgnWIUp7.js → odataStoryFixtures-Dj_bzRqh.js} +1 -1
  255. package/storybook-static/assets/{react-YFbUKK0m.js → react-DeJ0JTHb.js} +1 -1
  256. package/storybook-static/assets/{refresh-cw-C7WnxX9M.js → refresh-cw-BvGyjEXe.js} +1 -1
  257. package/storybook-static/assets/{settings-2-0NVvyKQl.js → settings-2-BdXxnHos.js} +1 -1
  258. package/storybook-static/assets/{sortable-DDGG-Zfs.js → sortable-XkyN-9r5.js} +1 -1
  259. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-CxWm8nc8.js → syntaxhighlighter-QEQV7K2Y-Cafn3LV1.js} +1 -1
  260. package/storybook-static/assets/{trash-2-BnceCuhg.js → trash-2-uPH9-fND.js} +1 -1
  261. package/storybook-static/assets/{triangle-alert-MPi3GVgt.js → triangle-alert-tT01vSMw.js} +1 -1
  262. package/storybook-static/assets/{useODataSelectBase-hmjK6chS.js → useODataSelectBase-B2LlOwPZ.js} +1 -1
  263. package/storybook-static/assets/useODataTreeData-CU7Rqcb9.js +1 -0
  264. package/storybook-static/assets/{usePickerQuery-CtsGhieD.js → usePickerQuery-D8GHQ6KR.js} +1 -1
  265. package/storybook-static/assets/{usePickerTriggerController-EaI8W2G0.js → usePickerTriggerController-CcK1jmDy.js} +1 -1
  266. package/storybook-static/assets/{x-CqPSvWfo.js → x-BlAURbAH.js} +1 -1
  267. package/storybook-static/iframe.html +2 -2
  268. package/storybook-static/index.json +1 -1
  269. package/storybook-static/project.json +1 -1
  270. package/storybook-static/assets/DateInput-05Iy69_a.js +0 -1
  271. package/storybook-static/assets/NotificationsHost.stories-CgbFboVD.js +0 -29
  272. package/storybook-static/assets/SingleDateTimeInput.stories-C2RuBRAF.js +0 -48
  273. package/storybook-static/assets/async-SjiCjIjO.js +0 -625
  274. package/storybook-static/assets/formatters-CBgrBeSA-CqB1pZxS.js +0 -1
  275. package/storybook-static/assets/foundationLib-DRrox3tN.js +0 -25
  276. package/storybook-static/assets/iframe-DQo-3eW2.js +0 -1
  277. package/storybook-static/assets/odata-DhISMZkE.js +0 -1
  278. package/storybook-static/assets/odata-service-B6TxBSLm-Bq8Ya67E.js +0 -3
  279. package/storybook-static/assets/odataFetchFn-Dv6Xi5CI.js +0 -763
  280. package/storybook-static/assets/persisted-CUFiw53N.js +0 -600
  281. package/storybook-static/assets/useODataTreeData-CKuavbWc.js +0 -1
@@ -0,0 +1,325 @@
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`,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/ADT Transports`}),`
2
+ `,(0,c.jsxs)(t.h1,{id:`sap-adt-transports-через-ryuzaki13react-foundation-apiadt`,children:[`SAP ADT transports через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/adt`})]}),`
3
+ `,(0,c.jsx)(t.p,{children:`Модуль получает transport requests текущего пользователя из SAP ADT endpoint и преобразует XML в простой массив объектов.`}),`
4
+ `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
5
+ `,(0,c.jsxs)(t.ul,{children:[`
6
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C`,children:`Когда использовать`})}),`
7
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
8
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82`,children:`Быстрый старт`})}),`
9
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#fetchusertransports`,children:(0,c.jsx)(t.code,{children:`fetchUserTransports`})})}),`
10
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#parseusertransportsxml`,children:(0,c.jsx)(t.code,{children:`parseUserTransportsXml`})})}),`
11
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D1%80%D0%B5%D0%B7%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%82%D0%B0`,children:`Формат результата`})}),`
12
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8-%D0%B8-%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F`,children:`Ошибки и ограничения`})}),`
13
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BF%D0%BE%D0%BB%D0%BD%D1%8B%D0%B9-api`,children:`Полный API`})}),`
14
+ `]}),`
15
+ `,(0,c.jsx)(t.h2,{id:`когда-использовать`,children:`Когда использовать`}),`
16
+ `,(0,c.jsxs)(t.p,{children:[`Используйте `,(0,c.jsx)(t.code,{children:`adt`}),`, если backend доступен по `,(0,c.jsx)(t.code,{children:`/sap/bc/adt/cts/transports`}),` и возвращает ADT XML. Если нужны отдельные UI2 списки workbench/customizing в JSON, используйте `,(0,c.jsx)(t.a,{href:`../transport/README.mdx`,children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/transport`})}),`.`]}),`
17
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`SAP ADT XML
18
+
19
+
20
+ parseUserTransportsXml
21
+
22
+
23
+ UserTransport[]
24
+ `})}),`
25
+ `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
26
+ `,(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 fast-xml-parser
27
+ `})}),`
28
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { fetchUserTransports, parseUserTransportsXml } from "@ryuzaki13/react-foundation-api/adt";
29
+
30
+ import type { UserTransport } from "@ryuzaki13/react-foundation-api/adt";
31
+ `})}),`
32
+ `,(0,c.jsx)(t.h2,{id:`быстрый-старт`,children:`Быстрый старт`}),`
33
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`async function loadTransports() {
34
+ try {
35
+ const transports = await fetchUserTransports();
36
+ return transports;
37
+ } catch (error) {
38
+ console.error("Не удалось получить transports", error);
39
+ return [];
40
+ }
41
+ }
42
+ `})}),`
43
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fetchUserTransports`}),` возвращает Promise. Пока он выполняется, данных ещё нет; ошибку нужно обработать через `,(0,c.jsx)(t.code,{children:`try/catch`}),`, TanStack Query или error boundary владельца сценария.`]}),`
44
+ `,(0,c.jsx)(t.h2,{id:`fetchusertransports`,children:(0,c.jsx)(t.code,{children:`fetchUserTransports`})}),`
45
+ `,(0,c.jsx)(t.p,{children:`Функция выполняет GET:`}),`
46
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`/sap/bc/adt/cts/transports?_action=FIND&trfunction=K
47
+ `})}),`
48
+ `,(0,c.jsx)(t.p,{children:`Запрос отправляется через SAP/OData transport пакета с:`}),`
49
+ `,(0,c.jsxs)(t.ul,{children:[`
50
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`Accept: application/xml, text/xml, */*`}),`;`]}),`
51
+ `,(0,c.jsxs)(t.li,{children:[`cookies через `,(0,c.jsx)(t.code,{children:`credentials: include`}),`;`]}),`
52
+ `,(0,c.jsx)(t.li,{children:`SAP language/client и SSO policy общего OData transport;`}),`
53
+ `,(0,c.jsxs)(t.li,{children:[`пустым base URL, потому что ADT endpoint уже содержит `,(0,c.jsx)(t.code,{children:`/sap/...`}),`.`]}),`
54
+ `]}),`
55
+ `,(0,c.jsxs)(t.p,{children:[`Ответ читается как text и передаётся `,(0,c.jsx)(t.code,{children:`parseUserTransportsXml`}),`.`]}),`
56
+ `,(0,c.jsx)(t.p,{children:`Если сервер вместо XML вернул HTML login/error page, функция выбросит ошибку. Это защищает UI от ситуации, когда HTML ошибочно принимается за пустой список transports.`}),`
57
+ `,(0,c.jsx)(t.h2,{id:`parseusertransportsxml`,children:(0,c.jsx)(t.code,{children:`parseUserTransportsXml`})}),`
58
+ `,(0,c.jsx)(t.p,{children:`Parser можно использовать отдельно, например в тесте или при получении XML другим transport:`}),`
59
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const xml = \`
60
+ <root>
61
+ <CTS_REQ_HEADER>
62
+ <TRKORR>DEVK900001</TRKORR>
63
+ <AS4TEXT>Исправление отчёта</AS4TEXT>
64
+ <AS4USER>IVANOV</AS4USER>
65
+ <TARSYSTEM>QAS</TARSYSTEM>
66
+ <TRFUNCTION>K</TRFUNCTION>
67
+ <TRSTATUS>D</TRSTATUS>
68
+ </CTS_REQ_HEADER>
69
+ </root>\`;
70
+
71
+ const transports = parseUserTransportsXml(xml);
72
+ `})}),`
73
+ `,(0,c.jsx)(t.p,{children:`Алгоритм:`}),`
74
+ `,(0,c.jsxs)(t.ol,{children:[`
75
+ `,(0,c.jsxs)(t.li,{children:[`Пустая или состоящая из пробелов строка превращается в `,(0,c.jsx)(t.code,{children:`[]`}),`.`]}),`
76
+ `,(0,c.jsxs)(t.li,{children:[`XML разбирается `,(0,c.jsx)(t.code,{children:`fast-xml-parser`}),`.`]}),`
77
+ `,(0,c.jsxs)(t.li,{children:[`Во вложенной структуре рекурсивно ищутся узлы `,(0,c.jsx)(t.code,{children:`CTS_REQ_HEADER`}),`.`]}),`
78
+ `,(0,c.jsxs)(t.li,{children:[`Поля преобразуются в `,(0,c.jsx)(t.code,{children:`UserTransport`}),`.`]}),`
79
+ `,(0,c.jsxs)(t.li,{children:[`Записи без непустого `,(0,c.jsx)(t.code,{children:`TRKORR`}),` отбрасываются.`]}),`
80
+ `,(0,c.jsxs)(t.li,{children:[`Дубликаты `,(0,c.jsx)(t.code,{children:`transportNo`}),` удаляются; сохраняется первая запись.`]}),`
81
+ `,(0,c.jsxs)(t.li,{children:[`Если header-узлы не найдены, parser ищет вложенные `,(0,c.jsx)(t.code,{children:`TRKORR`}),` и создаёт минимальные записи.`]}),`
82
+ `]}),`
83
+ `,(0,c.jsxs)(t.p,{children:[`Parser делает `,(0,c.jsx)(t.code,{children:`trim`}),` строковых полей, но не декодирует бизнес-значения статуса/function и не проверяет их по справочнику SAP.`]}),`
84
+ `,(0,c.jsx)(t.p,{children:`Некорректный XML может привести к исключению parser-а. Функция не заменяет его пустым массивом: повреждённый ответ должен быть виден как ошибка.`}),`
85
+ `,(0,c.jsx)(t.h2,{id:`формат-результата`,children:`Формат результата`}),`
86
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`interface UserTransport {
87
+ transportNo: string;
88
+ description: string | undefined;
89
+ owner: string | undefined;
90
+ targetSystem: string | undefined;
91
+ functionCode: string | undefined;
92
+ statusCode: string | undefined;
93
+ parentTransportNo: string | undefined;
94
+ }
95
+ `})}),`
96
+ `,(0,c.jsx)(t.p,{children:`Соответствие XML:`}),`
97
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`XML`}),(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:`TRKORR`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`transportNo`})}),(0,c.jsx)(t.td,{children:`Обязательный номер transport`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`AS4TEXT`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`description`})}),(0,c.jsx)(t.td,{children:`Описание`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`AS4USER`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`owner`})}),(0,c.jsx)(t.td,{children:`Владелец`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`TARSYSTEM`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`targetSystem`})}),(0,c.jsx)(t.td,{children:`Целевая система`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`TRFUNCTION`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`functionCode`})}),(0,c.jsx)(t.td,{children:`SAP transport function code`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`TRSTATUS`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`statusCode`})}),(0,c.jsx)(t.td,{children:`SAP status code`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`STRKORR`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`parentTransportNo`})}),(0,c.jsx)(t.td,{children:`Родительский request/task`})]})]})]}),`
98
+ `,(0,c.jsxs)(t.p,{children:[`Optional-поле может быть `,(0,c.jsx)(t.code,{children:`undefined`}),`. Проверяйте его перед отображением:`]}),`
99
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:"const label = transport.description\n ? `${transport.transportNo} — ${transport.description}`\n : transport.transportNo;\n"})}),`
100
+ `,(0,c.jsx)(t.h2,{id:`как-устроен-adt-response`,children:`Как устроен ADT response`}),`
101
+ `,(0,c.jsx)(t.p,{children:`ADT endpoint возвращает не OData JSON, а ABAP XML. Реальный документ обычно содержит namespace и несколько служебных обёрток:`}),`
102
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-xml`,children:`<?xml version="1.0" encoding="UTF-8"?>
103
+ <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
104
+ <asx:values>
105
+ <DATA>
106
+ <CTS_REQ_HEADER>
107
+ <TRKORR>DEVK900001</TRKORR>
108
+ <AS4TEXT>Исправление отчёта</AS4TEXT>
109
+ <AS4USER>IVANOV</AS4USER>
110
+ <TARSYSTEM>QAS</TARSYSTEM>
111
+ <TRFUNCTION>K</TRFUNCTION>
112
+ <TRSTATUS>D</TRSTATUS>
113
+ <STRKORR>DEVK900000</STRKORR>
114
+ </CTS_REQ_HEADER>
115
+ </DATA>
116
+ </asx:values>
117
+ </asx:abap>
118
+ `})}),`
119
+ `,(0,c.jsxs)(t.p,{children:[`Parser намеренно не зависит от точного положения `,(0,c.jsx)(t.code,{children:`CTS_REQ_HEADER`}),`: он рекурсивно обходит objects и arrays. Поэтому дополнительная server wrapper-структура не ломает parsing, пока имена полезных tags остаются прежними.`]}),`
120
+ `,(0,c.jsx)(t.h3,{id:`request-parameters-endpoint`,children:`Request parameters endpoint`}),`
121
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`_action=FIND
122
+ trfunction=K
123
+ `})}),`
124
+ `,(0,c.jsxs)(t.p,{children:[`Они зафиксированы внутри `,(0,c.jsx)(t.code,{children:`fetchUserTransports`}),`. Consumer не может изменить owner, function, status или paging через options. Если нужен другой ADT query, создайте отдельный API у владельца package, а не подменяйте поведение этой функции string manipulation-ом.`]}),`
125
+ `,(0,c.jsx)(t.h3,{id:`почему-используется-общий-sap-transport`,children:`Почему используется общий SAP transport`}),`
126
+ `,(0,c.jsxs)(t.p,{children:[`Хотя response не OData, `,(0,c.jsx)(t.code,{children:`fetchUserTransports`}),` использует `,(0,c.jsx)(t.code,{children:`fetchBase`}),` из `,(0,c.jsx)(t.code,{children:`/odata`}),`, потому что ему нужны те же infrastructure concerns:`]}),`
127
+ `,(0,c.jsxs)(t.ul,{children:[`
128
+ `,(0,c.jsx)(t.li,{children:`cookies текущей SAP session;`}),`
129
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`sap-language`}),` и configured `,(0,c.jsx)(t.code,{children:`sap-client`}),`;`]}),`
130
+ `,(0,c.jsx)(t.li,{children:`manual redirect detection;`}),`
131
+ `,(0,c.jsx)(t.li,{children:`automatic SSO recovery;`}),`
132
+ `,(0,c.jsx)(t.li,{children:`единая HTTP error policy.`}),`
133
+ `]}),`
134
+ `,(0,c.jsxs)(t.p,{children:[`Base URL передаётся как пустая строка, потому что path уже начинается с `,(0,c.jsx)(t.code,{children:`/sap/bc/adt`}),`.`]}),`
135
+ `,(0,c.jsx)(t.h2,{id:`подробный-алгоритм-parser-а`,children:`Подробный алгоритм parser-а`}),`
136
+ `,(0,c.jsx)(t.h3,{id:`1-пустой-документ`,children:`1. Пустой документ`}),`
137
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`parseUserTransportsXml("");
138
+ // []
139
+
140
+ parseUserTransportsXml(" \\n\\t");
141
+ // []
142
+ `})}),`
143
+ `,(0,c.jsx)(t.p,{children:`Whitespace-only input не отправляется в XML parser.`}),`
144
+ `,(0,c.jsx)(t.h3,{id:`2-xml-остаётся-строковым`,children:`2. XML остаётся строковым`}),`
145
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fast-xml-parser`}),` настроен с `,(0,c.jsx)(t.code,{children:`parseTagValue: false`}),`. Значения вроде `,(0,c.jsx)(t.code,{children:`0001`}),`, `,(0,c.jsx)(t.code,{children:`D`}),` или transport number не превращаются автоматически в numbers/booleans.`]}),`
146
+ `,(0,c.jsx)(t.p,{children:`Это важно:`}),`
147
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-xml`,children:`<TRKORR>DEVK900001</TRKORR>
148
+ `})}),`
149
+ `,(0,c.jsx)(t.p,{children:`должен остаться exact identifier, а не пройти numeric coercion.`}),`
150
+ `,(0,c.jsx)(t.h3,{id:`3-поиск-всех-headers`,children:`3. Поиск всех headers`}),`
151
+ `,(0,c.jsxs)(t.p,{children:[`Parser собирает каждый nested value по key `,(0,c.jsx)(t.code,{children:`CTS_REQ_HEADER`}),`. Один XML parser может представить:`]}),`
152
+ `,(0,c.jsxs)(t.ul,{children:[`
153
+ `,(0,c.jsx)(t.li,{children:`один header как object;`}),`
154
+ `,(0,c.jsx)(t.li,{children:`несколько соседних headers как array;`}),`
155
+ `,(0,c.jsx)(t.li,{children:`headers внутри дополнительных wrappers.`}),`
156
+ `]}),`
157
+ `,(0,c.jsx)(t.p,{children:`Оба случая нормализуются к одному массиву.`}),`
158
+ `,(0,c.jsx)(t.h3,{id:`4-runtime-narrowing`,children:`4. Runtime narrowing`}),`
159
+ `,(0,c.jsx)(t.p,{children:`Любой найденный value сначала проверяется как record. Primitive/null не превращаются в transport.`}),`
160
+ `,(0,c.jsx)(t.h3,{id:`5-нормализация-text`,children:`5. Нормализация text`}),`
161
+ `,(0,c.jsx)(t.p,{children:`Все SAP fields проходят text normalization:`}),`
162
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`" DEVK900001 " -> "DEVK900001"
163
+ " " -> undefined
164
+ null -> undefined
165
+ `})}),`
166
+ `,(0,c.jsxs)(t.p,{children:[`Запись без `,(0,c.jsx)(t.code,{children:`transportNo`}),` отбрасывается полностью.`]}),`
167
+ `,(0,c.jsx)(t.h3,{id:`6-дедупликация`,children:`6. Дедупликация`}),`
168
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`parseUserTransportsXml(\`
169
+ <root>
170
+ <CTS_REQ_HEADER>
171
+ <TRKORR>DEVK900001</TRKORR>
172
+ <AS4TEXT>Первое описание</AS4TEXT>
173
+ </CTS_REQ_HEADER>
174
+ <CTS_REQ_HEADER>
175
+ <TRKORR>DEVK900001</TRKORR>
176
+ <AS4TEXT>Второе описание</AS4TEXT>
177
+ </CTS_REQ_HEADER>
178
+ </root>
179
+ \`);
180
+ `})}),`
181
+ `,(0,c.jsx)(t.p,{children:`Вернёт первую запись. Parser не объединяет optional fields дубликатов.`}),`
182
+ `,(0,c.jsxs)(t.h3,{id:`7-fallback-без-cts_req_header`,children:[`7. Fallback без `,(0,c.jsx)(t.code,{children:`CTS_REQ_HEADER`})]}),`
183
+ `,(0,c.jsxs)(t.p,{children:[`Некоторые responses содержат только nested `,(0,c.jsx)(t.code,{children:`TRKORR`}),`. Тогда parser формирует минимальные records:`]}),`
184
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`parseUserTransportsXml(\`
185
+ <root>
186
+ <RESULT><TRKORR>DEVK900003</TRKORR></RESULT>
187
+ <RESULT><TRKORR>DEVK900004</TRKORR></RESULT>
188
+ </root>
189
+ \`);
190
+ `})}),`
191
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`[
192
+ {
193
+ transportNo: "DEVK900003",
194
+ description: undefined,
195
+ owner: undefined,
196
+ targetSystem: undefined,
197
+ functionCode: undefined,
198
+ statusCode: undefined,
199
+ parentTransportNo: undefined
200
+ },
201
+ // ...
202
+ ]
203
+ `})}),`
204
+ `,(0,c.jsx)(t.p,{children:`Fallback включается только если ни одного корректного header record не найдено.`}),`
205
+ `,(0,c.jsx)(t.h2,{id:`использование-с-tanstack-query`,children:`Использование с TanStack Query`}),`
206
+ `,(0,c.jsx)(t.p,{children:`Модуль не навязывает query key/stale policy. Их определяет feature:`}),`
207
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-tsx`,children:`import { queryOptions, useQuery } from "@tanstack/react-query";
208
+ import { fetchUserTransports } from "@ryuzaki13/react-foundation-api/adt";
209
+
210
+ const adtTransportKeys = {
211
+ all: ["adt-transports"] as const,
212
+ list: () => [...adtTransportKeys.all, "list"] as const
213
+ };
214
+
215
+ export const adtTransportsQueryOptions = () =>
216
+ queryOptions({
217
+ queryKey: adtTransportKeys.list(),
218
+ queryFn: fetchUserTransports,
219
+ staleTime: 5 * 60 * 1000
220
+ });
221
+
222
+ function TransportSelect() {
223
+ const query = useQuery(adtTransportsQueryOptions());
224
+
225
+ if (query.isPending) return <p>Загрузка транспортов…</p>;
226
+ if (query.isError) return <p>{query.error.message}</p>;
227
+ if (query.data.length === 0) return <p>Доступных транспортов нет</p>;
228
+
229
+ return (
230
+ <select>
231
+ {query.data.map((item) => (
232
+ <option key={item.transportNo} value={item.transportNo}>
233
+ {item.transportNo}
234
+ {item.description ? \` — \${item.description}\` : ""}
235
+ </option>
236
+ ))}
237
+ </select>
238
+ );
239
+ }
240
+ `})}),`
241
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fetchUserTransports`}),` не принимает `,(0,c.jsx)(t.code,{children:`AbortSignal`}),`, поэтому query cancellation не прерывает underlying fetch через этот API. Не обещайте UI мгновенный transport abort. Если это станет обязательным, контракт должен быть расширен в package.`]}),`
242
+ `,(0,c.jsx)(t.p,{children:`Query key не должен содержать user secrets. Если список зависит от logged-in user, смена user/session должна сопровождаться очисткой auth-sensitive Query cache на project boundary.`}),`
243
+ `,(0,c.jsx)(t.h2,{id:`parent-request-и-task`,children:`Parent request и task`}),`
244
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`parentTransportNo`}),` обычно помогает отличить task от верхнеуровневого request:`]}),`
245
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`function getTransportLabel(transport: UserTransport) {
246
+ const kind = transport.parentTransportNo ? "Задача" : "Запрос";
247
+ return \`\${kind}: \${transport.transportNo}\`;
248
+ }
249
+ `})}),`
250
+ `,(0,c.jsx)(t.p,{children:`Это только presentation inference. Модуль не интерпретирует SAP status/function codes и не гарантирует бизнес-классификацию. Для правил конкретной системы используйте domain mapping приложения.`}),`
251
+ `,(0,c.jsx)(t.h2,{id:`тестирование`,children:`Тестирование`}),`
252
+ `,(0,c.jsx)(t.p,{children:`Parser — pure function, поэтому тестируйте fixtures без network:`}),`
253
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { describe, expect, it } from "vitest";
254
+ import { parseUserTransportsXml } from "@ryuzaki13/react-foundation-api/adt";
255
+
256
+ it("сохраняет leading zeros и optional fields", () => {
257
+ const result = parseUserTransportsXml(\`
258
+ <root>
259
+ <CTS_REQ_HEADER>
260
+ <TRKORR>DEVK900001</TRKORR>
261
+ <TRSTATUS>D</TRSTATUS>
262
+ </CTS_REQ_HEADER>
263
+ </root>
264
+ \`);
265
+
266
+ expect(result).toEqual([
267
+ {
268
+ transportNo: "DEVK900001",
269
+ description: undefined,
270
+ owner: undefined,
271
+ targetSystem: undefined,
272
+ functionCode: undefined,
273
+ statusCode: "D",
274
+ parentTransportNo: undefined
275
+ }
276
+ ]);
277
+ });
278
+ `})}),`
279
+ `,(0,c.jsx)(t.p,{children:`Минимальный набор cases:`}),`
280
+ `,(0,c.jsxs)(t.ul,{children:[`
281
+ `,(0,c.jsx)(t.li,{children:`single header;`}),`
282
+ `,(0,c.jsx)(t.li,{children:`array headers;`}),`
283
+ `,(0,c.jsx)(t.li,{children:`nested wrappers/namespaces;`}),`
284
+ `,(0,c.jsx)(t.li,{children:`duplicate number;`}),`
285
+ `,(0,c.jsx)(t.li,{children:`whitespace fields;`}),`
286
+ `,(0,c.jsx)(t.li,{children:`empty XML;`}),`
287
+ `,(0,c.jsxs)(t.li,{children:[`fallback `,(0,c.jsx)(t.code,{children:`TRKORR`}),`;`]}),`
288
+ `,(0,c.jsx)(t.li,{children:`malformed XML и ожидаемая ошибка.`}),`
289
+ `]}),`
290
+ `,(0,c.jsxs)(t.p,{children:[`Для transport integration mock-айте `,(0,c.jsx)(t.code,{children:`fetch`}),`/MSW и проверяйте Content-Type `,(0,c.jsx)(t.code,{children:`text/html`}),`, XML body и HTTP error. Не используйте real SAP credentials в tests.`]}),`
291
+ `,(0,c.jsx)(t.h2,{id:`частые-ошибки`,children:`Частые ошибки`}),`
292
+ `,(0,c.jsxs)(t.h3,{id:`использовать-поля-function-и-status`,children:[`Использовать поля `,(0,c.jsx)(t.code,{children:`function`}),` и `,(0,c.jsx)(t.code,{children:`status`})]}),`
293
+ `,(0,c.jsxs)(t.p,{children:[`Правильные имена public contract — `,(0,c.jsx)(t.code,{children:`functionCode`}),` и `,(0,c.jsx)(t.code,{children:`statusCode`}),`.`]}),`
294
+ `,(0,c.jsx)(t.h3,{id:`считать-status-code-готовым-label`,children:`Считать status code готовым label`}),`
295
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`"D"`}),` остаётся строкой `,(0,c.jsx)(t.code,{children:`"D"`}),`. Расшифровка зависит от SAP contract проекта и не выполняется package-ом.`]}),`
296
+ `,(0,c.jsx)(t.h3,{id:`принимать-пустой-array-за-любую-ошибку`,children:`Принимать пустой array за любую ошибку`}),`
297
+ `,(0,c.jsxs)(t.p,{children:[`Пустой или whitespace XML даёт `,(0,c.jsx)(t.code,{children:`[]`}),`, но HTTP, HTML и malformed XML errors выбрасываются. Обрабатывайте error отдельно от empty state.`]}),`
298
+ `,(0,c.jsx)(t.h3,{id:`объединять-adt-и-ui2-records-без-mapper-а`,children:`Объединять ADT и UI2 records без mapper-а`}),`
299
+ `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`/adt`}),` и `,(0,c.jsx)(t.code,{children:`/transport`}),` имеют разные source contracts. Если feature показывает их вместе, создайте явную domain model и collision policy.`]}),`
300
+ `,(0,c.jsx)(t.h3,{id:`deep-import-parser-а`,children:`Deep import parser-а`}),`
301
+ `,(0,c.jsx)(t.p,{children:`Используйте только:`}),`
302
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { parseUserTransportsXml } from "@ryuzaki13/react-foundation-api/adt";
303
+ `})}),`
304
+ `,(0,c.jsx)(t.h2,{id:`ошибки-и-ограничения`,children:`Ошибки и ограничения`}),`
305
+ `,(0,c.jsxs)(t.ul,{children:[`
306
+ `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`fast-xml-parser`}),` должен быть установлен в host, использующем этот entrypoint.`]}),`
307
+ `,(0,c.jsx)(t.li,{children:`Это не generic ADT client: endpoint и query parameters зафиксированы.`}),`
308
+ `,(0,c.jsx)(t.li,{children:`Функция не создаёт/не освобождает transport и не проверяет authorization.`}),`
309
+ `,(0,c.jsxs)(t.li,{children:[`SSO/cookies требуют browser/proxy окружения SAP. На server runtime поведение зависит от переданного глобального `,(0,c.jsx)(t.code,{children:`fetch`}),` и cookie boundary.`]}),`
310
+ `,(0,c.jsxs)(t.li,{children:[`HTML-response, HTTP error и XML parse error не превращаются в `,(0,c.jsx)(t.code,{children:`[]`}),`.`]}),`
311
+ `,(0,c.jsxs)(t.li,{children:[`Дедупликация выполняется только по `,(0,c.jsx)(t.code,{children:`transportNo`}),` и сохраняет первую найденную запись.`]}),`
312
+ `]}),`
313
+ `,(0,c.jsx)(t.h2,{id:`faq`,children:`FAQ`}),`
314
+ `,(0,c.jsx)(t.h3,{id:`можно-ли-передать-другой-endpoint`,children:`Можно ли передать другой endpoint?`}),`
315
+ `,(0,c.jsxs)(t.p,{children:[`Нет. `,(0,c.jsx)(t.code,{children:`fetchUserTransports`}),` — конкретный ADT use case с фиксированным endpoint.`]}),`
316
+ `,(0,c.jsx)(t.h3,{id:`можно-ли-получить-только-transports-конкретного-owner`,children:`Можно ли получить только transports конкретного owner?`}),`
317
+ `,(0,c.jsx)(t.p,{children:`Не через текущий public API. Фильтруйте result локально либо расширьте package contract, если server-side filter является общей потребностью.`}),`
318
+ `,(0,c.jsx)(t.h3,{id:`parser-меняет-исходную-xml-string`,children:`Parser меняет исходную XML string?`}),`
319
+ `,(0,c.jsx)(t.p,{children:`Нет. Он создаёт новые JS objects.`}),`
320
+ `,(0,c.jsxs)(t.h3,{id:`почему-optional-fields-явно-содержат-undefined`,children:[`Почему optional fields явно содержат `,(0,c.jsx)(t.code,{children:`undefined`}),`?`]}),`
321
+ `,(0,c.jsxs)(t.p,{children:[`Таков стабильный `,(0,c.jsx)(t.code,{children:`UserTransport`}),` shape. Consumer может безопасно destructure поля без проверки их наличия как properties.`]}),`
322
+ `,(0,c.jsx)(t.h3,{id:`работает-ли-в-node`,children:`Работает ли в Node?`}),`
323
+ `,(0,c.jsxs)(t.p,{children:[`Pure parser работает при наличии `,(0,c.jsx)(t.code,{children:`fast-xml-parser`}),`. Network function зависит от общего SAP transport, URL/cookies/build constants и в первую очередь рассчитана на browser application.`]}),`
324
+ `,(0,c.jsx)(t.h2,{id:`полный-api`,children:`Полный API`}),`
325
+ `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Export`}),(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:`fetchUserTransports`})}),(0,c.jsx)(t.td,{children:`Загружает и разбирает ADT XML`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`parseUserTransportsXml`})}),(0,c.jsx)(t.td,{children:`Преобразует XML string в массив`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`UserTransport`})}),(0,c.jsx)(t.td,{children:`Контракт результата`})]})]})]})]})}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};