@ryuzaki13/react-foundation-ui 1.8.5 → 1.8.7
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 +2 -2
- package/dist/base-table/index.js +1 -1
- package/dist/chunks/{base-table-CsnUiMTe.js → base-table-CYbtifH0.js} +2 -2
- package/dist/chunks/{base-table-CsnUiMTe.js.map → base-table-CYbtifH0.js.map} +1 -1
- package/dist/chunks/{context-menu-C8sA7xCN.js → context-menu-L4KM0FRD.js} +2 -2
- package/dist/chunks/{context-menu-C8sA7xCN.js.map → context-menu-L4KM0FRD.js.map} +1 -1
- package/dist/chunks/date-input-g6l1iDmf.js.map +1 -1
- package/dist/chunks/{multi-select-Cvjz9W07.js → multi-select-CCgoTHWI.js} +2 -2
- package/dist/chunks/{multi-select-Cvjz9W07.js.map → multi-select-CCgoTHWI.js.map} +1 -1
- package/dist/chunks/{picker-0I1yMKIY.js → picker-Cb3D2Hts.js} +6 -2
- package/dist/chunks/picker-Cb3D2Hts.js.map +1 -0
- package/dist/chunks/{select-CUQ91FIc.js → select-Baek-IUe.js} +2 -2
- package/dist/chunks/{select-CUQ91FIc.js.map → select-Baek-IUe.js.map} +1 -1
- package/dist/chunks/{table-z9kyd9U3.js → table-CrQiurtA.js} +2 -2
- package/dist/chunks/{table-z9kyd9U3.js.map → table-CrQiurtA.js.map} +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/layout-picker/index.js +1 -1
- package/dist/listbox/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tree-select/index.js +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +4 -4
- package/storybook-static/assets/{Badge-CzxxuE7D.js → Badge-C4U4sxtF.js} +1 -1
- package/storybook-static/assets/{Badge.stories-RaI7qvpZ.js → Badge.stories-DHmJTpdf.js} +1 -1
- package/storybook-static/assets/{BadgeList-B7cF3h_F.js → BadgeList-BOs5ycWn.js} +1 -1
- package/storybook-static/assets/{Button-Cjmm8oDV.js → Button-BTtYeCS_.js} +1 -1
- package/storybook-static/assets/{Button-6z1R7ZA8.js → Button-Bkb3wQw6.js} +1 -1
- package/storybook-static/assets/{Button.stories-B5fUA2Gu.js → Button.stories-DgFLAdcg.js} +1 -1
- package/storybook-static/assets/{CalendarView-Dlt0f4Jr.js → CalendarView-BIFHbOTr.js} +1 -1
- package/storybook-static/assets/{CheckBox-L4324ZCs.js → CheckBox-76M-N56J.js} +1 -1
- package/storybook-static/assets/{CheckBox-BOSDcvCd.js → CheckBox-D4u-58g8.js} +1 -1
- package/storybook-static/assets/{CheckBox.module-CoYygdZx.js → CheckBox.module-BOAVN-Ny.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-DALRNTV0.js → CheckBox.stories-Caw6-hSQ.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-UmlmbwVs.js → Color-6AOWCN3U-CPYGaU3y.js} +1 -1
- package/storybook-static/assets/{ContextMenu-giZ56GIC.js → ContextMenu-CUWt-eg1.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BOez7LwB.js → ContextMenu-gfYYiVdR.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-BnoaSq3Q.js → ContextMenu.stories-BuQS57wW.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-C1VgtQgI.js → CustomOptionButton-Be7sd0Lb.js} +1 -1
- package/storybook-static/assets/{DateInput-A3468S6P.js → DateInput-B4oviF7J.js} +1 -1
- package/storybook-static/assets/{DateInput-oWtyLo3Q.js → DateInput-BQGUMYsW.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BeGG7Vzf.js → DateInput.stories-D6q7J1C4.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect--h5MdeWg.js → DateRangePresetSelect-BAxaG0HP.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DbKRsjNX.js → DateRangePresetSelect-Cq6pOZPu.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BS1ll9RK.js → DateRangePresetSelect.stories-d4HFbao6.js} +1 -1
- package/storybook-static/assets/{Detail-FEi6FSkD.js → Detail-DlETcWVp.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Dy2yKBDx.js → Detail.stories-BEwFXEZH.js} +1 -1
- package/storybook-static/assets/{Dialog-C7Zfcyjf.js → Dialog-Bk8aoiOf.js} +1 -1
- package/storybook-static/assets/{Dialog-CXnHtk_h.js → Dialog-D63TJr1M.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BeUqdA_f.js → Dialog.stories-BR7NqeZj.js} +1 -1
- package/storybook-static/assets/{Disclosure-BqsgTrM0.js → Disclosure-zQK54WKU.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-D3LzXhet.js → Disclosure.stories-CNLpB5YJ.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-BAF5Untb.js → DisclosureGroup-C_nZSLZw.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-luRRUpJ_.js → DocsRenderer-JROSPFPF-CoU8mWAw.js} +2 -2
- package/storybook-static/assets/{DropZone-B-YA4zyu.js → DropZone-CUz1Q4bA.js} +1 -1
- package/storybook-static/assets/{DropZone-DKrOIaeH.js → DropZone-Y5hvED_x.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-wf2ubfGc.js → DropZone.stories-BH4FSM4P.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BiWUESj0.js → DropdownMenu-Bi6-5Gqf.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-Dtfw5TWs.js → ExpandableActionPanel-BfWj887r.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BOdw0CLN.js → ExpandableActionPanel.stories-CGxcwRMU.js} +1 -1
- package/storybook-static/assets/{Flex-BaSYiAMD.js → Flex-Dm-Qfvzk.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CD_e9R5B.js → Flex.stories-B3zMz03s.js} +1 -1
- package/storybook-static/assets/{FlexContainer-LmZIdhq2.js → FlexContainer-BWyPlTMB.js} +1 -1
- package/storybook-static/assets/{FlexItem-vkDYa5tA.js → FlexItem-pu3E11Sf.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-C65hSmop.js → FloatingPopover-NMRTnqfo.js} +1 -1
- package/storybook-static/assets/FormattedTableCell-BISjHrBJ.js +15 -0
- package/storybook-static/assets/{Grid-BCzygAqy.js → Grid-CzO0Ae1r.js} +1 -1
- package/storybook-static/assets/{Grid-8eLmW2AB.js → Grid-vZyA-712.js} +1 -1
- package/storybook-static/assets/{Grid.stories-DULQOmbC.js → Grid.stories-BQqK0zom.js} +1 -1
- package/storybook-static/assets/{GridContainer-qDguE1HS.js → GridContainer-fKYgDsLl.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-C1O-Zv4X.js → ImageCropper.stories-Ca4MZWOW.js} +3 -3
- package/storybook-static/assets/{ImageRenderer-BOyGnl1v.js → ImageRenderer-BWIk_76e.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Cms0kMXA.js → ImageRenderer.stories-C1FfOcFD.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-CUR6bAyn.js → ImageView.stories-DyuR7kdq.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-BwJKAIT7.js → ImageViewer.stories-PcvOFYqC.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-CzkvEHax.js → ImageViewerRuntime-BiI7Xukq.js} +2 -2
- package/storybook-static/assets/{Input-B2_RznVE.js → Input-CsD-x1BQ.js} +1 -1
- package/storybook-static/assets/{Input-ebp78QN1.js → Input-D_4GoCLl.js} +1 -1
- package/storybook-static/assets/{Input.stories-BKwTRsUL.js → Input.stories-D-1urO1N.js} +1 -1
- package/storybook-static/assets/{InputDateTime-pK4mlxxm.js → InputDateTime-CFQanHxB.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-J4Gd0DaU.js → InputDateTime.stories-Q4Ao5Tat.js} +1 -1
- package/storybook-static/assets/{InputFile-D1x1T--f.js → InputFile-Bj8PXGY3.js} +1 -1
- package/storybook-static/assets/{InputFile-BYcgJx2f.js → InputFile-DM6fBXUx.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-DAYDiSFH.js → InputFile.stories-DC27BYoQ.js} +1 -1
- package/storybook-static/assets/{InputFiles-D7kcGvWK.js → InputFiles-D59MGS0Z.js} +1 -1
- package/storybook-static/assets/{InputFiles-C9HH7fIG.js → InputFiles-teFj6f6X.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CJTwQutb.js → InputFiles.stories-DX5UEvYR.js} +1 -1
- package/storybook-static/assets/{InputFilesList-ChI0hQ07.js → InputFilesList-BD4Y0gN-.js} +1 -1
- package/storybook-static/assets/{InputImage-B3KFrWqa.js → InputImage-DmsFGNLJ.js} +1 -1
- package/storybook-static/assets/{InputImage-C0-U_QHU.js → InputImage-Du6jGDmY.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-QEtqeok5.js → InputImage.stories-u0hrr-Da.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-DB71eb-1.js → InteractiveComponents-BLQiSO3p.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DdZpmMis.js → InteractiveComponents.stories-BxIVvRz5.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CicZY4X9.js → LayoutPicker-TecE4x6w.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-DBEYC_LA.js → LayoutPicker-xUooYcbS.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BFtP0gOy.js → LayoutPicker.stories-YDMnmhJ4.js} +1 -1
- package/storybook-static/assets/{Listbox-B0Nqys9f.js → Listbox-D2k8QfTs.js} +1 -1
- package/storybook-static/assets/{Listbox-CLP0Cpin.js → Listbox-DplAn6ND.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BHeIn0H8.js → Listbox.stories-Bg3_UQD4.js} +1 -1
- package/storybook-static/assets/{Modal-D4jDp5U4.js → Modal-4OdkCwCv.js} +1 -1
- package/storybook-static/assets/{Modal.stories-CMHJdaj1.js → Modal.stories-BwawDSGR.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-D8tCMe07.js → ModalManagerProvider-CYR_xbpx.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Bmb0qTzT.js → MultiSelect-CXn1CY9G.js} +1 -1
- package/storybook-static/assets/{MultiSelect-y6FjtCjy.js → MultiSelect-iwbCRD9H.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-B9TZNWng.js → MultiSelect.stories-BSjAL2ua.js} +1 -1
- package/storybook-static/assets/{NoData-CzlhZzHI.js → NoData-6Scjk2OD.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-AE9gk5zq.js → NotificationsHost-DK3A-iq7.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-Bu0__u38.js → NotificationsHost.stories-BRmPf9Q7.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-DJ6zie6W.js → ODataMultiSelect-CuNGV1QU.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-BjgJGbWL.js → ODataMultiSelect.stories-CyAonfZC.js} +1 -1
- package/storybook-static/assets/{ODataSelect-V1JJpKB9.js → ODataSelect-vhh4NJS_.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-B2INiDvW.js → ODataSelect.stories-aJBFF45H.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-BKMrgz8e.js → ODataTreeMultiSelect-vPtlTloF.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CjLPeqio.js → ODataTreeMultiSelect.stories-DTBAF628.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-C2iGJdYk.js → ODataTreeSelect-BCVVLB9M.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-ReyoXlcX.js → ODataTreeSelect.stories-CptC0p6O.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-knlVIvl2.js → OneStepScroller-DerjCiL3.js} +1 -1
- package/storybook-static/assets/{Option-CJBK9i2B.css → Option-CwetjUM8.css} +1 -1
- package/storybook-static/assets/{Option-KVcu4DcX.js → Option-DkAw9S3l.js} +4 -4
- package/storybook-static/assets/{OptionButton-D2ZcZtPU.js → OptionButton-CGurT23Z.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BsET8TST.js → PeriodSelect-DOO139ke.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-Bm_VPE_5.js → PeriodSelect-TrGTMIid.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-Due2DawD.js → PeriodSelect.stories-B3GEgBZ1.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-KgIZBVSt.js → PickerTriggerActions-CKVPuKEC.js} +1 -1
- package/storybook-static/assets/{Popover-Cq1q1mW3.js → Popover-BNItmUQ9.js} +1 -1
- package/storybook-static/assets/{Popover-D38IExq9.js → Popover-DgXqO0PN.js} +1 -1
- package/storybook-static/assets/{Popover.stories-B5MXPFi2.js → Popover.stories-bX5S41pH.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-dWe-Zcrb.js → PresetRangeDateInput-B4FYPy8g.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-C4iOgcKK.js → PresetRangeDateInput-GSnnpZzy.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-C8JiJCpi.js → PresetRangeDateInput.stories-Ca0mIo33.js} +1 -1
- package/storybook-static/assets/{PresetSelect-CIqamiLP.js → PresetSelect-B_KRl4SQ.js} +1 -1
- package/storybook-static/assets/README-1RIcD7RV.js +694 -0
- package/storybook-static/assets/README-B1XUsXZj.js +334 -0
- package/storybook-static/assets/README-BH78sIZ_.js +288 -0
- package/storybook-static/assets/README-BgeYwR6t.js +347 -0
- package/storybook-static/assets/README-BhsUMTSk.js +860 -0
- package/storybook-static/assets/README-Bj88Ecb7.js +876 -0
- package/storybook-static/assets/README-C9saKIyr.js +417 -0
- package/storybook-static/assets/README-CP1S4LYF.js +1309 -0
- package/storybook-static/assets/README-Cc-guFb0.js +1487 -0
- package/storybook-static/assets/README-CheO0E1A.js +282 -0
- package/storybook-static/assets/README-CiuVVUgE.js +420 -0
- package/storybook-static/assets/README-CvRg9lqh.js +273 -0
- package/storybook-static/assets/README-DCdV2RQL.js +1093 -0
- package/storybook-static/assets/README-DyNQqotW.js +338 -0
- package/storybook-static/assets/README-W1rhe8Sk.js +648 -0
- package/storybook-static/assets/{RadioButton-CTA-WBmG.js → RadioButton-CA9DN5bY.js} +1 -1
- package/storybook-static/assets/{RadioButton-DfRRX6Id.js → RadioButton-DcXbcFW1.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-D6MO9y2H.js → RadioButton.stories-1_kzxnXY.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CiEUg_Oc.js → RadioGroup-bEwTHCyS.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BAoD6ZDR.js → RadioGroup-mfYgdfXM.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-CCjYE-3G.js → RadioGroup.stories-CecdqPms.js} +1 -1
- package/storybook-static/assets/{Scrollable-ns4PHUAk.js → Scrollable-1fdTDJHK.js} +1 -1
- package/storybook-static/assets/{Select-Bj9NxEJa.js → Select-CvQZGS1G.js} +1 -1
- package/storybook-static/assets/{Select-D2aDjIb_.js → Select-Df5Md2Cm.js} +1 -1
- package/storybook-static/assets/{Select.stories-zErlbrrD.js → Select.stories-M4M80KTq.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-P7iNwTbc.js → SerializableSelect-CnsGo9Ep.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-DUAK_mo8.js → SerializableSelect.stories-BJ6MlNDx.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-vvyw15zU.js → SingleDateTimeInput-BCV0gfB9.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CkMMccYd.js → SingleDateTimeInput-DJH7zSIz.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-CSW9M9hH.js → SingleDateTimeInput.stories-DgEwAFe8.js} +1 -1
- package/storybook-static/assets/{Slider-Dftgrmfi.js → Slider-D504FPH3.js} +1 -1
- package/storybook-static/assets/{Slider-CkUdrb57.js → Slider-cLRAHPLi.js} +1 -1
- package/storybook-static/assets/{Slider.stories-zVUgi1Wb.js → Slider.stories-EI314Iff.js} +1 -1
- package/storybook-static/assets/{SliderInput-BINdZsru.js → SliderInput-Bt0H8rgN.js} +1 -1
- package/storybook-static/assets/{SliderInput-DnVNzY_q.js → SliderInput-E5p3n3VY.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-CfY1B4PZ.js → SliderInput.stories-CDYPq7fP.js} +1 -1
- package/storybook-static/assets/{Sortable-BnixGZFs.js → Sortable-Bzd7JK4E.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-DFzv9lnf.js → Sortable.stories-DNGbmn2a.js} +1 -1
- package/storybook-static/assets/{Splitter-BtDFBrQ3.js → Splitter-DSf48AOW.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CipjzPJH.js → Splitter.stories-DUKsOqNN.js} +1 -1
- package/storybook-static/assets/{StateSelect-DagWIbnr.js → StateSelect-BxuKIsLa.js} +1 -1
- package/storybook-static/assets/{StateSelect-J5sxWYjq.js → StateSelect-HKOT6kq9.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-DDIqhm2K.js → StateSelect.stories-CbLvq7ou.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CkYGiOe-.js → StringToggle.stories-DOKL-aWy.js} +1 -1
- package/storybook-static/assets/{Switch-B5TS1mrR.js → Switch-CLAfhk73.js} +1 -1
- package/storybook-static/assets/{Switch-N-Lxev-q.js → Switch-CVTjSEq1.js} +1 -1
- package/storybook-static/assets/{Switch.stories-HNOx5mPv.js → Switch.stories-CL5Xe_HQ.js} +1 -1
- package/storybook-static/assets/{Table-DTzmRzDD.js → Table-DKc19RME.js} +1 -1
- package/storybook-static/assets/Table.stories-CJ9DR1S-.js +207 -0
- package/storybook-static/assets/{Tabs-Bc5dgtoT.js → Tabs-De_4F0H3.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-BgLnKKFv.js → Tabs.stories-DPAvvkh9.js} +2 -2
- package/storybook-static/assets/{TabsBox-sTVLs8k0.js → TabsBox-Cy5CICcb.js} +1 -1
- package/storybook-static/assets/{TagInput-yPLHo0PJ.js → TagInput-7n98ftvD.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-B4C-230C.js → TagInput.stories-B6JAb3XA.js} +1 -1
- package/storybook-static/assets/{Text-C2-mep6V.js → Text-CjSG8mvD.js} +1 -1
- package/storybook-static/assets/{Textarea-bqvYs13v.js → Textarea-CQqwaJ0Q.js} +1 -1
- package/storybook-static/assets/{Textarea-B7pXYTGv.js → Textarea-Dea29_yQ.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-BSSaqnZI.js → Textarea.stories-BZf3Cu4S.js} +1 -1
- package/storybook-static/assets/{TimePanel-pMBlR0ZN.js → TimePanel-CPZ4jOw2.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-Cn5IEcsV.js → TimePanel.stories-y5Lp9sMG.js} +1 -1
- package/storybook-static/assets/{Toggle-E4xV63pY.js → Toggle-CJHzo9mB.js} +1 -1
- package/storybook-static/assets/{Toggle-h6ESIcwX.js → Toggle-s7SzQ11W.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-9uqFBAAr.js → Toggle.stories-Dk3C5Le5.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DBGlliij.js → TreeMultiSelect-CxXF7pQE.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-J8Tlnv3Y.js → TreeMultiSelect-DfeggvLr.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-CYDuvIk7.js → TreeMultiSelect.stories-DKiHT_6L.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BswrqgW3.js → TreePickerBase-DKJJDVC_.js} +1 -1
- package/storybook-static/assets/{TreeSelect-B1Buti64.js → TreeSelect-2E1KhJMi.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Jchj-RXf.js → TreeSelect-h23orAoA.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-DzCqueCG.js → TreeSelect.stories-DO06yaS0.js} +1 -1
- package/storybook-static/assets/{TreeTable-oYCdUTsS.js → TreeTable-ByV2_E0S.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-L4FHah8x.js → TreeTable.stories-D4gbQx59.js} +2 -2
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-Cakt_JaX.js → WithTooltip-7X4HQR7L-DQ4Qthn2.js} +1 -1
- package/storybook-static/assets/{array-D-_yMMUK-CIRmlF93.js → array-D-_yMMUK-BQ0uu1hZ.js} +1 -1
- package/storybook-static/assets/{async-Bsdhj8g_.js → async-BI7SlYp0.js} +1 -1
- package/storybook-static/assets/axe-_9eNhXQJ.js +20 -0
- package/storybook-static/assets/{blocks-BA_1CXsr.js → blocks-B8F5vBhs.js} +6 -6
- package/storybook-static/assets/check-mlY_aVEI.js +1 -0
- package/storybook-static/assets/chevron-down-C7c-TcEc.js +1 -0
- package/storybook-static/assets/chevron-left-2LrGBhDY.js +1 -0
- package/storybook-static/assets/chevron-right-D6NN1_UQ.js +1 -0
- package/storybook-static/assets/{chunk-242VQQM5-BMWWiybC.js → chunk-242VQQM5-bHL6qIJq.js} +1 -1
- package/storybook-static/assets/{chunk-DRQKCCAG-CqE-Zrl9.js → chunk-DRQKCCAG-DvsmU7ha.js} +1 -1
- package/storybook-static/assets/{chunk-IMSF75WX-yvVUwIQZ.js → chunk-IMSF75WX-CGYlPTyG.js} +1 -1
- package/storybook-static/assets/{chunk-KJHJLCBK-D-yQfkOi.js → chunk-KJHJLCBK-yRlRMfNs.js} +1 -1
- package/storybook-static/assets/{chunk-QQBDHPVZ-B98qboss.js → chunk-QQBDHPVZ-DC5n6Pix.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-B40Li12y.js → chunk-W22LQPXL-5sD3hVeE.js} +1 -1
- package/storybook-static/assets/{circle-alert-C855gqBz.js → circle-alert-H_7GSXFp.js} +1 -1
- package/storybook-static/assets/circle-check-B0voRIBT.js +1 -0
- package/storybook-static/assets/{components-DSUjzUVy.js → components-Bw-2TeQP.js} +12 -12
- package/storybook-static/assets/{contextMenu-DCSPTQNQ.js → contextMenu-B8JusItT.js} +1 -1
- package/storybook-static/assets/{createControlledStoryRender-DHsyXc1B.js → createControlledStoryRender-BouhvX-R.js} +1 -1
- package/storybook-static/assets/{date-segments-D3HouZ37.js → date-segments-DeoMkKv9.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-V5HI39JH.js → defaultRenderers-BHXboKuy.js} +1 -1
- package/storybook-static/assets/{dom-B3G_GtJw.js → dom-DBd_DWF8.js} +1 -1
- package/storybook-static/assets/{download-B3oJ9vHV.js → download-CSY7aIz0.js} +1 -1
- package/storybook-static/assets/{error-BZrNlEUO.js → error-De9R4E_F.js} +1 -1
- package/storybook-static/assets/{file-vPGnhPr-.js → file-CwRoWxeB.js} +1 -1
- package/storybook-static/assets/floating-ui.react-D7RwPYeO.js +1 -0
- package/storybook-static/assets/formatter-L2YTDE3Q-CRGuSxAF.js +1 -0
- package/storybook-static/assets/{formatters-CBgrBeSA-DY6OIAc8.js → formatters-CBgrBeSA-CqB1pZxS.js} +1 -1
- package/storybook-static/assets/{foundationLib-BFrQ5jez.js → foundationLib-BoYGVeXe.js} +1 -1
- package/storybook-static/assets/{hooks-_jPrECht.js → hooks-DQXvhAPr.js} +2 -2
- package/storybook-static/assets/iframe-B8PAuhnL.js +1 -0
- package/storybook-static/assets/{iframe-Cq8y-8O_.js → iframe-CViB2sFm.js} +23 -23
- package/storybook-static/assets/{info-CiT6g2aP.js → info-MrQcS8jn.js} +1 -1
- package/storybook-static/assets/{matchers-JIUQ3HVY-DvR2XErZ.js → matchers-JIUQ3HVY-C789_MAK.js} +1 -1
- package/storybook-static/assets/{media-BycWpjAl.js → media-D9cE2tzi.js} +1 -1
- package/storybook-static/assets/odata-CBGaUmRT.js +1 -0
- package/storybook-static/assets/{odata-service-B6TxBSLm-BW9QLSrS.js → odata-service-B6TxBSLm-Bq8Ya67E.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-C6ps_31t.js → odataFetchFn-CPO8XIYX.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-BcNo-Wxr.js → odataStoryFixtures--SWu2yC_.js} +2 -2
- package/storybook-static/assets/{persisted-B6h1b3UG.js → persisted-B2dfNRCz.js} +1 -1
- package/storybook-static/assets/{preload-helper-BHmFeTtP.js → preload-helper-wdlQj8DP.js} +1 -1
- package/storybook-static/assets/react-18-D4o7zN8K.js +9 -0
- package/storybook-static/assets/{react-C21x__mS.js → react-BZJXY1be.js} +1 -1
- package/storybook-static/assets/{react-qN2cStNd.js → react-Bl2r1tuC.js} +1 -1
- package/storybook-static/assets/{react-CvkUhHUq.js → react-GkniIHEK.js} +1 -1
- package/storybook-static/assets/{react-dom-2o2phaJG.js → react-dom-BzEl8usk.js} +1 -1
- package/storybook-static/assets/react-iQQwtFPL.js +9 -0
- package/storybook-static/assets/{refresh-cw-DIeuulxV.js → refresh-cw-_wTFfhR2.js} +1 -1
- package/storybook-static/assets/{rolldown-runtime-C0FnF6B9.js → rolldown-runtime-DkW27tQK.js} +1 -1
- package/storybook-static/assets/{settings-2-Gfu_uw21.js → settings-2-BqduNJjJ.js} +1 -1
- package/storybook-static/assets/{shim-BUMlC1GG.js → shim-DlYORV19.js} +1 -1
- package/storybook-static/assets/{sortable-DxRr6Rgq.js → sortable-D-m6SEp7.js} +1 -1
- package/storybook-static/assets/syntaxhighlighter-QEQV7K2Y-CEo9I1qZ.js +6 -0
- package/storybook-static/assets/{theming-mTWhffkp.js → theming-Cvtrnj7n.js} +1 -1
- package/storybook-static/assets/{trash-2-CqKAB1Q0.js → trash-2-65ZF92zp.js} +1 -1
- package/storybook-static/assets/{treeStoryFixtures-Ci7STpiz.js → treeStoryFixtures-DXHh9GL3.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D4omsgZJ.js → triangle-alert-k_CRNi0k.js} +1 -1
- package/storybook-static/assets/{ui.module-D4CuGr8r.js → ui.module-Cat84Nza.js} +1 -1
- package/storybook-static/assets/{uiClasses-CVGbL980.js → uiClasses-B9c6dZuu.js} +1 -1
- package/storybook-static/assets/{useFlexClasses-Gn9spXEB.js → useFlexClasses-SgVG37Bb.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-DacE6X5d.js → useODataSelectBase-Ck_hduYv.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BEYyje5V.js → useODataTreeData-DTrxPY_k.js} +1 -1
- package/storybook-static/assets/usePickerDefaultFilter-5Q1pAV4d.js +1 -0
- package/storybook-static/assets/{usePickerQuery-BRsuRnoH.js → usePickerQuery-DdeWtJWc.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-DyFq40t1.js → usePickerTriggerController-D8hxWmGo.js} +2 -2
- package/storybook-static/assets/{utils-DUM89eIj.js → utils-tg3ibbzi.js} +1 -1
- package/storybook-static/assets/x-C5XG0bD4.js +1 -0
- package/storybook-static/iframe.html +7 -7
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +35 -33
- package/storybook-static/sb-manager/globals-runtime.js +7 -7
- package/storybook-static/sb-manager/globals.js +1 -1
- package/storybook-static/sb-manager/runtime.js +88 -89
- package/storybook-static/vite-inject-mocker-entry.js +2 -2
- package/dist/chunks/picker-0I1yMKIY.js.map +0 -1
- package/storybook-static/assets/FormattedTableCell-BdA15EY1.js +0 -15
- package/storybook-static/assets/Table.stories-DY5NfoVd.js +0 -207
- package/storybook-static/assets/axe-Bq-2xuso.js +0 -20
- package/storybook-static/assets/browserAndReact-fXgh8QfO.js +0 -70
- package/storybook-static/assets/check-wNoLJyvD.js +0 -1
- package/storybook-static/assets/chevron-down-DjM4Yyml.js +0 -1
- package/storybook-static/assets/chevron-left-BT138_KT.js +0 -1
- package/storybook-static/assets/chevron-right-DEvxOiq2.js +0 -1
- package/storybook-static/assets/circle-check-BDVZ6tz8.js +0 -1
- package/storybook-static/assets/filesAndExcel-Bj4tkdkM.js +0 -92
- package/storybook-static/assets/floating-ui.react-BewtdZNK.js +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +0 -1
- package/storybook-static/assets/formatters-DYZ7voq3.js +0 -202
- package/storybook-static/assets/formatters-runtime-Ddmbt5yI.js +0 -329
- package/storybook-static/assets/iframe-C7ggO0sY.js +0 -1
- package/storybook-static/assets/odata-ClP2t_-O.js +0 -1
- package/storybook-static/assets/odataAndTables-Cjwl3uWE.js +0 -77
- package/storybook-static/assets/pureUtilities-CO1AJvbl.js +0 -30
- package/storybook-static/assets/react-18-CgkwBzTo.js +0 -9
- package/storybook-static/assets/react-D4nkG-T7.js +0 -9
- package/storybook-static/assets/runtimeAndState-TcnlLgJx.js +0 -93
- package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-BIwIp4cU.js +0 -6
- package/storybook-static/assets/usePickerDefaultFilter-Be420WNF.js +0 -1
- package/storybook-static/assets/x-zmaXH4MN.js +0 -1
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-CViB2sFm.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-B8F5vBhs.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 Lib/API/Formatters/Pipeline`}),`
|
|
2
|
+
`,(0,c.jsx)(t.h1,{id:`formatter-pipeline`,children:`Formatter pipeline`}),`
|
|
3
|
+
`,(0,c.jsx)(t.p,{children:`Formatter pipeline — конфигурируемая последовательность преобразований значения ячейки. Она умеет:`}),`
|
|
4
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
5
|
+
`,(0,c.jsx)(t.li,{children:`взять значение из другого поля строки или вычислить его row-based формулой;`}),`
|
|
6
|
+
`,(0,c.jsx)(t.li,{children:`нормализовать ведущие нули;`}),`
|
|
7
|
+
`,(0,c.jsxs)(t.li,{children:[`назначить семантическое состояние `,(0,c.jsx)(t.code,{children:`success`}),`, `,(0,c.jsx)(t.code,{children:`warning`}),`, `,(0,c.jsx)(t.code,{children:`error`}),` и другие;`]}),`
|
|
8
|
+
`,(0,c.jsx)(t.li,{children:`настроить статусную иконку;`}),`
|
|
9
|
+
`,(0,c.jsx)(t.li,{children:`выполнить финальное форматирование по OData-типу колонки;`}),`
|
|
10
|
+
`,(0,c.jsx)(t.li,{children:`скомпилировать сериализуемую конфигурацию один раз и быстро применять её ко многим строкам.`}),`
|
|
11
|
+
`]}),`
|
|
12
|
+
`,(0,c.jsx)(t.p,{children:`Pipeline не является React-компонентом и не рисует UI. На выходе он возвращает данные, которые UI может отобразить.`}),`
|
|
13
|
+
`,(0,c.jsx)(t.p,{children:`Все функции и типы импортируются из единственного публичного entrypoint:`}),`
|
|
14
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
15
|
+
compileFormattersPipelineExecutor,
|
|
16
|
+
compileFormattersPipelineRuntime,
|
|
17
|
+
formatPipelineDisplayValue,
|
|
18
|
+
normalizeFormattersPipelineConfig,
|
|
19
|
+
validateFormattersPipelineConfig,
|
|
20
|
+
type FormattersPipelineConfig,
|
|
21
|
+
type FormattersPipelineRuntimeField
|
|
22
|
+
} from "@ryuzaki13/react-foundation-lib/formatters";
|
|
23
|
+
`})}),`
|
|
24
|
+
`,(0,c.jsxs)(t.p,{children:[`Импорта `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formatters/pipeline`}),` нет.`]}),`
|
|
25
|
+
`,(0,c.jsx)(t.h2,{id:`для-кого-какой-уровень-api`,children:`Для кого какой уровень API`}),`
|
|
26
|
+
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Задача`}),(0,c.jsx)(t.th,{children:`Основной API`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Хранить конфигурацию`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`FormattersPipelineConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Принять конфиг из JSON/БД`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeFormattersPipelineConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Показать ошибки редактора`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`validateFormattersPipelineConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Скомпилировать один pipeline вручную`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`compileFormattersPipelineExecutor`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Подготовить поля таблицы`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntimeFields`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Форматировать ячейку в обычном consumer`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`formatPipelineDisplayValue`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Собрать дополнительные поля запроса`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`collectRuntimeFieldDependencyIds`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Скопировать конфиг для store`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`cloneFormattersPipelineConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Переиздать технические id копии`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`rekeyFormattersPipelineConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Построить UI-каталог шагов`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`getFormattersPipelineDefinitions`})})]})]})]}),`
|
|
27
|
+
`,(0,c.jsx)(t.p,{children:`Большинству приложений нужен путь «нормализовать → валидировать → скомпилировать поля → форматировать ячейки». Низкоуровневый executor полезен инфраструктурному коду.`}),`
|
|
28
|
+
`,(0,c.jsx)(t.h2,{id:`модель-данных`,children:`Модель данных`}),`
|
|
29
|
+
`,(0,c.jsx)(t.h3,{id:`конфигурация-версии-1`,children:`Конфигурация версии 1`}),`
|
|
30
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type FormattersPipelineConfig = {
|
|
31
|
+
version: 1;
|
|
32
|
+
graph?: FormattersPipelineGraph;
|
|
33
|
+
plan?: FormattersPipelinePlan;
|
|
34
|
+
};
|
|
35
|
+
`})}),`
|
|
36
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
37
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`version`}),` обязана быть ровно `,(0,c.jsx)(t.code,{children:`1`}),`;`]}),`
|
|
38
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`plan`}),` — линейная последовательность runtime-шагов;`]}),`
|
|
39
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`graph`}),` — полное представление для визуального редактора;`]}),`
|
|
40
|
+
`,(0,c.jsxs)(t.li,{children:[`должен присутствовать хотя бы `,(0,c.jsx)(t.code,{children:`plan`}),` или `,(0,c.jsx)(t.code,{children:`graph`}),`.`]}),`
|
|
41
|
+
`]}),`
|
|
42
|
+
`,(0,c.jsx)(t.p,{children:`Pipeline поддерживает только линейное выполнение. Graph не допускает ветвлений и в итоге также превращается в plan.`}),`
|
|
43
|
+
`,(0,c.jsx)(t.h3,{id:`plan`,children:`Plan`}),`
|
|
44
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const config: FormattersPipelineConfig = {
|
|
45
|
+
version: 1,
|
|
46
|
+
plan: {
|
|
47
|
+
steps: [
|
|
48
|
+
{
|
|
49
|
+
id: "zeros",
|
|
50
|
+
type: "normalizeLeadingZeros",
|
|
51
|
+
config: { fixed: 6 }
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: "format",
|
|
55
|
+
type: "typedValueFormat",
|
|
56
|
+
config: { numberPresetName: "integer" }
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
`})}),`
|
|
62
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`id`}),` — технический уникальный идентификатор шага. `,(0,c.jsx)(t.code,{children:`type`}),` выбирает один из четырёх видов formatter-а. Порядок элементов массива — порядок выполнения.`]}),`
|
|
63
|
+
`,(0,c.jsx)(t.h3,{id:`graph`,children:`Graph`}),`
|
|
64
|
+
`,(0,c.jsx)(t.p,{children:`Graph хранит:`}),`
|
|
65
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
66
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`nodes`}),`: узлы `,(0,c.jsx)(t.code,{children:`source`}),`, `,(0,c.jsx)(t.code,{children:`sink`}),` и formatter-узлы;`]}),`
|
|
67
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`edges`}),`: связи `,(0,c.jsx)(t.code,{children:`{ id, source, target }`}),`;`]}),`
|
|
68
|
+
`,(0,c.jsxs)(t.li,{children:[`необязательный `,(0,c.jsx)(t.code,{children:`viewport`}),` редактора `,(0,c.jsx)(t.code,{children:`{ x, y, zoom }`}),`.`]}),`
|
|
69
|
+
`]}),`
|
|
70
|
+
`,(0,c.jsx)(t.p,{children:`Корректный граф имеет вид:`}),`
|
|
71
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`source → formatter → formatter → sink
|
|
72
|
+
`})}),`
|
|
73
|
+
`,(0,c.jsxs)(t.p,{children:[`У него должен быть ровно один `,(0,c.jsx)(t.code,{children:`source`}),` и один `,(0,c.jsx)(t.code,{children:`sink`}),`; все formatter-узлы имеют по одному входу и выходу; все узлы входят в единственный путь; циклы запрещены.`]}),`
|
|
74
|
+
`,(0,c.jsx)(t.h3,{id:`приоритет-plan-и-graph`,children:`Приоритет plan и graph`}),`
|
|
75
|
+
`,(0,c.jsxs)(t.p,{children:[`При валидации корректный `,(0,c.jsx)(t.code,{children:`plan`}),` имеет приоритет. Если plan семантически невалиден, но присутствует graph, validator пытается построить plan из graph и добавляет warning `,(0,c.jsx)(t.code,{children:`path_broken`}),` о fallback.`]}),`
|
|
76
|
+
`,(0,c.jsx)(t.p,{children:`Для сохранённого конфига разумно держать оба представления синхронизированными в редакторе. Runtime не объединяет шаги из двух источников.`}),`
|
|
77
|
+
`,(0,c.jsx)(t.h2,{id:`рекомендуемый-порядок-шагов`,children:`Рекомендуемый порядок шагов`}),`
|
|
78
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`rowBasedOverride
|
|
79
|
+
↓
|
|
80
|
+
normalizeLeadingZeros
|
|
81
|
+
↓
|
|
82
|
+
resolveValueState
|
|
83
|
+
↓
|
|
84
|
+
typedValueFormat
|
|
85
|
+
`})}),`
|
|
86
|
+
`,(0,c.jsx)(t.p,{children:`Так state вычисляется по ещё не превращённому в красивую строку значению, а типизированный formatter завершает pipeline.`}),`
|
|
87
|
+
`,(0,c.jsxs)(t.p,{children:[`Validator запрещает только один критичный вариант: `,(0,c.jsx)(t.code,{children:`typedValueFormat`}),` не может стоять раньше `,(0,c.jsx)(t.code,{children:`resolveValueState`}),`. Остальной смысл порядка остаётся ответственностью автора конфига.`]}),`
|
|
88
|
+
`,(0,c.jsx)(t.p,{children:`Каждый из четырёх типов может присутствовать не более одного раза.`}),`
|
|
89
|
+
`,(0,c.jsxs)(t.h2,{id:`шаг-rowbasedoverride`,children:[`Шаг `,(0,c.jsx)(t.code,{children:`rowBasedOverride`})]}),`
|
|
90
|
+
`,(0,c.jsx)(t.p,{children:`Подменяет текущее значение данными текущей строки.`}),`
|
|
91
|
+
`,(0,c.jsxs)(t.h3,{id:`режим-field`,children:[`Режим `,(0,c.jsx)(t.code,{children:`field`})]}),`
|
|
92
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`{
|
|
93
|
+
id: "override",
|
|
94
|
+
type: "rowBasedOverride",
|
|
95
|
+
config: {
|
|
96
|
+
mode: "field",
|
|
97
|
+
fieldKey: "displayAmount",
|
|
98
|
+
fallbackToRaw: true
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
`})}),`
|
|
102
|
+
`,(0,c.jsxs)(t.p,{children:[`Для строк `,(0,c.jsx)(t.code,{children:`plain`}),`, `,(0,c.jsx)(t.code,{children:`tree`}),` и `,(0,c.jsx)(t.code,{children:`group`}),` шаг читает `,(0,c.jsx)(t.code,{children:`rowData[fieldKey]`}),`. Для строки `,(0,c.jsx)(t.code,{children:`totals`}),` field-режим не применяется.`]}),`
|
|
103
|
+
`,(0,c.jsxs)(t.p,{children:[`Если поле вернуло `,(0,c.jsx)(t.code,{children:`null`}),` или `,(0,c.jsx)(t.code,{children:`undefined`}),`:`]}),`
|
|
104
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
105
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`fallbackToRaw: true`}),` или отсутствие настройки сохраняет текущее значение;`]}),`
|
|
106
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`fallbackToRaw: false`}),` заменяет его на `,(0,c.jsx)(t.code,{children:`undefined`}),`.`]}),`
|
|
107
|
+
`]}),`
|
|
108
|
+
`,(0,c.jsxs)(t.p,{children:[`Пустая строка, `,(0,c.jsx)(t.code,{children:`0`}),` и `,(0,c.jsx)(t.code,{children:`false`}),` являются настоящими значениями и не запускают fallback.`]}),`
|
|
109
|
+
`,(0,c.jsxs)(t.h3,{id:`режим-formula`,children:[`Режим `,(0,c.jsx)(t.code,{children:`formula`})]}),`
|
|
110
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`{
|
|
111
|
+
id: "override",
|
|
112
|
+
type: "rowBasedOverride",
|
|
113
|
+
config: {
|
|
114
|
+
mode: "formula",
|
|
115
|
+
formulaId: "completion-percent",
|
|
116
|
+
dependencyIds: ["planned", "actual"],
|
|
117
|
+
fallbackToRaw: true
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
`})}),`
|
|
121
|
+
`,(0,c.jsxs)(t.p,{children:[`Формула берётся из глобального row-based реестра. В отличие от field-режима, она выполняется для всех `,(0,c.jsx)(t.code,{children:`rowKind`}),`, включая `,(0,c.jsx)(t.code,{children:`totals`}),`.`]}),`
|
|
122
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`dependencyIds`}),` становятся индексами контекста формулы: `,(0,c.jsx)(t.code,{children:`ctx.num(0)`}),` читает `,(0,c.jsx)(t.code,{children:`planned`}),`, `,(0,c.jsx)(t.code,{children:`ctx.num(1)`}),` — `,(0,c.jsx)(t.code,{children:`actual`}),`. Если формула вернула `,(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),` или выбросила ошибку, применяется политика `,(0,c.jsx)(t.code,{children:`fallbackToRaw`}),`.`]}),`
|
|
123
|
+
`,(0,c.jsxs)(t.p,{children:[`До валидации и компиляции нужно настроить реестр. Подробный контракт описан в `,(0,c.jsx)(t.a,{href:`../rowBased/README.mdx`,children:`rowBased/README.mdx`}),`.`]}),`
|
|
124
|
+
`,(0,c.jsxs)(t.h2,{id:`шаг-normalizeleadingzeros`,children:[`Шаг `,(0,c.jsx)(t.code,{children:`normalizeLeadingZeros`})]}),`
|
|
125
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`{
|
|
126
|
+
id: "zeros",
|
|
127
|
+
type: "normalizeLeadingZeros",
|
|
128
|
+
config: { fixed: 6 }
|
|
129
|
+
}
|
|
130
|
+
`})}),`
|
|
131
|
+
`,(0,c.jsxs)(t.p,{children:[`Вызывает `,(0,c.jsx)(t.code,{children:`normalizeLeadingZeros(currentValue, fixed)`}),`. Например, числовая строка `,(0,c.jsx)(t.code,{children:`"42"`}),` при `,(0,c.jsx)(t.code,{children:`fixed: 6`}),` превращается в `,(0,c.jsx)(t.code,{children:`"000042"`}),`.`]}),`
|
|
132
|
+
`,(0,c.jsxs)(t.p,{children:[`Передавайте положительное целое `,(0,c.jsx)(t.code,{children:`fixed`}),`. Structural validator проверяет только тип `,(0,c.jsx)(t.code,{children:`number`}),`, а сама функция имеет широкую JavaScript-семантику преобразования. Все ограничения разобраны в `,(0,c.jsx)(t.a,{href:`../README.mdx#%D0%B2%D0%B5%D0%B4%D1%83%D1%89%D0%B8%D0%B5-%D0%BD%D1%83%D0%BB%D0%B8`,children:`обзоре formatters`}),`.`]}),`
|
|
133
|
+
`,(0,c.jsxs)(t.h2,{id:`шаг-resolvevaluestate`,children:[`Шаг `,(0,c.jsx)(t.code,{children:`resolveValueState`})]}),`
|
|
134
|
+
`,(0,c.jsx)(t.p,{children:`Вычисляет состояние по текущему значению. Поддержаны fixed- и threshold-резолверы.`}),`
|
|
135
|
+
`,(0,c.jsx)(t.h3,{id:`fixed`,children:`Fixed`}),`
|
|
136
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`{
|
|
137
|
+
id: "state",
|
|
138
|
+
type: "resolveValueState",
|
|
139
|
+
config: {
|
|
140
|
+
resolver: {
|
|
141
|
+
kind: "fixed",
|
|
142
|
+
entries: {
|
|
143
|
+
DONE: "success",
|
|
144
|
+
WAITING: "warning",
|
|
145
|
+
FAILED: "error"
|
|
146
|
+
},
|
|
147
|
+
fallbackState: "none"
|
|
148
|
+
},
|
|
149
|
+
icon: {
|
|
150
|
+
enabled: true,
|
|
151
|
+
showValue: true,
|
|
152
|
+
position: "left"
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
`})}),`
|
|
157
|
+
`,(0,c.jsxs)(t.p,{children:[`Fixed-сопоставление выполняется по точному `,(0,c.jsx)(t.code,{children:`String(value)`}),`, без trim и изменения регистра.`]}),`
|
|
158
|
+
`,(0,c.jsx)(t.h3,{id:`threshold`,children:`Threshold`}),`
|
|
159
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`{
|
|
160
|
+
id: "state",
|
|
161
|
+
type: "resolveValueState",
|
|
162
|
+
config: {
|
|
163
|
+
resolver: {
|
|
164
|
+
kind: "threshold",
|
|
165
|
+
thresholds: [50, 80],
|
|
166
|
+
states: ["error", "warning", "success"],
|
|
167
|
+
invalidState: "none"
|
|
168
|
+
},
|
|
169
|
+
icon: { enabled: true, showValue: false, position: "right" }
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
`})}),`
|
|
173
|
+
`,(0,c.jsxs)(t.p,{children:[`Для `,(0,c.jsx)(t.code,{children:`N`}),` порогов требуется ровно `,(0,c.jsx)(t.code,{children:`N + 1`}),` состояний. Подробности границ `,(0,c.jsx)(t.code,{children:`lower`}),`/`,(0,c.jsx)(t.code,{children:`upper`}),` приведены в `,(0,c.jsx)(t.a,{href:`../valueState/README.mdx`,children:`valueState/README.mdx`}),`.`]}),`
|
|
174
|
+
`,(0,c.jsx)(t.h3,{id:`настройки-иконки`,children:`Настройки иконки`}),`
|
|
175
|
+
`,(0,c.jsx)(t.p,{children:`Значения по умолчанию:`}),`
|
|
176
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
177
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`enabled: false`}),`;`]}),`
|
|
178
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`showValue: true`}),`;`]}),`
|
|
179
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`position: "left"`}),`.`]}),`
|
|
180
|
+
`]}),`
|
|
181
|
+
`,(0,c.jsxs)(t.p,{children:[`Иконка создаётся только для `,(0,c.jsx)(t.code,{children:`information`}),`, `,(0,c.jsx)(t.code,{children:`success`}),`, `,(0,c.jsx)(t.code,{children:`warning`}),`, `,(0,c.jsx)(t.code,{children:`error`}),`. Состояния `,(0,c.jsx)(t.code,{children:`""`}),` и `,(0,c.jsx)(t.code,{children:`none`}),` не имеют icon value.`]}),`
|
|
182
|
+
`,(0,c.jsxs)(t.p,{children:[`Если указать `,(0,c.jsx)(t.code,{children:`enabled: false`}),` и `,(0,c.jsx)(t.code,{children:`showValue: false`}),`, UI не сможет показать ни текст, ни иконку; validator сообщает warning `,(0,c.jsx)(t.code,{children:`step_value_hidden_without_icon`}),`.`]}),`
|
|
183
|
+
`,(0,c.jsxs)(t.h2,{id:`шаг-typedvalueformat`,children:[`Шаг `,(0,c.jsx)(t.code,{children:`typedValueFormat`})]}),`
|
|
184
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`{
|
|
185
|
+
id: "typed",
|
|
186
|
+
type: "typedValueFormat",
|
|
187
|
+
config: {
|
|
188
|
+
numberPresetName: "decimal-2",
|
|
189
|
+
datePresetName: "date-long"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
`})}),`
|
|
193
|
+
`,(0,c.jsx)(t.p,{children:`Runtime определяет базовый тип из OData metadata поля:`}),`
|
|
194
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
195
|
+
`,(0,c.jsxs)(t.li,{children:[`число → `,(0,c.jsx)(t.code,{children:`formatNumber`}),`, по умолчанию preset `,(0,c.jsx)(t.code,{children:`decimal`}),`;`]}),`
|
|
196
|
+
`,(0,c.jsxs)(t.li,{children:[`дата → `,(0,c.jsx)(t.code,{children:`parseDate`}),`, затем `,(0,c.jsx)(t.code,{children:`formatDate`}),`, по умолчанию preset `,(0,c.jsx)(t.code,{children:`date`}),`;`]}),`
|
|
197
|
+
`,(0,c.jsx)(t.li,{children:`остальные типы → безопасное строковое представление;`}),`
|
|
198
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),` → `,(0,c.jsx)(t.code,{children:`""`}),`.`]}),`
|
|
199
|
+
`]}),`
|
|
200
|
+
`,(0,c.jsxs)(t.p,{children:[`Для числового preset validator требует непустое зарегистрированное имя. На runtime неизвестное имя всё равно заменяется на `,(0,c.jsx)(t.code,{children:`decimal`}),`. Для неизвестного date preset runtime использует `,(0,c.jsx)(t.code,{children:`date`}),`; текущая валидация отдельно его не отклоняет.`]}),`
|
|
201
|
+
`,(0,c.jsxs)(t.p,{children:[`Если pipeline не содержит `,(0,c.jsx)(t.code,{children:`typedValueFormat`}),`, верхнеуровневый runtime автоматически выполняет стандартное форматирование по типу после executor-а.`]}),`
|
|
202
|
+
`,(0,c.jsx)(t.h2,{id:`валидация`,children:`Валидация`}),`
|
|
203
|
+
`,(0,c.jsx)(t.h3,{id:`validateformatterspipelineconfigconfig`,children:(0,c.jsx)(t.code,{children:`validateFormattersPipelineConfig(config)`})}),`
|
|
204
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const result = validateFormattersPipelineConfig(config);
|
|
205
|
+
|
|
206
|
+
if (!result.ok) {
|
|
207
|
+
for (const error of result.errors) {
|
|
208
|
+
console.error(error.code, error.message);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
for (const warning of result.warnings) {
|
|
213
|
+
console.warn(warning.code, warning.message);
|
|
214
|
+
}
|
|
215
|
+
`})}),`
|
|
216
|
+
`,(0,c.jsx)(t.p,{children:`Результат:`}),`
|
|
217
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type FormattersPipelineValidationResult = {
|
|
218
|
+
ok: boolean;
|
|
219
|
+
errors: FormattersPipelineValidationMessage[];
|
|
220
|
+
warnings: FormattersPipelineValidationMessage[];
|
|
221
|
+
plan?: FormattersPipelinePlan;
|
|
222
|
+
};
|
|
223
|
+
`})}),`
|
|
224
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`ok`}),` зависит от ошибок, но warnings не делают результат невалидным. При успехе используйте возвращённый `,(0,c.jsx)(t.code,{children:`plan`}),`: для graph он уже построен в правильном порядке.`]}),`
|
|
225
|
+
`,(0,c.jsxs)(t.p,{children:[`Низкоуровневые `,(0,c.jsx)(t.code,{children:`validateFormattersPipelinePlan(plan)`}),` и `,(0,c.jsx)(t.code,{children:`validateFormattersPipelineGraph(graph)`}),` нужны редактору, который проверяет представления отдельно.`]}),`
|
|
226
|
+
`,(0,c.jsx)(t.h3,{id:`основные-группы-ошибок`,children:`Основные группы ошибок`}),`
|
|
227
|
+
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Группа`}),(0,c.jsx)(t.th,{children:`Примеры code`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Конфиг`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`config_not_defined`}),`, `,(0,c.jsx)(t.code,{children:`unsupported_version`}),`, `,(0,c.jsx)(t.code,{children:`graph_or_plan_required`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Идентификаторы`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`node_id_duplicate`}),`, `,(0,c.jsx)(t.code,{children:`edge_id_duplicate`}),`, `,(0,c.jsx)(t.code,{children:`step_id_duplicate`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Структура graph`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`source_count_invalid`}),`, `,(0,c.jsx)(t.code,{children:`node_degree_invalid`}),`, `,(0,c.jsx)(t.code,{children:`path_cycle_detected`}),`, `,(0,c.jsx)(t.code,{children:`path_disconnected_nodes`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Повтор шагов`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`step_*_multiple`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Порядок`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`step_typed_before_value_state`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Row-based`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`step_row_based_override_formula_not_found`}),`, `,(0,c.jsx)(t.code,{children:`step_row_based_override_dependency_index_out_of_range`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Value state`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`step_threshold_states_count_invalid`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Preset`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`step_typed_value_format_preset_empty`}),`, `,(0,c.jsx)(t.code,{children:`step_typed_value_format_preset_not_found`})]})]})]})]}),`
|
|
228
|
+
`,(0,c.jsx)(t.p,{children:`Validator запускает row-based формулу дважды на синтетических положительных и отрицательных значениях. Так он обнаруживает обращение за границы dependencies, неиспользуемые зависимости и некоторые runtime-ошибки. Формула обязана быть чистой и синхронной.`}),`
|
|
229
|
+
`,(0,c.jsx)(t.p,{children:`Проверка тестовыми данными не доказывает корректность всех условных веток; бизнес-формулы всё равно требуют собственных тестов.`}),`
|
|
230
|
+
`,(0,c.jsx)(t.h2,{id:`нормализация-внешнего-json`,children:`Нормализация внешнего JSON`}),`
|
|
231
|
+
`,(0,c.jsx)(t.h3,{id:`normalizeformatterspipelineconfigvalue`,children:(0,c.jsx)(t.code,{children:`normalizeFormattersPipelineConfig(value)`})}),`
|
|
232
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const config = normalizeFormattersPipelineConfig(JSON.parse(payload));
|
|
233
|
+
|
|
234
|
+
if (!config) {
|
|
235
|
+
// payload имеет неправильную форму или семантически невалиден
|
|
236
|
+
}
|
|
237
|
+
`})}),`
|
|
238
|
+
`,(0,c.jsx)(t.p,{children:`Функция:`}),`
|
|
239
|
+
`,(0,c.jsxs)(t.ol,{children:[`
|
|
240
|
+
`,(0,c.jsxs)(t.li,{children:[`принимает `,(0,c.jsx)(t.code,{children:`unknown`}),`;`]}),`
|
|
241
|
+
`,(0,c.jsx)(t.li,{children:`проверяет структуру и типы всех известных полей;`}),`
|
|
242
|
+
`,(0,c.jsxs)(t.li,{children:[`поддерживает только версию `,(0,c.jsx)(t.code,{children:`1`}),`;`]}),`
|
|
243
|
+
`,(0,c.jsx)(t.li,{children:`выполняет семантическую валидацию;`}),`
|
|
244
|
+
`,(0,c.jsx)(t.li,{children:`возвращает глубокую копию известных конфигурационных структур;`}),`
|
|
245
|
+
`,(0,c.jsxs)(t.li,{children:[`возвращает `,(0,c.jsx)(t.code,{children:`undefined`}),` при любой невалидности.`]}),`
|
|
246
|
+
`]}),`
|
|
247
|
+
`,(0,c.jsxs)(t.p,{children:[`Она не исправляет значения, не trim-ит id и не мигрирует версии. Для UI с подробными сообщениями сначала нужен отдельный structural parser либо уже типизированный config + `,(0,c.jsx)(t.code,{children:`validateFormattersPipelineConfig`}),`.`]}),`
|
|
248
|
+
`,(0,c.jsx)(t.h2,{id:`компиляция-одного-executor-а`,children:`Компиляция одного executor-а`}),`
|
|
249
|
+
`,(0,c.jsx)(t.h3,{id:`compileformatterspipelineexecutorargs`,children:(0,c.jsx)(t.code,{children:`compileFormattersPipelineExecutor(args)`})}),`
|
|
250
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const compiled = compileFormattersPipelineExecutor({
|
|
251
|
+
config,
|
|
252
|
+
column: {
|
|
253
|
+
role: "Data",
|
|
254
|
+
type: "Edm.Decimal"
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
if (!compiled.ok) {
|
|
259
|
+
console.error(compiled.reason);
|
|
260
|
+
} else {
|
|
261
|
+
const result = compiled.executor.execute({
|
|
262
|
+
value: 72.5,
|
|
263
|
+
rowData: { planned: 100, actual: 72.5 },
|
|
264
|
+
rowKind: "plain",
|
|
265
|
+
isGroupRow: false,
|
|
266
|
+
isTotalsRow: false,
|
|
267
|
+
rowLevel: 0,
|
|
268
|
+
groupingIds: [],
|
|
269
|
+
columnId: "progress"
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
`})}),`
|
|
273
|
+
`,(0,c.jsx)(t.p,{children:`Ошибка компиляции имеет одну из причин:`}),`
|
|
274
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
275
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`pipeline_invalid`}),`;`]}),`
|
|
276
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`row_based_formula_not_found`}),`.`]}),`
|
|
277
|
+
`]}),`
|
|
278
|
+
`,(0,c.jsxs)(t.p,{children:[`Executor сообщает флаги `,(0,c.jsx)(t.code,{children:`hasRowBasedOverride`}),` и `,(0,c.jsx)(t.code,{children:`hasTypedValueFormat`}),`. Поля `,(0,c.jsx)(t.code,{children:`isGroupRow`}),` и `,(0,c.jsx)(t.code,{children:`isTotalsRow`}),` в execution context устарели; новый код передаёт достоверный `,(0,c.jsx)(t.code,{children:`rowKind`}),` и производные флаги только для совместимости контракта.`]}),`
|
|
279
|
+
`,(0,c.jsx)(t.h2,{id:`высокоуровневый-runtime-полей`,children:`Высокоуровневый runtime полей`}),`
|
|
280
|
+
`,(0,c.jsx)(t.h3,{id:`контракт-поля`,children:`Контракт поля`}),`
|
|
281
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type FormattersPipelineRuntimeField = {
|
|
282
|
+
id: string;
|
|
283
|
+
role: ColumnRole;
|
|
284
|
+
type: ODataMetaType;
|
|
285
|
+
formattersPipeline?: FormattersPipelineConfig;
|
|
286
|
+
formulaId?: string;
|
|
287
|
+
formulaDependencies?: readonly string[];
|
|
288
|
+
purelyDerived?: boolean;
|
|
289
|
+
emptyWhenZero?: boolean;
|
|
290
|
+
overflowTooltip?: boolean;
|
|
291
|
+
formulaExecutor?: TableFormulaCompiledExecutor;
|
|
292
|
+
formattersPipelineExecutor?: FormattersPipelineExecutor;
|
|
293
|
+
};
|
|
294
|
+
`})}),`
|
|
295
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`formulaId`}),` здесь относится к общему модулю table formulas и выполняется до formatter pipeline. Это не то же самое, что row-based formula внутри шага `,(0,c.jsx)(t.code,{children:`rowBasedOverride`}),`.`]}),`
|
|
296
|
+
`,(0,c.jsx)(t.h3,{id:`compileformatterspipelineruntimefield`,children:(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntime(field)`})}),`
|
|
297
|
+
`,(0,c.jsx)(t.p,{children:`Компилирует formula и pipeline и записывает executors прямо в исходный объект:`}),`
|
|
298
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const sameField = compileFormattersPipelineRuntime(field);
|
|
299
|
+
|
|
300
|
+
sameField === field; // true
|
|
301
|
+
`})}),`
|
|
302
|
+
`,(0,c.jsx)(t.p,{children:`Это намеренная мутация construction-stage. Вызывайте функцию до помещения полей в readonly context, memoized snapshot или cache. Не вызывайте её на замороженном объекте и не воспринимайте как чистый clone-helper.`}),`
|
|
303
|
+
`,(0,c.jsx)(t.p,{children:`Если pipeline невалиден, executor удаляется, и дальнейшее отображение использует стандартный typed fallback. Поэтому для диагностики обязательно валидируйте пользовательский конфиг отдельно: runtime деградирует безопасно и не возвращает подробные ошибки.`}),`
|
|
304
|
+
`,(0,c.jsx)(t.h3,{id:`compileformatterspipelineruntimefieldsfieldsbyid`,children:(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntimeFields(fieldsById)`})}),`
|
|
305
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const runtimeFields = compileFormattersPipelineRuntimeFields(fieldsById);
|
|
306
|
+
`})}),`
|
|
307
|
+
`,(0,c.jsxs)(t.p,{children:[`Возвращает новую record-карту, пропускает `,(0,c.jsx)(t.code,{children:`undefined`}),`, но сами поля не копирует: каждое исходное поле компилируется с описанной выше мутацией.`]}),`
|
|
308
|
+
`,(0,c.jsx)(t.h3,{id:`formatpipelinedisplayvalueargs`,children:(0,c.jsx)(t.code,{children:`formatPipelineDisplayValue(args)`})}),`
|
|
309
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const display = formatPipelineDisplayValue({
|
|
310
|
+
field: runtimeFields.amount,
|
|
311
|
+
rawValue: row.amount,
|
|
312
|
+
rowData: row,
|
|
313
|
+
rowKind: "plain",
|
|
314
|
+
rowLevel: 0,
|
|
315
|
+
groupingIds: []
|
|
316
|
+
});
|
|
317
|
+
`})}),`
|
|
318
|
+
`,(0,c.jsx)(t.p,{children:`Результат содержит:`}),`
|
|
319
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type FormattersPipelineDisplayValue = {
|
|
320
|
+
value: unknown;
|
|
321
|
+
state: State;
|
|
322
|
+
icon?: "information" | "success" | "warning" | "error";
|
|
323
|
+
showIcon: boolean;
|
|
324
|
+
showValue: boolean;
|
|
325
|
+
iconPosition: "left" | "right";
|
|
326
|
+
overflowTooltip?: boolean;
|
|
327
|
+
};
|
|
328
|
+
`})}),`
|
|
329
|
+
`,(0,c.jsx)(t.p,{children:`Порядок верхнеуровневого runtime:`}),`
|
|
330
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-text`,children:`rawValue
|
|
331
|
+
↓ table formula, если задана
|
|
332
|
+
↓ formatter pipeline, если скомпилирован
|
|
333
|
+
↓ typed fallback, если pipeline сам не форматировал тип
|
|
334
|
+
↓ purelyDerived / emptyWhenZero post-processing
|
|
335
|
+
display result
|
|
336
|
+
`})}),`
|
|
337
|
+
`,(0,c.jsx)(t.p,{children:`Если formula завершилась ошибкой:`}),`
|
|
338
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
339
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`purelyDerived: true`}),` даёт пустое отображение;`]}),`
|
|
340
|
+
`,(0,c.jsxs)(t.li,{children:[`иначе используется исходный `,(0,c.jsx)(t.code,{children:`rawValue`}),`.`]}),`
|
|
341
|
+
`]}),`
|
|
342
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`emptyWhenZero`}),` проверяет source value после table formula, а не позднюю подмену `,(0,c.jsx)(t.code,{children:`rowBasedOverride`}),`. Оно очищает только `,(0,c.jsx)(t.code,{children:`display.value`}),`; state и настройки иконки сохраняются.`]}),`
|
|
343
|
+
`,(0,c.jsxs)(t.p,{children:[`Если `,(0,c.jsx)(t.code,{children:`field`}),` не передан, `,(0,c.jsx)(t.code,{children:`rawValue`}),` безопасно преобразуется в строку с состоянием `,(0,c.jsx)(t.code,{children:`none`}),`.`]}),`
|
|
344
|
+
`,(0,c.jsx)(t.h2,{id:`зависимости-полей`,children:`Зависимости полей`}),`
|
|
345
|
+
`,(0,c.jsx)(t.h3,{id:`collectformatterspipelinedependencyidsconfig`,children:(0,c.jsx)(t.code,{children:`collectFormattersPipelineDependencyIds(config)`})}),`
|
|
346
|
+
`,(0,c.jsxs)(t.p,{children:[`Возвращает уникальные непустые зависимости `,(0,c.jsx)(t.code,{children:`rowBasedOverride`}),` в порядке первого появления:`]}),`
|
|
347
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
348
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`fieldKey`}),` из field-режима;`]}),`
|
|
349
|
+
`,(0,c.jsxs)(t.li,{children:[`каждый `,(0,c.jsx)(t.code,{children:`dependencyId`}),` из formula-режима.`]}),`
|
|
350
|
+
`]}),`
|
|
351
|
+
`,(0,c.jsx)(t.p,{children:`Для невалидного pipeline возвращается пустой массив.`}),`
|
|
352
|
+
`,(0,c.jsx)(t.h3,{id:`collectruntimefielddependencyidsfieldids-fieldsbyid`,children:(0,c.jsx)(t.code,{children:`collectRuntimeFieldDependencyIds(fieldIds, fieldsById)`})}),`
|
|
353
|
+
`,(0,c.jsxs)(t.p,{children:[`Дополнительно учитывает `,(0,c.jsx)(t.code,{children:`cellRenderer.bindings`}),` и разделяет найденные id:`]}),`
|
|
354
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const dependencies = collectRuntimeFieldDependencyIds(visibleIds, fieldsById);
|
|
355
|
+
|
|
356
|
+
dependencies.requiredColumnIds; // существующие поля, которые нужны runtime
|
|
357
|
+
dependencies.missingColumnIds; // ссылки на неизвестные поля
|
|
358
|
+
`})}),`
|
|
359
|
+
`,(0,c.jsx)(t.p,{children:`Используйте результат при построении серверного select/query, иначе formatter может получить неполную строку.`}),`
|
|
360
|
+
`,(0,c.jsx)(t.h2,{id:`клонирование-и-новые-id`,children:`Клонирование и новые id`}),`
|
|
361
|
+
`,(0,c.jsx)(t.h3,{id:`cloneformatterspipelineconfigconfig`,children:(0,c.jsx)(t.code,{children:`cloneFormattersPipelineConfig(config)`})}),`
|
|
362
|
+
`,(0,c.jsxs)(t.p,{children:[`Создаёт независимые копии plan, graph, positions, edges, массивов dependencies, threshold definitions, states, entries, icon и viewport. `,(0,c.jsx)(t.code,{children:`undefined`}),` остаётся `,(0,c.jsx)(t.code,{children:`undefined`}),`.`]}),`
|
|
363
|
+
`,(0,c.jsx)(t.p,{children:`Функция только клонирует: она не валидирует и не нормализует значения.`}),`
|
|
364
|
+
`,(0,c.jsx)(t.p,{children:`Более узкие helpers:`}),`
|
|
365
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
366
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`cloneTypedValueFormatConfig`}),`;`]}),`
|
|
367
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`cloneNormalizeLeadingZerosConfig`}),`;`]}),`
|
|
368
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`cloneRowBasedOverrideConfig`}),`;`]}),`
|
|
369
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`cloneResolveValueStateConfig`}),`;`]}),`
|
|
370
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`cloneFormatterPipelinePlanStep`}),`;`]}),`
|
|
371
|
+
`,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`cloneFormatterPipelinePlanStepToNode`}),`.`]}),`
|
|
372
|
+
`]}),`
|
|
373
|
+
`,(0,c.jsx)(t.h3,{id:`rekeyformatterspipelineconfigconfig-idfactory`,children:(0,c.jsx)(t.code,{children:`rekeyFormattersPipelineConfig(config, idFactory?)`})}),`
|
|
374
|
+
`,(0,c.jsxs)(t.p,{children:[`Создаёт копию с новыми техническими id пользовательских formatter-узлов, plan steps и edges. `,(0,c.jsx)(t.code,{children:`source`}),` и `,(0,c.jsx)(t.code,{children:`sink`}),` сохраняют исходные id как служебные якоря.`]}),`
|
|
375
|
+
`,(0,c.jsxs)(t.p,{children:[`По умолчанию id создаёт `,(0,c.jsx)(t.code,{children:`uuidv4`}),`. В тесте можно передать детерминированную фабрику:`]}),`
|
|
376
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:"let id = 0;\nconst copy = rekeyFormattersPipelineConfig(config, () => `new-${++id}`);\n"})}),`
|
|
377
|
+
`,(0,c.jsx)(t.p,{children:`Если новый graph валиден, plan перестраивается из него. Иначе переиздаётся существующий plan.`}),`
|
|
378
|
+
`,(0,c.jsx)(t.h2,{id:`каталог-шагов`,children:`Каталог шагов`}),`
|
|
379
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const definitions = getFormattersPipelineDefinitions();
|
|
380
|
+
const typed = getFormattersPipelineDefinitionById("typedValueFormat");
|
|
381
|
+
`})}),`
|
|
382
|
+
`,(0,c.jsxs)(t.p,{children:[`Каталог содержит `,(0,c.jsx)(t.code,{children:`id`}),`, русское `,(0,c.jsx)(t.code,{children:`name`}),` и `,(0,c.jsx)(t.code,{children:`description`}),` для четырёх поддерживаемых типов. Он удобен для редактора, но не заменяет конфигурационные типы каждого шага.`]}),`
|
|
383
|
+
`,(0,c.jsx)(t.h2,{id:`formattypedcellvalue`,children:(0,c.jsx)(t.code,{children:`formatTypedCellValue`})}),`
|
|
384
|
+
`,(0,c.jsxs)(t.p,{children:[`Низкоуровневая функция форматирует одно значение по `,(0,c.jsx)(t.code,{children:`{ role, type }`}),` и optional typed config. Её можно применять без полного pipeline:`]}),`
|
|
385
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`const text = formatTypedCellValue(1234.5, { role: "Data", type: "Edm.Decimal" }, { numberPresetName: "decimal-2" });
|
|
386
|
+
`})}),`
|
|
387
|
+
`,(0,c.jsxs)(t.p,{children:[`Для обычной таблицы используйте `,(0,c.jsx)(t.code,{children:`formatPipelineDisplayValue`}),`, чтобы не пропустить formulas, states и post-processing.`]}),`
|
|
388
|
+
`,(0,c.jsx)(t.h2,{id:`частые-ошибки`,children:`Частые ошибки`}),`
|
|
389
|
+
`,(0,c.jsx)(t.h3,{id:`компилировать-pipeline-для-каждой-ячейки`,children:`Компилировать pipeline для каждой ячейки`}),`
|
|
390
|
+
`,(0,c.jsx)(t.p,{children:`Компиляция валидирует конфиг, разрешает presets/formulas и создаёт resolvers. Выполняйте её один раз при построении набора полей, а не в цикле рендера строк.`}),`
|
|
391
|
+
`,(0,c.jsx)(t.h3,{id:`считать-runtime-validation-ui-диагностикой`,children:`Считать runtime validation UI-диагностикой`}),`
|
|
392
|
+
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntime`}),` молча удаляет executor невалидного pipeline и включает fallback. Сначала вызовите validator и покажите `,(0,c.jsx)(t.code,{children:`errors`}),` пользователю редактора.`]}),`
|
|
393
|
+
`,(0,c.jsx)(t.h3,{id:`забыть-row-based-реестр`,children:`Забыть row-based реестр`}),`
|
|
394
|
+
`,(0,c.jsxs)(t.p,{children:[`Formula-режим не скомпилируется, пока host не вызвал `,(0,c.jsx)(t.code,{children:`configureRowBasedFormatterRegistry`}),`.`]}),`
|
|
395
|
+
`,(0,c.jsx)(t.h3,{id:`вычислять-state-после-превращения-числа-в-строку`,children:`Вычислять state после превращения числа в строку`}),`
|
|
396
|
+
`,(0,c.jsx)(t.p,{children:`Если typed formatter выполнен раньше state, резолвер увидит локализованную строку. Validator запрещает этот порядок; придерживайтесь рекомендуемой последовательности.`}),`
|
|
397
|
+
`,(0,c.jsx)(t.h3,{id:`мутировать-поле-после-публикации-snapshot`,children:`Мутировать поле после публикации snapshot`}),`
|
|
398
|
+
`,(0,c.jsx)(t.p,{children:`Runtime compiler изменяет объект поля. Компилируйте до заморозки и передачи потребителям.`}),`
|
|
399
|
+
`,(0,c.jsx)(t.h3,{id:`считать-graph-произвольным-workflow`,children:`Считать graph произвольным workflow`}),`
|
|
400
|
+
`,(0,c.jsx)(t.p,{children:`Ветвления, циклы и несколько независимых цепочек не поддерживаются. Graph — редактируемое представление строго линейного pipeline.`}),`
|
|
401
|
+
`,(0,c.jsx)(t.h2,{id:`полная-карта-публичного-api`,children:`Полная карта публичного API`}),`
|
|
402
|
+
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Семейство`}),(0,c.jsx)(t.th,{children:`API`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Исполнение`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`compileFormattersPipelineExecutor`}),`, `,(0,c.jsx)(t.code,{children:`formatTypedCellValue`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Runtime полей`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntime`}),`, `,(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntimeFields`}),`, `,(0,c.jsx)(t.code,{children:`formatPipelineDisplayValue`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Валидация`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`validateFormattersPipelineConfig`}),`, `,(0,c.jsx)(t.code,{children:`validateFormattersPipelinePlan`}),`, `,(0,c.jsx)(t.code,{children:`validateFormattersPipelineGraph`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Внешние данные`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeFormattersPipelineConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Зависимости`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`collectFormattersPipelineDependencyIds`}),`, `,(0,c.jsx)(t.code,{children:`collectRuntimeFieldDependencyIds`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Клонирование`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`cloneFormattersPipelineConfig`}),` и узкие clone helpers`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Переиздание id`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`rekeyFormattersPipelineConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Каталог`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`getFormattersPipelineDefinitions`}),`, `,(0,c.jsx)(t.code,{children:`getFormattersPipelineDefinitionById`})]})]})]})]}),`
|
|
403
|
+
`,(0,c.jsx)(t.h3,{id:`каталог-публичных-типов`,children:`Каталог публичных типов`}),`
|
|
404
|
+
`,(0,c.jsxs)(t.p,{children:[`Все типы импортируются из `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formatters`}),`.`]}),`
|
|
405
|
+
`,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Область`}),(0,c.jsx)(t.th,{children:`Типы`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Идентификаторы и UI`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineFormatterId`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineIconPosition`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineValueIcon`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineValueStateIconSettings`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Общий config`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineConfig`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineGraph`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelinePlan`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineStep`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Graph`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineNode`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineEdge`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineSourceNode`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineSinkNode`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineNormalizeLeadingZerosNode`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineRowBasedOverrideNode`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineResolveValueStateNode`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineTypedValueFormatNode`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Plan steps`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineNormalizeLeadingZerosStep`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineRowBasedOverrideStep`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineResolveValueStateStep`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineTypedValueFormatStep`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Leading zeros`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`FormattersPipelineNormalizeLeadingZerosConfig`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Row override`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineRowBasedOverrideConfig`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineRowBasedOverrideFieldConfig`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineRowBasedOverrideFormulaConfig`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Value state`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineResolveValueStateConfig`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineValueStateResolverConfig`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineFixedValueStateConfig`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineThresholdValueStateConfig`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Typed formatting`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineTypedValueContext`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineTypedValueFormatConfig`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Execution`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineRowKind`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineExecutionContext`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineExecutionResult`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineExecutor`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Runtime`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineRuntimeField`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineRuntimeFields`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineDisplayValue`}),`, `,(0,c.jsx)(t.code,{children:`FormatPipelineDisplayValueArgs`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Dependencies`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`RuntimeDependencyField`}),`, `,(0,c.jsx)(t.code,{children:`RuntimeFieldDependenciesPlan`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Validation`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineValidationCode`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineValidationMessage`}),`, `,(0,c.jsx)(t.code,{children:`FormattersPipelineValidationResult`})]})]})]})]}),`
|
|
406
|
+
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import type {
|
|
407
|
+
FormattersPipelineConfig,
|
|
408
|
+
FormattersPipelineRuntimeField,
|
|
409
|
+
FormattersPipelineValidationResult
|
|
410
|
+
} from "@ryuzaki13/react-foundation-lib/formatters";
|
|
411
|
+
`})}),`
|
|
412
|
+
`,(0,c.jsx)(t.h2,{id:`связанная-документация`,children:`Связанная документация`}),`
|
|
413
|
+
`,(0,c.jsxs)(t.ul,{children:[`
|
|
414
|
+
`,(0,c.jsx)(t.li,{children:(0,c.jsxs)(t.a,{href:`../README.mdx`,children:[`Обзор всего модуля `,(0,c.jsx)(t.code,{children:`formatters`})]})}),`
|
|
415
|
+
`,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`../rowBased/README.mdx`,children:`Row-based формулы и реестр`})}),`
|
|
416
|
+
`,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`../valueState/README.mdx`,children:`Value state`})}),`
|
|
417
|
+
`,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`../number/README.mdx`,children:`Числовые форматтеры`})}),`
|
|
418
|
+
`,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`../date/README.mdx`,children:`Даты`})}),`
|
|
419
|
+
`,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`../strings/README.mdx`,children:`Строковые форматтеры`})}),`
|
|
420
|
+
`]})]})}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};
|