@ryuzaki13/react-foundation-ui 1.4.2 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced-search/index.js +12 -11
- package/dist/advanced-search/index.js.map +1 -1
- package/dist/badge/index.js +1 -1
- package/dist/base-table/index.js +2 -2
- package/dist/button/index.js +1 -1
- package/dist/chunks/{CalendarView-KCkhCtK-.js → CalendarView-Z_XWk7aI.js} +8 -8
- package/dist/chunks/{CalendarView-KCkhCtK-.js.map → CalendarView-Z_XWk7aI.js.map} +1 -1
- package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js → ImageViewerRuntime-BMs3BBkV.js} +4 -4
- package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js.map → ImageViewerRuntime-BMs3BBkV.js.map} +1 -1
- package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js → TextEditorLexicalClient-CK8j3RA4.js} +16 -18
- package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js.map → TextEditorLexicalClient-CK8j3RA4.js.map} +1 -1
- package/dist/chunks/{badge-Cri0-kVK.js → badge-DwIUjH0a.js} +2 -2
- package/dist/chunks/{badge-Cri0-kVK.js.map → badge-DwIUjH0a.js.map} +1 -1
- package/dist/chunks/{base-table-D5IqsjQD.js → base-table-BFsVwXg3.js} +13 -12
- package/dist/chunks/{base-table-D5IqsjQD.js.map → base-table-BFsVwXg3.js.map} +1 -1
- package/dist/chunks/{button-CC0Jdx1j.js → button-BU2kRzwu.js} +2 -2
- package/dist/chunks/{button-CC0Jdx1j.js.map → button-BU2kRzwu.js.map} +1 -1
- package/dist/chunks/check-box-Dd3YFuxd.js.map +1 -1
- package/dist/chunks/{context-menu-DQeR3y7M.js → context-menu-C6RO7soI.js} +7 -2
- package/dist/chunks/{context-menu-DQeR3y7M.js.map → context-menu-C6RO7soI.js.map} +1 -1
- package/dist/chunks/{date-input-DBJisPRz.js → date-input-BzExUQnc.js} +5 -5
- package/dist/chunks/{date-input-DBJisPRz.js.map → date-input-BzExUQnc.js.map} +1 -1
- package/dist/chunks/{flex-DYZ0IbU6.js → flex-C7njxZ74.js} +10 -7
- package/dist/chunks/{flex-DYZ0IbU6.js.map → flex-C7njxZ74.js.map} +1 -1
- package/dist/chunks/floating-arrow-BE-z4QkE.js.map +1 -1
- package/dist/chunks/{input-BCJfUdK_.js → input-Bp6_Ucgr.js} +15 -15
- package/dist/chunks/{input-BCJfUdK_.js.map → input-Bp6_Ucgr.js.map} +1 -1
- package/dist/chunks/{input-files-Dcc5K-_1.js → input-files-D1JzSw_Y.js} +2 -2
- package/dist/chunks/{input-files-Dcc5K-_1.js.map → input-files-D1JzSw_Y.js.map} +1 -1
- package/dist/chunks/{input-search-B7HmrAM7.js → input-search-Bkhcinru.js} +2 -2
- package/dist/chunks/{input-search-B7HmrAM7.js.map → input-search-Bkhcinru.js.map} +1 -1
- package/dist/chunks/{misc-DIF5h9ba.js → misc-BYxxlJz6.js} +3 -3
- package/dist/chunks/{misc-DIF5h9ba.js.map → misc-BYxxlJz6.js.map} +1 -1
- package/dist/chunks/{modal-DXHX_sA-.js → modal-paexEF0j.js} +4 -5
- package/dist/chunks/{modal-DXHX_sA-.js.map → modal-paexEF0j.js.map} +1 -1
- package/dist/chunks/{multi-select-CWx12rgb.js → multi-select-COa6-owj.js} +3 -3
- package/dist/chunks/{multi-select-CWx12rgb.js.map → multi-select-COa6-owj.js.map} +1 -1
- package/dist/chunks/{picker-BAQ9NeHe.js → picker-e6IsrMUG.js} +3 -3
- package/dist/chunks/{picker-BAQ9NeHe.js.map → picker-e6IsrMUG.js.map} +1 -1
- package/dist/chunks/{popover-xJJqy1v6.js → popover-CGU3MlsH.js} +14 -14
- package/dist/chunks/{popover-xJJqy1v6.js.map → popover-CGU3MlsH.js.map} +1 -1
- package/dist/chunks/radio-group-CM9Lg_nc.js.map +1 -1
- package/dist/chunks/{select-BPb-eL3O.js → select-C95db02j.js} +32 -31
- package/dist/chunks/{select-BPb-eL3O.js.map → select-C95db02j.js.map} +1 -1
- package/dist/chunks/sortable-DcTIAbjD.js.map +1 -1
- package/dist/chunks/{table-xMAjqtcY.js → table-Dd5BcC0k.js} +3 -3
- package/dist/chunks/{table-xMAjqtcY.js.map → table-Dd5BcC0k.js.map} +1 -1
- package/dist/chunks/{table-column-interactions-BGd5Lwy9.js → table-column-interactions-DzEvVuXe.js} +8 -5
- package/dist/chunks/{table-column-interactions-BGd5Lwy9.js.map → table-column-interactions-DzEvVuXe.js.map} +1 -1
- package/dist/chunks/useODataSelectBase-CKe1AVMI.js.map +1 -1
- package/dist/chunks/wheel-picker-FS58cRsQ.js.map +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-time-input/index.js +4 -4
- package/dist/date-time-input/index.js.map +1 -1
- package/dist/detail/index.js.map +1 -1
- package/dist/dialog/index.js.map +1 -1
- package/dist/disclosure/index.js +1 -1
- package/dist/disclosure/index.js.map +1 -1
- package/dist/drop-zone/index.js +1 -1
- package/dist/drop-zone/index.js.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/expandable-action-panel/index.js +2 -2
- package/dist/expandable-action-panel/index.js.map +1 -1
- package/dist/flex/index.js +1 -1
- package/dist/fullscreen-portal/index.js +3 -3
- package/dist/fullscreen-portal/index.js.map +1 -1
- package/dist/image/index.js +5 -5
- package/dist/image/index.js.map +1 -1
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +1 -1
- package/dist/input-date-time/index.js.map +1 -1
- package/dist/input-file/index.js +1 -1
- package/dist/input-file/index.js.map +1 -1
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +1 -1
- package/dist/input-image/index.js.map +1 -1
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +3 -3
- package/dist/layout-picker/index.js.map +1 -1
- package/dist/list/index.js +7 -7
- package/dist/list/index.js.map +1 -1
- package/dist/listbox/index.js.map +1 -1
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/notifications/index.js +13 -11
- package/dist/notifications/index.js.map +1 -1
- package/dist/pages/index.js.map +1 -1
- package/dist/panel/index.js.map +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/preset-range-date-input/index.js +2 -2
- package/dist/preset-range-date-input/index.js.map +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/index.js.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +27 -24
- package/dist/slider/index.js.map +1 -1
- package/dist/splitter/index.js.map +1 -1
- package/dist/state-select/index.js +12 -10
- package/dist/state-select/index.js.map +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/switch/index.js.map +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-column-interactions/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/table-sorting/index.js.map +1 -1
- package/dist/tabs/index.js +6 -6
- package/dist/tabs/index.js.map +1 -1
- package/dist/tag-input/index.js +1 -1
- package/dist/tag-input/index.js.map +1 -1
- package/dist/text/index.js +10 -8
- package/dist/text/index.js.map +1 -1
- package/dist/text-editor/index.js +2 -2
- package/dist/textarea/index.js +1 -1
- package/dist/textarea/index.js.map +1 -1
- package/dist/toggle/index.js.map +1 -1
- package/dist/toolbar/index.js +1 -2
- package/dist/toolbar/index.js.map +1 -1
- package/dist/tree/index.js.map +1 -1
- package/dist/tree-select/index.js +83 -80
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +2 -2
- package/dist/tree-table/index.js.map +1 -1
- package/package.json +51 -59
- package/storybook-static/assets/{Badge-SZ48u9qp.js → Badge-DHexWW92.js} +11 -11
- package/storybook-static/assets/Badge.stories-CeWDekpP.js +54 -0
- package/storybook-static/assets/Button-VdPdxcvG.js +12 -0
- package/storybook-static/assets/{Button-CFCpYiPy.js → Button-kybsFNS9.js} +10 -10
- package/storybook-static/assets/Button.stories-DhgYDM_q.js +75 -0
- package/storybook-static/assets/{DateInput-BfFTwd_P.css → CalendarView-DKvrkS40.css} +1 -1
- package/storybook-static/assets/CalendarView-DTX0eO8t.js +1 -0
- package/storybook-static/assets/CheckBox-B6rTemHK.js +2 -0
- package/storybook-static/assets/{CheckBox-FoMSruZC.js → CheckBox-CDwboiFD.js} +11 -11
- package/storybook-static/assets/CheckBox.module-BBzuj5He.js +1 -0
- package/storybook-static/assets/CheckBox.stories-BSMihxpY.js +60 -0
- package/storybook-static/assets/Color-6AOWCN3U-D5F38IUU.js +1 -0
- package/storybook-static/assets/{ContextMenu-CU_1kOzV.js → ContextMenu-2ZQAeo_p.js} +9 -9
- package/storybook-static/assets/ContextMenu-CQtvL8kx.js +1 -0
- package/storybook-static/assets/ContextMenu.stories-Dtz2YIGk.js +90 -0
- package/storybook-static/assets/{DateInput-BeZ5esVE.js → DateInput-D41aWZ7_.js} +11 -11
- package/storybook-static/assets/DateInput-DBwgBhFj.js +1 -0
- package/storybook-static/assets/DateInput-pmGiwdvw.css +1 -0
- package/storybook-static/assets/{DateInput.stories-Bkw2r8CD.js → DateInput.stories-CMV96t-8.js} +2 -2
- package/storybook-static/assets/{DateRangePresetSelect-C_mLvEoK.js → DateRangePresetSelect-BLKJkg8X.js} +8 -8
- package/storybook-static/assets/DateRangePresetSelect-DXYYFJJn.js +3 -0
- package/storybook-static/assets/DateRangePresetSelect.stories-BNtFx_iG.js +11 -0
- package/storybook-static/assets/{Detail-WzciiK9S.js → Detail-BHcGLZok.js} +11 -11
- package/storybook-static/assets/Detail.stories-C4smn8Uu.js +44 -0
- package/storybook-static/assets/{Dialog-CwLsVxJY.js → Dialog-kji1ho-G.js} +9 -9
- package/storybook-static/assets/Dialog.stories-DYzrVcIT.js +31 -0
- package/storybook-static/assets/{Disclosure-BlRuGrk2.js → Disclosure-BVLfp53o.js} +10 -10
- package/storybook-static/assets/Disclosure.stories-DcV1pGCt.js +41 -0
- package/storybook-static/assets/DocsRenderer-JROSPFPF-CCwX0YiR.js +2 -0
- package/storybook-static/assets/{DropZone-Cr3nfCWA.js → DropZone-6iWHt6C_.js} +10 -10
- package/storybook-static/assets/DropZone.stories-bASZNbD5.js +44 -0
- package/storybook-static/assets/ExpandableActionPanel.stories-CMMbHs_d.js +20 -0
- package/storybook-static/assets/{Flex-C10912WS.js → Flex-BJViOwhH.js} +18 -18
- package/storybook-static/assets/Flex.stories-CI6DdxU7.js +300 -0
- package/storybook-static/assets/FlexContainer-LmZIdhq2.js +1 -0
- package/storybook-static/assets/FlexItem-vkDYa5tA.js +3 -0
- package/storybook-static/assets/FloatingPopover-CPLOruAY.js +1 -0
- package/storybook-static/assets/FloatingPopover-DC84VrV3.css +1 -0
- package/storybook-static/assets/FormattedTableCell-CV4yLuxl.js +18 -0
- package/storybook-static/assets/FormattedTableCell-CY3E21k8.css +1 -0
- package/storybook-static/assets/Grid-BCzygAqy.js +52 -0
- package/storybook-static/assets/{Grid-G88y3oB_.js → Grid-CNEn2bRE.js} +18 -18
- package/storybook-static/assets/{Grid.stories-BV7zL-6n.js → Grid.stories-qFo5E3qE.js} +2 -2
- package/storybook-static/assets/{Grid-Bb0gH6CX.js → GridContainer-qDguE1HS.js} +2 -53
- package/storybook-static/assets/ImageCropper.stories-BeQI7oKQ.js +115 -0
- package/storybook-static/assets/ImageRenderer-DK2ibQyr.js +2 -0
- package/storybook-static/assets/ImageRenderer.stories-C1T4ne0G.js +22 -0
- package/storybook-static/assets/ImageView.stories-D_Q-ZBtQ.js +9 -0
- package/storybook-static/assets/{ImageViewer.stories-PlFXSB5n.js → ImageViewer.stories-boombTJI.js} +5 -5
- package/storybook-static/assets/ImageViewerRuntime-D8KSESgf.js +51 -0
- package/storybook-static/assets/{Input-pyUNDVtk.js → Input-CGHba0oM.js} +11 -11
- package/storybook-static/assets/Input-DtOsW7ur.js +3 -0
- package/storybook-static/assets/Input.stories-C0qWd6SH.js +38 -0
- package/storybook-static/assets/{InputDateTime-CWk5KBwD.js → InputDateTime-CgYkmVYu.js} +11 -11
- package/storybook-static/assets/InputDateTime.stories-Brxo7Chn.js +35 -0
- package/storybook-static/assets/{InputFile-BLQq7mY9.js → InputFile-Bsxafe88.js} +10 -10
- package/storybook-static/assets/InputFile.stories-BzEV7ybE.js +36 -0
- package/storybook-static/assets/{InputFiles-B6J4XBdP.js → InputFiles-KJFUsmSS.js} +10 -10
- package/storybook-static/assets/InputFiles.stories-ffjxiHSh.js +33 -0
- package/storybook-static/assets/InputFilesList-D6B5g99M.js +1 -0
- package/storybook-static/assets/{InputImage--2PSB_E_.js → InputImage-Cd39V4Vc.js} +10 -10
- package/storybook-static/assets/InputImage.stories-n-tpY8OO.js +51 -0
- package/storybook-static/assets/{LayoutPicker-RZDisgZ_.js → LayoutPicker-CGQFfQk6.js} +13 -13
- package/storybook-static/assets/LayoutPicker.stories-xSL2qafC.js +449 -0
- package/storybook-static/assets/{Listbox-xwfNjBpV.js → Listbox-CxISK8c5.js} +10 -10
- package/storybook-static/assets/Listbox.stories-BdQBmVFI.js +47 -0
- package/storybook-static/assets/{Modal-HJt_Y-a6.js → Modal-BiaAWMdV.js} +12 -12
- package/storybook-static/assets/Modal.stories-GV7fGqyd.js +180 -0
- package/storybook-static/assets/MultiSelect-D5XFosSU.js +2 -0
- package/storybook-static/assets/{MultiSelect-CvNsFdE4.js → MultiSelect-Df2CpyNH.js} +11 -11
- package/storybook-static/assets/MultiSelect.stories-BEVQF6hO.js +29 -0
- package/storybook-static/assets/MultiSelectToken-CrVawISu.js +1 -0
- package/storybook-static/assets/NoData-C7KqaHUh.css +1 -0
- package/storybook-static/assets/NoData-Fm23iF4n.js +1 -0
- package/storybook-static/assets/{NotificationsHost-DXCf3CQX.js → NotificationsHost-C2vSwAjz.js} +9 -9
- package/storybook-static/assets/NotificationsHost.stories-IbgayDlM.js +25 -0
- package/storybook-static/assets/{ODataMultiSelect-CIJNiwGb.js → ODataMultiSelect-oW3kW0nO.js} +15 -15
- package/storybook-static/assets/ODataMultiSelect.stories-CP6_jGSr.js +73 -0
- package/storybook-static/assets/{ODataSelect-BDga9TUb.js → ODataSelect-CrGF8fyC.js} +15 -15
- package/storybook-static/assets/ODataSelect.stories-DTv31Rkv.js +73 -0
- package/storybook-static/assets/ODataTreeMultiSelect-D0h8H3gw.js +19 -0
- package/storybook-static/assets/ODataTreeMultiSelect.stories-CM8QjG8r.js +30 -0
- package/storybook-static/assets/ODataTreeSelect-PWn0-hI4.js +17 -0
- package/storybook-static/assets/ODataTreeSelect.stories-2UkFTnbE.js +24 -0
- package/storybook-static/assets/OneStepScroller-CH6K7wiO.js +5 -0
- package/storybook-static/assets/OneStepScroller-NRYd-egY.css +1 -0
- package/storybook-static/assets/{PeriodSelect-BJbjl62O.js → PeriodSelect-BtwJuAO6.js} +13 -13
- package/storybook-static/assets/PeriodSelect.stories-BH8I5Wmg.js +64 -0
- package/storybook-static/assets/PickerSelectionToolbar-BcL8-O6n.js +2 -0
- package/storybook-static/assets/PickerTriggerActions-C8Asdp5e.js +1 -0
- package/storybook-static/assets/{Popover-Dg2T0DoN.js → Popover-Ch5btFhR.js} +11 -11
- package/storybook-static/assets/Popover-DGX7JNNK.css +1 -0
- package/storybook-static/assets/Popover-Djns7yXR.js +2 -0
- package/storybook-static/assets/Popover.stories-Bask2I1I.js +69 -0
- package/storybook-static/assets/{PresetRangeDateInput-CNmTMNHF.js → PresetRangeDateInput-DvsTjQNP.js} +8 -8
- package/storybook-static/assets/PresetRangeDateInput.stories-BNfOUWgp.js +15 -0
- package/storybook-static/assets/PresetSelect-9zitP0-V.js +5 -0
- package/storybook-static/assets/{RadioButton-2rfUPkwC.js → RadioButton-Yb9bQKYe.js} +10 -10
- package/storybook-static/assets/RadioButton.stories-FIFxXFVP.js +36 -0
- package/storybook-static/assets/RadioGroup-CWsVqwtm.js +1 -0
- package/storybook-static/assets/{RadioGroup-BduGGVKj.js → RadioGroup-Dn0zL838.js} +10 -10
- package/storybook-static/assets/RadioGroup.stories-B_drop9x.js +42 -0
- package/storybook-static/assets/Scrollable-3Z6b5g0Z.js +1 -0
- package/storybook-static/assets/{Select-DnZ83aZs.js → Select-BaR8D89E.js} +13 -13
- package/storybook-static/assets/Select-BiOxxy0y.js +12 -0
- package/storybook-static/assets/Select.stories-CMlWu7vC.js +46 -0
- package/storybook-static/assets/SelectOptionContent-DhtCMwz6.js +1 -0
- package/storybook-static/assets/{SerializableSelect-BiFhAxAJ.js → SerializableSelect-BDiZo_-M.js} +12 -12
- package/storybook-static/assets/SerializableSelect.stories-DgC6oiRx.js +46 -0
- package/storybook-static/assets/{SingleDateTimeInput-Bc-ifbML.js → SingleDateTimeInput-Dx1fvzyr.js} +12 -12
- package/storybook-static/assets/SingleDateTimeInput.stories-NRUE7nnA.js +78 -0
- package/storybook-static/assets/Slider-DJpzPo7f.js +1 -0
- package/storybook-static/assets/{Slider-DfjBSsR3.js → Slider-aiFcrSGY.js} +15 -15
- package/storybook-static/assets/Slider.stories-B0YHmFf5.js +77 -0
- package/storybook-static/assets/{SliderInput-o9uCcVMP.js → SliderInput-sOoxvdku.js} +16 -16
- package/storybook-static/assets/SliderInput.stories-BYk1V19Z.js +68 -0
- package/storybook-static/assets/{Sortable-B6Y9Q9Yn.js → Sortable-CuVT40f8.js} +13 -13
- package/storybook-static/assets/Sortable.stories-KSWGoKrN.js +141 -0
- package/storybook-static/assets/{Splitter-CfUVnAs7.js → Splitter-EoNOj4XF.js} +11 -11
- package/storybook-static/assets/Splitter.stories-CuAZab2y.js +22 -0
- package/storybook-static/assets/{StateSelect-h0i4M4vO.js → StateSelect-B_M50HZl.js} +10 -10
- package/storybook-static/assets/StateSelect.stories-DQ_MzvL4.js +47 -0
- package/storybook-static/assets/StringToggle.stories-BbRysCKA.js +6 -0
- package/storybook-static/assets/{Switch-CPKaENqL.js → Switch-DO_tyZIc.js} +10 -10
- package/storybook-static/assets/Switch.stories-BQakMoPp.js +26 -0
- package/storybook-static/assets/{Table-xV66crR1.js → Table-CVK5rwmT.js} +22 -22
- package/storybook-static/assets/Table.stories-IZaleOjp.js +122 -0
- package/storybook-static/assets/{Tabs-v9YZeJoc.js → Tabs-DAaWUQb4.js} +15 -15
- package/storybook-static/assets/Tabs.stories-BC8LwG22.js +58 -0
- package/storybook-static/assets/TagInput.stories-CrXD57LV.js +18 -0
- package/storybook-static/assets/Text-cVBcGheg.js +1 -0
- package/storybook-static/assets/{Textarea-CRThqX0z.js → Textarea-9VdIC6G0.js} +10 -10
- package/storybook-static/assets/Textarea.stories-CEaMwEau.js +27 -0
- package/storybook-static/assets/TimePanel-vx1aOwT4.js +1 -0
- package/storybook-static/assets/TimePanel.stories-BKyiLEgy.js +25 -0
- package/storybook-static/assets/Toggle-CyajrRVE.js +1 -0
- package/storybook-static/assets/{Toggle-CzopviU2.js → Toggle-DrNoVpGe.js} +10 -10
- package/storybook-static/assets/Toggle.stories-CT0mQbdm.js +30 -0
- package/storybook-static/assets/TreeMultiSelect-CtDZ1cXU.js +1 -0
- package/storybook-static/assets/TreeMultiSelect-ag5i_Hw_.js +19 -0
- package/storybook-static/assets/TreeMultiSelect.stories-BxrbKopS.js +35 -0
- package/storybook-static/assets/TreePickerBase-DQzUtuAm.js +22 -0
- package/storybook-static/assets/TreeSelect-BNuJBo9x.js +1 -0
- package/storybook-static/assets/TreeSelect-CL8REXC5.js +16 -0
- package/storybook-static/assets/TreeSelect.stories-CsWGc9X0.js +18 -0
- package/storybook-static/assets/{TreeTable-DbzoCcR5.js → TreeTable-DrIFC4Oh.js} +22 -22
- package/storybook-static/assets/TreeTable.stories-Dq5c4_qe.js +83 -0
- package/storybook-static/assets/WithTooltip-7X4HQR7L-Cakt_JaX.js +9 -0
- package/storybook-static/assets/array-BBSjoTRy-CIRmlF93.js +1 -0
- package/storybook-static/assets/{async-D27PcxoG.js → async-0-Te_uje.js} +3 -3
- package/storybook-static/assets/axe-Bq-2xuso.js +20 -0
- package/storybook-static/assets/blocks-Dz3dJBcm.js +48 -0
- package/storybook-static/assets/browserAndReact-kZBm3nQe.js +105 -0
- package/storybook-static/assets/check-BMyoSD8F.js +1 -0
- package/storybook-static/assets/chevron-down-QDFtnGcg.js +1 -0
- package/storybook-static/assets/chevron-left-BoVuWD4h.js +1 -0
- package/storybook-static/assets/chevron-right-DS62_o_9.js +1 -0
- package/storybook-static/assets/chunk-242VQQM5-BMWWiybC.js +1 -0
- package/storybook-static/assets/chunk-DRQKCCAG-CqE-Zrl9.js +1 -0
- package/storybook-static/assets/chunk-IMSF75WX-yvVUwIQZ.js +6 -0
- package/storybook-static/assets/chunk-KJHJLCBK-D-yQfkOi.js +1 -0
- package/storybook-static/assets/chunk-QQBDHPVZ-B98qboss.js +1 -0
- package/storybook-static/assets/chunk-W22LQPXL-DDIvKskF.js +18 -0
- package/storybook-static/assets/circle-alert-CXg50Gb0.js +1 -0
- package/storybook-static/assets/circle-check-BPfYNWmz.js +1 -0
- package/storybook-static/assets/components-BejapTpU.js +241 -0
- package/storybook-static/assets/contextMenu-DtXkMNr6.js +2 -0
- package/storybook-static/assets/date-segments-D3HouZ37.js +1 -0
- package/storybook-static/assets/dom-B3G_GtJw.js +1 -0
- package/storybook-static/assets/download-DnZ6jhvY.js +1 -0
- package/storybook-static/assets/error-BZrNlEUO.js +1 -0
- package/storybook-static/assets/file-vPGnhPr-.js +1 -0
- package/storybook-static/assets/filesAndExcel-CXMXtMjq.js +122 -0
- package/storybook-static/assets/floating-ui.react-PN45KvBS.js +1 -0
- package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +1 -0
- package/storybook-static/assets/formatters--mhLir82-v41eaI4a.js +1 -0
- package/storybook-static/assets/formatters-DGXR8csR.js +291 -0
- package/storybook-static/assets/formatters-runtime-GsS-hTg9.js +384 -0
- package/storybook-static/assets/foundationLib-XrLbqi3r.js +82 -0
- package/storybook-static/assets/hooks-Ddmw7JMF.js +5 -0
- package/storybook-static/assets/iframe-CrnMVMTc.js +1151 -0
- package/storybook-static/assets/iframe-FUHzX0Mr.js +1 -0
- package/storybook-static/assets/info-Dqq5QHG7.js +1 -0
- package/storybook-static/assets/{matchers-JIUQ3HVY-BPS-eazD.js → matchers-JIUQ3HVY-DvR2XErZ.js} +3 -3
- package/storybook-static/assets/media-BycWpjAl.js +1 -0
- package/storybook-static/assets/odata-BaxgzNGj.js +1 -0
- package/storybook-static/assets/odata-service-DnPlNGpU-Bpd4Zh9L.js +3 -0
- package/storybook-static/assets/odataAndTables-OEVW-gFK.js +126 -0
- package/storybook-static/assets/{odataFetchFn-BVgXXKgx.js → odataFetchFn-BLWeF0ZQ.js} +3 -3
- package/storybook-static/assets/odataStoryFixtures-BbswaX_5.js +25 -0
- package/storybook-static/assets/{persisted-D8qUQbts.js → persisted-BpFojVXw.js} +3 -3
- package/storybook-static/assets/preload-helper-BHmFeTtP.js +1 -0
- package/storybook-static/assets/pureUtilities-3afQk5ld.js +69 -0
- package/storybook-static/assets/react-18-CgkwBzTo.js +9 -0
- package/storybook-static/assets/react-C21x__mS.js +1 -0
- package/storybook-static/assets/react-CpOcCp9T.js +9 -0
- package/storybook-static/assets/react-CvkUhHUq.js +1 -0
- package/storybook-static/assets/react-dom-2o2phaJG.js +1 -0
- package/storybook-static/assets/react-qN2cStNd.js +1 -0
- package/storybook-static/assets/refresh-cw-B2VU4UNA.js +1 -0
- package/storybook-static/assets/rolldown-runtime-C0FnF6B9.js +1 -0
- package/storybook-static/assets/runtimeAndState-BEFDbOiZ.js +117 -0
- package/storybook-static/assets/settings-2-CLJhjWJl.js +1 -0
- package/storybook-static/assets/sortable-DW_Veba0.js +1 -0
- package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-D0RhvxXU.js +6 -0
- package/storybook-static/assets/theming-mTWhffkp.js +39 -0
- package/storybook-static/assets/trash-2-yLqdtpz8.js +1 -0
- package/storybook-static/assets/treeStoryFixtures-Ci7STpiz.js +1 -0
- package/storybook-static/assets/triangle-alert-wI8Cd8tI.js +1 -0
- package/storybook-static/assets/ui.module-DoMIk8Oc.js +1 -0
- package/storybook-static/assets/uiClasses-CO3Cdv1E.js +1 -0
- package/storybook-static/assets/useFlexClasses-Gn9spXEB.js +1 -0
- package/storybook-static/assets/useODataSelectBase-WnxdcAM4.js +1 -0
- package/storybook-static/assets/useODataTreeData-C7L5TOjl.js +1 -0
- package/storybook-static/assets/usePickerDefaultFilter-DdxyE_i8.js +1 -0
- package/storybook-static/assets/usePickerQuery-CAWYFpCv.js +1 -0
- package/storybook-static/assets/usePickerTriggerController-BRXUlggw.js +1 -0
- package/storybook-static/assets/utils-DUM89eIj.js +1 -0
- package/storybook-static/assets/x-CyFk00QC.js +1 -0
- package/storybook-static/iframe.html +8 -3
- package/storybook-static/index.html +6 -0
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/a11y-3/manager-bundle.js +3 -3
- package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +17 -17
- package/storybook-static/sb-addons/docs-2/manager-bundle.js +16 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +85 -83
- package/storybook-static/sb-addons/vitest-4/manager-bundle.js +1 -1
- package/storybook-static/sb-manager/globals-runtime.js +9939 -7695
- package/storybook-static/sb-manager/runtime.js +16128 -15326
- package/storybook-static/vite-inject-mocker-entry.js +2 -2
- package/storybook-static/assets/Badge.stories-CzsgAfG9.js +0 -51
- package/storybook-static/assets/Button-MoWVKehO.js +0 -12
- package/storybook-static/assets/Button.stories-wwep4c2p.js +0 -75
- package/storybook-static/assets/CheckBox-DHvne_6w.js +0 -2
- package/storybook-static/assets/CheckBox.module-ezWPE2pa.js +0 -1
- package/storybook-static/assets/CheckBox.stories-C14Axs5p.js +0 -60
- package/storybook-static/assets/Color-KMSTOMOX-CmMBFN4-.js +0 -1
- package/storybook-static/assets/ContextMenu.stories-Dr-tkpqd.js +0 -90
- package/storybook-static/assets/DateInput-erobPRG_.js +0 -1
- package/storybook-static/assets/DateRangePresetSelect-Cg90Kc_w.js +0 -3
- package/storybook-static/assets/DateRangePresetSelect.stories-BVap0joC.js +0 -11
- package/storybook-static/assets/Detail.stories-CLdtvJ7q.js +0 -44
- package/storybook-static/assets/Dialog.stories-Dx0jZO19.js +0 -31
- package/storybook-static/assets/Disclosure.stories-DhUdeDK6.js +0 -41
- package/storybook-static/assets/DocsRenderer-JROSPFPF-Dd1n83Uq.js +0 -2
- package/storybook-static/assets/DropZone.stories-6yYrwQOe.js +0 -44
- package/storybook-static/assets/DropdownMenu-D_2LfViU.js +0 -1
- package/storybook-static/assets/ExpandableActionPanel.stories-DVOFSOlm.js +0 -20
- package/storybook-static/assets/Flex-V-qg6Ejw.js +0 -3
- package/storybook-static/assets/Flex.stories-BZv94LD8.js +0 -300
- package/storybook-static/assets/ImageCropper.stories-MLFZyJxZ.js +0 -115
- package/storybook-static/assets/ImageRenderer-DHhD7mUz.js +0 -2
- package/storybook-static/assets/ImageRenderer.stories-ChcPymk2.js +0 -22
- package/storybook-static/assets/ImageView.stories-DszVNgC8.js +0 -9
- package/storybook-static/assets/ImageViewerRuntime-D8wFAKx5.js +0 -51
- package/storybook-static/assets/Input-BGdz8TmT.js +0 -3
- package/storybook-static/assets/Input.stories-Ban0Gnck.js +0 -38
- package/storybook-static/assets/InputDateTime.stories-DgKVmf54.js +0 -35
- package/storybook-static/assets/InputFile.stories-VnRv_q2r.js +0 -36
- package/storybook-static/assets/InputFiles-Dn9afnyd.js +0 -1
- package/storybook-static/assets/InputFiles.stories-CLVn5Xfq.js +0 -33
- package/storybook-static/assets/InputImage.stories-D__QcSho.js +0 -51
- package/storybook-static/assets/LayoutPicker.stories-BCnR-zBu.js +0 -449
- package/storybook-static/assets/Listbox.stories-B0HctqVp.js +0 -47
- package/storybook-static/assets/Modal.stories-BE-VpK-a.js +0 -180
- package/storybook-static/assets/MultiSelect-CaCNRNIe.js +0 -2
- package/storybook-static/assets/MultiSelect.stories-CNkbVGsb.js +0 -29
- package/storybook-static/assets/NotificationsHost.stories-BgqvZzT3.js +0 -25
- package/storybook-static/assets/ODataMultiSelect-CMyI4yYs.js +0 -1
- package/storybook-static/assets/ODataMultiSelect.stories-DTGCC6np.js +0 -73
- package/storybook-static/assets/ODataSelect-CGplYBh_.js +0 -1
- package/storybook-static/assets/ODataSelect.stories-CsxqRAvn.js +0 -73
- package/storybook-static/assets/ODataTreeMultiSelect-4ZiAtFZk.js +0 -19
- package/storybook-static/assets/ODataTreeMultiSelect.stories-B29Od8BL.js +0 -30
- package/storybook-static/assets/ODataTreeSelect-yZy7MBsZ.js +0 -17
- package/storybook-static/assets/ODataTreeSelect.stories-H7eaj1Sz.js +0 -24
- package/storybook-static/assets/PeriodSelect.stories-6CEzS2_H.js +0 -64
- package/storybook-static/assets/Popover.stories-BNgWOHlJ.js +0 -69
- package/storybook-static/assets/PresetRangeDateInput.stories-6UPVDF62.js +0 -15
- package/storybook-static/assets/RadioButton.stories-DbdFfJqO.js +0 -36
- package/storybook-static/assets/RadioGroup-BA21indC.js +0 -1
- package/storybook-static/assets/RadioGroup.stories-Ce6x0WUN.js +0 -42
- package/storybook-static/assets/Select-DyO25wSA.js +0 -12
- package/storybook-static/assets/Select.stories-CQ8f9fY9.js +0 -46
- package/storybook-static/assets/SelectOptionContent-fC4HFG5Q.js +0 -1
- package/storybook-static/assets/SerializableSelect-ki4BThj7.js +0 -4
- package/storybook-static/assets/SerializableSelect.stories-BzXBkWPI.js +0 -43
- package/storybook-static/assets/SingleDateTimeInput.stories-CI2yrD-f.js +0 -78
- package/storybook-static/assets/Slider.stories-D3O3_tqE.js +0 -77
- package/storybook-static/assets/SliderInput.stories-D1puleZB.js +0 -67
- package/storybook-static/assets/Sortable.stories-BoaL4W6r.js +0 -141
- package/storybook-static/assets/Splitter.stories-DJpFzZVJ.js +0 -22
- package/storybook-static/assets/StateSelect.stories-Ch2Gzzmd.js +0 -47
- package/storybook-static/assets/StringToggle.stories-B8qIG0M3.js +0 -6
- package/storybook-static/assets/Switch.stories-BysIhUHa.js +0 -26
- package/storybook-static/assets/Table.stories-CBpgmq7b.js +0 -122
- package/storybook-static/assets/Tabs.stories-BPYZuvzR.js +0 -58
- package/storybook-static/assets/TagInput.stories-BwOEnVpz.js +0 -18
- package/storybook-static/assets/Textarea.stories-BSJGz7JF.js +0 -27
- package/storybook-static/assets/TimePanel-ClMfq_py.js +0 -1
- package/storybook-static/assets/TimePanel.stories-_FqWdmta.js +0 -25
- package/storybook-static/assets/Toggle-BFhzeK2e.js +0 -1
- package/storybook-static/assets/Toggle.stories-Dw5UkD_b.js +0 -30
- package/storybook-static/assets/TreeMultiSelect-CerqHY2K.js +0 -19
- package/storybook-static/assets/TreeMultiSelect-Dw7FI3ic.js +0 -1
- package/storybook-static/assets/TreeMultiSelect.stories-BTQKFbeP.js +0 -35
- package/storybook-static/assets/TreePickerBase-rJISGJBT.js +0 -22
- package/storybook-static/assets/TreeSelect-CQ1vj_c9.js +0 -16
- package/storybook-static/assets/TreeSelect-Cp_lX0-B.js +0 -1
- package/storybook-static/assets/TreeSelect.stories-D6Q02Phx.js +0 -18
- package/storybook-static/assets/TreeTable.stories-YfyhkqH9.js +0 -83
- package/storybook-static/assets/WithTooltip-7X4HQR7L-BSQyvCOM.js +0 -9
- package/storybook-static/assets/axe-GLfyhAYL.js +0 -20
- package/storybook-static/assets/base-table-BNO0lnTL.css +0 -1
- package/storybook-static/assets/base-table-Dy3fEhQe.js +0 -18
- package/storybook-static/assets/blocks-ixiC6_NZ.js +0 -285
- package/storybook-static/assets/button-DZpTIXz2.js +0 -1
- package/storybook-static/assets/check-box-DByHwJGx.js +0 -1
- package/storybook-static/assets/chunk-242VQQM5-Dtm7LRbQ.js +0 -1
- package/storybook-static/assets/chunk-3LY4VQVK-BohfESrT.js +0 -6
- package/storybook-static/assets/chunk-LITCR56V-XaMGADKk.js +0 -18
- package/storybook-static/assets/contextMenu-BbMrBF3b.js +0 -2
- package/storybook-static/assets/date-7kR6zFX5.js +0 -461
- package/storybook-static/assets/date-segments-CzU9k5bl.js +0 -1
- package/storybook-static/assets/error-BRUjWXbJ.js +0 -1
- package/storybook-static/assets/file-CI_sonB1.js +0 -291
- package/storybook-static/assets/file-hArYcyES.js +0 -1
- package/storybook-static/assets/flex-C--89Z3g.js +0 -1
- package/storybook-static/assets/floating-ui.react-DLXcGGFR.js +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-DgyzUf7M.js +0 -1
- package/storybook-static/assets/formatters-BtIOYENB.js +0 -3
- package/storybook-static/assets/formulas-DRh9I2eS.js +0 -2
- package/storybook-static/assets/grid-DLxeTZJe.js +0 -1
- package/storybook-static/assets/hooks-DWeJq8G1.js +0 -5
- package/storybook-static/assets/iframe-BJGIOdSH.js +0 -1119
- package/storybook-static/assets/input-DXi75xv1.js +0 -1
- package/storybook-static/assets/mdx-react-shim-CmoAsjhK.js +0 -1
- package/storybook-static/assets/media-DWFaNgLM.js +0 -1
- package/storybook-static/assets/misc-BElIqBdV.css +0 -1
- package/storybook-static/assets/misc-DNZTbWc6.js +0 -5
- package/storybook-static/assets/notifications-DjtgzFqT.js +0 -1
- package/storybook-static/assets/number-Xkw1yPJo.js +0 -2
- package/storybook-static/assets/odata-C4Liwkjx.js +0 -1
- package/storybook-static/assets/odata-service-C2oJ-ZmZ.js +0 -1
- package/storybook-static/assets/odataStoryFixtures-eEGvvtmw.js +0 -25
- package/storybook-static/assets/picker-DsP4xCcJ.js +0 -2
- package/storybook-static/assets/popover-BiQHI7Wi.css +0 -1
- package/storybook-static/assets/popover-CuFTypCp.js +0 -2
- package/storybook-static/assets/preload-helper-B45gAKPr.js +0 -1
- package/storybook-static/assets/preset-select-SPNHA-mp.js +0 -5
- package/storybook-static/assets/pwa-B7uYfAPd.js +0 -640
- package/storybook-static/assets/queryClient-CA0puYc0.js +0 -567
- package/storybook-static/assets/react-18-CaNSmcD-.js +0 -9
- package/storybook-static/assets/react-3qMIUlAf.js +0 -9
- package/storybook-static/assets/react-dom-BC7xZNHy.js +0 -1
- package/storybook-static/assets/select-sUla5-3b.js +0 -1
- package/storybook-static/assets/slider--Yp_sa_W.js +0 -2
- package/storybook-static/assets/sortable-jALaQqYE.js +0 -1
- package/storybook-static/assets/syntaxhighlighter-RTCFPKCB-u_WDwfDn.js +0 -6
- package/storybook-static/assets/text-D5xgciF8.js +0 -4
- package/storybook-static/assets/theming-oB64gsjY.js +0 -39
- package/storybook-static/assets/treeStoryFixtures-Y_nnjz0_.js +0 -1
- package/storybook-static/assets/ui-DWDaBPQx.js +0 -1
- package/storybook-static/assets/ui.module-wFHXkJzp.js +0 -1
- package/storybook-static/assets/uiClasses-CaHp0EWd.js +0 -1
- package/storybook-static/assets/useODataSelectBase-DjlPxmxr.js +0 -1
- package/storybook-static/assets/useODataTreeData-1W6cbuec.js +0 -1
- package/storybook-static/assets/utils-DzbSigQl.js +0 -1
- package/storybook-static/assets/valueState-GnkKWBTr.js +0 -277
- /package/storybook-static/assets/{DropdownMenu-BgzIzwzM.css → ContextMenu-BgzIzwzM.css} +0 -0
- /package/storybook-static/assets/{Grid-K9R_IHaw.css → GridContainer-K9R_IHaw.css} +0 -0
- /package/storybook-static/assets/{InputFiles-ByK52qUe.css → InputFilesList-ByK52qUe.css} +0 -0
- /package/storybook-static/assets/{MultiSelect-BoIwmje6.css → MultiSelectToken-BoIwmje6.css} +0 -0
- /package/storybook-static/assets/{slider-DMDFRH6B.css → Slider-DMDFRH6B.css} +0 -0
- /package/storybook-static/assets/{Flex-IXK2se1Y.css → useFlexClasses-IXK2se1Y.css} +0 -0
- /package/storybook-static/assets/{picker-DzBkX15M.css → usePickerTriggerController-DzBkX15M.css} +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CrnMVMTc.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-Dz3dJBcm.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,p:`p`,pre:`pre`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/OData, таблицы и формулы`}),`
|
|
2
|
+
`,(0,c.jsx)(t.h1,{id:`odata-metadata-таблицы-и-формулы`,children:`OData metadata, таблицы и формулы`}),`
|
|
3
|
+
`,(0,c.jsxs)(t.p,{children:[`Здесь находятся чистые OData V2 helpers и runtime contracts для TanStack Table. Они не выполняют запросы. Для SAP Gateway transport, SSO, X-CSRF, metadata fetch и TanStack Query operation используйте `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/odata`}),`.`]}),`
|
|
4
|
+
`,(0,c.jsxs)(t.h2,{id:`odata-service-metadata-и-odata-v2-values`,children:[(0,c.jsx)(t.code,{children:`odata-service`}),`: metadata и OData V2 values`]}),`
|
|
5
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
6
|
+
buildEntityPath,
|
|
7
|
+
buildODataFilter,
|
|
8
|
+
buildODataOrderBy,
|
|
9
|
+
odataFormatValue,
|
|
10
|
+
parseServiceMetadata,
|
|
11
|
+
wrapODataParams
|
|
12
|
+
} from "@ryuzaki13/react-foundation-lib/odata-service";
|
|
13
|
+
`})}),`
|
|
14
|
+
`,(0,c.jsx)(t.h3,{id:`основной-поток`,children:`Основной поток`}),`
|
|
15
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`metadata XML → parseServiceMetadata → typed metadata/config
|
|
16
|
+
→ wrapODataParams + builder/filter/sort → foundation-api transport
|
|
17
|
+
→ metadata-aware parse/format → entity/feature mapping
|
|
18
|
+
`})}),`
|
|
19
|
+
`,(0,c.jsx)(t.p,{children:`Не передавайте в helpers невалидный external JSON как будто он уже соответствует domain model. Metadata parser описывает OData contract, а domain validation/mapping остаётся у host entity/feature.`}),`
|
|
20
|
+
`,(0,c.jsx)(t.h3,{id:`metadata-paths-и-параметры`,children:`Metadata, paths и параметры`}),`
|
|
21
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Результат |
|
|
22
|
+
| ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| `,(0,c.jsx)(t.code,{children:`parseServiceMetadata(xmlText)`}),` | Парсит OData V2 XML в `,(0,c.jsx)(t.code,{children:`ServiceMetadata`}),`: entities, properties, FunctionImports, keys, parameters и типы. Некорректный XML/metadata — ошибка boundary. |
|
|
24
|
+
| `,(0,c.jsx)(t.code,{children:`resolveMetadataColumnLabel(column)`}),` | Label с fallback на column id. |
|
|
25
|
+
| `,(0,c.jsx)(t.code,{children:`collectFilterableColumns`}),`, `,(0,c.jsx)(t.code,{children:`collectFilterableColumnsIds`}),` | Отбирают filterable metadata fields. |
|
|
26
|
+
| `,(0,c.jsx)(t.code,{children:`wrapODataParams(params)`}),`, `,(0,c.jsx)(t.code,{children:`unwrapODataParams(params)`}),` | Разделяют значения параметров и их OData type; используйте перед builder, а не сериализуйте вручную. |
|
|
27
|
+
| `,(0,c.jsx)(t.code,{children:`buildParameterEntries`}),`, `,(0,c.jsx)(t.code,{children:`buildEntityParameters`}),` | Строят key/predicate часть entity из metadata и wrapped params. |
|
|
28
|
+
| `,(0,c.jsx)(t.code,{children:`buildEntityPath`}),`, `,(0,c.jsx)(t.code,{children:`buildEntityOperationPath`}),` | Возвращают metadata-aware путь entity/operation. |
|
|
29
|
+
| `,(0,c.jsx)(t.code,{children:`buildFunctionImportParameters`}),`, `,(0,c.jsx)(t.code,{children:`buildFunctionImportPath`}),` | Строят FunctionImport URL/query через `,(0,c.jsx)(t.code,{children:`URLSearchParams`}),`. |`]}),`
|
|
30
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const metadata = parseServiceMetadata(metadataXml);
|
|
31
|
+
const params = wrapODataParams({ id: "42" });
|
|
32
|
+
const path = buildEntityPath(entityMetadata, { service: "DEMO_SRV", target: "Items" }, params);
|
|
33
|
+
`})}),`
|
|
34
|
+
`,(0,c.jsxs)(t.p,{children:[`Типы `,(0,c.jsx)(t.code,{children:`ServiceMetadata`}),`, `,(0,c.jsx)(t.code,{children:`EntityMetadata`}),`, `,(0,c.jsx)(t.code,{children:`FunctionImportMetadata`}),`, `,(0,c.jsx)(t.code,{children:`EntityColumnProperty`}),`, `,(0,c.jsx)(t.code,{children:`ODataMetaType`}),`, `,(0,c.jsx)(t.code,{children:`WrappedODataParameters`}),` и `,(0,c.jsx)(t.code,{children:`ODataServiceConfig`}),` экспортируются из того же subpath. Параметры entity и FunctionImport — разные OData contracts; не смешивайте их.`]}),`
|
|
35
|
+
`,(0,c.jsx)(t.h3,{id:`значения-и-formatter-registry`,children:`Значения и formatter registry`}),`
|
|
36
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Назначение |
|
|
37
|
+
| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
38
|
+
| `,(0,c.jsx)(t.code,{children:`odataFormatValue(type, value)`}),` | Сериализует primitive в OData literal с escaping/suffix/date semantics. |
|
|
39
|
+
| `,(0,c.jsx)(t.code,{children:`odataParseValue(type, value)`}),` | Возвращает primitive/date или исходное `,(0,c.jsx)(t.code,{children:`unknown`}),`, если значение не может быть безопасно преобразовано. |
|
|
40
|
+
| `,(0,c.jsx)(t.code,{children:`odataParseValueByMetadata(descriptor, value)`}),` | Парсит с учётом metadata descriptor, включая ABAP boolean-like поле. |
|
|
41
|
+
| `,(0,c.jsx)(t.code,{children:`defaultODataTypeValue`}),`, `,(0,c.jsx)(t.code,{children:`defaultControlTypeValue`}),` | Default value для OData/base control type. |
|
|
42
|
+
| `,(0,c.jsx)(t.code,{children:`getBaseTypeFromODataType`}),`, `,(0,c.jsx)(t.code,{children:`isODataBooleanType`}),`, `,(0,c.jsx)(t.code,{children:`isODataNumericType`}),`, `,(0,c.jsx)(t.code,{children:`isODataIntegerType`}),`, `,(0,c.jsx)(t.code,{children:`isODataDateType`}),` | Type classification. |
|
|
43
|
+
| `,(0,c.jsx)(t.code,{children:`getFormattersFor`}),`, `,(0,c.jsx)(t.code,{children:`getFormattersForBaseType`}),`, `,(0,c.jsx)(t.code,{children:`getFormatter`}),`, `,(0,c.jsx)(t.code,{children:`getFormatterForBaseType`}),` | Читают встроенный formatter descriptions по type/id. |
|
|
44
|
+
| `,(0,c.jsx)(t.code,{children:`createFormatter`}),`, `,(0,c.jsx)(t.code,{children:`createBooleanFormatter`}),`, `,(0,c.jsx)(t.code,{children:`createStringFormatter`}),`, `,(0,c.jsx)(t.code,{children:`createNumberFormatter`}),`, `,(0,c.jsx)(t.code,{children:`createDateFormatter`}),` | Создают typed formatter definitions с Zod input schema. |`]}),`
|
|
45
|
+
`,(0,c.jsx)(t.h3,{id:`фильтры-sorts-и-sql-like-expressions`,children:`Фильтры, sorts и SQL-like expressions`}),`
|
|
46
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`FilterExpression<T>`}),` — serializable дерево с `,(0,c.jsx)(t.code,{children:`FilterConditionExpression`}),` и `,(0,c.jsx)(t.code,{children:`FilterNestedExpression`}),`. Постройте его через `,(0,c.jsx)(t.code,{children:`createFilter`}),`, `,(0,c.jsx)(t.code,{children:`createFilterEqual`}),`, `,(0,c.jsx)(t.code,{children:`createFilterEqualFalsy`}),`, `,(0,c.jsx)(t.code,{children:`createFilterContains`}),`, `,(0,c.jsx)(t.code,{children:`createFilterBetween`}),`, объедините через `,(0,c.jsx)(t.code,{children:`mergeFilterExpressions`}),`, затем вызовите `,(0,c.jsx)(t.code,{children:`buildODataFilter`}),` или `,(0,c.jsx)(t.code,{children:`buildODataFilterRecursive`}),`.`]}),`
|
|
47
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const expression = createFilterEqual<{ status: string }, string>("status", "active");
|
|
48
|
+
const filter = buildODataFilter(expression);
|
|
49
|
+
`})}),`
|
|
50
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Контракт |
|
|
51
|
+
| ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
52
|
+
| `,(0,c.jsx)(t.code,{children:`FilterOperation`}),`, `,(0,c.jsx)(t.code,{children:`FILTER_OPERATIONS`}),`, `,(0,c.jsx)(t.code,{children:`isFilterOperation`}),`, `,(0,c.jsx)(t.code,{children:`resolveOperationLabel`}),` | Стабильный список и validation operator-ов. |
|
|
53
|
+
| `,(0,c.jsx)(t.code,{children:`Sort<T>`}),`, `,(0,c.jsx)(t.code,{children:`toggleSort`}),`, `,(0,c.jsx)(t.code,{children:`getSortIndex`}),`, `,(0,c.jsx)(t.code,{children:`getSortIndicator`}),` | Immutable sort state для UI. |
|
|
54
|
+
| `,(0,c.jsx)(t.code,{children:`buildODataOrder`}),`, `,(0,c.jsx)(t.code,{children:`resolveEffectiveSorts`}),`, `,(0,c.jsx)(t.code,{children:`buildODataOrderBy`}),` | Сериализуют sort/grouping для OData. |
|
|
55
|
+
| `,(0,c.jsx)(t.code,{children:`createSqlFilterEqual`}),`, `,(0,c.jsx)(t.code,{children:`createSqlFilterIn`}),`, `,(0,c.jsx)(t.code,{children:`createSqlFilterGroup`}),`, `,(0,c.jsx)(t.code,{children:`buildSqlFilter`}),` | Отдельный SQL-filter contract: field id предварительно валидируется. Не подставляйте произвольный пользовательский field id. |`]}),`
|
|
56
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`ODataCompiledFilterDefinition`}),`, `,(0,c.jsx)(t.code,{children:`sanitizeFilterDefinitions`}),`, `,(0,c.jsx)(t.code,{children:`sanitizeFilterValues`}),`, `,(0,c.jsx)(t.code,{children:`mergeFilterValuePatch`}),`, `,(0,c.jsx)(t.code,{children:`compileFiltersToExpression`}),`, `,(0,c.jsx)(t.code,{children:`flattenFilterValuesToODataDependencies`}),` предназначены для serializable UI filter configuration. Санитизация создаёт canonical configuration; не записывайте её поверх активного пользовательского draft без явно названной save/restore boundary.`]}),`
|
|
57
|
+
`,(0,c.jsxs)(t.h2,{id:`odata-codetext-collections`,children:[(0,c.jsx)(t.code,{children:`odata`}),`: code/text collections`]}),`
|
|
58
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { buildSeparatedArrays, findCollectionPairs, ODataDateFormat } from "@ryuzaki13/react-foundation-lib/odata";
|
|
59
|
+
`})}),`
|
|
60
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Назначение |
|
|
61
|
+
| ------------------------------------------------------ | ------------------------------------------------------------------------- |
|
|
62
|
+
| `,(0,c.jsx)(t.code,{children:`buildSeparatedArrays(collection, ...)`}),` | Разделяет OData collection на code/text arrays для select-like consumers. |
|
|
63
|
+
| `,(0,c.jsx)(t.code,{children:`findCollectionPairs(...)`}),` | Находит code/text pair по collection/dependency filters. |
|
|
64
|
+
| `,(0,c.jsx)(t.code,{children:`ODataDateFormat`}),` | Константы date formats для legacy OData values. |
|
|
65
|
+
| `,(0,c.jsx)(t.code,{children:`CollectionItem`}),`, `,(0,c.jsx)(t.code,{children:`CollectionPair`}),`, `,(0,c.jsx)(t.code,{children:`DependencyFilter`}),` | Публичные contracts коллекций. |`]}),`
|
|
66
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`useODataCollectionStore`}),` и `,(0,c.jsx)(t.code,{children:`odataCollectionConfig`}),` описаны на странице Runtime/state: это UI defaults, а не OData transport/cache.`]}),`
|
|
67
|
+
`,(0,c.jsxs)(t.h2,{id:`table-tanstack-table-contracts`,children:[(0,c.jsx)(t.code,{children:`table`}),`: TanStack Table contracts`]}),`
|
|
68
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { buildTableColumnLayout, createTableColumnsFromODataMetadata, useTableRowSelection } from "@ryuzaki13/react-foundation-lib/table";
|
|
69
|
+
`})}),`
|
|
70
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`TableColumnDef<TData>`}),` расширяет TanStack `,(0,c.jsx)(t.code,{children:`ColumnDef`}),`, а `,(0,c.jsx)(t.code,{children:`TableColumnMeta`}),`/`,(0,c.jsx)(t.code,{children:`TableColumnFormattingMeta`}),` описывают common metadata. Не мутируйте исходные `,(0,c.jsx)(t.code,{children:`ColumnDef`}),`: layout/order/sizing helpers возвращают новое состояние.`]}),`
|
|
71
|
+
`,(0,c.jsxs)(t.p,{children:[`| Группа | Public API |
|
|
72
|
+
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
73
|
+
| Layout | `,(0,c.jsx)(t.code,{children:`resolveTableColumnOrder`}),`, `,(0,c.jsx)(t.code,{children:`buildTableColumnLayout`}),`, `,(0,c.jsx)(t.code,{children:`TableColumnLayoutItem`}),`, `,(0,c.jsx)(t.code,{children:`BuildTableColumnLayoutArgs`}),`. |
|
|
74
|
+
| Order | `,(0,c.jsx)(t.code,{children:`normalizeTableColumnOrder`}),`, `,(0,c.jsx)(t.code,{children:`reorderTableHeaderColumns`}),`, `,(0,c.jsx)(t.code,{children:`resolveReorderedTableHeaderColumns`}),`, `,(0,c.jsx)(t.code,{children:`TableColumnOrderState`}),`. |
|
|
75
|
+
| Sizing | `,(0,c.jsx)(t.code,{children:`DEFAULT_TABLE_COLUMN_MIN_WIDTH`}),`, `,(0,c.jsx)(t.code,{children:`normalizeTableColumnWidth`}),`, `,(0,c.jsx)(t.code,{children:`normalizeTableColumnSizing`}),`, `,(0,c.jsx)(t.code,{children:`patchTableColumnWidth`}),`, `,(0,c.jsx)(t.code,{children:`removeTableColumnWidth`}),`, `,(0,c.jsx)(t.code,{children:`TableColumnSizingState`}),`. |
|
|
76
|
+
| Selection | `,(0,c.jsx)(t.code,{children:`TableSelectionMode`}),`, `,(0,c.jsx)(t.code,{children:`toggleTableRowSelection`}),`, `,(0,c.jsx)(t.code,{children:`pruneTableRowSelection`}),`, `,(0,c.jsx)(t.code,{children:`useTableRowSelection`}),`. |
|
|
77
|
+
| Metadata | `,(0,c.jsx)(t.code,{children:`getTableColumnMeta`}),`, `,(0,c.jsx)(t.code,{children:`getTableColumnFormattingMeta`}),`, `,(0,c.jsx)(t.code,{children:`resolveTableLength`}),`, `,(0,c.jsx)(t.code,{children:`isTableInteractiveElement`}),`. |`]}),`
|
|
78
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`useTableRowSelection`}),` синхронизирует selection state с TanStack Table. Передавайте устойчивый `,(0,c.jsx)(t.code,{children:`getRowId`}),` на business identity, не array index: изменяемая сортировка/фильтрация иначе свяжет selection с неверной строкой.`]}),`
|
|
79
|
+
`,(0,c.jsx)(t.h3,{id:`metadata-driven-odata-adapter`,children:`Metadata-driven OData adapter`}),`
|
|
80
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Назначение |
|
|
81
|
+
| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |
|
|
82
|
+
| `,(0,c.jsx)(t.code,{children:`createTableColumnsFromODataMetadata(options)`}),` | Строит `,(0,c.jsx)(t.code,{children:`TableColumnDef`}),` из OData metadata. |
|
|
83
|
+
| `,(0,c.jsx)(t.code,{children:`enrichTableColumnsWithODataFormatting(columns, options)`}),` | Добавляет typed formatting metadata к существующим columns без изменения OData transport. |
|
|
84
|
+
| `,(0,c.jsx)(t.code,{children:`createTableColumnVisibilityFromODataMetadata(...)`}),` | Формирует initial column visibility. |
|
|
85
|
+
| `,(0,c.jsx)(t.code,{children:`resolveTableColumnFormattingContextFromODataColumn(column)`}),` | Создаёт formatter context для одного metadata column. |
|
|
86
|
+
| `,(0,c.jsx)(t.code,{children:`resolveStableColumnId(column)`}),` | Определяет устойчивый id table column. |`]}),`
|
|
87
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`meta.formatting`}),` — экспериментальный presentation contract, не OData request. Если pipeline требует дополнительные runtime fields, owner Query должен расширить select/dependencies через documented formatter pipeline API до fetch.`]}),`
|
|
88
|
+
`,(0,c.jsxs)(t.h2,{id:`tree-table-построение-дерева`,children:[(0,c.jsx)(t.code,{children:`tree-table`}),`: построение дерева`]}),`
|
|
89
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { buildTreeTableRows, transposeFlatRowsToTreeTableRows } from "@ryuzaki13/react-foundation-lib/tree-table";
|
|
90
|
+
`})}),`
|
|
91
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Контракт |
|
|
92
|
+
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
|
|
93
|
+
| `,(0,c.jsx)(t.code,{children:`buildTreeTableRows(rows, hierarchy)`}),` | Строит `,(0,c.jsx)(t.code,{children:`TreeTableBuildResult`}),`: tree rows и diagnostics от flat hierarchy. |
|
|
94
|
+
| `,(0,c.jsx)(t.code,{children:`transposeFlatRowsToTreeTableRows(rows, options)`}),` | Создаёт display tree/синтетические nodes из flat rows. |
|
|
95
|
+
| `,(0,c.jsx)(t.code,{children:`TreeTableFlatHierarchy`}),`, `,(0,c.jsx)(t.code,{children:`TreeTableRowNode`}),`, `,(0,c.jsx)(t.code,{children:`TreeTableTransposedRow`}),`, `,(0,c.jsx)(t.code,{children:`TreeTableTransposeFlatRowsOptions`}),` | Публичные contracts и metadata fields. |`]}),`
|
|
96
|
+
`,(0,c.jsx)(t.p,{children:`Функции не меняют исходные rows. Используйте explicit stable row/parent ids; не рассчитывайте на визуальный label как идентичность.`}),`
|
|
97
|
+
`,(0,c.jsxs)(t.h2,{id:`formulas-registry-calculated-columns`,children:[(0,c.jsx)(t.code,{children:`formulas`}),`: registry calculated columns`]}),`
|
|
98
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
99
|
+
compileTableFormula,
|
|
100
|
+
configureTableFormulaRegistry,
|
|
101
|
+
createTableFormulaRegistry,
|
|
102
|
+
executeTableFormula,
|
|
103
|
+
validateTableFormulaDependencies
|
|
104
|
+
} from "@ryuzaki13/react-foundation-lib/formulas";
|
|
105
|
+
`})}),`
|
|
106
|
+
`,(0,c.jsx)(t.h3,{id:`инициализация`,children:`Инициализация`}),`
|
|
107
|
+
`,(0,c.jsxs)(t.p,{children:[`Host владеет `,(0,c.jsx)(t.code,{children:`TableFormulaDefinition[]`}),` и один раз, до первого compile/validate/execute, создаёт и устанавливает registry:`]}),`
|
|
108
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const registry = createTableFormulaRegistry([
|
|
109
|
+
{
|
|
110
|
+
id: "margin",
|
|
111
|
+
name: "Маржа",
|
|
112
|
+
description: "Выручка минус себестоимость",
|
|
113
|
+
fn: (ctx) => ctx.num(0) - ctx.num(1)
|
|
114
|
+
}
|
|
115
|
+
]);
|
|
116
|
+
configureTableFormulaRegistry(registry);
|
|
117
|
+
`})}),`
|
|
118
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Результат |
|
|
119
|
+
| ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
|
120
|
+
| `,(0,c.jsx)(t.code,{children:`createTableFormulaContext({ keys, rowData })`}),` | Контекст `,(0,c.jsx)(t.code,{children:`key/value/num(index)`}),` для formula function. |
|
|
121
|
+
| `,(0,c.jsx)(t.code,{children:`createTableFormulaRegistry(definitions)`}),` | Проверяет non-empty unique ids и создаёт immutable registry. |
|
|
122
|
+
| `,(0,c.jsx)(t.code,{children:`getTableFormulaList`}),`, `,(0,c.jsx)(t.code,{children:`getTableFormulaById`}),` | Читают активный registry. |
|
|
123
|
+
| `,(0,c.jsx)(t.code,{children:`compileTableFormula({ formulaId, keys? })`}),` | Компилирует executor или controlled compile result. |
|
|
124
|
+
| `,(0,c.jsx)(t.code,{children:`executeTableFormula({ formulaId, keys?, rowData })`}),` | Одноразово выполняет formula и возвращает `,(0,c.jsx)(t.code,{children:`TableFormulaExecutionResult`}),`, не выбрасывая formula runtime error наружу. |
|
|
125
|
+
| `,(0,c.jsx)(t.code,{children:`validateTableFormulaDependencies(args)`}),` | Проверяет formula id, dependency availability, out-of-range/unused indices. |`]}),`
|
|
126
|
+
`,(0,c.jsxs)(t.p,{children:[`Formula function возвращает finite number. Ошибочные состояния (`,(0,c.jsx)(t.code,{children:`formula_not_found`}),`, `,(0,c.jsx)(t.code,{children:`runtime_error`}),`, `,(0,c.jsx)(t.code,{children:`invalid_result`}),`) являются данными результата, а не поводом silently подставить ноль. Обработайте их у formatter/table owner и показывайте безопасный fallback.`]})]})}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{
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CrnMVMTc.js";import{i as n,r}from"./react-qN2cStNd.js";import{c as i,l as a,m as o}from"./blocks-Dz3dJBcm.js";var s;function c(){return(c=e((()=>{s=`# OData API Helpers
|
|
2
2
|
|
|
3
3
|
Этот каталог содержит helper-функции для выполнения OData-запросов с опорой на metadata сервиса.
|
|
4
4
|
|
|
@@ -759,5 +759,5 @@ Promise<{
|
|
|
759
759
|
- \`parseODataResponseByMetadata.ts\` — автопарсинг ответа по metadata
|
|
760
760
|
- \`useODataMetadataQuery.ts\` — загрузка metadata
|
|
761
761
|
- \`wrapParams.ts\` — helper для сборки \`ODataParameters\`
|
|
762
|
-
`}))
|
|
763
|
-
`,(0,d.jsx)(
|
|
762
|
+
`})))()}function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a,{title:`Документация/shared/api/odata/fetchFn`}),`
|
|
763
|
+
`,(0,d.jsx)(i,{children:s})]})}function u(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}var d;function f(){return(f=e((()=>{d=t(),r(),o(),c()})))()}f();export{u as default};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-CrnMVMTc.js";import{D as r,E as i,O as a,k as o}from"./odata-BaxgzNGj.js";var s,c;function l(){return(l=e((()=>{s=[{code:`R01`,text:`Северный регион`,branches:[{code:`B0101`,text:`Подразделение Альфа`,teams:[{code:`T0101`,text:`Команда поддержки`,owners:[{code:`P0001`,text:`Ответственный 1`},{code:`P0002`,text:`Ответственный 2`},{code:`P0003`,text:`Ответственный 3`}]},{code:`T0102`,text:`Команда внедрения`,owners:[{code:`P0004`,text:`Ответственный 4`},{code:`P0005`,text:`Ответственный 5`}]}]},{code:`B0102`,text:`Подразделение Бета`,teams:[{code:`T0201`,text:`Команда аналитики`,owners:[{code:`P0006`,text:`Ответственный 6`},{code:`P0007`,text:`Ответственный 7`}]}]}]},{code:`R02`,text:`Южный регион`,branches:[{code:`B0201`,text:`Подразделение Гамма`,teams:[{code:`T0301`,text:`Команда сопровождения`,owners:[{code:`P0008`,text:`Ответственный 8`},{code:`P0009`,text:`Ответственный 9`}]}]}]},{code:`R03`,text:`Восточный регион`,branches:[{code:`B0301`,text:`Подразделение Дельта`,teams:[{code:`T0401`,text:`Команда развития`,owners:[{code:`P0010`,text:`Ответственный 10`},{code:`P0011`,text:`Ответственный 11`}]}]},{code:`B0302`,text:`Подразделение Омега`,teams:[{code:`T0501`,text:`Команда качества`,owners:[{code:`P0012`,text:`Ответственный 12`},{code:`P0013`,text:`Ответственный 13`}]}]}]}],c=s.flatMap(e=>e.branches.flatMap(t=>t.teams.flatMap(n=>n.owners.map(r=>({REGION:e.code,REGION_Text:e.text,BRANCH:t.code,BRANCH_Text:t.text,TEAM:n.code,TEAM_Text:n.text,OWNER:r.code,OWNER_Text:r.text})))))})))()}function u(e,t,n=200){return new Response(e,{status:n,headers:{"Content-Type":t}})}function d(e,t){return new Promise((n,r)=>{let i=()=>{window.clearTimeout(a),r(t?.reason??new DOMException(`Ожидание OData mock отменено`,`AbortError`))},a=window.setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e);if(t?.aborted){i();return}t?.addEventListener(`abort`,i,{once:!0})})}function f(e,t){for(let n of t.values())if(e.includes(`/${n.service}/`))return n}function p(){let e=window.fetch,t=new Map;return{originalFetch:e,registrations:t,registrationIdsByCanvas:new WeakMap,mockedFetch:async(n,r)=>{let i=typeof n==`string`?n:n instanceof URL?n.toString():n.url,a=new URL(i,window.location.origin).pathname,o=f(a,t);return o?(o.mode===`loading`&&await d(1200,r?.signal??(typeof Request<`u`&&n instanceof Request?n.signal:void 0)),a.endsWith(`/${o.service}/$metadata`)?o.mode===`metadataError`?u(`Ошибка чтения metadata`,`text/plain`,500):u(y,`application/xml`):a.endsWith(`/${o.service}/DemoReferenceItems`)?o.mode===`collectionError`?u(JSON.stringify({error:`Ошибка загрузки справочника`}),`application/json`,500):u(JSON.stringify({d:{results:c}}),`application/json`):e(n,r)):e(n,r)}}}function m(e){let t=e.parameters.odataMockMode??`success`,n=C??p(),r=(e.canvasElement&&n.registrationIdsByCanvas.get(e.canvasElement))??Symbol(`odata-story-fetch-mock`),i=Symbol(`odata-story-fetch-mock-version`);return C=n,e.canvasElement&&n.registrationIdsByCanvas.set(e.canvasElement,r),n.registrations.delete(r),n.registrations.set(r,{mode:t,service:S[t],version:i}),window.fetch=n.mockedFetch,()=>{n.registrations.get(r)?.version===i&&(n.registrations.delete(r),e.canvasElement&&n.registrationIdsByCanvas.delete(e.canvasElement),!(n.registrations.size>0||C!==n)&&(window.fetch===n.mockedFetch&&(window.fetch=n.originalFetch),C=void 0))}}var h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(){return(k=e((()=>{h=t(),o(),r(),l(),g=n(),_=`DEMO_REFERENCE_SRV`,v=`DemoReferenceItems`,y=`<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
|
|
3
|
+
<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="2.0">
|
|
4
|
+
<Schema Namespace="DEMO_REFERENCE_SRV" xmlns="http://schemas.microsoft.com/ado/2008/09/edm" xmlns:sap="http://www.sap.com/Protocols/SAPData">
|
|
5
|
+
<EntityType Name="DemoReferenceItemsType" sap:semantics="aggregate" sap:label="Демо-справочник" sap:content-version="1">
|
|
6
|
+
<Key>
|
|
7
|
+
<PropertyRef Name="ID" />
|
|
8
|
+
</Key>
|
|
9
|
+
<Property Name="ID" Type="Edm.String" Nullable="false" sap:sortable="false" sap:filterable="false" />
|
|
10
|
+
<Property Name="REGION" Type="Edm.String" MaxLength="4" sap:aggregation-role="dimension" sap:display-format="UpperCase" sap:text="REGION_Text" />
|
|
11
|
+
<Property Name="REGION_Text" Type="Edm.String" MaxLength="40" sap:label="Регион" sap:quickinfo="Краткое описание" sap:creatable="false" sap:updatable="false" />
|
|
12
|
+
<Property Name="BRANCH" Type="Edm.String" MaxLength="8" sap:aggregation-role="dimension" sap:display-format="UpperCase" sap:text="BRANCH_Text" />
|
|
13
|
+
<Property Name="BRANCH_Text" Type="Edm.String" MaxLength="40" sap:label="Подразделение" sap:quickinfo="Среднее описание" sap:creatable="false" sap:updatable="false" />
|
|
14
|
+
<Property Name="TEAM" Type="Edm.String" MaxLength="8" sap:aggregation-role="dimension" sap:display-format="UpperCase" sap:text="TEAM_Text" />
|
|
15
|
+
<Property Name="TEAM_Text" Type="Edm.String" MaxLength="40" sap:label="Команда" sap:quickinfo="Среднее описание" sap:creatable="false" sap:updatable="false" />
|
|
16
|
+
<Property Name="OWNER" Type="Edm.String" MaxLength="8" sap:aggregation-role="dimension" sap:display-format="UpperCase" sap:text="OWNER_Text" />
|
|
17
|
+
<Property Name="OWNER_Text" Type="Edm.String" MaxLength="40" sap:label="Ответственный" sap:quickinfo="Среднее описание" sap:creatable="false" sap:updatable="false" />
|
|
18
|
+
<Property Name="CNT" Type="Edm.Byte" sap:aggregation-role="measure" sap:filterable="false" />
|
|
19
|
+
</EntityType>
|
|
20
|
+
<EntityContainer Name="DEMO_REFERENCE_SRV_Entities" m:IsDefaultEntityContainer="true">
|
|
21
|
+
<EntitySet Name="DemoReferenceItems" EntityType="DEMO_REFERENCE_SRV.DemoReferenceItemsType" sap:creatable="false" sap:updatable="false" sap:deletable="false" sap:content-version="1" />
|
|
22
|
+
</EntityContainer>
|
|
23
|
+
</Schema>
|
|
24
|
+
</edmx:DataServices>
|
|
25
|
+
</edmx:Edmx>`,b={region:`R01`,regionText:`Северный регион`,branch:`B0101`,branchAlt:`B0102`,team:`T0101`,teamAlt:`T0201`,owner:`P0001`,ownerAlt:`P0006`},x={REGION:{placeholder:`Регион`},BRANCH:{placeholder:`Подразделение`,hideCode:!0},TEAM:{placeholder:`Команда`},OWNER:{placeholder:`Ответственный`}},S={success:_,loading:`DEMO_REFERENCE_LOADING_SRV`,metadataError:`DEMO_REFERENCE_METADATA_ERROR_SRV`,collectionError:`DEMO_REFERENCE_COLLECTION_ERROR_SRV`},w=e=>{let t=(0,h.useMemo)(()=>new a({defaultOptions:{queries:{retry:!1,throwOnError:!1},mutations:{retry:!1,throwOnError:!1}}}),[]),n=e;return(0,h.useEffect)(()=>()=>{t.clear()},[t]),(0,g.jsx)(i,{client:t,children:(0,g.jsx)(n,{})})},T={service:_,target:v},E={success:T,loading:{...T,service:S.loading},metadataError:{...T,service:S.metadataError},collectionError:{...T,service:S.collectionError}},D={codeKey:`REGION`,minSearchTextLength:1,minSearchCodeLength:1,searchDebounceDelay:250,maxVisibleItems:100},O={placeholder:`Регион`},w.__docgenInfo={description:`Создаёт изолированный QueryClient без IndexedDB persistence для каждой OData story.`,methods:[],displayName:`withODataStoryQueryClient`}})))()}export{m as a,x as c,k as i,w as l,T as n,E as o,O as r,b as s,D as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CrnMVMTc.js";import{i as n,r}from"./react-qN2cStNd.js";import{c as i,l as a,m as o}from"./blocks-Dz3dJBcm.js";var s;function c(){return(c=e((()=>{s=`# persisted
|
|
2
2
|
|
|
3
3
|
Внутренний infrastructural-модуль для переиспользуемой работы с сохранёнными записями: \`variant\`, \`view-config\`, \`preset\` и похожими сущностями.
|
|
4
4
|
|
|
@@ -596,5 +596,5 @@ Capability-based модель нужна именно для того, чтоб
|
|
|
596
596
|
- Вынесена ли доменная бизнес-логика за пределы \`persisted\`?
|
|
597
597
|
|
|
598
598
|
Если на все вопросы есть понятный ответ, ресурс почти наверняка хорошо ложится на этот модуль.
|
|
599
|
-
`}))
|
|
600
|
-
`,(0,d.jsx)(
|
|
599
|
+
`})))()}function l(e){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(a,{title:`Документация/shared/api/persisted`}),`
|
|
600
|
+
`,(0,d.jsx)(i,{children:s})]})}function u(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,d.jsx)(t,{...e,children:(0,d.jsx)(l,{...e})}):l(e)}var d;function f(){return(f=e((()=>{d=t(),r(),o(),c()})))()}f();export{u as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";var t,n,r,i;function a(){return(a=e((()=>{t=`modulepreload`,n=function(e,t){return new URL(e,t).href},r={},i=function(e,i,a){let o=Promise.resolve();if(i&&i.length>0){let e=document.getElementsByTagName(`link`),s=document.querySelector(`meta[property=csp-nonce]`),c=s?.nonce||s?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function u(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}o=l(i.map(i=>{if(i=n(i,a),i=u(i),i in r)return;r[i]=!0;let o=i.endsWith(`.css`);for(let t=e.length-1;t>=0;t--){let n=e[t];if(n.href===i&&(!o||n.rel===`stylesheet`))return}let s=document.createElement(`link`);if(s.rel=o?`stylesheet`:t,o||(s.as=`script`),s.crossOrigin=``,s.href=i,c&&s.setAttribute(`nonce`,c),document.head.appendChild(s),o)return new Promise((e,t)=>{s.addEventListener(`load`,e),s.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${i}`)))})}))}function s(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return o.then(t=>{for(let e of t||[])e.status===`rejected`&&s(e.reason);return e().catch(s)})}})))()}export{a as n,i as t};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-CrnMVMTc.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-Dz3dJBcm.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,p:`p`,pre:`pre`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Чистые utilities и contracts`}),`
|
|
2
|
+
`,(0,c.jsx)(t.h1,{id:`чистые-utilities-и-contracts`,children:`Чистые utilities и contracts`}),`
|
|
3
|
+
`,(0,c.jsx)(t.p,{children:`Эти API не создают global state и обычно не требуют React. Они полезны в entity/feature code, если задача остаётся предметно-независимой. Не переносите в них доменные правила только ради повторного использования.`}),`
|
|
4
|
+
`,(0,c.jsx)(t.h2,{id:`коллекции-порядок-и-ограниченная-история`,children:`Коллекции, порядок и ограниченная история`}),`
|
|
5
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { arrayGroupBy, arrayUniqueBy, moveArrayItem } from "@ryuzaki13/react-foundation-lib/array";
|
|
6
|
+
import { pushBoundedCopyStackItem } from "@ryuzaki13/react-foundation-lib/bounded-copy-stack";
|
|
7
|
+
`})}),`
|
|
8
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Поведение |
|
|
9
|
+
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
10
|
+
| `,(0,c.jsx)(t.code,{children:`arrayGroupBy`}),`, `,(0,c.jsx)(t.code,{children:`arrayGroupByToArray`}),`, `,(0,c.jsx)(t.code,{children:`arrayToMap`}),` | Группируют/индексируют по полю объекта. `,(0,c.jsx)(t.code,{children:`arrayToMap`}),` оставляет первое значение ключа. |
|
|
11
|
+
| `,(0,c.jsx)(t.code,{children:`arrayUniqueBy`}),`, `,(0,c.jsx)(t.code,{children:`arrayDeduplicate`}),` | Immutable deduplication с сохранением первого встретившегося значения/порядка. |
|
|
12
|
+
| `,(0,c.jsx)(t.code,{children:`filterAndDeduplicateIds`}),`, `,(0,c.jsx)(t.code,{children:`appendMissingIds`}),`, `,(0,c.jsx)(t.code,{children:`pickExistingMapValues`}),` | Helpers для stable id lists и ordered Map values. |
|
|
13
|
+
| `,(0,c.jsx)(t.code,{children:`arraysEqual`}),` | Строго сравнивает длину, порядок и значения по `,(0,c.jsx)(t.code,{children:`===`}),`. |
|
|
14
|
+
| `,(0,c.jsx)(t.code,{children:`moveItem`}),`, `,(0,c.jsx)(t.code,{children:`moveArrayItem`}),`, `,(0,c.jsx)(t.code,{children:`moveArrayItemByIndex`}),` | Возвращают новую переставленную коллекцию; invalid indices не мутируют input. |
|
|
15
|
+
| `,(0,c.jsx)(t.code,{children:`normalizeObjects`}),`, `,(0,c.jsx)(t.code,{children:`normalizeStringArray`}),`, `,(0,c.jsx)(t.code,{children:`addUnique`}),` | Explicit canonicalization для внешней/сохранённой структуры — не вызывайте её внутри literal draft setter. |`]}),`
|
|
16
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`pushBoundedCopyStackItem(stack, input, options?)`}),` добавляет/поднимает item по `,(0,c.jsx)(t.code,{children:`fingerprint`}),` и ограничивает размер (default `,(0,c.jsx)(t.code,{children:`DEFAULT_BOUNDED_COPY_STACK_SIZE = 3`}),`). `,(0,c.jsx)(t.code,{children:`getBoundedCopyStackCandidates`}),` фильтрует готовый stack predicate-ом. `,(0,c.jsx)(t.code,{children:`BoundedCopyStackItem`}),`, `,(0,c.jsx)(t.code,{children:`BoundedCopyStackPushInput`}),`, `,(0,c.jsx)(t.code,{children:`BoundedCopyStackOptions`}),` и `,(0,c.jsx)(t.code,{children:`BoundedCopyStackPushResult`}),` описывают его serializable contract.`]}),`
|
|
17
|
+
`,(0,c.jsx)(t.h2,{id:`значения-шкалы-и-календарные-сегменты`,children:`Значения, шкалы и календарные сегменты`}),`
|
|
18
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { parseDateSegmentMask, indexedSegmentsToDate } from "@ryuzaki13/react-foundation-lib/date-segments";
|
|
19
|
+
import { snapNumberScaleValue } from "@ryuzaki13/react-foundation-lib/number-scale";
|
|
20
|
+
import { resolveRangeOutputValue } from "@ryuzaki13/react-foundation-lib/range-output";
|
|
21
|
+
`})}),`
|
|
22
|
+
`,(0,c.jsxs)(t.p,{children:[`| Entry point | Основной API |
|
|
23
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
24
|
+
| `,(0,c.jsx)(t.code,{children:`date-segments`}),` | `,(0,c.jsx)(t.code,{children:`parseDateSegmentMask`}),`, `,(0,c.jsx)(t.code,{children:`isEditableDateSegment`}),`, `,(0,c.jsx)(t.code,{children:`dateToIndexedSegmentValues`}),`, `,(0,c.jsx)(t.code,{children:`areAllDateSegmentsEmpty`}),`, `,(0,c.jsx)(t.code,{children:`indexedSegmentsToDate`}),`. `,(0,c.jsx)(t.code,{children:`indexedSegmentsToDate`}),` строго отвергает невозможную дату/время; `,(0,c.jsx)(t.code,{children:`DateMaskSegment`}),` описывает editable/literal segments. |
|
|
25
|
+
| `,(0,c.jsx)(t.code,{children:`number-scale`}),` | `,(0,c.jsx)(t.code,{children:`resolveNumberScaleBounds`}),`, `,(0,c.jsx)(t.code,{children:`clampNumberScaleValue`}),`, `,(0,c.jsx)(t.code,{children:`normalizeNumberScaleStep`}),`, `,(0,c.jsx)(t.code,{children:`prepareNumberScaleMarks`}),`, `,(0,c.jsx)(t.code,{children:`snapNumberScaleValueToStep`}),`, `,(0,c.jsx)(t.code,{children:`snapNumberScaleValueToMarks`}),`, `,(0,c.jsx)(t.code,{children:`snapNumberScaleValue`}),`, `,(0,c.jsx)(t.code,{children:`valueToNumberScalePercent`}),`, `,(0,c.jsx)(t.code,{children:`percentToNumberScaleValue`}),`, `,(0,c.jsx)(t.code,{children:`percentToSnappedNumberScaleValue`}),`, `,(0,c.jsx)(t.code,{children:`offsetNumberScaleValue`}),`. |
|
|
26
|
+
| `,(0,c.jsx)(t.code,{children:`currency`}),` | `,(0,c.jsx)(t.code,{children:`resolveCurrencyModeFromODataParameters`}),` и `,(0,c.jsx)(t.code,{children:`resolveCurrencyAwareLabel`}),`; это label policy по wrapped OData parameters, не currency formatter. |
|
|
27
|
+
| `,(0,c.jsx)(t.code,{children:`range-output`}),` | `,(0,c.jsx)(t.code,{children:`readRangeOutputValueFallback`}),` и `,(0,c.jsx)(t.code,{children:`resolveRangeOutputValue`}),`; подставляет fallback только для `,(0,c.jsx)(t.code,{children:`null`}),` открытой границы и не меняет исходный UI range. |
|
|
28
|
+
| `,(0,c.jsx)(t.code,{children:`presets`}),` | `,(0,c.jsx)(t.code,{children:`normalizePresetIds`}),`, `,(0,c.jsx)(t.code,{children:`resolvePresetOptionsByIds`}),`, `,(0,c.jsx)(t.code,{children:`getPresetOption`}),`, `,(0,c.jsx)(t.code,{children:`PresetOption`}),`; помогает на save/restore boundary для известного набора IDs. |
|
|
29
|
+
| `,(0,c.jsx)(t.code,{children:`string-comparison`}),` | `,(0,c.jsx)(t.code,{children:`compareStrings(left, right)`}),` использует fixed Russian numeric/case-insensitive collation с deterministic fallback. |`]}),`
|
|
30
|
+
`,(0,c.jsxs)(t.p,{children:[`Для date/number UI formatting используйте `,(0,c.jsx)(t.code,{children:`formatters`}),`, а не `,(0,c.jsx)(t.code,{children:`number-scale`}),`/`,(0,c.jsx)(t.code,{children:`currency`}),`.`]}),`
|
|
31
|
+
`,(0,c.jsx)(t.h2,{id:`clone-строки-keyboard-и-trees`,children:`Clone, строки, keyboard и trees`}),`
|
|
32
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { cn, deepCloneWithoutFunctions, deepCopyWithoutFunctions, stableStringify } from "@ryuzaki13/react-foundation-lib/utils";
|
|
33
|
+
`})}),`
|
|
34
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Контракт |
|
|
35
|
+
| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
+
| `,(0,c.jsx)(t.code,{children:`cn(...args)`}),` | Собирает className из строк и conditional object. `,(0,c.jsx)(t.code,{children:`classNames`}),` — deprecated alias; новый код использует `,(0,c.jsx)(t.code,{children:`cn`}),`. |
|
|
37
|
+
| `,(0,c.jsx)(t.code,{children:`stableStringify(value)`}),` | JSON-like stable serialization с сортировкой object keys — для key/comparison, не как универсальный persistence format. |
|
|
38
|
+
| `,(0,c.jsx)(t.code,{children:`deepCopyWithoutFunctions(value, options?)`}),` | Копирует Date, arrays и plain objects, поддерживает cycles; функции пропускает. Unsupported object бросает `,(0,c.jsx)(t.code,{children:`TypeError`}),`. Предназначен для serializable plain config. |
|
|
39
|
+
| `,(0,c.jsx)(t.code,{children:`deepCloneWithoutFunctions(value, options?)`}),` | Расширенный clone: Date, RegExp, Map, Set, cycles, sparse arrays и optional prototype. Функции пропускает. |
|
|
40
|
+
| `,(0,c.jsx)(t.code,{children:`createLazyComponent`}),`, `,(0,c.jsx)(t.code,{children:`childrenCount`}),` | React-adjacent helpers для stable lazy component и correct children count. |
|
|
41
|
+
| `,(0,c.jsx)(t.code,{children:`keyboardActivationKeys`}),`, `,(0,c.jsx)(t.code,{children:`isKeyboardActivationKey`}),`, `,(0,c.jsx)(t.code,{children:`handleKeyboardActivation`}),` | Keyboard activation contract для custom control. |
|
|
42
|
+
| `,(0,c.jsx)(t.code,{children:`getRovingFocusTargetIndex`}),`, `,(0,c.jsx)(t.code,{children:`findFirstEnabledIndex`}),`, `,(0,c.jsx)(t.code,{children:`findLastEnabledIndex`}),`, `,(0,c.jsx)(t.code,{children:`findNextEnabledIndex`}),` | Pure navigation для listbox/select с disabled/wrap. |
|
|
43
|
+
| `,(0,c.jsx)(t.code,{children:`deepCopyNodes`}),`, `,(0,c.jsx)(t.code,{children:`deepCopyTree`}),` | Копирование tree nodes с standard/custom children field. |
|
|
44
|
+
| `,(0,c.jsx)(t.code,{children:`toBase64`}),`, `,(0,c.jsx)(t.code,{children:`encodeBase64`}),`, `,(0,c.jsx)(t.code,{children:`logError`}),` | Unicode-safe base64 и centralised error logging. |`]}),`
|
|
45
|
+
`,(0,c.jsxs)(t.p,{children:[`Clone не является нормализацией: он создаёт независимую структуру в пределах собственного contract и не должен применять trim, defaults, deduplication или reorder к пользовательскому draft. Для plain serializable config используйте `,(0,c.jsx)(t.code,{children:`deepCopyWithoutFunctions`}),`, а не `,(0,c.jsx)(t.code,{children:`structuredClone`}),`.`]}),`
|
|
46
|
+
`,(0,c.jsx)(t.h2,{id:`runtime-guards-и-базовые-типы`,children:`Runtime guards и базовые типы`}),`
|
|
47
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { asRecord, isRecord, isSafe, readPositiveInteger } from "@ryuzaki13/react-foundation-lib/validators";
|
|
48
|
+
import type { BaseType, RangeType, RowRecord, State } from "@ryuzaki13/react-foundation-lib/types";
|
|
49
|
+
`})}),`
|
|
50
|
+
`,(0,c.jsxs)(t.p,{children:[`| API | Когда использовать |
|
|
51
|
+
| --------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
52
|
+
| `,(0,c.jsx)(t.code,{children:`isSafe`}),` | Убирает только `,(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),` из union. |
|
|
53
|
+
| `,(0,c.jsx)(t.code,{children:`isObject`}),`, `,(0,c.jsx)(t.code,{children:`isRecord`}),`, `,(0,c.jsx)(t.code,{children:`asRecord`}),`, `,(0,c.jsx)(t.code,{children:`isPlainObject`}),` | Narrow unknown external value до object/record; array не считается record. |
|
|
54
|
+
| `,(0,c.jsx)(t.code,{children:`readPositiveInteger`}),` | Возвращает positive integer или `,(0,c.jsx)(t.code,{children:`undefined`}),` без unsafe cast. |
|
|
55
|
+
| `,(0,c.jsx)(t.code,{children:`validateUrl`}),` | Возвращает validation result для строки URL. |
|
|
56
|
+
| `,(0,c.jsx)(t.code,{children:`IMAGE_EXTENSIONS`}),`, `,(0,c.jsx)(t.code,{children:`isImageExtension`}),` | Проверка расширения без учёта регистра; не MIME/security validation. |
|
|
57
|
+
| `,(0,c.jsx)(t.code,{children:`isDomReference`}),` | Floating UI reference → DOM `,(0,c.jsx)(t.code,{children:`Element`}),` guard. |`]}),`
|
|
58
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`State`}),`, `,(0,c.jsx)(t.code,{children:`AbapBoolean`}),`, `,(0,c.jsx)(t.code,{children:`Primitive`}),`, `,(0,c.jsx)(t.code,{children:`BaseType`}),`, `,(0,c.jsx)(t.code,{children:`ArrayType`}),`, `,(0,c.jsx)(t.code,{children:`ObjectType`}),`, `,(0,c.jsx)(t.code,{children:`InputType`}),`, `,(0,c.jsx)(t.code,{children:`RangeType`}),`, `,(0,c.jsx)(t.code,{children:`RowRecord`}),`, `,(0,c.jsx)(t.code,{children:`isBaseType`}),` — общие low-level contracts. Не используйте `,(0,c.jsx)(t.code,{children:`RowRecord`}),` как модель конкретной доменной сущности.`]}),`
|
|
59
|
+
`,(0,c.jsx)(t.h2,{id:`идентификаторы-http-xml-seo-и-form-errors`,children:`Идентификаторы, HTTP, XML, SEO и form errors`}),`
|
|
60
|
+
`,(0,c.jsxs)(t.p,{children:[`| Entry point | API |
|
|
61
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
62
|
+
| `,(0,c.jsx)(t.code,{children:`crypto`}),` | `,(0,c.jsx)(t.code,{children:`hashString`}),`, `,(0,c.jsx)(t.code,{children:`hashString128`}),`, `,(0,c.jsx)(t.code,{children:`hashString128Base64Url`}),`, `,(0,c.jsx)(t.code,{children:`stringToElementId`}),`, `,(0,c.jsx)(t.code,{children:`uuidv4`}),`. Hash служит для stable client key, не криптографической защиты. |
|
|
63
|
+
| `,(0,c.jsx)(t.code,{children:`session-storage`}),` | `,(0,c.jsx)(t.code,{children:`getSessionStorageId(key, createId?)`}),` — scoped browser-tab id; не authentication token. |
|
|
64
|
+
| `,(0,c.jsx)(t.code,{children:`http`}),` | `,(0,c.jsx)(t.code,{children:`createNoStoreHeaders(init?)`}),` создаёт Headers с no-store; `,(0,c.jsx)(t.code,{children:`createTextHttpResponse(options)`}),` создаёт text `,(0,c.jsx)(t.code,{children:`Response`}),`. |
|
|
65
|
+
| `,(0,c.jsx)(t.code,{children:`xml`}),` | `,(0,c.jsx)(t.code,{children:`escapeXmlValue`}),`, `,(0,c.jsx)(t.code,{children:`buildXmlFields`}),`, `,(0,c.jsx)(t.code,{children:`getXmlTagText`}),` для небольших XML fragments. Не применяйте regex helper как универсальный XML parser для untrusted complex XML. |
|
|
66
|
+
| `,(0,c.jsx)(t.code,{children:`seo`}),` | `,(0,c.jsx)(t.code,{children:`createSeoHead(options)`}),`, `,(0,c.jsx)(t.code,{children:`createRouteHead(type, path, params)`}),` создают `,(0,c.jsx)(t.code,{children:`meta`}),`, `,(0,c.jsx)(t.code,{children:`links`}),`, JSON-LD `,(0,c.jsx)(t.code,{children:`scripts`}),`; host router/head owner решает, как применить результат. |
|
|
67
|
+
| `,(0,c.jsx)(t.code,{children:`form`}),` | `,(0,c.jsx)(t.code,{children:`readFirstFormError(errors?)`}),` выбирает первое readable error message из unknown error array. |
|
|
68
|
+
| `,(0,c.jsx)(t.code,{children:`error`}),` | `,(0,c.jsx)(t.code,{children:`createMissingContextErrorMessage`}),`, `,(0,c.jsx)(t.code,{children:`createMissingContextError`}),` формируют единообразную ошибку отсутствующего React Provider. |`]}),`
|
|
69
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`fingerprint`}),` и `,(0,c.jsx)(t.code,{children:`notifications`}),` описаны на странице Runtime/state, потому что имеют browser/global lifecycle.`]})]})}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};
|