@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.
Files changed (312) hide show
  1. package/dist/advanced-search/index.js +2 -2
  2. package/dist/base-table/index.js +1 -1
  3. package/dist/chunks/{base-table-CsnUiMTe.js → base-table-CYbtifH0.js} +2 -2
  4. package/dist/chunks/{base-table-CsnUiMTe.js.map → base-table-CYbtifH0.js.map} +1 -1
  5. package/dist/chunks/{context-menu-C8sA7xCN.js → context-menu-L4KM0FRD.js} +2 -2
  6. package/dist/chunks/{context-menu-C8sA7xCN.js.map → context-menu-L4KM0FRD.js.map} +1 -1
  7. package/dist/chunks/date-input-g6l1iDmf.js.map +1 -1
  8. package/dist/chunks/{multi-select-Cvjz9W07.js → multi-select-CCgoTHWI.js} +2 -2
  9. package/dist/chunks/{multi-select-Cvjz9W07.js.map → multi-select-CCgoTHWI.js.map} +1 -1
  10. package/dist/chunks/{picker-0I1yMKIY.js → picker-Cb3D2Hts.js} +6 -2
  11. package/dist/chunks/picker-Cb3D2Hts.js.map +1 -0
  12. package/dist/chunks/{select-CUQ91FIc.js → select-Baek-IUe.js} +2 -2
  13. package/dist/chunks/{select-CUQ91FIc.js.map → select-Baek-IUe.js.map} +1 -1
  14. package/dist/chunks/{table-z9kyd9U3.js → table-CrQiurtA.js} +2 -2
  15. package/dist/chunks/{table-z9kyd9U3.js.map → table-CrQiurtA.js.map} +1 -1
  16. package/dist/context-menu/index.js +1 -1
  17. package/dist/layout-picker/index.js +1 -1
  18. package/dist/listbox/index.js +1 -1
  19. package/dist/multi-select/index.js +1 -1
  20. package/dist/picker/index.js +1 -1
  21. package/dist/preset-select/index.js +1 -1
  22. package/dist/select/index.js +1 -1
  23. package/dist/simple-table/index.js +1 -1
  24. package/dist/slider/index.js +1 -1
  25. package/dist/state-select/index.js +1 -1
  26. package/dist/styles.css +1 -1
  27. package/dist/table/index.js +1 -1
  28. package/dist/table-sorting/index.js +1 -1
  29. package/dist/tree-select/index.js +1 -1
  30. package/dist/tree-table/index.js +1 -1
  31. package/package.json +4 -4
  32. package/storybook-static/assets/{Badge-CzxxuE7D.js → Badge-C4U4sxtF.js} +1 -1
  33. package/storybook-static/assets/{Badge.stories-RaI7qvpZ.js → Badge.stories-DHmJTpdf.js} +1 -1
  34. package/storybook-static/assets/{BadgeList-B7cF3h_F.js → BadgeList-BOs5ycWn.js} +1 -1
  35. package/storybook-static/assets/{Button-Cjmm8oDV.js → Button-BTtYeCS_.js} +1 -1
  36. package/storybook-static/assets/{Button-6z1R7ZA8.js → Button-Bkb3wQw6.js} +1 -1
  37. package/storybook-static/assets/{Button.stories-B5fUA2Gu.js → Button.stories-DgFLAdcg.js} +1 -1
  38. package/storybook-static/assets/{CalendarView-Dlt0f4Jr.js → CalendarView-BIFHbOTr.js} +1 -1
  39. package/storybook-static/assets/{CheckBox-L4324ZCs.js → CheckBox-76M-N56J.js} +1 -1
  40. package/storybook-static/assets/{CheckBox-BOSDcvCd.js → CheckBox-D4u-58g8.js} +1 -1
  41. package/storybook-static/assets/{CheckBox.module-CoYygdZx.js → CheckBox.module-BOAVN-Ny.js} +1 -1
  42. package/storybook-static/assets/{CheckBox.stories-DALRNTV0.js → CheckBox.stories-Caw6-hSQ.js} +1 -1
  43. package/storybook-static/assets/{Color-6AOWCN3U-UmlmbwVs.js → Color-6AOWCN3U-CPYGaU3y.js} +1 -1
  44. package/storybook-static/assets/{ContextMenu-giZ56GIC.js → ContextMenu-CUWt-eg1.js} +1 -1
  45. package/storybook-static/assets/{ContextMenu-BOez7LwB.js → ContextMenu-gfYYiVdR.js} +1 -1
  46. package/storybook-static/assets/{ContextMenu.stories-BnoaSq3Q.js → ContextMenu.stories-BuQS57wW.js} +1 -1
  47. package/storybook-static/assets/{CustomOptionButton-C1VgtQgI.js → CustomOptionButton-Be7sd0Lb.js} +1 -1
  48. package/storybook-static/assets/{DateInput-A3468S6P.js → DateInput-B4oviF7J.js} +1 -1
  49. package/storybook-static/assets/{DateInput-oWtyLo3Q.js → DateInput-BQGUMYsW.js} +1 -1
  50. package/storybook-static/assets/{DateInput.stories-BeGG7Vzf.js → DateInput.stories-D6q7J1C4.js} +1 -1
  51. package/storybook-static/assets/{DateRangePresetSelect--h5MdeWg.js → DateRangePresetSelect-BAxaG0HP.js} +1 -1
  52. package/storybook-static/assets/{DateRangePresetSelect-DbKRsjNX.js → DateRangePresetSelect-Cq6pOZPu.js} +1 -1
  53. package/storybook-static/assets/{DateRangePresetSelect.stories-BS1ll9RK.js → DateRangePresetSelect.stories-d4HFbao6.js} +1 -1
  54. package/storybook-static/assets/{Detail-FEi6FSkD.js → Detail-DlETcWVp.js} +1 -1
  55. package/storybook-static/assets/{Detail.stories-Dy2yKBDx.js → Detail.stories-BEwFXEZH.js} +1 -1
  56. package/storybook-static/assets/{Dialog-C7Zfcyjf.js → Dialog-Bk8aoiOf.js} +1 -1
  57. package/storybook-static/assets/{Dialog-CXnHtk_h.js → Dialog-D63TJr1M.js} +1 -1
  58. package/storybook-static/assets/{Dialog.stories-BeUqdA_f.js → Dialog.stories-BR7NqeZj.js} +1 -1
  59. package/storybook-static/assets/{Disclosure-BqsgTrM0.js → Disclosure-zQK54WKU.js} +1 -1
  60. package/storybook-static/assets/{Disclosure.stories-D3LzXhet.js → Disclosure.stories-CNLpB5YJ.js} +1 -1
  61. package/storybook-static/assets/{DisclosureGroup-BAF5Untb.js → DisclosureGroup-C_nZSLZw.js} +1 -1
  62. package/storybook-static/assets/{DocsRenderer-JROSPFPF-luRRUpJ_.js → DocsRenderer-JROSPFPF-CoU8mWAw.js} +2 -2
  63. package/storybook-static/assets/{DropZone-B-YA4zyu.js → DropZone-CUz1Q4bA.js} +1 -1
  64. package/storybook-static/assets/{DropZone-DKrOIaeH.js → DropZone-Y5hvED_x.js} +1 -1
  65. package/storybook-static/assets/{DropZone.stories-wf2ubfGc.js → DropZone.stories-BH4FSM4P.js} +1 -1
  66. package/storybook-static/assets/{DropdownMenu-BiWUESj0.js → DropdownMenu-Bi6-5Gqf.js} +1 -1
  67. package/storybook-static/assets/{ExpandableActionPanel-Dtfw5TWs.js → ExpandableActionPanel-BfWj887r.js} +1 -1
  68. package/storybook-static/assets/{ExpandableActionPanel.stories-BOdw0CLN.js → ExpandableActionPanel.stories-CGxcwRMU.js} +1 -1
  69. package/storybook-static/assets/{Flex-BaSYiAMD.js → Flex-Dm-Qfvzk.js} +1 -1
  70. package/storybook-static/assets/{Flex.stories-CD_e9R5B.js → Flex.stories-B3zMz03s.js} +1 -1
  71. package/storybook-static/assets/{FlexContainer-LmZIdhq2.js → FlexContainer-BWyPlTMB.js} +1 -1
  72. package/storybook-static/assets/{FlexItem-vkDYa5tA.js → FlexItem-pu3E11Sf.js} +1 -1
  73. package/storybook-static/assets/{FloatingPopover-C65hSmop.js → FloatingPopover-NMRTnqfo.js} +1 -1
  74. package/storybook-static/assets/FormattedTableCell-BISjHrBJ.js +15 -0
  75. package/storybook-static/assets/{Grid-BCzygAqy.js → Grid-CzO0Ae1r.js} +1 -1
  76. package/storybook-static/assets/{Grid-8eLmW2AB.js → Grid-vZyA-712.js} +1 -1
  77. package/storybook-static/assets/{Grid.stories-DULQOmbC.js → Grid.stories-BQqK0zom.js} +1 -1
  78. package/storybook-static/assets/{GridContainer-qDguE1HS.js → GridContainer-fKYgDsLl.js} +1 -1
  79. package/storybook-static/assets/{ImageCropper.stories-C1O-Zv4X.js → ImageCropper.stories-Ca4MZWOW.js} +3 -3
  80. package/storybook-static/assets/{ImageRenderer-BOyGnl1v.js → ImageRenderer-BWIk_76e.js} +1 -1
  81. package/storybook-static/assets/{ImageRenderer.stories-Cms0kMXA.js → ImageRenderer.stories-C1FfOcFD.js} +1 -1
  82. package/storybook-static/assets/{ImageView.stories-CUR6bAyn.js → ImageView.stories-DyuR7kdq.js} +1 -1
  83. package/storybook-static/assets/{ImageViewer.stories-BwJKAIT7.js → ImageViewer.stories-PcvOFYqC.js} +2 -2
  84. package/storybook-static/assets/{ImageViewerRuntime-CzkvEHax.js → ImageViewerRuntime-BiI7Xukq.js} +2 -2
  85. package/storybook-static/assets/{Input-B2_RznVE.js → Input-CsD-x1BQ.js} +1 -1
  86. package/storybook-static/assets/{Input-ebp78QN1.js → Input-D_4GoCLl.js} +1 -1
  87. package/storybook-static/assets/{Input.stories-BKwTRsUL.js → Input.stories-D-1urO1N.js} +1 -1
  88. package/storybook-static/assets/{InputDateTime-pK4mlxxm.js → InputDateTime-CFQanHxB.js} +1 -1
  89. package/storybook-static/assets/{InputDateTime.stories-J4Gd0DaU.js → InputDateTime.stories-Q4Ao5Tat.js} +1 -1
  90. package/storybook-static/assets/{InputFile-D1x1T--f.js → InputFile-Bj8PXGY3.js} +1 -1
  91. package/storybook-static/assets/{InputFile-BYcgJx2f.js → InputFile-DM6fBXUx.js} +1 -1
  92. package/storybook-static/assets/{InputFile.stories-DAYDiSFH.js → InputFile.stories-DC27BYoQ.js} +1 -1
  93. package/storybook-static/assets/{InputFiles-D7kcGvWK.js → InputFiles-D59MGS0Z.js} +1 -1
  94. package/storybook-static/assets/{InputFiles-C9HH7fIG.js → InputFiles-teFj6f6X.js} +1 -1
  95. package/storybook-static/assets/{InputFiles.stories-CJTwQutb.js → InputFiles.stories-DX5UEvYR.js} +1 -1
  96. package/storybook-static/assets/{InputFilesList-ChI0hQ07.js → InputFilesList-BD4Y0gN-.js} +1 -1
  97. package/storybook-static/assets/{InputImage-B3KFrWqa.js → InputImage-DmsFGNLJ.js} +1 -1
  98. package/storybook-static/assets/{InputImage-C0-U_QHU.js → InputImage-Du6jGDmY.js} +1 -1
  99. package/storybook-static/assets/{InputImage.stories-QEtqeok5.js → InputImage.stories-u0hrr-Da.js} +1 -1
  100. package/storybook-static/assets/{InteractiveComponents-DB71eb-1.js → InteractiveComponents-BLQiSO3p.js} +1 -1
  101. package/storybook-static/assets/{InteractiveComponents.stories-DdZpmMis.js → InteractiveComponents.stories-BxIVvRz5.js} +1 -1
  102. package/storybook-static/assets/{LayoutPicker-CicZY4X9.js → LayoutPicker-TecE4x6w.js} +1 -1
  103. package/storybook-static/assets/{LayoutPicker-DBEYC_LA.js → LayoutPicker-xUooYcbS.js} +1 -1
  104. package/storybook-static/assets/{LayoutPicker.stories-BFtP0gOy.js → LayoutPicker.stories-YDMnmhJ4.js} +1 -1
  105. package/storybook-static/assets/{Listbox-B0Nqys9f.js → Listbox-D2k8QfTs.js} +1 -1
  106. package/storybook-static/assets/{Listbox-CLP0Cpin.js → Listbox-DplAn6ND.js} +1 -1
  107. package/storybook-static/assets/{Listbox.stories-BHeIn0H8.js → Listbox.stories-Bg3_UQD4.js} +1 -1
  108. package/storybook-static/assets/{Modal-D4jDp5U4.js → Modal-4OdkCwCv.js} +1 -1
  109. package/storybook-static/assets/{Modal.stories-CMHJdaj1.js → Modal.stories-BwawDSGR.js} +1 -1
  110. package/storybook-static/assets/{ModalManagerProvider-D8tCMe07.js → ModalManagerProvider-CYR_xbpx.js} +1 -1
  111. package/storybook-static/assets/{MultiSelect-Bmb0qTzT.js → MultiSelect-CXn1CY9G.js} +1 -1
  112. package/storybook-static/assets/{MultiSelect-y6FjtCjy.js → MultiSelect-iwbCRD9H.js} +1 -1
  113. package/storybook-static/assets/{MultiSelect.stories-B9TZNWng.js → MultiSelect.stories-BSjAL2ua.js} +1 -1
  114. package/storybook-static/assets/{NoData-CzlhZzHI.js → NoData-6Scjk2OD.js} +1 -1
  115. package/storybook-static/assets/{NotificationsHost-AE9gk5zq.js → NotificationsHost-DK3A-iq7.js} +1 -1
  116. package/storybook-static/assets/{NotificationsHost.stories-Bu0__u38.js → NotificationsHost.stories-BRmPf9Q7.js} +1 -1
  117. package/storybook-static/assets/{ODataMultiSelect-DJ6zie6W.js → ODataMultiSelect-CuNGV1QU.js} +1 -1
  118. package/storybook-static/assets/{ODataMultiSelect.stories-BjgJGbWL.js → ODataMultiSelect.stories-CyAonfZC.js} +1 -1
  119. package/storybook-static/assets/{ODataSelect-V1JJpKB9.js → ODataSelect-vhh4NJS_.js} +1 -1
  120. package/storybook-static/assets/{ODataSelect.stories-B2INiDvW.js → ODataSelect.stories-aJBFF45H.js} +1 -1
  121. package/storybook-static/assets/{ODataTreeMultiSelect-BKMrgz8e.js → ODataTreeMultiSelect-vPtlTloF.js} +1 -1
  122. package/storybook-static/assets/{ODataTreeMultiSelect.stories-CjLPeqio.js → ODataTreeMultiSelect.stories-DTBAF628.js} +1 -1
  123. package/storybook-static/assets/{ODataTreeSelect-C2iGJdYk.js → ODataTreeSelect-BCVVLB9M.js} +1 -1
  124. package/storybook-static/assets/{ODataTreeSelect.stories-ReyoXlcX.js → ODataTreeSelect.stories-CptC0p6O.js} +1 -1
  125. package/storybook-static/assets/{OneStepScroller-knlVIvl2.js → OneStepScroller-DerjCiL3.js} +1 -1
  126. package/storybook-static/assets/{Option-CJBK9i2B.css → Option-CwetjUM8.css} +1 -1
  127. package/storybook-static/assets/{Option-KVcu4DcX.js → Option-DkAw9S3l.js} +4 -4
  128. package/storybook-static/assets/{OptionButton-D2ZcZtPU.js → OptionButton-CGurT23Z.js} +1 -1
  129. package/storybook-static/assets/{PeriodSelect-BsET8TST.js → PeriodSelect-DOO139ke.js} +1 -1
  130. package/storybook-static/assets/{PeriodSelect-Bm_VPE_5.js → PeriodSelect-TrGTMIid.js} +1 -1
  131. package/storybook-static/assets/{PeriodSelect.stories-Due2DawD.js → PeriodSelect.stories-B3GEgBZ1.js} +1 -1
  132. package/storybook-static/assets/{PickerTriggerActions-KgIZBVSt.js → PickerTriggerActions-CKVPuKEC.js} +1 -1
  133. package/storybook-static/assets/{Popover-Cq1q1mW3.js → Popover-BNItmUQ9.js} +1 -1
  134. package/storybook-static/assets/{Popover-D38IExq9.js → Popover-DgXqO0PN.js} +1 -1
  135. package/storybook-static/assets/{Popover.stories-B5MXPFi2.js → Popover.stories-bX5S41pH.js} +1 -1
  136. package/storybook-static/assets/{PresetRangeDateInput-dWe-Zcrb.js → PresetRangeDateInput-B4FYPy8g.js} +1 -1
  137. package/storybook-static/assets/{PresetRangeDateInput-C4iOgcKK.js → PresetRangeDateInput-GSnnpZzy.js} +1 -1
  138. package/storybook-static/assets/{PresetRangeDateInput.stories-C8JiJCpi.js → PresetRangeDateInput.stories-Ca0mIo33.js} +1 -1
  139. package/storybook-static/assets/{PresetSelect-CIqamiLP.js → PresetSelect-B_KRl4SQ.js} +1 -1
  140. package/storybook-static/assets/README-1RIcD7RV.js +694 -0
  141. package/storybook-static/assets/README-B1XUsXZj.js +334 -0
  142. package/storybook-static/assets/README-BH78sIZ_.js +288 -0
  143. package/storybook-static/assets/README-BgeYwR6t.js +347 -0
  144. package/storybook-static/assets/README-BhsUMTSk.js +860 -0
  145. package/storybook-static/assets/README-Bj88Ecb7.js +876 -0
  146. package/storybook-static/assets/README-C9saKIyr.js +417 -0
  147. package/storybook-static/assets/README-CP1S4LYF.js +1309 -0
  148. package/storybook-static/assets/README-Cc-guFb0.js +1487 -0
  149. package/storybook-static/assets/README-CheO0E1A.js +282 -0
  150. package/storybook-static/assets/README-CiuVVUgE.js +420 -0
  151. package/storybook-static/assets/README-CvRg9lqh.js +273 -0
  152. package/storybook-static/assets/README-DCdV2RQL.js +1093 -0
  153. package/storybook-static/assets/README-DyNQqotW.js +338 -0
  154. package/storybook-static/assets/README-W1rhe8Sk.js +648 -0
  155. package/storybook-static/assets/{RadioButton-CTA-WBmG.js → RadioButton-CA9DN5bY.js} +1 -1
  156. package/storybook-static/assets/{RadioButton-DfRRX6Id.js → RadioButton-DcXbcFW1.js} +1 -1
  157. package/storybook-static/assets/{RadioButton.stories-D6MO9y2H.js → RadioButton.stories-1_kzxnXY.js} +1 -1
  158. package/storybook-static/assets/{RadioGroup-CiEUg_Oc.js → RadioGroup-bEwTHCyS.js} +1 -1
  159. package/storybook-static/assets/{RadioGroup-BAoD6ZDR.js → RadioGroup-mfYgdfXM.js} +1 -1
  160. package/storybook-static/assets/{RadioGroup.stories-CCjYE-3G.js → RadioGroup.stories-CecdqPms.js} +1 -1
  161. package/storybook-static/assets/{Scrollable-ns4PHUAk.js → Scrollable-1fdTDJHK.js} +1 -1
  162. package/storybook-static/assets/{Select-Bj9NxEJa.js → Select-CvQZGS1G.js} +1 -1
  163. package/storybook-static/assets/{Select-D2aDjIb_.js → Select-Df5Md2Cm.js} +1 -1
  164. package/storybook-static/assets/{Select.stories-zErlbrrD.js → Select.stories-M4M80KTq.js} +1 -1
  165. package/storybook-static/assets/{SerializableSelect-P7iNwTbc.js → SerializableSelect-CnsGo9Ep.js} +1 -1
  166. package/storybook-static/assets/{SerializableSelect.stories-DUAK_mo8.js → SerializableSelect.stories-BJ6MlNDx.js} +1 -1
  167. package/storybook-static/assets/{SingleDateTimeInput-vvyw15zU.js → SingleDateTimeInput-BCV0gfB9.js} +1 -1
  168. package/storybook-static/assets/{SingleDateTimeInput-CkMMccYd.js → SingleDateTimeInput-DJH7zSIz.js} +1 -1
  169. package/storybook-static/assets/{SingleDateTimeInput.stories-CSW9M9hH.js → SingleDateTimeInput.stories-DgEwAFe8.js} +1 -1
  170. package/storybook-static/assets/{Slider-Dftgrmfi.js → Slider-D504FPH3.js} +1 -1
  171. package/storybook-static/assets/{Slider-CkUdrb57.js → Slider-cLRAHPLi.js} +1 -1
  172. package/storybook-static/assets/{Slider.stories-zVUgi1Wb.js → Slider.stories-EI314Iff.js} +1 -1
  173. package/storybook-static/assets/{SliderInput-BINdZsru.js → SliderInput-Bt0H8rgN.js} +1 -1
  174. package/storybook-static/assets/{SliderInput-DnVNzY_q.js → SliderInput-E5p3n3VY.js} +1 -1
  175. package/storybook-static/assets/{SliderInput.stories-CfY1B4PZ.js → SliderInput.stories-CDYPq7fP.js} +1 -1
  176. package/storybook-static/assets/{Sortable-BnixGZFs.js → Sortable-Bzd7JK4E.js} +1 -1
  177. package/storybook-static/assets/{Sortable.stories-DFzv9lnf.js → Sortable.stories-DNGbmn2a.js} +1 -1
  178. package/storybook-static/assets/{Splitter-BtDFBrQ3.js → Splitter-DSf48AOW.js} +1 -1
  179. package/storybook-static/assets/{Splitter.stories-CipjzPJH.js → Splitter.stories-DUKsOqNN.js} +1 -1
  180. package/storybook-static/assets/{StateSelect-DagWIbnr.js → StateSelect-BxuKIsLa.js} +1 -1
  181. package/storybook-static/assets/{StateSelect-J5sxWYjq.js → StateSelect-HKOT6kq9.js} +1 -1
  182. package/storybook-static/assets/{StateSelect.stories-DDIqhm2K.js → StateSelect.stories-CbLvq7ou.js} +1 -1
  183. package/storybook-static/assets/{StringToggle.stories-CkYGiOe-.js → StringToggle.stories-DOKL-aWy.js} +1 -1
  184. package/storybook-static/assets/{Switch-B5TS1mrR.js → Switch-CLAfhk73.js} +1 -1
  185. package/storybook-static/assets/{Switch-N-Lxev-q.js → Switch-CVTjSEq1.js} +1 -1
  186. package/storybook-static/assets/{Switch.stories-HNOx5mPv.js → Switch.stories-CL5Xe_HQ.js} +1 -1
  187. package/storybook-static/assets/{Table-DTzmRzDD.js → Table-DKc19RME.js} +1 -1
  188. package/storybook-static/assets/Table.stories-CJ9DR1S-.js +207 -0
  189. package/storybook-static/assets/{Tabs-Bc5dgtoT.js → Tabs-De_4F0H3.js} +1 -1
  190. package/storybook-static/assets/{Tabs.stories-BgLnKKFv.js → Tabs.stories-DPAvvkh9.js} +2 -2
  191. package/storybook-static/assets/{TabsBox-sTVLs8k0.js → TabsBox-Cy5CICcb.js} +1 -1
  192. package/storybook-static/assets/{TagInput-yPLHo0PJ.js → TagInput-7n98ftvD.js} +1 -1
  193. package/storybook-static/assets/{TagInput.stories-B4C-230C.js → TagInput.stories-B6JAb3XA.js} +1 -1
  194. package/storybook-static/assets/{Text-C2-mep6V.js → Text-CjSG8mvD.js} +1 -1
  195. package/storybook-static/assets/{Textarea-bqvYs13v.js → Textarea-CQqwaJ0Q.js} +1 -1
  196. package/storybook-static/assets/{Textarea-B7pXYTGv.js → Textarea-Dea29_yQ.js} +1 -1
  197. package/storybook-static/assets/{Textarea.stories-BSSaqnZI.js → Textarea.stories-BZf3Cu4S.js} +1 -1
  198. package/storybook-static/assets/{TimePanel-pMBlR0ZN.js → TimePanel-CPZ4jOw2.js} +1 -1
  199. package/storybook-static/assets/{TimePanel.stories-Cn5IEcsV.js → TimePanel.stories-y5Lp9sMG.js} +1 -1
  200. package/storybook-static/assets/{Toggle-E4xV63pY.js → Toggle-CJHzo9mB.js} +1 -1
  201. package/storybook-static/assets/{Toggle-h6ESIcwX.js → Toggle-s7SzQ11W.js} +1 -1
  202. package/storybook-static/assets/{Toggle.stories-9uqFBAAr.js → Toggle.stories-Dk3C5Le5.js} +1 -1
  203. package/storybook-static/assets/{TreeMultiSelect-DBGlliij.js → TreeMultiSelect-CxXF7pQE.js} +1 -1
  204. package/storybook-static/assets/{TreeMultiSelect-J8Tlnv3Y.js → TreeMultiSelect-DfeggvLr.js} +1 -1
  205. package/storybook-static/assets/{TreeMultiSelect.stories-CYDuvIk7.js → TreeMultiSelect.stories-DKiHT_6L.js} +1 -1
  206. package/storybook-static/assets/{TreePickerBase-BswrqgW3.js → TreePickerBase-DKJJDVC_.js} +1 -1
  207. package/storybook-static/assets/{TreeSelect-B1Buti64.js → TreeSelect-2E1KhJMi.js} +1 -1
  208. package/storybook-static/assets/{TreeSelect-Jchj-RXf.js → TreeSelect-h23orAoA.js} +1 -1
  209. package/storybook-static/assets/{TreeSelect.stories-DzCqueCG.js → TreeSelect.stories-DO06yaS0.js} +1 -1
  210. package/storybook-static/assets/{TreeTable-oYCdUTsS.js → TreeTable-ByV2_E0S.js} +1 -1
  211. package/storybook-static/assets/{TreeTable.stories-L4FHah8x.js → TreeTable.stories-D4gbQx59.js} +2 -2
  212. package/storybook-static/assets/{WithTooltip-7X4HQR7L-Cakt_JaX.js → WithTooltip-7X4HQR7L-DQ4Qthn2.js} +1 -1
  213. package/storybook-static/assets/{array-D-_yMMUK-CIRmlF93.js → array-D-_yMMUK-BQ0uu1hZ.js} +1 -1
  214. package/storybook-static/assets/{async-Bsdhj8g_.js → async-BI7SlYp0.js} +1 -1
  215. package/storybook-static/assets/axe-_9eNhXQJ.js +20 -0
  216. package/storybook-static/assets/{blocks-BA_1CXsr.js → blocks-B8F5vBhs.js} +6 -6
  217. package/storybook-static/assets/check-mlY_aVEI.js +1 -0
  218. package/storybook-static/assets/chevron-down-C7c-TcEc.js +1 -0
  219. package/storybook-static/assets/chevron-left-2LrGBhDY.js +1 -0
  220. package/storybook-static/assets/chevron-right-D6NN1_UQ.js +1 -0
  221. package/storybook-static/assets/{chunk-242VQQM5-BMWWiybC.js → chunk-242VQQM5-bHL6qIJq.js} +1 -1
  222. package/storybook-static/assets/{chunk-DRQKCCAG-CqE-Zrl9.js → chunk-DRQKCCAG-DvsmU7ha.js} +1 -1
  223. package/storybook-static/assets/{chunk-IMSF75WX-yvVUwIQZ.js → chunk-IMSF75WX-CGYlPTyG.js} +1 -1
  224. package/storybook-static/assets/{chunk-KJHJLCBK-D-yQfkOi.js → chunk-KJHJLCBK-yRlRMfNs.js} +1 -1
  225. package/storybook-static/assets/{chunk-QQBDHPVZ-B98qboss.js → chunk-QQBDHPVZ-DC5n6Pix.js} +1 -1
  226. package/storybook-static/assets/{chunk-W22LQPXL-B40Li12y.js → chunk-W22LQPXL-5sD3hVeE.js} +1 -1
  227. package/storybook-static/assets/{circle-alert-C855gqBz.js → circle-alert-H_7GSXFp.js} +1 -1
  228. package/storybook-static/assets/circle-check-B0voRIBT.js +1 -0
  229. package/storybook-static/assets/{components-DSUjzUVy.js → components-Bw-2TeQP.js} +12 -12
  230. package/storybook-static/assets/{contextMenu-DCSPTQNQ.js → contextMenu-B8JusItT.js} +1 -1
  231. package/storybook-static/assets/{createControlledStoryRender-DHsyXc1B.js → createControlledStoryRender-BouhvX-R.js} +1 -1
  232. package/storybook-static/assets/{date-segments-D3HouZ37.js → date-segments-DeoMkKv9.js} +1 -1
  233. package/storybook-static/assets/{defaultRenderers-V5HI39JH.js → defaultRenderers-BHXboKuy.js} +1 -1
  234. package/storybook-static/assets/{dom-B3G_GtJw.js → dom-DBd_DWF8.js} +1 -1
  235. package/storybook-static/assets/{download-B3oJ9vHV.js → download-CSY7aIz0.js} +1 -1
  236. package/storybook-static/assets/{error-BZrNlEUO.js → error-De9R4E_F.js} +1 -1
  237. package/storybook-static/assets/{file-vPGnhPr-.js → file-CwRoWxeB.js} +1 -1
  238. package/storybook-static/assets/floating-ui.react-D7RwPYeO.js +1 -0
  239. package/storybook-static/assets/formatter-L2YTDE3Q-CRGuSxAF.js +1 -0
  240. package/storybook-static/assets/{formatters-CBgrBeSA-DY6OIAc8.js → formatters-CBgrBeSA-CqB1pZxS.js} +1 -1
  241. package/storybook-static/assets/{foundationLib-BFrQ5jez.js → foundationLib-BoYGVeXe.js} +1 -1
  242. package/storybook-static/assets/{hooks-_jPrECht.js → hooks-DQXvhAPr.js} +2 -2
  243. package/storybook-static/assets/iframe-B8PAuhnL.js +1 -0
  244. package/storybook-static/assets/{iframe-Cq8y-8O_.js → iframe-CViB2sFm.js} +23 -23
  245. package/storybook-static/assets/{info-CiT6g2aP.js → info-MrQcS8jn.js} +1 -1
  246. package/storybook-static/assets/{matchers-JIUQ3HVY-DvR2XErZ.js → matchers-JIUQ3HVY-C789_MAK.js} +1 -1
  247. package/storybook-static/assets/{media-BycWpjAl.js → media-D9cE2tzi.js} +1 -1
  248. package/storybook-static/assets/odata-CBGaUmRT.js +1 -0
  249. package/storybook-static/assets/{odata-service-B6TxBSLm-BW9QLSrS.js → odata-service-B6TxBSLm-Bq8Ya67E.js} +1 -1
  250. package/storybook-static/assets/{odataFetchFn-C6ps_31t.js → odataFetchFn-CPO8XIYX.js} +1 -1
  251. package/storybook-static/assets/{odataStoryFixtures-BcNo-Wxr.js → odataStoryFixtures--SWu2yC_.js} +2 -2
  252. package/storybook-static/assets/{persisted-B6h1b3UG.js → persisted-B2dfNRCz.js} +1 -1
  253. package/storybook-static/assets/{preload-helper-BHmFeTtP.js → preload-helper-wdlQj8DP.js} +1 -1
  254. package/storybook-static/assets/react-18-D4o7zN8K.js +9 -0
  255. package/storybook-static/assets/{react-C21x__mS.js → react-BZJXY1be.js} +1 -1
  256. package/storybook-static/assets/{react-qN2cStNd.js → react-Bl2r1tuC.js} +1 -1
  257. package/storybook-static/assets/{react-CvkUhHUq.js → react-GkniIHEK.js} +1 -1
  258. package/storybook-static/assets/{react-dom-2o2phaJG.js → react-dom-BzEl8usk.js} +1 -1
  259. package/storybook-static/assets/react-iQQwtFPL.js +9 -0
  260. package/storybook-static/assets/{refresh-cw-DIeuulxV.js → refresh-cw-_wTFfhR2.js} +1 -1
  261. package/storybook-static/assets/{rolldown-runtime-C0FnF6B9.js → rolldown-runtime-DkW27tQK.js} +1 -1
  262. package/storybook-static/assets/{settings-2-Gfu_uw21.js → settings-2-BqduNJjJ.js} +1 -1
  263. package/storybook-static/assets/{shim-BUMlC1GG.js → shim-DlYORV19.js} +1 -1
  264. package/storybook-static/assets/{sortable-DxRr6Rgq.js → sortable-D-m6SEp7.js} +1 -1
  265. package/storybook-static/assets/syntaxhighlighter-QEQV7K2Y-CEo9I1qZ.js +6 -0
  266. package/storybook-static/assets/{theming-mTWhffkp.js → theming-Cvtrnj7n.js} +1 -1
  267. package/storybook-static/assets/{trash-2-CqKAB1Q0.js → trash-2-65ZF92zp.js} +1 -1
  268. package/storybook-static/assets/{treeStoryFixtures-Ci7STpiz.js → treeStoryFixtures-DXHh9GL3.js} +1 -1
  269. package/storybook-static/assets/{triangle-alert-D4omsgZJ.js → triangle-alert-k_CRNi0k.js} +1 -1
  270. package/storybook-static/assets/{ui.module-D4CuGr8r.js → ui.module-Cat84Nza.js} +1 -1
  271. package/storybook-static/assets/{uiClasses-CVGbL980.js → uiClasses-B9c6dZuu.js} +1 -1
  272. package/storybook-static/assets/{useFlexClasses-Gn9spXEB.js → useFlexClasses-SgVG37Bb.js} +1 -1
  273. package/storybook-static/assets/{useODataSelectBase-DacE6X5d.js → useODataSelectBase-Ck_hduYv.js} +1 -1
  274. package/storybook-static/assets/{useODataTreeData-BEYyje5V.js → useODataTreeData-DTrxPY_k.js} +1 -1
  275. package/storybook-static/assets/usePickerDefaultFilter-5Q1pAV4d.js +1 -0
  276. package/storybook-static/assets/{usePickerQuery-BRsuRnoH.js → usePickerQuery-DdeWtJWc.js} +1 -1
  277. package/storybook-static/assets/{usePickerTriggerController-DyFq40t1.js → usePickerTriggerController-D8hxWmGo.js} +2 -2
  278. package/storybook-static/assets/{utils-DUM89eIj.js → utils-tg3ibbzi.js} +1 -1
  279. package/storybook-static/assets/x-C5XG0bD4.js +1 -0
  280. package/storybook-static/iframe.html +7 -7
  281. package/storybook-static/index.json +1 -1
  282. package/storybook-static/project.json +1 -1
  283. package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +35 -33
  284. package/storybook-static/sb-manager/globals-runtime.js +7 -7
  285. package/storybook-static/sb-manager/globals.js +1 -1
  286. package/storybook-static/sb-manager/runtime.js +88 -89
  287. package/storybook-static/vite-inject-mocker-entry.js +2 -2
  288. package/dist/chunks/picker-0I1yMKIY.js.map +0 -1
  289. package/storybook-static/assets/FormattedTableCell-BdA15EY1.js +0 -15
  290. package/storybook-static/assets/Table.stories-DY5NfoVd.js +0 -207
  291. package/storybook-static/assets/axe-Bq-2xuso.js +0 -20
  292. package/storybook-static/assets/browserAndReact-fXgh8QfO.js +0 -70
  293. package/storybook-static/assets/check-wNoLJyvD.js +0 -1
  294. package/storybook-static/assets/chevron-down-DjM4Yyml.js +0 -1
  295. package/storybook-static/assets/chevron-left-BT138_KT.js +0 -1
  296. package/storybook-static/assets/chevron-right-DEvxOiq2.js +0 -1
  297. package/storybook-static/assets/circle-check-BDVZ6tz8.js +0 -1
  298. package/storybook-static/assets/filesAndExcel-Bj4tkdkM.js +0 -92
  299. package/storybook-static/assets/floating-ui.react-BewtdZNK.js +0 -1
  300. package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +0 -1
  301. package/storybook-static/assets/formatters-DYZ7voq3.js +0 -202
  302. package/storybook-static/assets/formatters-runtime-Ddmbt5yI.js +0 -329
  303. package/storybook-static/assets/iframe-C7ggO0sY.js +0 -1
  304. package/storybook-static/assets/odata-ClP2t_-O.js +0 -1
  305. package/storybook-static/assets/odataAndTables-Cjwl3uWE.js +0 -77
  306. package/storybook-static/assets/pureUtilities-CO1AJvbl.js +0 -30
  307. package/storybook-static/assets/react-18-CgkwBzTo.js +0 -9
  308. package/storybook-static/assets/react-D4nkG-T7.js +0 -9
  309. package/storybook-static/assets/runtimeAndState-TcnlLgJx.js +0 -93
  310. package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-BIwIp4cU.js +0 -6
  311. package/storybook-static/assets/usePickerDefaultFilter-Be420WNF.js +0 -1
  312. package/storybook-static/assets/x-zmaXH4MN.js +0 -1
@@ -1,329 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-Cq8y-8O_.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-BA_1CXsr.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,strong:`strong`,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/Formatters Runtime`}),`
2
- `,(0,c.jsx)(t.h1,{id:`runtime-форматтеров-pipeline-row-based-и-value-state`,children:`Runtime форматтеров: pipeline, row-based и value state`}),`
3
- `,(0,c.jsxs)(t.p,{children:[`Эта страница описывает конфигурируемый runtime из
4
- `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formatters`}),`. Он предназначен для host-кода,
5
- который хранит сериализуемую настройку отображения, а затем компилирует её для
6
- ячейки таблицы, дерева или другого набора данных. Конфигурация и runtime —
7
- разные границы: в конфигурации нет функций, а скомпилированные executors нельзя
8
- сохранять в JSON, query cache или передавать между runtime-контекстами.`]}),`
9
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
10
- compileFormattersPipelineExecutor,
11
- formatPipelineDisplayValue,
12
- validateFormattersPipelineConfig
13
- } from "@ryuzaki13/react-foundation-lib/formatters";
14
-
15
- import type {
16
- FormattersPipelineConfig,
17
- FormattersPipelineRuntimeField,
18
- RowBasedFormatterDefinition,
19
- ThresholdValueStateResolverConfig
20
- } from "@ryuzaki13/react-foundation-lib/formatters";
21
- `})}),`
22
- `,(0,c.jsx)(t.h2,{id:`модель-данных-и-жизненный-цикл`,children:`Модель данных и жизненный цикл`}),`
23
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineConfig`}),` имеет фиксированную версию `,(0,c.jsx)(t.code,{children:`1`}),` и содержит хотя бы
24
- один источник плана:`]}),`
25
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type FormattersPipelineConfig = {
26
- version: 1;
27
- graph?: FormattersPipelineGraph;
28
- plan?: FormattersPipelinePlan;
29
- };
30
- `})}),`
31
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Представление`}),(0,c.jsx)(t.th,{children:`Для чего хранится`}),(0,c.jsx)(t.th,{children:`Содержимое`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`graph`})}),(0,c.jsx)(t.td,{children:`Редактор настройки`}),(0,c.jsxs)(t.td,{children:[`Узлы, рёбра и необязательный `,(0,c.jsx)(t.code,{children:`viewport`}),`. Граф обязан быть линейным от `,(0,c.jsx)(t.code,{children:`source`}),` к `,(0,c.jsx)(t.code,{children:`sink`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`plan`})}),(0,c.jsx)(t.td,{children:`Быстрое выполнение`}),(0,c.jsxs)(t.td,{children:[`Массив последовательных шагов без координат. Если он валиден, у него приоритет над `,(0,c.jsx)(t.code,{children:`graph`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`FormattersPipelineExecutor`})}),(0,c.jsx)(t.td,{children:`Только runtime`}),(0,c.jsxs)(t.td,{children:[`Функция `,(0,c.jsx)(t.code,{children:`execute`}),` и флаги. Появляется после компиляции, не сериализуется.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`FormattersPipelineRuntimeField`})}),(0,c.jsx)(t.td,{children:`Construction-stage объекта поля`}),(0,c.jsxs)(t.td,{children:[`Содержит пользовательский конфиг и может получить `,(0,c.jsx)(t.code,{children:`formulaExecutor`}),` / `,(0,c.jsx)(t.code,{children:`formattersPipelineExecutor`}),`.`]})]})]})]}),`
32
- `,(0,c.jsx)(t.p,{children:`Безопасный порядок работы:`}),`
33
- `,(0,c.jsxs)(t.ol,{children:[`
34
- `,(0,c.jsx)(t.li,{children:`Создать или восстановить конфиг как обычные JSON-данные.`}),`
35
- `,(0,c.jsxs)(t.li,{children:[`Для `,(0,c.jsx)(t.code,{children:`rowBasedOverride`}),` с `,(0,c.jsx)(t.code,{children:`mode: "formula"`}),` один раз настроить реестр
36
- host-формул `,(0,c.jsx)(t.strong,{children:`до`}),` validation и compilation.`]}),`
37
- `,(0,c.jsxs)(t.li,{children:[`Проверить `,(0,c.jsx)(t.code,{children:`validateFormattersPipelineConfig`}),`; неизвестный или устаревший
38
- конфиг не компилировать.`]}),`
39
- `,(0,c.jsxs)(t.li,{children:[`На явной границе восстановления можно вызвать
40
- `,(0,c.jsx)(t.code,{children:`normalizeFormattersPipelineConfig`}),` и положить полученную независимую копию
41
- в модель.`]}),`
42
- `,(0,c.jsx)(t.li,{children:`В construction-stage скомпилировать поле или карту полей.`}),`
43
- `,(0,c.jsxs)(t.li,{children:[`При отрисовке вызвать `,(0,c.jsx)(t.code,{children:`formatPipelineDisplayValue`}),` либо `,(0,c.jsx)(t.code,{children:`executor.execute`}),`.`]}),`
44
- `]}),`
45
- `,(0,c.jsxs)(t.p,{children:[`Не нормализуйте draft при каждом вводе. `,(0,c.jsx)(t.code,{children:`clone…`}),` создаёт независимую копию, а
46
- `,(0,c.jsx)(t.code,{children:`normalize…`}),` — проверяет внешнее `,(0,c.jsx)(t.code,{children:`unknown`}),` значение и допустим только на
47
- явной границе восстановления/сохранения конфигурации.`]}),`
48
- `,(0,c.jsx)(t.h2,{id:`минимальный-сериализуемый-pipeline`,children:`Минимальный сериализуемый pipeline`}),`
49
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
50
- compileFormattersPipelineRuntime,
51
- formatPipelineDisplayValue,
52
- validateFormattersPipelineConfig
53
- } from "@ryuzaki13/react-foundation-lib/formatters";
54
-
55
- import type { FormattersPipelineConfig } from "@ryuzaki13/react-foundation-lib/formatters";
56
-
57
- const config = {
58
- version: 1,
59
- plan: {
60
- steps: [
61
- {
62
- id: "pad-code",
63
- type: "normalizeLeadingZeros",
64
- config: { fixed: 5 }
65
- },
66
- {
67
- id: "score-state",
68
- type: "resolveValueState",
69
- config: {
70
- resolver: {
71
- kind: "threshold",
72
- thresholds: [60, 95],
73
- states: ["warning", "success", "error"]
74
- },
75
- icon: { enabled: true, showValue: true, position: "left" }
76
- }
77
- },
78
- {
79
- id: "typed-value",
80
- type: "typedValueFormat",
81
- config: { numberPresetName: "decimal-2" }
82
- }
83
- ]
84
- }
85
- } satisfies FormattersPipelineConfig;
86
-
87
- const validation = validateFormattersPipelineConfig(config);
88
- if (!validation.ok) {
89
- throw new Error(validation.errors.map((item) => item.message).join("\\n"));
90
- }
91
-
92
- const field = {
93
- id: "score",
94
- role: "measure",
95
- type: "decimal",
96
- formattersPipeline: config
97
- };
98
-
99
- // Важно: эта функция записывает executors в сам объект field.
100
- compileFormattersPipelineRuntime(field);
101
-
102
- const display = formatPipelineDisplayValue({
103
- field,
104
- rawValue: "63.4",
105
- rowData: { score: "63.4" },
106
- rowKind: "plain"
107
- });
108
-
109
- // display.value === "63,40"
110
- // display.state === "success"
111
- `})}),`
112
- `,(0,c.jsx)(t.h2,{id:`шаги-pipeline`,children:`Шаги pipeline`}),`
113
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineFormatterId`}),` допускает только четыре значения.`]}),`
114
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Шаг`}),(0,c.jsx)(t.th,{children:`Конфигурация`}),(0,c.jsx)(t.th,{children:`Выполнение и fallback`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeLeadingZeros`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ fixed?: number }`})}),(0,c.jsxs)(t.td,{children:[`Передаёт текущее значение в `,(0,c.jsx)(t.code,{children:`normalizeLeadingZeros`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`rowBasedOverride`})}),(0,c.jsx)(t.td,{children:`field- или formula-вариант ниже`}),(0,c.jsx)(t.td,{children:`Подменяет текущее значение данными строки.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveValueState`})}),(0,c.jsx)(t.td,{children:`fixed/threshold resolver и настройки иконки`}),(0,c.jsxs)(t.td,{children:[`Вычисляет `,(0,c.jsx)(t.code,{children:`state`}),`, `,(0,c.jsx)(t.code,{children:`showIcon`}),`, `,(0,c.jsx)(t.code,{children:`showValue`}),`, `,(0,c.jsx)(t.code,{children:`iconPosition`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`typedValueFormat`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`{ numberPresetName?, datePresetName? }`})}),(0,c.jsx)(t.td,{children:`Форматирует итог по OData-type поля: number, date или строка.`})]})]})]}),`
115
- `,(0,c.jsx)(t.p,{children:`Ограничения валидатора:`}),`
116
- `,(0,c.jsxs)(t.ul,{children:[`
117
- `,(0,c.jsx)(t.li,{children:`В плане разрешён не более чем один шаг каждого вида.`}),`
118
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`typedValueFormat`}),` не может идти раньше `,(0,c.jsx)(t.code,{children:`resolveValueState`}),`.`]}),`
119
- `,(0,c.jsxs)(t.li,{children:[`У каждого шага должен быть непустой уникальный `,(0,c.jsx)(t.code,{children:`id`}),`.`]}),`
120
- `,(0,c.jsxs)(t.li,{children:[`Для threshold-resolver длина `,(0,c.jsx)(t.code,{children:`states`}),` обязана равняться
121
- `,(0,c.jsx)(t.code,{children:`thresholds.length + 1`}),`.`]}),`
122
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`showValue: false`}),` при выключенной иконке — warning: ячейка не покажет
123
- значение.`]}),`
124
- `,(0,c.jsxs)(t.li,{children:[`В графе должны быть ровно один `,(0,c.jsx)(t.code,{children:`source`}),` и один `,(0,c.jsx)(t.code,{children:`sink`}),`; каждый путь должен
125
- быть линейным, без циклов, разветвлений, оборванных и отключённых узлов.`]}),`
126
- `]}),`
127
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineExecutionContext`}),` получает исходное `,(0,c.jsx)(t.code,{children:`value`}),`, `,(0,c.jsx)(t.code,{children:`rowData`}),`,
128
- `,(0,c.jsx)(t.code,{children:`rowKind`}),`, уровень/группировки и `,(0,c.jsx)(t.code,{children:`columnId`}),`. Новый код определяет семантику
129
- строки через `,(0,c.jsx)(t.code,{children:`rowKind: "plain" | "tree" | "group" | "totals"`}),` — поля
130
- `,(0,c.jsx)(t.code,{children:`isGroupRow`}),` и `,(0,c.jsx)(t.code,{children:`isTotalsRow`}),` в этом контексте оставлены только для
131
- совместимости.`]}),`
132
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`executor.execute(ctx)`}),` возвращает `,(0,c.jsx)(t.code,{children:`FormattersPipelineExecutionResult`}),`:
133
- `,(0,c.jsx)(t.code,{children:`value`}),`, `,(0,c.jsx)(t.code,{children:`state`}),`, опциональную `,(0,c.jsx)(t.code,{children:`icon`}),`, `,(0,c.jsx)(t.code,{children:`showIcon`}),`, `,(0,c.jsx)(t.code,{children:`showValue`}),`,
134
- `,(0,c.jsx)(t.code,{children:`iconPosition`}),`, `,(0,c.jsx)(t.code,{children:`hasTypedValueFormat`}),`.`]}),`
135
- `,(0,c.jsx)(t.h3,{id:`rowbasedoverride`,children:`rowBasedOverride`}),`
136
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`type FormattersPipelineRowBasedOverrideConfig =
137
- | {
138
- mode: "field";
139
- fieldKey: string;
140
- fallbackToRaw?: boolean;
141
- }
142
- | {
143
- mode: "formula";
144
- formulaId: string;
145
- dependencyIds?: string[];
146
- fallbackToRaw?: boolean;
147
- };
148
- `})}),`
149
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Режим`}),(0,c.jsx)(t.th,{children:`Источник значения`}),(0,c.jsx)(t.th,{children:`Семантика по типу строки`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`field`})}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`rowData[fieldKey]`})}),(0,c.jsxs)(t.td,{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:`totals`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`formula`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`fn(context)`}),` из row-based реестра`]}),(0,c.jsxs)(t.td,{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:`totals`}),`.`]})]})]})]}),`
150
- `,(0,c.jsxs)(t.p,{children:[`Если подмена возвращает `,(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),`, `,(0,c.jsx)(t.code,{children:`fallbackToRaw`}),` по умолчанию
151
- сохраняет предыдущее значение. При `,(0,c.jsx)(t.code,{children:`fallbackToRaw: false`}),` это значение
152
- допускается как новый результат. Ошибка formula в executor не пробрасывается:
153
- при default fallback остаётся прежнее значение, а при `,(0,c.jsx)(t.code,{children:`false`}),` получается
154
- `,(0,c.jsx)(t.code,{children:`undefined`}),`.`]}),`
155
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`dependencyIds`}),` — упорядоченные ключи, которые formula читает по индексам.
156
- Их необходимо запросить вместе с основной строкой: для этого используйте
157
- `,(0,c.jsx)(t.code,{children:`collectFormattersPipelineDependencyIds`}),` или
158
- `,(0,c.jsx)(t.code,{children:`collectRuntimeFieldDependencyIds`}),` до построения query.`]}),`
159
- `,(0,c.jsx)(t.h2,{id:`реестр-row-based-формул`,children:`Реестр row-based формул`}),`
160
- `,(0,c.jsxs)(t.p,{children:[`В конфиге хранится только `,(0,c.jsx)(t.code,{children:`formulaId`}),`; реальная функция существует только в
161
- runtime host-приложения. Реестр глобален для экземпляра модуля, поэтому его
162
- надо установить один раз при bootstrap, до первого вызова валидации или
163
- компиляции pipeline с формульным шагом.`]}),`
164
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { configureRowBasedFormatterRegistry, createRowBasedFormatterRegistry } from "@ryuzaki13/react-foundation-lib/formatters";
165
-
166
- configureRowBasedFormatterRegistry(
167
- createRowBasedFormatterRegistry([
168
- {
169
- id: "sum-dependencies",
170
- name: "Сумма зависимостей",
171
- description: "Складывает первые два поля строки.",
172
- fn: ({ num }) => num(0) + num(1)
173
- }
174
- ])
175
- );
176
- `})}),`
177
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{children:`Контракт`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createRowBasedFormatterRegistry(definitions)`})}),(0,c.jsxs)(t.td,{children:[`Возвращает immutable registry. Бросает `,(0,c.jsx)(t.code,{children:`Error`}),` для пустого `,(0,c.jsx)(t.code,{children:`id`}),` или дубликата.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`configureRowBasedFormatterRegistry(registry)`})}),(0,c.jsx)(t.td,{children:`Подменяет активный module-scoped реестр. Не вызывайте повторно в обычном rendering flow.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`getRowBasedFormatterList()`})}),(0,c.jsx)(t.td,{children:`Список доступных host-формул.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`getRowBasedFormatterById(id)`})}),(0,c.jsxs)(t.td,{children:[`Формула или `,(0,c.jsx)(t.code,{children:`undefined`}),` для пустого/неизвестного id.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`createRowBasedFormatterContext(args)`})}),(0,c.jsx)(t.td,{children:`Создаёт контекст для прямого запуска formula или теста.`})]})]})]}),`
178
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`RowBasedFormatterDefinition`}),` содержит `,(0,c.jsx)(t.code,{children:`id`}),`, `,(0,c.jsx)(t.code,{children:`name`}),`, `,(0,c.jsx)(t.code,{children:`description`}),`,
179
- `,(0,c.jsx)(t.code,{children:`fn`}),`. `,(0,c.jsx)(t.code,{children:`RowBasedFormatterContext`}),` содержит `,(0,c.jsx)(t.code,{children:`rowData`}),`, `,(0,c.jsx)(t.code,{children:`rawValue`}),`, `,(0,c.jsx)(t.code,{children:`columnId`}),`
180
- и методы:`]}),`
181
- `,(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:(0,c.jsx)(t.code,{children:`key(index)`})}),(0,c.jsxs)(t.td,{children:[`ID зависимости или `,(0,c.jsx)(t.code,{children:`undefined`}),` для некорректного/вне диапазона индекса.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`value(index)`})}),(0,c.jsxs)(t.td,{children:[`Значение `,(0,c.jsx)(t.code,{children:`rowData`}),` зависимости или `,(0,c.jsx)(t.code,{children:`undefined`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`num(index)`})}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`parseNumber`}),` значения зависимости; при отсутствии/невалидном значении `,(0,c.jsx)(t.code,{children:`0`}),`.`]})]})]})]}),`
182
- `,(0,c.jsxs)(t.p,{children:[`Формула должна быть синхронной и не должна полагаться на DOM, React state или
183
- неявные внешние данные. Валидация запускает её на тестовых положительных и
184
- отрицательных значениях, чтобы обнаружить недостающие/неиспользуемые
185
- `,(0,c.jsx)(t.code,{children:`dependencyIds`}),` и потенциальную runtime-ошибку. Это диагностический прогон, а
186
- не гарантия корректности для всех данных.`]}),`
187
- `,(0,c.jsx)(t.h2,{id:`проверка-нормализация-копирование-и-новые-id`,children:`Проверка, нормализация, копирование и новые ID`}),`
188
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{children:`Когда вызывать`}),(0,c.jsx)(t.th,{children:`Результат`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`validateFormattersPipelinePlan(plan)`})}),(0,c.jsx)(t.td,{children:`Перед сохранением/компиляцией готового линейного плана.`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineValidationResult`}),` с `,(0,c.jsx)(t.code,{children:`ok`}),`, `,(0,c.jsx)(t.code,{children:`errors`}),`, `,(0,c.jsx)(t.code,{children:`warnings`}),` и безопасным `,(0,c.jsx)(t.code,{children:`plan`}),` только при успехе.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`validateFormattersPipelineGraph(graph)`})}),(0,c.jsx)(t.td,{children:`Для editor graph.`}),(0,c.jsxs)(t.td,{children:[`Проверяет структуру и строит линейный `,(0,c.jsx)(t.code,{children:`plan`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`validateFormattersPipelineConfig(config)`})}),(0,c.jsx)(t.td,{children:`Основная проверка конфигурации.`}),(0,c.jsxs)(t.td,{children:[`Валидный `,(0,c.jsx)(t.code,{children:`plan`}),` имеет приоритет; если он невалиден и есть `,(0,c.jsx)(t.code,{children:`graph`}),`, выполняется попытка построения по графу с warning.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`normalizeFormattersPipelineConfig(unknownValue)`})}),(0,c.jsx)(t.td,{children:`На внешней restore/save boundary.`}),(0,c.jsxs)(t.td,{children:[`Возвращает валидный независимый `,(0,c.jsx)(t.code,{children:`FormattersPipelineConfig`}),` или `,(0,c.jsx)(t.code,{children:`undefined`}),`; не исправляет невалидные данные «по умолчанию».`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`cloneFormattersPipelineConfig(config)`})}),(0,c.jsx)(t.td,{children:`Для literal draft, setter или безопасного переноса конфигурации.`}),(0,c.jsxs)(t.td,{children:[`Глубокая независимая копия или `,(0,c.jsx)(t.code,{children:`undefined`}),`; не валидирует и не нормализует.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`cloneTypedValueFormatConfig`}),`, `,(0,c.jsx)(t.code,{children:`cloneNormalizeLeadingZerosConfig`}),`, `,(0,c.jsx)(t.code,{children:`cloneRowBasedOverrideConfig`}),`, `,(0,c.jsx)(t.code,{children:`cloneResolveValueStateConfig`})]}),(0,c.jsx)(t.td,{children:`Для узких UI-операций редактора.`}),(0,c.jsx)(t.td,{children:`Копия соответствующего вложенного конфига.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`cloneFormatterPipelinePlanStep`}),`, `,(0,c.jsx)(t.code,{children:`cloneFormatterPipelinePlanStepToNode`})]}),(0,c.jsx)(t.td,{children:`При преобразовании plan-шага в editor node.`}),(0,c.jsx)(t.td,{children:`Независимый step или node с заданной позицией.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`rekeyFormattersPipelineConfig(config, idFactory?)`})}),(0,c.jsx)(t.td,{children:`Только при создании независимой копии для нового редактора/сущности.`}),(0,c.jsxs)(t.td,{children:[`Переиздаёт технические id пользовательских step/node и рёбер; `,(0,c.jsx)(t.code,{children:`source`}),`/`,(0,c.jsx)(t.code,{children:`sink`}),` сохраняют id. По умолчанию использует UUID.`]})]})]})]}),`
189
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`FormattersPipelineValidationMessage`}),` содержит машинный `,(0,c.jsx)(t.code,{children:`code`}),` и русское
190
- `,(0,c.jsx)(t.code,{children:`message`}),`; не распознавайте проблему по тексту сообщения. Для UI удобно
191
- показывать `,(0,c.jsx)(t.code,{children:`errors`}),`, а `,(0,c.jsx)(t.code,{children:`warnings`}),` отображать как необязательные рекомендации.`]}),`
192
- `,(0,c.jsx)(t.p,{children:`Каталог узлов можно получить без дублирования строк интерфейса:`}),`
193
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { getFormattersPipelineDefinitionById, getFormattersPipelineDefinitions } from "@ryuzaki13/react-foundation-lib/formatters";
194
-
195
- getFormattersPipelineDefinitions();
196
- getFormattersPipelineDefinitionById("typedValueFormat");
197
- `})}),`
198
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`getFormattersPipelineDefinitions()`}),` и
199
- `,(0,c.jsx)(t.code,{children:`getFormattersPipelineDefinitionById(id)`}),` — публичный способ получить
200
- readonly-каталог и описание конкретного вида форматтера.`]}),`
201
- `,(0,c.jsx)(t.h2,{id:`компиляция-и-отображение`,children:`Компиляция и отображение`}),`
202
- `,(0,c.jsx)(t.h3,{id:`низкоуровневый-executor`,children:`Низкоуровневый executor`}),`
203
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { compileFormattersPipelineExecutor, formatTypedCellValue } from "@ryuzaki13/react-foundation-lib/formatters";
204
-
205
- const compiled = compileFormattersPipelineExecutor({
206
- config,
207
- column: { role: "measure", type: "decimal" }
208
- });
209
-
210
- if (compiled.ok) {
211
- compiled.executor.execute({
212
- value: 12.5,
213
- rowData: {},
214
- rowKind: "plain",
215
- isGroupRow: false,
216
- isTotalsRow: false,
217
- rowLevel: 0,
218
- groupingIds: [],
219
- columnId: "amount"
220
- });
221
- }
222
-
223
- formatTypedCellValue(12.5, { role: "measure", type: "decimal" });
224
- // "12,5" — default number preset "decimal"
225
- `})}),`
226
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`compileFormattersPipelineExecutor`}),` повторно валидирует config и возвращает
227
- либо `,(0,c.jsx)(t.code,{children:`{ ok: true, executor }`}),`, либо `,(0,c.jsx)(t.code,{children:`{ ok: false, reason }`}),`. Причины ошибки:
228
- `,(0,c.jsx)(t.code,{children:`"pipeline_invalid"`}),` и `,(0,c.jsx)(t.code,{children:`"row_based_formula_not_found"`}),`. В последнем случае
229
- надо исправить порядок bootstrap и зарегистрировать formula, а не подменять
230
- её локальной функцией в сериализуемом конфиге.`]}),`
231
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`formatTypedCellValue(value, column, config?)`}),` работает и без pipeline:`]}),`
232
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Базовый OData-type`}),(0,c.jsx)(t.th,{children:`Поведение`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Число`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`formatNumber`}),`; default preset `,(0,c.jsx)(t.code,{children:`decimal`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Дата`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`parseDate`}),`, затем `,(0,c.jsx)(t.code,{children:`formatDate`}),`; default preset `,(0,c.jsx)(t.code,{children:`date`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Остальное`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`toSafeString`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Небезопасное значение`}),(0,c.jsx)(t.td,{children:`Пустая строка.`})]})]})]}),`
233
- `,(0,c.jsxs)(t.p,{children:[`Для прямого вызова неизвестное имя number/date-пресета заменяется default
234
- пресетом. В полноценном pipeline валидатор отдельно делает неизвестный или
235
- пустой `,(0,c.jsx)(t.code,{children:`numberPresetName`}),` ошибкой; неизвестный `,(0,c.jsx)(t.code,{children:`datePresetName`}),` в runtime
236
- безопасно даёт preset `,(0,c.jsx)(t.code,{children:`date`}),`.`]}),`
237
- `,(0,c.jsx)(t.h3,{id:`runtime-полей`,children:`Runtime полей`}),`
238
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{children:`Важное свойство`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntime(field)`})}),(0,c.jsxs)(t.td,{children:[`Компилирует `,(0,c.jsx)(t.code,{children:`formulaExecutor`}),` и `,(0,c.jsx)(t.code,{children:`formattersPipelineExecutor`}),` и `,(0,c.jsxs)(t.strong,{children:[`мутирует переданный `,(0,c.jsx)(t.code,{children:`field`})]}),`. Допустим только до помещения поля в readonly snapshot, memoized context или cache.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntimeFields(fieldsById)`})}),(0,c.jsx)(t.td,{children:`Компилирует каждое существующее поле; также не пересобирает и не копирует сами поля.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`formatPipelineDisplayValue(args)`})}),(0,c.jsxs)(t.td,{children:[`Возвращает `,(0,c.jsx)(t.code,{children:`FormattersPipelineDisplayValue`}),`, пригодный для UI: значение, state, настройки иконки и `,(0,c.jsx)(t.code,{children:`overflowTooltip`}),`.`]})]})]})]}),`
239
- `,(0,c.jsxs)(t.p,{children:[`Перед pipeline `,(0,c.jsx)(t.code,{children:`formatPipelineDisplayValue`}),` при необходимости выполняет
240
- `,(0,c.jsx)(t.code,{children:`field.formulaExecutor`}),`. Если формула отсутствует/ошиблась, `,(0,c.jsx)(t.code,{children:`purelyDerived`}),`
241
- поле отображается пустым, а обычное поле возвращается к `,(0,c.jsx)(t.code,{children:`rawValue`}),`. После
242
- pipeline fallback-форматирование по типу применяется автоматически, если в
243
- плане не было `,(0,c.jsx)(t.code,{children:`typedValueFormat`}),`. `,(0,c.jsx)(t.code,{children:`emptyWhenZero`}),` скрывает нулевой результат
244
- исходной формулы/значения как пустую строку.`]}),`
245
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`formulaId`}),` и `,(0,c.jsx)(t.code,{children:`formulaDependencies`}),` относятся к реестру формул host-проекта:
246
- необходимая формула должна быть уже доступна до `,(0,c.jsx)(t.code,{children:`compile…Runtime`}),`, а её
247
- зависимости нужно включить в данные строки.`]}),`
248
- `,(0,c.jsx)(t.h2,{id:`планирование-зависимостей-данных`,children:`Планирование зависимостей данных`}),`
249
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { collectFormattersPipelineDependencyIds, collectRuntimeFieldDependencyIds } from "@ryuzaki13/react-foundation-lib/formatters";
250
-
251
- const dependencies = collectFormattersPipelineDependencyIds(config);
252
- // Только fieldKey/dependencyIds из rowBasedOverride.
253
-
254
- const runtimePlan = collectRuntimeFieldDependencyIds(["score"], {
255
- score: {
256
- formattersPipeline: config,
257
- cellRenderer: { bindings: { caption: "score-label" } }
258
- },
259
- "score-label": {}
260
- });
261
- // runtimePlan.requiredColumnIds / runtimePlan.missingColumnIds
262
- `})}),`
263
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`collectFormattersPipelineDependencyIds(config)`}),` возвращает только уникальные
264
- IDs из valid `,(0,c.jsx)(t.code,{children:`rowBasedOverride`}),` в порядке первого появления.
265
- `,(0,c.jsx)(t.code,{children:`collectRuntimeFieldDependencyIds(fieldIds, fieldsById)`}),` дополнительно
266
- учитывает `,(0,c.jsx)(t.code,{children:`cellRenderer.bindings`}),`, отделяя известные IDs в
267
- `,(0,c.jsx)(t.code,{children:`requiredColumnIds`}),` от отсутствующих в `,(0,c.jsx)(t.code,{children:`missingColumnIds`}),`. Функции не делают
268
- query сами: host обязан добавить `,(0,c.jsx)(t.code,{children:`requiredColumnIds`}),` в запрос до исполнения
269
- pipeline.`]}),`
270
- `,(0,c.jsx)(t.h2,{id:`value-state`,children:`Value state`}),`
271
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`State`}),` допускает `,(0,c.jsx)(t.code,{children:`""`}),`, `,(0,c.jsx)(t.code,{children:`"none"`}),`, `,(0,c.jsx)(t.code,{children:`"information"`}),`, `,(0,c.jsx)(t.code,{children:`"success"`}),`,
272
- `,(0,c.jsx)(t.code,{children:`"warning"`}),`, `,(0,c.jsx)(t.code,{children:`"error"`}),`. Resolver сопоставляет значению одно из этих состояний
273
- и хранится в global registry данного module instance.`]}),`
274
- `,(0,c.jsx)(t.h3,{id:`fixed-resolver`,children:`Fixed resolver`}),`
275
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { createFixedResolver, registerFixedResolver, resolveValueState } from "@ryuzaki13/react-foundation-lib/formatters";
276
-
277
- const resolverId = registerFixedResolver({
278
- entries: { A: "success", B: "warning", C: "error" },
279
- fallbackState: "none"
280
- });
281
-
282
- resolveValueState(resolverId, "B"); // "warning"
283
-
284
- const resolve = createFixedResolver({ entries: { A: "success" } });
285
- resolve("A"); // "success"
286
- `})}),`
287
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`FixedValueStateResolverConfig`}),` содержит `,(0,c.jsx)(t.code,{children:`entries: Record<string, State>`}),` и
288
- необязательный `,(0,c.jsx)(t.code,{children:`fallbackState`}),` (по умолчанию `,(0,c.jsx)(t.code,{children:`"none"`}),`). Сопоставление точное
289
- по `,(0,c.jsx)(t.code,{children:`String(value)`}),`; `,(0,c.jsx)(t.code,{children:`null`}),` и `,(0,c.jsx)(t.code,{children:`undefined`}),` сразу дают fallback. Идентичные по
290
- содержимому конфигурации дедуплицируются, поэтому регистрация возвращает один
291
- и тот же id.`]}),`
292
- `,(0,c.jsx)(t.h3,{id:`threshold-resolver`,children:`Threshold resolver`}),`
293
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { createThresholdResolver, registerThresholdResolver } from "@ryuzaki13/react-foundation-lib/formatters";
294
-
295
- const resolve = createThresholdResolver({
296
- thresholds: [{ value: 60, boundary: "lower" }, 95],
297
- states: ["warning", "success", "error"],
298
- invalidState: "none"
299
- });
300
-
301
- resolve(60); // "warning": boundary "lower" использует <=
302
- resolve(95); // "error": числовой threshold по умолчанию использует <
303
- `})}),`
304
- `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`ThresholdValueStateResolverConfig`}),`:`]}),`
305
- `,(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:(0,c.jsx)(t.code,{children:`thresholds`})}),(0,c.jsxs)(t.td,{children:[`Числа либо `,(0,c.jsx)(t.code,{children:`{ value, boundary? }`}),`; `,(0,c.jsx)(t.code,{children:`boundary: "upper"`}),` по умолчанию означает, что порог относится к верхнему сегменту (`,(0,c.jsx)(t.code,{children:`<`}),` для нижнего). `,(0,c.jsx)(t.code,{children:`"lower"`}),` включает его в нижний сегмент (`,(0,c.jsx)(t.code,{children:`<=`}),`).`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`states`})}),(0,c.jsxs)(t.td,{children:[`Ровно `,(0,c.jsx)(t.code,{children:`thresholds.length + 1`}),` состояний в порядке диапазонов от меньших значений к большим. Иначе `,(0,c.jsx)(t.code,{children:`create…`}),`/`,(0,c.jsx)(t.code,{children:`register…`}),` бросит `,(0,c.jsx)(t.code,{children:`Error`}),`.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`invalidState`})}),(0,c.jsxs)(t.td,{children:[`Результат для пустого, `,(0,c.jsx)(t.code,{children:`NaN`}),`, бесконечного или нечислового значения; default `,(0,c.jsx)(t.code,{children:`"none"`}),`.`]})]})]})]}),`
306
- `,(0,c.jsxs)(t.p,{children:[`Пороги сортируются перед compilation, но массив `,(0,c.jsx)(t.code,{children:`states`}),` не переставляется.
307
- Передавайте `,(0,c.jsx)(t.code,{children:`thresholds`}),` сразу по возрастанию, чтобы соответствие сегментов и
308
- states было однозначным. Для дублирующихся порогов библиотека выводит
309
- `,(0,c.jsx)(t.code,{children:`console.warn`}),`, но продолжает работу.`]}),`
310
- `,(0,c.jsx)(t.h3,{id:`реестр-и-presentation-helpers`,children:`Реестр и presentation helpers`}),`
311
- `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`API`}),(0,c.jsx)(t.th,{children:`Поведение / side effect`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`registerFixedResolver`}),`, `,(0,c.jsx)(t.code,{children:`registerThresholdResolver`})]}),(0,c.jsx)(t.td,{children:`Регистрируют конфигурационный resolver и возвращают его детерминированный короткий id.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`createFixedResolver`}),`, `,(0,c.jsx)(t.code,{children:`createThresholdResolver`})]}),(0,c.jsx)(t.td,{children:`Возвращают функцию resolver; также используют общий registry и дедупликацию.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveValueState(id, value)`})}),(0,c.jsxs)(t.td,{children:[`Возвращает `,(0,c.jsx)(t.code,{children:`"none"`}),`, если id не найден.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`getValueStateResolver(id)`}),`, `,(0,c.jsx)(t.code,{children:`getValueStateResolverIds()`})]}),(0,c.jsx)(t.td,{children:`Читают resolver или список ids.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`registerResolver(canonicalKey, compileFunction)`}),`, `,(0,c.jsx)(t.code,{children:`findResolverByCanonicalKey`}),`, `,(0,c.jsx)(t.code,{children:`computeShortHash`})]}),(0,c.jsxs)(t.td,{children:[`Низкоуровневый API для специальных host-резолверов. `,(0,c.jsx)(t.code,{children:`compileFunction`}),` — runtime-функция, её нельзя хранить в config.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resetValueStateResolvers()`})}),(0,c.jsx)(t.td,{children:`Очищает global registry. Только для изолированных тестов: сбросит resolvers, созданные скомпилированными pipeline.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`DEFAULT_VALUE_STATES`})}),(0,c.jsx)(t.td,{children:`Readonly список presentation-состояний без пустого значения.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`VALUE_STATE_COLOR_TOKENS`})}),(0,c.jsxs)(t.td,{children:[`Соответствие `,(0,c.jsx)(t.code,{children:`State`}),` CSS token. Не меняет DOM и не подключает стили.`]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`resolveValueStateClassName(state, fallbackClassName?)`})}),(0,c.jsxs)(t.td,{children:[`Для `,(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:`information`}),` возвращает `,(0,c.jsx)(t.code,{children:`status…`}),`; для остальных — fallback.`]})]})]})]}),`
312
- `,(0,c.jsx)(t.h2,{id:`runtime-ограничения`,children:`Runtime-ограничения`}),`
313
- `,(0,c.jsxs)(t.ul,{children:[`
314
- `,(0,c.jsx)(t.li,{children:`Реестры row-based formatter-ов и value-state resolver-ов — module-scoped
315
- mutable state. Инициализируйте их один раз до compilation и не меняйте во
316
- время рендера.`}),`
317
- `,(0,c.jsxs)(t.li,{children:[`Config должен оставаться сериализуемым: IDs, строки, числа, массивы и
318
- plain objects. Не сохраняйте `,(0,c.jsx)(t.code,{children:`fn`}),`, executor, `,(0,c.jsx)(t.code,{children:`Map`}),`, `,(0,c.jsx)(t.code,{children:`Date`}),`, React node или
319
- registry в конфигурации.`]}),`
320
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`compileFormattersPipelineRuntime`}),` меняет входной объект. Сначала создайте
321
- обычный mutable construction object, затем скомпилируйте его и только после
322
- этого публикуйте readonly snapshot.`]}),`
323
- `,(0,c.jsxs)(t.li,{children:[(0,c.jsx)(t.code,{children:`resetDatePresets`}),`, `,(0,c.jsx)(t.code,{children:`resetNumberPresets`}),`, `,(0,c.jsx)(t.code,{children:`resetValueStateResolvers`}),` и
324
- повторная настройка row-based registry предназначены для тестов/явно
325
- изолированных окружений, а не для обычного пользовательского сценария.`]}),`
326
- `,(0,c.jsx)(t.li,{children:`Ошибки validation следует показывать владельцу конфигурации. Не
327
- компилируйте невалидный config и не маскируйте missing formula пустой
328
- локальной реализацией.`}),`
329
- `]})]})}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 +0,0 @@
1
- import{t as e}from"./iframe-Cq8y-8O_.js";e();